Description:

Cantata is a (yet another!) client for the music player daemon (MPD). Originally started as a fork of QtMPC, the code is now *very* different. Cantata can be compiled with KDE support, or as a pure Qt4 application. The interface is very configurable - most views can be shown as either a list or tree structure.

Currently Cantata has the following views:

1. Library - Group by either Genre, Album Artist (or Artist if Album Artist not set), or Album
2. Folders - displays MPDs virtual filesystem. (This view is hidden by default)
3. Playlists - standard and dyamic
4. Internet - Radio Streams (allows saving of internet radio URLs, searching for stations via TuneIn or ShoutCast, station listings from; Digitally Imported (+Sky, JazzRadio, RockRadio), TuneIn, IceCast, ShoutCast, SomaFM, etc.) and Online services (Jamendo, Magnatune, SoundCloud, and Podcasts)
5. Devices - enables copying from/to USB-Mass-Storage (UMS) and MTP devices, and ripping AudioCDs
6. Search - search via MPD

The sidebar has a context menu, allowing you to control its style and what items are shown.

Refer to http://mpd.wikia.com/wiki/Client:Cantata, and https://raw.githubusercontent.com/CDrummond/cantata/master/README, for further information.


******************
******************

NOTE: The screenshots on this page are out of date, and only reflect the 1.x codebase

******************
******************

Changelog:

9 months ago

2.0.0
-----
Initial release of 2.0, main changes:

1. Use SQLite to cache MPD listing
2. Combine Artists and Albums into Library tab
3. Allow grouping by Genre
4. Merge Online and Streams into Internet tab
5. Merge Playlists and Dynamc Playlists tabs
6. Use 'Composer' tag to group albums of specified genres
7. Use mix of icon themes for flatter icon style - and use mono icons where appropriate

2.0.1
-----
1. Delay creation of Jamendo and Magnatune DBs until required.
2. Fix 'Scroll to current track' in table style play queue if track number column is hidden.
3. Add icon for proxy config - if proxy settings enabled.
4. Fix possibly missing save play queue icon.
5. Install pre-rendered PNG icons for Linux builds.
6. Use last.fm 2.0 API for finding similar artists in dynamic playlists.
7. Fix listing of CUE files.
8. Only honour 'startHidden' setting if also configured to use system tray.
9. Folder page nolonger has a search field - so if upgrading from a 1.x config with folder search visible, then hide it.
10. Don't allow copying of cue file tracks to devices.
11. When calculating collapsed window height, take into account size of menubar, if it is visible.
12. Try to ensure menu button width is at least equal to height.
13. Fix compilation on some systems.
14. Remove usage of libavutil/audioconvert.h - its no longer in ffmpeg since 1.3, and Cantata does not need it anyway.
15. Fix playback of AudioCDs
16. Fix incorrect AudioCD cover
17. Fix Qt5 gcc5 compilation.
18. Fix wrong/missing ratings in toolbar.
19. Fix compilation with Qt5.7
20. Fix drag'n'drop of non-loaded playlists.
21. Use a single-shot timer to timeout obtaining current cover.
22. Fix AudioCD playback when MPD's curl is using IPv6
23. Fix current track display when chaging from one track with no meta-data to another with no meta-data.

4 years ago

thenktor

Thanks :)

Report

4 years ago

trap000d

