Skip to content
This repository

GTK 3 client for the Music Player Daemon

Fix : SyntaxError for 'return'

 File "/usr/lib64/python3.2/site-packages/sonata/", line 89
    yield os.path.join(song_dir, artworks[0])
SyntaxError: 'return' with argument inside generator
latest commit 1d75758caa
ppnsd ppnsd authored
Octocat-spinner-32 .tx i18n: update translation files and set up a Transifex project July 08, 2013
Octocat-spinner-32 po i18n: update ru translation July 15, 2013
Octocat-spinner-32 scripts i18n: update translation files and set up a Transifex project July 08, 2013
Octocat-spinner-32 sonata Fix : SyntaxError for 'return' March 28, 2014
Octocat-spinner-32 website website: pushing the website mirrors completely the website/ directory March 16, 2014
Octocat-spinner-32 .gitignore i18n: update translation files and set up a Transifex project July 08, 2013
Octocat-spinner-32 CHANGELOG ui: keep the selected tab when hiding/showing using the tray icon February 19, 2014
Octocat-spinner-32 COPYING update license to GPLv3 September 09, 2007
Octocat-spinner-32 PLUGINS.rst doc: start to add a documentation to explain how the plugin system works January 04, 2013
Octocat-spinner-32 README.rst doc: explain where to download official and development releases March 16, 2014
Octocat-spinner-32 TODO current: fix filtering, less memory usage, simplification & code cleanup March 06, 2013
Octocat-spinner-32 TRANSLATORS i18N: add a README information about translation July 15, 2013
Octocat-spinner-32 run-sonata py3: Sonata now requires Python 3 March 18, 2012
Octocat-spinner-32 run-tests py3: change Python version checks from 2.x to 3.2+ November 28, 2012
Octocat-spinner-32 setup.cfg Install data files in a "share/" sub-directory instead of everything … January 01, 2012
Octocat-spinner-32 artwork: simplify, reduce, test code related to artwork paths handling February 17, 2014
Octocat-spinner-32 sonata.1 man page fix (nijel) September 21, 2009
Octocat-spinner-32 sonata.desktop fix desktop file February 07, 2008

Sonata, an elegant GTK 3 client for the Music Player Daemon

Sonata is a client for the Music Player Daemon featuring:

  • Expanded and collapsed views, fullscreen album art mode
  • Automatic remote and local album art
  • Library browsing by folders, or by genre/artist/album
  • User-configurable columns
  • Automatic fetching of lyrics and covers
  • Playlist and stream support
  • Support for editing song tags
  • Drag-and-drop to copy files
  • Popup notification
  • Library and playlist searching, filter as you type
  • Audioscrobbler ( 1.2 support
  • Multiple MPD profiles
  • Keyboard friendly
  • Support for multimedia keys
  • Commandline control
  • Available in 24 languages

Sonata is written using the Python programming language and uses the GTK 3 toolkit.

Sonata started as a fork of the Pygmy project and is licensed under the GPLv3. Thanks to Andrew Conkling et al, for all their hard work on Pygmy!

Using Sonata


In order to run Sonata, you will need the following dependencies:

  • Python >= 3.2
  • PyGObject (aka Python GObject Introspection) (3.7.4 or more recommended, earlier versions may also work)
  • GTK >= 3.4
  • python-mpd2 >= 0.4.6
  • MPD >= 0.15 (possibly on another computer)
  • taglib and tagpy >= 2013.1 for editing metadata (Optional)
  • dbus-python for multimedia keys (Optional)

Sonata can currently be downloaded from the Git repository using:

$ git clone git://
$ cd sonata

To run Sonata, you can either install it in a dedicated directory (as root):

# python install

Or you can run it straight from the directory (without prior installation):

$ ./run-sonata

Sonata in Linux distributions

You can find on the website official releases of Sonata packaged in various distributions.

Development version

This development version of Sonata is also available in several distributions:


For distribution-specific comments, please contact the packagers at the specified URLs!

Website, documentation, help, etc.

The official documentation is located at

You can ask for feature requests or report bugs on Github at

There's a (somewhat alive) mailing list available at


If you are interested to hack on Sonata, please consider the following:

  1. Clone the repository or fork it on Github;
  2. For each feature, bug fix, refactor, anything, you want to submit, create a branch with a name which reflects what you want to do;
  3. Commit your changes related to this thing in this branch;
  4. Signal your changes with one of the following:
    • open a pull request on Github;
    • send a mail to with the URL of your repository, the name of the branch you want to be merged, and a meaningful description of your work;
    • or send me your patch(es) to using git send-email.

I hate, hate, hate having to review commits touching lot of unrelated things, this is the easiest way for your changes not to be merged. Try to stay focus on one clearly defined thing and it should be much easier to merge.



See the TRANSLATORS file for more information!

You can translate Sonata using the dedicated Transifex project page.

Sonata's translation can be done via the Transifex plateform. You need to subscribe to Transifex first, then to add yourself as a member of the Transifex Sonata project under the language your are interested to translate into.

Once a translation is done, be sure to contact the maintainer of Sonata to announce there's a new translation to include!

See also

You can also find Sonata in other places on the Internet:


Sonata is currently developed by Jonathan Ballet <> and other contributors. Many thanks to the past developers:

Something went wrong with that request. Please try again.