The AudioServer is a REST API for audio.
It allows you to control basic audio functions (play, record, and stream) from anything that can do web requests – like Python, PHP, or cURL.
The Basics
Here are the highlights:
- Cross-platform: Same API for Mac, Windows, and Linux.
- Simple installation: Minimally, you can run it with just the AudioServer executable and two JSON config files.
- Everything is in JSON – both the API and configuration files.
- Simple
sourcesandoutputsstructure. - Supports complex routing scenarios. Route multiple sources to multiple outputs:
{ output: { sources: ["microphone-1", "file-1"] } - Multiple independent
instancesunder the same server. Similar to NGINXserverblocks. - Add, edit, or delete
sourcesandoutputsduring runtime. - Events: Schedule events to happen at specific times or recurring intervals.
- Built-in compressor and limiter.
- Built-in
peaksvalues for all outputs. Display realtime VU meters! - Written in C++ with the JUCE framework.
- Runs on VPS environments, like Ubuntu Server 18.04.
Examples: Play a file
# PATCH: /instances/station-1/sources/file-1
{
"filePath": "/path/to/audio.mp3",
"playing": true
}Sources and Outputs
Sources
- Capture audio from a device.
- Play from audio file.
- Listen to a remote Icecast stream URL.
Outputs
- Play on speakers.
- Record to audio file.
- Stream to Icecast.
Who developed it?
- Jim Credland and Dom Smart of Devious Machines are the talented duo who wrote all of the C++ and in general actually built the thing.
- Travis Bernard (that's me) organized the project and wrote the API plan.