Fork of Sonata music client for MPD, with patches
Python C Other
Pull request Compare This branch is 112 commits behind multani:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


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 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

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 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: