Chorale is a framework for home-network-enabled multimedia
applications. It includes clients and servers for UPnP A/V and other protocols, with the
larger ultimate aim of tying together all a user’s disparate
multimedia gear into a seamless whole.
A fuller list of features can be
At present it runs only on Linux or similar operating
systems; the server side of it has been partially ported to Win32
using Mingw32, but there is no Windows user-interface
|What state is it in?|
Chorale is, overall, in beta as of 0.15, but some features are more
experimental than others.
This functionality is all fairly mature: the CD ripping
with FreeDB.org metadata lookup, the Rio Receiver
server, the UPnP MediaServer server, and the UPnP MediaRenderer
These features are more experimental: the UPnP
MediaServer client, the UPnP MediaRenderer client, the
Receiver-protocol client, and the networked CD ripping.
These are very experimental, and should probably be
regarded as proof-of-concept only: DVB-T (“Freeview”) over
UPnP/Receiver protocols, DVB-T recording, and the Win32 service
Further information is included in the README in the
There are Sourceforge.net
forums for discussion of using, customising, or contributing to
I get Chorale?|
The Chorale source distribution can be obtained from the Sourceforge.net
download page. Chorale is currently available for Windows as a
binary release, and for everything else as source.
If compiling from source, you will need at least Taglib
and Boost installed, and preferably also Qt4, GStreamer, cdparanoia,
libcddb, Lame, Flac, D-Bus, Hal, and libmpg123. If you edit the XML
service descriptions, you will also need xsltproc from libxslt 1.1.20
or later (note that this is newer than the version in Debian 4.0
“Etch”). If you edit any of the graphics, you will also
need Inkscape and Imagemagick.
The installation instructions for
Linux and Windows are available online (and are also included in the
If you have Doxygen and Graphviz installed, you can make
some fairly complete source documentation from the source
distribution. The pre-built Doxygen documentation is not offered for
download, as there’s some 60MB of it, but the main page is reproduced here.
Any problems or bugs should be reported via the Sourceforge.net
tracking system, and not just mentioned in your Facebook status,
nor at beer festivals. ;)
an alternative UPnP MediaServer server; likewise GMediaRender is an alternative
UPnP MediaRenderer server. Chorale works as a client to these servers
(but the servers in Chorale have features that these don’t).
MPD is a bit like
a one-server, one-output, one-control-point version of Chorale, but
over its own custom protocol rather than UPnP; so is Mserv.
|What does it have going for it?|
As a CD ripper, it rips to both FLAC and MP3 simultaneously,
automatically taking advantage of multi-CPU or multi-core systems; you
can rip from multiple CD drives simultaneously, even ones on different
computers (using the networked ripping features).
As a media control point, it lets you cue up
songs from any music server on your network, on any audio output on
your network, creating a seamless multi-room audio system from your
As a digital radio gateway, it lets you listen to
DVB-T radio on your existing media players.
As a media server, it serves FLAC to clients
which understand FLAC (for fidelity), MP3 to clients which don’t
(for compatibility). It can also gateway from one media streaming
protocol to another — for instance, to serve UPnP clients from a
As a modular media-management framework, it
serves as the ideal starting point for developers adding UPnP and
other media-management support to other applications. (Chorale comes
with a complete example playback UI written in Qt4, but it’s
certainly no Sonique and I
expect that you can do better.)
Other major features are listed
|What is the licence?|
The Chorale source code itself is placed in the public domain, and all
copyright is disclaimed. Use it as if it were your own.
This largesse is not, of course, extended to Chorale
binaries which link against other people’s work (and nor
could it be). Depending on how Chorale was configured and exactly
which installed libraries are found, these binaries link in some
circumstances against libraries (Qt before version 4.5.0, libcdio)
which are distributed under the GNU General Public Licence version
3. In these circumstances the Chorale binaries too must be
distributed under the GPLv3, a copy of which can be found in the
file COPYING.GPL in the Chorale source distribution.
Even if no GPL libraries are found or used, Chorale
binaries may well link against other libraries (including, at least,
Taglib) which are distributed under the GNU Library General Public
Licence, found in the file COPYING.LGPL. Such binaries are therefore “works that use the
Library” as per Section 5 of the LGPL, and you must not
redistribute them without complying with the requirements of Section
It is possible to configure Chorale to use no GPL or
LGPL libraries at all (and thus to be redistributable under any open
or closed licence of your choice) — but only at the expense of
markedly reduced functionality. Packagers for normal desktop
distributions are encouraged to enable all GPL/LGPL dependencies.
There is a slightly fuller account in the file COPYING
in the Chorale distribution, whose advice is repeated here that you
should get proper legal advice if unsure.
The Chorale project is grateful for the loan of one of those jolly
nice Roku Soundbridge music
players, which has been very helpful.
Chorale is graciously hosted by Sourceforge.
Tony has been a most effective beta tester, and you can thank him
for the fact that Chorale’s UPnP server now works with the Sony
Playstation 3 as a client.
Any trademarks used on this page or in this software are used for
descriptive purposes only, with no intent of arrogation of rights.