Devious Fish
Home of pianod2 & pianod

pianod2 is an open-source, multi-user, network-controlled, scriptable music player that plays music from multiple sources.

Orchid is pianod2 precompiled and packaged for the Mac, with some built-in UI components. It (theoretically) runs on OS X 10.7+.

pianod is the original version, a lighter-weight, Pandora-only version.

Which should I use?

Orchid or pianod2. They are more flexible and the client is better and easier to use.

Unless you're running on compute-, memory-, or compiler-challenged device (your gateway router or NAS appliance, a Raspberry Pi, etc), and you can make due with just Pandora, in which case the original may meet your needs.

  pianod pianod2 Orchid
Status Stable (downloads)
Maintenance only
Stable (downloads)
& ongoing development
Beta (downloads)
Early development!
Project page DeviousFish.com/pianod DeviousFish.com/pianod2 DeviousFish.com/orchid
Sources Pandora (One at a time) Pandora, filesystem, tone generator
(Aggregating capable)
Same
Automatic tuning Based on login or user attribute Based on login or user attribute Same
Outputs One Multiple rooms One
Crossfades No With libao or AVFoundation, but not libsdl Yes
Shuffle mode Song Song, playlist, album, artist or random Same
Media substitutions No Yes Yes
Client On web Included or web Included or web
Client languages English English, French, German and Spanish Same
User guide No Yes Not yet
Dependencies libao
gcrypt
gnutls or PolarSSL/mbed TLS 1.3
json-c
libfaad and/or libmad
Depends on configuration, but typically:
libao, libsdl, or a suitable libavdevice output
gcrypt
an SSL/TLS package (several choices)
json-c & libcurl (for Pandora)
ffmpeg or libav or OS X 10.7+
taglib (recommended)
zlib, gzstream (optional)
OS X 10.7+ (?)
Programming Langage C 99 C++11 Packaged
Memory usage* Fairly light Moderate to heavy Typical
Page color Blue Pink Gray/tan
Protocol Stable In flux Same

*Memory usage

pianod2 memory usage depends on sources loaded. On my Mac, it starts at about 10MB, growing to 25MB after indexing 13,000 songs from a filesystem, reaching ~60MB after several days of mixing with ~20-25 Pandora stations, at which point it levels out.

Other Projects

wsgw (deprecated) is a Websocket gateway that enables HTML5 websites to connect to non-Websocket services.