Introduction ============ Cantata is a GUI front-end for MPD. The code is forked from QtMPC. However, both the code itself, and the GUI are now *very* different to QtMPC. Dependencies ============ Cantata requires/uses the following libraries: 1. Qt4 2. KDElibs4 - if Cantata is not built with KDE4 support, then tag editing and device support will not be available. 3. QtWebKit - required for the artist/album information page. If QtWebKit is not found, the page will not be built. 4. TagLib - required to for the tag edit dialog, and for UMS device support. 5. LibMTP - required to support MTP devices. 6. FFMPEG (libavcodec) - used for ReplayGain detection. 7. SpeexDSP - used by ReplayGain detection code. 8. MPG123 - used for ReplayGain detection (optional). Amarok Radio Streams ==================== The script amarok2cantata.sh may be used to covert Amarok Radio plugins into an XML file suitable to be imported into Cantata. The script is rather basic and requires the Amarok plugin to list its streams in 'main.js' with the following syntax: Station( "NAME", "URL") Each station must be on its own line, and must be all in one line. 'script.spec' is used to ascertain the Amarok plugin name, for this the script will look for the line starting with "Name=" Dynamic Helper Script ===================== When a dynamic playlist is loaded in Cantata, the cantata-dynamic helper script is executed in the background to do the actual song selection. In this way the dynamic playlist can still function even when cantata is terminated. It is possible for this script to be controlled on the command line (although it was never written with this in mind). The list of dynamic playlists may be obtained by looking in ~/.config/cantata/dynamic To 'load' a dynamic play list, all you need to do is symlink the desired one in ~/.config/cantata/dynamic to ~/.cache/cantata/dynamic/rules. Then you can start the helper by calling '/usr/lib/kde4/libexec/cantata-dynamic start' (or first call '/usr/lib/kde4/libexec/cantata-dynamic stop' to stop any current play list). To pass connection details, cantata-dynamic reads the same environment variables as mpc - namely MPD_HOST and MPD_PORT e.g. the following bash script (not tested!) will stop any current dynamic playlist, load the 'MyPlaylist' playlist, and start this on the mpd at 'hostname:1234' with password 'pass' # Stop current dynamic playlist /usr/lib/kde4/libexec/cantata-dynamic stop # Clear the playqueue (this requires mpc) MPD_HOST=pass@hostname MPD_PORT=1234 mpc clear # 'Load' new playlist if [ -f "$HOME/cache/cantata/dynamic/rules" ] ; then rm "$HOME/cache/cantata/dynamic/rules" fi ln -s "$HOME/config/cantata/dynamic/MyPlaylist.rules" "$HOME/cache/cantata/dynamic/rules" # Restart dyamic script MPD_HOST=pass@hostname MPD_PORT=1234 /usr/lib/kde4/libexec/cantata-dynamic start Credits ======= Cantata contains code/icons from: Amarok - amarok.kde.org Clementine - www.clementine-player.org libmaia - https://github.com/wiedi/libmaia libebur128 - https://github.com/jiixyj/libebur128 wikipedia icon - Social Media Mini by Paul Robert Lloyd License: Commons licence: Attribution-Share Alike 2.0 UK: England & Wales Windows ======= To compile for windows: 1. Install Qt, MinGW, cmake, TagLib. TagLib will probably need compiling. 2. Call cmake: cmake ../cantata -G "MinGW Makefiles" -DTAGLIB_INCLUDES="C:\taglib\include" -DTAGLIB_LIBRARIES="C:\tagglib\bin\libtag.dll" 3. make! :-) This build is as per Qt-only, but does not have support for dbus, dockmanager, or dynamic playlists. To run you will also need Oxygen icons.