pianod2 is a free, multi-source, network-controlled
music player daemon for use as central music server or scriptable
backend. It is published under the MIT license.
- Multiple sources. Add your personal music collection and multiple Pandora accounts. When listening, choose a single source or use the media manager to mix all the sources.
- Remote-control. Start, stop, choose or rate music from your web browser or phone.
- Shuffle mode. Requests get priority, but when the queue is empty pianod can pick by songs, playlist, album or artist.
- Multi-user. Share control with your family, roommates or visitors—but pianod tracks ownership, allowing only the right person to revise each collection.
- Automatic playlist selection. Each person
rates playlists, and
pianodadjusts the mix based on who is listening.
- Scriptable. Use the included
pianoscript to control playback,
runmixto set up a sequence of timed playlists, or write your own and interface via the socket interface.
- Multi-protocol. Websockets or plain-old TCP, JSON or command-line/SMTP-like, plain-text or TLS secured.
- Flexible. Build with your choice of 3 media libraries, 3¾ output libraries, 5 TLS packages and 3 sources.
- Media substitutions. Save bandwidth by replacing streaming media with matching local media.
- Stable (r343): Download latest • View all
- Development versions: View all • Download latest (371) • Recent changes (SVN logs)
2020–12–05 r343 has been promoted to stable release. Changes since 301 include replacing XML storage with JSON, replacing the Pandora backend (replays are now supported), client bug fixes, and fewer dependencies for compilation, and some bugfixes.
r371 adds album names to the JSON protocol (whoops!), upgrades the client to ECMAScript 6 (from 5), and the viewer rewritten using JSON. Older browsers that don’t support EC6 can use the edition hosted here, or install the last EC5 client in a subdirectory of pianod/html.
r369 features the new command line parser, bidirectional JSON
support (use the
SCHEMA command for request protocol),
fixes to Football (buffer overflows, websocket disconnects, crashes
after rejected connections), fixes for the trackview seed toggles,
and a fix for ffmpeg’s avdevice output.
LinuxMint/Unbuntu/PulseAudio: Following a
LinuxMint update to Pulse Audio in late 2020/early 2021,
pianod deadlocks with libao output when crossfading,
locked on a mutex down in a PulseAudio library. Disabling
crossfading avoids this, or try avdevice. I expect Ubuntu, maybe
Debian and other related distros are affected too.
Three clients are included with
- Standard client. Made for using pianod.
- Console. Made for testing, debugging and nerds, the console provides command line access. Commands entered in one of the inputs (or selected from a list) execute, displaying results in a table.
- Viewer. The console displays album art and information in large, friendly letters. Suitable when you just want people to know what’s playing.
There’s also an “aftermarket”
Android client available. I think it’s for the original
pianod, but it sort of works on v2.
- Translators: Included are English, German, French and Spanish. Translations were done with software; there may be errors or awkward phrasing. If you want to translate for another language, or want to improve existing translations, take a look at the .lang files in the Development downloads and mail new or updated files to peretteのdeviousfish dot com. SVN access may also be arranged by request.
Similar & Related Projects
- proximmon provides presence monitoring. Configure it to tell pianod who is coming and going, and automatic playlist selection can adjust the mix automagically.
- pianod, the original version.
- Pandora’s official clients are available from Pandora.
- pianobar is a terminal-mode Pandora client (and the origin of libpiano—thanks PromyLop). It is interactive, with keystroke commands instead of full statements, but has event support which runs a shell script or whatnot to do scrobbling or other things.
- Tomahawk is another multi-source, social music player but as an application rather than a daemon.
- Elpis is a Windows Pandora client
- Pithos is a Linux Pandora client
- mserv is a similar-style jukebox for local media (and I’ve stolen back my enhanced search algorithm that those guysnever integrated into their code base.)
- mpd, the music player daemon
Thanks to all those, too numerous to list, who created and maintain the included and non-included packages. Thanks also to those responsible for the tools and artwork on which pianod depends: Dimitri van Heesch for Doxygen, Microsoft for TypeScript, everyone behind C++ and the STL, Liz Aragon for the piano and football/soccer ball, Fletcher Penny for multimarkdown, CodeLite for making a decent Linux IDE, Subversion for providing good source control, and Linux Mint for making a pleasurable distro to an escaped Mac user.