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 (Last.fm) 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!
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://github.com/multani/sonata.git $ cd sonata
To run Sonata, you can either install it in a dedicated directory (as root):
# python setup.py install
Or you can run it straight from the directory (without prior installation):
Website, documentation, help, etc.
The official documentation is located at http://sonata.berlios.de/documentation.html
You can ask for feature requests or report bugs on Github at https://github.com/multani/sonata/issues
There's a (somewhat alive) mailing list available at https://lists.berlios.de/mailman/listinfo/sonata-users
If you are interested to hack on Sonata, please consider the following:
- Clone the repository or fork it on Github;
- For each feature, bug fix, refactor, anything, you want to submit, create a branch with a name which reflects what you want to do;
- Commit your changes related to this thing in this branch;
- Signal your changes with one of the following:
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.
You can also find Sonata in other places on the Internet:
- http://sonata.berlios.de/ : this is the original Sonata website. It has not been updated since a while but still has interesting screenshots.
- http://codingteam.net/project/sonata/ : this is another fork with a different team and different perspectives. Our code bases diverge quite a bit now.
- Copyright 2006-2009 Scott Horowitz <email@example.com>
- Copyright 2009-2013 Jonathan Ballet <firstname.lastname@example.org>
Sonata is currently developed by Jonathan Ballet <email@example.com> and other contributors. Many thanks to the past developers: