Getting started
----------------
+.. index:: single: command; searchadd
+
+**Connect, clear the queue, add tracks**
+
+.. sourcecode:: python
+
+ import mpdaio
+
+ client = mpdaio.MPDClient()
+ await client.ping() # Plain connection test
+ print(client.version) # Prints MPD's protocol version
+ print(await client.clear()) # Clears the current queue
+ # Add all tracks from artist "Amon Tobin"
+ print(await client.searchadd('(Artist == "Amon Tobin")'))
+ await client.play()
+ await client.setvol(60)
+ print(await client.currentsong())
+ await client.close() # Finally close connection
+
+.. index:: single: command; password
+
+**musicpdaio** tries to come with sane defaults, then running
+:py:class:`mpdaio.MPDClient` with no explicit argument will try default values
+to connect to MPD. Cf. :ref:`reference` for more about
+:ref:`defaults<default_settings>`.
+
+**Using a specific host, port and a password.**
+
+The password is sent when a connection is made, no need to explicitly use the
+password command. In the following code a client is constructed with a password argument, then when the ping method is called:
+
+* the client fetch a connection from the pool
+* then a password command is sent with the password
+* finally the ping command is sent.
+
+.. sourcecode:: python
+
+ client = mpdaio.MPDClient(host='example.org', port='6601', password='53(237')
+ await client.ping()
+
+**Wrapping some commands in a python script**
.. literalinclude:: tutorial/tutorial-00.py
+.. index:: single: command; albumart
+
+**Fetch album art for the given track**
+
+The logic is similar with `readpicture` command.
+
+.. sourcecode:: python
+
+ client = mpdaio.MPDClient()
+ # Looking for cover art in 'Tool/2001-Lateralus/'
+ track = 'Tool/2001-Lateralus/09-Tool - Lateralus.flac'
+ aart = await cli.albumart(track, 0)
+ received = int(aart.get('binary'))
+ size = int(aart.get('size'))
+ with open('/tmp/cover', 'wb') as cover:
+ # aart = {'size': 42, 'binary': 2051, data: bytes(...)}
+ cover.write(aart.get('data'))
+ while received < size:
+ aart = await cli.albumart(track, received)
+ cover.write(aart.get('data'))
+ received += int(aart.get('binary'))
+ if received != size:
+ print('something went wrong')
+ await cli.close()
+
+Cf. `MPD protocol documentation`_ for more binary responses.
+
Concurrency
-----------
.. literalinclude:: tutorial/tutorial-01.py
-
.. vim: spell spelllang=en