Patchfire is a web server for audio, with a standard REST API. Anything that can do web requests can now play, stream, or record audio.

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.

How can I use it?

Patchfire is under development, but we are testing it with a few stations.

Let me know if you want to try it out.