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
sources
andoutputs
structure. - Supports complex routing scenarios. Route multiple sources to multiple outputs:
{ output: { sources: ["microphone-1", "file-1"] }
- Multiple independent
instances
under the same server. Similar to NGINXserver
blocks. - Add, edit, or delete
sources
andoutputs
during runtime. - Events: Schedule events to happen at specific times or recurring intervals.
- Built-in compressor and limiter.
- Built-in
peaks
values 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.