206 lines
6.4 KiB
Plaintext
206 lines
6.4 KiB
Plaintext
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 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).
|
|
|
|
|
|
Translations
|
|
============
|
|
|
|
Cantata is mainly a KDE-based application, but it can be compiled as Qt only.
|
|
Because of its KDE base, the translation files are based upon KDE's i18n
|
|
framework - these are located with the 'po' folder.
|
|
|
|
Translations for the Qt-only builds are created from the KDE translations using
|
|
'lconvert'.
|
|
|
|
|
|
Covers
|
|
======
|
|
|
|
When displaying covers, Cantata will load album covers in the following order:
|
|
|
|
...if MPD folder exists, is not specified as a http URL, and is readable, then
|
|
cantata will look for the following within the folder containing the song:
|
|
|
|
1. cover.jpg
|
|
2. cover.png
|
|
3. AlbumArt.jpg
|
|
4. AlbumArt.png
|
|
5. folder.jpg
|
|
6. folder.png
|
|
7. ${file}.jpg
|
|
8. ${file}.png
|
|
9. ${albumArtist} - ${album}.jpg
|
|
10. ${albumArtist} - ${album}.png
|
|
11. ${album}.jpg
|
|
12. ${album}.jpg
|
|
13. Image embedded within current songs tags.
|
|
14. ANY other jpg, or png
|
|
|
|
...then Cantata will check its cache folder (~/.cache/cantata/covers), for :
|
|
|
|
15. ${albumArtist}/${album}.jpg
|
|
16. ${albumArtist}/${album}.png
|
|
|
|
...if compiled for Linux
|
|
|
|
17. Matching Amarok cover
|
|
18. Matching Clementine cover
|
|
|
|
...if the MPD folder was specified as a http URL
|
|
|
|
19. ${url}/${dirFromFile}/cover.jpg
|
|
20. ${url}/${dirFromFile}/cover.png
|
|
|
|
...lastly
|
|
|
|
21. Query last.fm using ${albumArtist} and ${album}. Cantata will attempt to
|
|
download the image specified with the "extralarge" size.
|
|
|
|
Downloaded images will be saved as cover.jpg/png within the song folder if
|
|
possible. If not, then they will be saved in Cantata's cache folder.
|
|
|
|
|
|
For artist images:
|
|
|
|
...if MPD folder exists, is not specified as a http URL, and is readable, then
|
|
cantata will look for the following within the folder containing the song:
|
|
|
|
1. ${albumArtist}.jpg
|
|
2. ${albumArtist}.png
|
|
3. artist.jpg
|
|
4. artist.png
|
|
|
|
... the above will be repeated for each parent folder (until we reach the MPD
|
|
root folder)
|
|
|
|
...then Cantata will check its cache folder (~/.cache/cantata/covers), for :
|
|
|
|
5. ${albumArtist}.jpg
|
|
6. ${albumArtist}.png
|
|
|
|
...lastly
|
|
|
|
7. Query last.fm using ${albumArtist}. Cantata will attempt to download the
|
|
image specified with the "extralarge" size.
|
|
|
|
Downloaded artist images are saved to Cantata's cache folder.
|
|
|
|
|
|
Single/Double Click Activation
|
|
==============================
|
|
|
|
As of 0.8.3 Cantata forces single-click activation of items in the left hand
|
|
pages (e.g. Library view). To revert to having this controlled via the style,
|
|
you need to edit the Cantata config file. For a KDE build this will usually be
|
|
~/.kde/share/config/cantatarc, for a Qt-only build on Linux this will usually
|
|
be ~/.config/cantata/cantata.conf. For a windows build, you will need to use
|
|
regedit and navigate to HKEY_CURRENT_USER/Software/cantata/cantata. The config
|
|
item to be changed is forceSingleClick in the General section. e.g.
|
|
|
|
[General]
|
|
albumFirst=false
|
|
...
|
|
forceSingleClick=true
|
|
groupMultiple=true
|
|
...
|
|
|
|
|
|
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 dynamic 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.
|