
Cantata
Source (link to git-repo or to original if based on someone elses unmodified work): https://github.com/CDrummond/cantata/
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, dyamic, and smart
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
******************
******************
################################################################
################################################################
Releases may be downloaded from: https://github.com/CDrummond/cantata/releases
################################################################
################################################################
2.3.0 2 years ago
Changelog is available at https://raw.githubusercontent.com/CDrummond/cantata/master/ChangeLog
2.3.0 2 years ago
Changelog is available at https://raw.githubusercontent.com/CDrummond/cantata/master/ChangeLog
AozRoon
8 years ago
After that, you could generate .qm files (by compiling the .ts files ) containing the binary language files.
http://qt-project.org/doc/qt-4.8/linguist-manual.html
Report
CraigD
8 years ago
Report
AozRoon
8 years ago
Report
yuri-karadzhov
8 years ago
Report
thenktor
8 years ago
01 - track 1 of cd1
01 - track 1 of cd2
02 - track 2 of cd1
02 - track 2 of cd2
...
Report
CraigD
8 years ago
Report
thenktor
8 years ago
Report
trap000d
8 years ago
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
CraigD
8 years ago
Martin is correct though, its easier to track things if you create a bug/wishlist item on the googlecode page.
Report
xdarklight
8 years ago
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
yuri-karadzhov
8 years ago
Kubuntu 12.04 KDE 4.8.3 (mpd is running on 6600)
Report
CraigD
8 years ago
Report
yuri-karadzhov
8 years ago
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
CraigD
8 years ago
Report
yuri-karadzhov
8 years ago
-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
bosi1024
8 years ago
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
CraigD
8 years ago
Report
AozRoon
8 years ago
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
CraigD
8 years ago
If you have any existing covers within you music folders, cantata should pick these up first before downloading.
Report
AozRoon
8 years ago
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
CraigD
8 years ago
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
AozRoon
8 years ago
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
CraigD
8 years ago
Report
CraigD
8 years ago
In order for the MPD database to be updated, you need to use an MPD client (Cantata, gmpc, mpc, etc.) to instruct MPD to update. (You can do this in catata by presseing the 'Refresh Database' button in the library page).
Report
AozRoon
8 years ago
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