AURA Engine Core

AURA Engine Core is a play-out server for radio stations based on Liquidsoap.
For full utilization Engine Core might be combined with Engine providing a managment, monitoring and scheduling layer atop. Engine Core provides following features out of the box:
- Play audio from various sources including files, streams and analog live audio
- Analog audio or digital stream output which is able to connect to an Icecast Server. It allows to stream to multiple Icecast Servers simultaniousely including sending of meta information using the Icy protocol.
- Auto DJ triggered by a silence detector to avoid Dead Air. Play randomized music form a folder or M3U playlist.
- ReplayGain normalization done using passed ReplayGain meta data.
- Track Service notifications when used in conjunction with Engine API
This project is part of Aura Radio Software Suite, specifically build for the requirements of community radios.
Prerequisites
To install the AURA Suite we recommend using Docker and Docker Compose.
In certain scenarios like for development you might want to do a bare metal installation though. In that case you'll need to have following installed:
- git
- OPAM (OCaml Package Manager)
- Liquidsoap 1.4.3 installed using OPAM
Quickstart
- Create the folder structure
./audio/station/
in the project root and populatestation
with some music files. This folder is picked up as a so-called Station Fallback in case no other music is scheduled or if silence is detected. - Execute
./run.sh
to get the Engine Core server running. - Voilá, you should hear some music!
If the audio device desired for playback is set as default
, the Engine now should be ready to play sound. If you are not hearing any sound set a working output device for output_device_0
in engine-core.ini
and carefully review the logs.
You can check the systems default audio hardware by executing aplay -L
on the command line. If that's not the case you can set the default device in /etc/asound.conf
. The most glitch-free experience you'll get when the PulseAudio Sound Server is set as you default ALSA device. For production you might want to check for any latency issues though.
After this is working you might be ready for a more sophisticated setup of the engine environment.
Audio Store
The aformentioned audio
folder is the base for retrieving audio files. Engine Core is referencing three folders from this so-called Audio Store:
-
audio/station/
: A local folder for any emergency playback, also called Station Fallback. All audio files inside are played in a randomized order, if no actually scheduled music is played by the engine. The folder is being watched for changes. So you can add/remove audio on the fly. -
audio/playlist/
: Put a filestation-fallback-playlist.m3u
in here and it has the same effect as the fallback folder. If nothing else is scheduled, the M3U Playlist is played with higher priority than the folder. The playlist is being watched for changes. -
audio/source/
: This is the location for audio files provided by Tank. Usually any audio files which are part of the scheduled programme are read for their broadcast from here. If you are running all AURA components on a single machine you should be fine with just creating a symbolic link to the relevant Tank folder (ln -s ../engine/audio ./audio
). But in some distributed and redundant production scenario you might think about more advanced options on how to sync your audio files between machines. You can find some ideas in the doc " Setting up the Audio Store".
Advanced Configuration
Review the settings in your engine-core.ini
to fine-tune the heart of your engine. If you are experiencing issues also check out the Frequently Asked Questions (FAQ).
Other AURA Components
After successfully running Engine Core you might look into getting started with the other Engine Components and AURA Web.
Read more
About
AURA stands for Automated Radio and is a swiss army knife for community radio stations. Beside the Engine it provides Steering (Admin Interface for the radio station), Dashboard (Collaborative scheduling and programme coordination), Tank (Audio uploading, pre-processing and delivery). Read more in the Aura Meta repository or on the specific project pages.
![]() |
![]() |
![]() |
![]() |
---|---|---|---|
Steering | Dashboard | Tank |
Engine Engine Core Engine API Engine Clock |