I've added playlist files (asx, cue, m3u, pls, xspf) support to cantata. Here the patch for last svn revision:
Index: mpd/mpdparseutils.cpp
===================================================================
--- mpd/mpdparseutils.cpp (revision 1197)
+++ mpd/mpdparseutils.cpp (working copy)
@@ -426,6 +426,15 @@
} else {
static_cast<DirViewItemDir *>(currentDir)->insertFile(parts.at(parts.size() - 1));
}
+ } else if (line.startsWith("playlist: ")) {
+ line.remove(0, 10);
+ QStringList parts = line.split("/");
+
+ if (currentDir->type() == DirViewItem::Type_Root) {
+ static_cast<DirViewItemRoot *>(currentDir)->insertFile(parts.at(parts.size() - 1));
+ } else {
+ static_cast<DirViewItemDir *>(currentDir)->insertFile(parts.at(parts.size() - 1));
+ }
} else if (line.startsWith("directory: ")) {
line.remove(0, 11);
QStringList parts = line.split("/");
Index: mpd/mpdconnection.cpp
===================================================================
--- mpd/mpdconnection.cpp (revision 1197)
+++ mpd/mpdconnection.cpp (working copy)
@@ -34,6 +34,7 @@
#include <QtCore/QDebug>
#include <QtCore/QThread>
#include <QtCore/QStringList>
+#include <QtCore/QFileInfo>
#include "debugtimer.h"

// #define DBUG qWarning() << "MPDConnection" << QThread::currentThreadId()
@@ -397,7 +398,14 @@

QByteArray send = "command_list_begin\n";
for (int i = 0; i < files.size(); i++) {
- send += "add ";
+ QFileInfo fi( files.at(i) );
+ QString ext = fi.suffix ( );
+ if ( QString::compare(ext,"asx", Qt::CaseInsensitive)==0
+ ||QString::compare(ext,"cue", Qt::CaseInsensitive)==0
+ ||QString::compare(ext,"m3u", Qt::CaseInsensitive)==0
+ ||QString::compare(ext,"pls", Qt::CaseInsensitive)==0
+ ||QString::compare(ext,"xspf", Qt::CaseInsensitive)==0
+ ) {send+="load ";} else { send += "add ";}
send += encodeName(files.at(i));
send += "\n";
}

Report

4 years ago

xdarklight

Hi Aleksandr,

thanks for the patch.
I'd put the patch in a new ticket at http://code.google.com/p/cantata/issues/list
Craig does not always follow the comments here, but creating a new ticket makes sure that he gets your patch
(and as a bonus the patches formatting does not break when you attach it to a ticket).

Regards,
Martin

Report

4 years ago

CraigD

Thanks for this, I'll add apply it for 0.8.

Martin is correct though, its easier to track things if you create a bug/wishlist item on the googlecode page.

Report

4 years ago

yuri-karadzhov

I have succesfuly build cantata 0.7, but when I run it the volume is muted and the error "problems setting volume" appear when I tried to unmute it (no output in console).

Kubuntu 12.04 KDE 4.8.3 (mpd is running on 6600)

Report

4 years ago

CraigD

What is the mixer_type set to in /etc/mpd.conf? If its "hardware" try changng this to "software" - and restart mpd (sudo /etc/init.d/mpd restart)

Report

4 years ago

yuri-karadzhov

Thank You! It works!

Advise: if you want to build DEB package with checkinstall, you need to create an empty file called RUNTIME in cantata ROOT directory.

so after make you should type:
touch ../RUNTIME
sudo checkinstall --fstrans=no --install=no --pkgname=cantata --pkgversion "0.7.0" --default
dpkg -i cantata_0.7.0*.deb

it doesn't include dependency however (I'm trying to separate build-dep and dep now)

Report

4 years ago

CraigD

...is this the Qt-only build? 0.7.0 contains a CMakeLists.txt error in the Qt-only section where RUNTIME is listed where it should not be. This will be (actually already is) fixed in 0.7.1

Report

4 years ago

yuri-karadzhov

