playd
(player daemon) is a C++ audio player developed by University Radio York. It's designed to be minimal, hackable, and composable into bigger systems (such as our ongoing BAPS3 project to build a new radio playout system).
playd DEVICE-ID [ADDRESS] [PORT]
playd
with no arguments lists the various device IDs available to it.For command usage, see README.commands.md
.
To connect directly to playd
and issue commands to it, you can use [netcat]:
# If you specified [ADDRESS] or [PORT], replace localhost and 1350 respectively. $ nc localhost 1350
On Windows, using PuTTY in raw mode (not Telnet mode) with Implicit CR in every LF switched on in the Terminal options should work.
Do not use a Telnet client (or PuTTY in telnet mode)! playd
will do weird things in the presence of Telnet-isms.
playd
is developed using the following guidelines:
The following dependencies are used for file format support, and you'll need at least one of them:
Certain operating systems may need additional dependencies; see the OS-specific build instructions below.
playd
can be built with cmake: just run cmake .
in the root directory (with whichever additional flags you need: run cmake --help
for additional information), then use your favourite build tool (make
, Visual Studio, etc.) with the generated projects.
Warning: This method of building playd
is liable to be removed in favour of cmake in future.
playd
comes with config.sh
, a Bourne shell script that will generate a GNU-compatible Makefile that can be used both to make and install.
To use the Makefile, you'll need GNU Make and pkg-config
(or equivalent), and pkg-config packages for SDL2, libuv, and any needed decoder libraries. We've tested building playd on Gentoo, FreeBSD 10, and OS X, but other POSIX-style operating systems should work.
Using the Makefile is straightforward:
config.sh
(optionally, read it first to see if any variables need to be overriden for your environment);Makefile
, to make sure it's ok;make
(or whatever GNU Make is called on your OS; in FreeBSD, for example, it'd be gmake
), and, optionally, sudo make install
. The latter will globally install playd and its man page.All dependencies are available in homebrew - it is highly recommended that you use it!
FreeBSD 10 and above come with clang
3.3 as standard, which should be able to compile playd
. gcc
is available through the FreeBSD Ports Collection and package repositories.
You will need gmake
, as Makefile
is incompatible with BSD make. Sorry!
All of playd
's dependencies are available through both the FreeBSD Ports Collection and standard package repository. To install them as packages:
root@freebsd:/ # pkg install gmake libmpg123 libsndfile libflac libuv sdl2 pkgconf
Then, run gmake
(not make
), and, optionally, gmake install
to install playd
(as root):
user@freebsd:~/ % gmake root@freebsd:~/ # gmake install
Warning: This method of building playd
is liable to be removed in favour of cmake in future.
For more information, see README.VisualStudio.md
.
playd can be built with Visual Studio (tested with 2015 Community), but you will need to source and configure the dependencies manually. A Visual Studio project is provided, but will need tweaking for your environment.
We haven't managed ourselves, but assuming you can build all the dependencies, (libsox is the difficult one), it should work fine.
We appreciate any and all pull requests made in accordance with our philosophy.
All original code is licenced under the MIT licence. Some code is taken from the [PortAudio] project (see LICENSE.portaudio), as well as CATCH. The various CMake scripts come with their licence information attached.