AURA Engine Core is a play-out server for radio stations based on [Liquidsoap](https://www.liquidsoap.info/).
AURA Engine Core is a multi-channel playout server for radio stations based on [Liquidsoap](https://www.liquidsoap.info/).
For full utilization Engine Core might be combined with [Engine](https://gitlab.servus.at/aura/engine) providing a management, monitoring and scheduling layer atop. Engine Core provides following features out of the box:
This documentation is meant for developers. For using the AURA Community Radio Suite check out the [aura.radio](https://docs.aura.radio/)
-**Play audio from various sources** including files, streams and analog live audio
## Prerequisites
-**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](https://en.wikipedia.org/wiki/Dead_air). Play randomized music from a folder or M3U playlist.
-**ReplayGain** normalization done using passed [ReplayGain](https://en.wikipedia.org/wiki/ReplayGain) meta data.
-**Metadata** notifications for posting playlogs to [Engine API](https://gitlab.servus.at/aura/engine-api)
This project is part of [Aura Radio Software Suite](https://gitlab.servus.at/aura/meta), specifically build for the requirements of community radio stations.
<!-- TOC -->
1.[AURA Engine Core](#aura-engine-core)
Before you begin, ensure you have met the following requirements:
- Operating system: Debian 11, Ubuntu 20.04 or newer
-[Liquidsoap 2.1.x](https://www.liquidsoap.info/) installed using [OPAM (OCaml Package Manager)](https://opam.ocaml.org/)
- git
- make
## Prerequisites
## Installation
To install the AURA Suite for testing or production we recommend using the [Docker Compose](https://docs.aura.radio/en/latest/administration/install-docker-compose.html) installation instead. The following steps are aiming for developers.
Install system dependencies:
You'll need to have following installed before proceeding:
-[Liquidsoap 2.1.x](https://www.liquidsoap.info/) installed using [OPAM (OCaml Package Manager)](https://opam.ocaml.org/) and these additional dependencies:
Perform following commands inside the `engine-core` directory:
After cloning the project perform following commands inside the project directory:
1. Create an initial configuration file based on an sample config: `cp config/sample.engine-core.ini config/engine-core.ini`
1. Create an initial configuration file based on an sample config: `cp config/sample.engine-core.ini config/engine-core.ini`
2. Create the folder structure `./audio/fallback/` in the project root and populate `fallback` 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.
2. Create the folder structure `./audio/fallback/` in the project root and populate `fallback` 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.
3. Execute `./run.sh` to get the _Engine Core_ server running. Voilá, you should hear some music!
3. Execute `make run` 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.
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.
...
@@ -67,7 +53,7 @@ The aforementioned `audio` folder is the base for retrieving audio files. Engine
...
@@ -67,7 +53,7 @@ The aforementioned `audio` folder is the base for retrieving audio files. Engine
he playlist is being watched for changes. Set `fallback_type="playlist"` to enable this instead of the fallback folder.
he playlist is being watched for changes. Set `fallback_type="playlist"` to enable this instead of the fallback folder.
-**`audio/source/`**: This is the location for audio files provided by [Tank](https://gitlab.servus.at/aura/tank). Usually any audio files which are part of the scheduled programme are read from here to perform broadcasts. 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](https://docs.aura.radio/en/latest/administration/deployment-scenarios.html) 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](https://docs.aura.radio/en/latest/administration/setup-audio-store.html)".
-**`audio/source/`**: This is the location for audio files provided by [Tank](https://gitlab.servus.at/aura/tank). Usually any audio files which are part of the scheduled programme are read from here to perform broadcasts. 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](https://docs.aura.radio/en/latest/administration/deployment-scenarios.html) 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](https://docs.aura.radio/en/latest/administration/setup-audio-store.html)".
## Advanced Configuration
## Configuration
By default only audio output is enabled using the systems default device. If you want to use another audio interface or enable live audio, check the [Audio Device Configuration](docs/audio-device-configuration.md) document.
By default only audio output is enabled using the systems default device. If you want to use another audio interface or enable live audio, check the [Audio Device Configuration](docs/audio-device-configuration.md) document.
...
@@ -93,22 +79,6 @@ graph TD
...
@@ -93,22 +79,6 @@ graph TD
output --> |output.icecast| D[fa:fa-play Icecast]
output --> |output.icecast| D[fa:fa-play Icecast]
```
```
## Testing
A basic _Test Suite_ can be executed with
```bash
./tests/$ liquidsoap engine_test_suite.liq
```
## Logging
The Engine Core logs can be found under `./logs`.
## Other AURA Components
After successfully running Engine Core you might look into getting started with [the other Engine Components](https://gitlab.servus.at/aura/engine) and [AURA Web](https://docs.aura.radio/en/latest/administration/overview.html).