The only build option I use is
-DCMAKE_INSTALL_PREFIX=`kde4-config --prefix`
and as I understand it is KDE build by default (I didn't use -DWANT_KDE_SUPPORT=NO)

Report

4 years ago

bosi1024

Hi,

I would like to request a feature:

MPD is able to stream audio using its builtin http server. I'm using MPoD on my Ipod Touch to control my MPD and listen to its stream. it would be nice to have such a feature in Cantata as it would allow me not to use a seperate media player.

As a matter of fact I hacked in a small Phonon media player into Cantata 0.7 which allows me to listen to a configurable stream of my choice.

This is just a really messy hack and needs a lot of improvement to run seamlessly, but for a first try, it works.

If you are interested I can send you a patch.

Best regards

Report

4 years ago

CraigD

Sounds like an interesting idea. Please feel free to send me the patch - either via email (my address is in the AUTHORS file), or create a bug report on the googlecode page and add it there.

Report

4 years ago

AozRoon

Hi !

Thank you for this really nice mpd client. I am wondering how to proceed to download the covers from internet, as mentioned on the requirement list (found on http://mpd.wikia.com/wiki/Client:Cantata ) ?
Could you please explain the procedure ?
Thank you,
Aoz

Report

4 years ago

CraigD

Cantata *automatically* downloads covers, you do not need to do this. Any downloaded covers will be saved as 'cover.jpg' or 'cover.png' within the folder containing the track - if you have write permission to the folder. Otherwise it will save it in ~/.cache/cantata/covers/<artist>/<album><.jpg/.png>

If you have any existing covers within you music folders, cantata should pick these up first before downloading.

Report

4 years ago

AozRoon

Thanks for the quick answer.

Actually, I have got "cover.jpg" files within all my music folders (and one folder per music album). But, for some of them, Cantata does not display the cover. Is there a maximum resolution allowed for the covers ?

Another point is that each time an album is compound by 2 CDs, only one of the 2 CDs has it cover displayed (even if I copy the same cover.jpg file within the 2 folders). Any explanation for that ?

Finally, could you tell us where cantata downloads the covers ? Could it be tunable ?

Thank you !

Report

4 years ago

AozRoon

Thanks for the quick answer.

Actually, I have got "cover.jpg" files within all my music folders (and one folder per music album). But, for some of them, Cantata does not display the cover. Is there a maximum resolution allowed for the covers ?

Another point is that each time an album is compound by 2 CDs, only one of the 2 CDs has it cover displayed (even if I copy the same cover.jpg file within the 2 folders). Any explanation for that ?

Finally, could you tell us where cantata downloads the covers ? Could it be tunable ?

Thank you !

Report

4 years ago

AozRoon

Thanks for the quick answer.

Actually, I have got "cover.jpg" files within all my music folders (and one folder per music album). But, for some of them, Cantata does not display the cover. Is there a maximum resolution allowed for the covers ?

Another point is that each time an album is compound by 2 CDs, only one of the 2 CDs has it cover displayed (even if I copy the same cover.jpg file within the 2 folders). Any explanation for that ?

Finally, could you tell us where cantata downloads the covers ? Could it be tunable ?

Thank you !

Report

4 years ago

AozRoon

Thanks for the quick answer.

Actually, I have got "cover.jpg" files within all my music folders (and one folder per music album). But, for some of them, Cantata does not display the cover. Is there a maximum resolution allowed for the covers ?

Another point is that each time an album is compound by 2 CDs, only one of the 2 CDs has it cover displayed (even if I copy the same cover.jpg file within the 2 folders). Any explanation for that ?

Finally, could you tell us where cantata downloads the covers ? Could it be tunable ?

Thank you !

Report

4 years ago

AozRoon

Thanks for the quick answer.

Actually, I have got "cover.jpg" files within all my music folders (and one folder per music album). But, for some of them, Cantata does not display the cover. Is there a maximum resolution allowed for the covers ?

Another point is that each time an album is compound by 2 CDs, only one of the 2 CDs has it cover displayed (even if I copy the same cover.jpg file within the 2 folders). Any explanation for that ?

Finally, could you tell us where cantata downloads the covers ? Could it be tunable ?

Thank you !

Report

4 years ago

CraigD

In order for Cantata to see your cover.jpg, you need to have entered the correct MPD music folder in the 'Server' settings page. When MPD plays a song, it tells cantata the relative path. e.g. 'AC-DC/Stiff Upper Lip/01 Stiff Upper Lip.mp3' Cantata removes the filename, and prepends the folder set in the config dialog. So, if this folder was set to '/home/Music' - cantata would look for '/home/Music/AC-DC/Stiff Upper Lip/cover.jpg'

As for downloading covers, these are fetched from last.fm.I have no current plans to change this, but please feel free to submit a patch.

Report

4 years ago

AozRoon

Thanks for the explanations & sorry for the 5 cloned message above...

Report

4 years ago

AozRoon

Ok, I had a look on my installation and I have seen that I have set on my cantata client the "MPD music folder in the 'Server' settings page". But as soon as my mpd server is not on the same computer as my cantata client, and as the cantata client seems to look for the covers on the local file system, it does not find them.

It is not a cantata issue, but as I do not mount the mpd server file system on my client computer, how could I set the music folder over the LAN ?

Thank you !

Report

4 years ago

AozRoon

Ok, I had a look on my installation and I have seen that I have set on my cantata client the "MPD music folder in the 'Server' settings page". But as soon as my mpd server is not on the same computer as my cantata client, and as the cantata client seems to look for the covers on the local file system, it does not find them.

It is not a cantata issue, but as I do not mount the mpd server file system on my client computer, how could I set the music folder over the LAN ?

Thank you !

Report

4 years ago

AozRoon

Ok, I had a look on my installation and I have seen that I have set on my cantata client the "MPD music folder in the 'Server' settings page". But as soon as my mpd server is not on the same computer as my cantata client, and as the cantata client seems to look for the covers on the local file system, it does not find them.

It is not a cantata issue, but as I do not mount the mpd server file system on my client computer, how could I set the music folder over the LAN ?

Thank you !

Report

4 years ago

CraigD

If the music is not local, then cantata cannot access the local covers, so it will attempt to download them from last.fm. Cantata will send last.fm a query containing the album artist and title, and use whatever last.fm replies with. The result will be cached to ~/.cache/cantata/covers/<album artist>/<album>.jpg

Report

4 years ago

AozRoon

I think I found a bug.

The server files list & tags are saved by cantata in "~/.cache/cantata/library/serverIP.xml".

But it seems not to be automatically updated whenever a file's tag is updated on the server(and keeping the same file name & location).

By erasing the xml file on my client, the files I had recently retagged (to complete their data) on the server have now their covers !

Report

Supporters

Recent Donations

Be the first to donate
Filename Version Description Filetype Packagetype License Downloads Date Filesize Install
Score 87%
87.00 Likes
13 Dislikes

0 Supporters for Cantata:

Recent Donations:

Be the first to donate
show all
Details
version
2.0.1
updated Jun 03 2016
added Dec 21 2011
downloads
page views 10720
support CraigD
For The Product
Cantata
5 - 10 - 25 - 50 - 100 - 200 - 500