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 and outputs 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 NGINX server blocks.
  • Add, edit, or delete sources and outputs 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?