Newer
Older
<img src="https://gitlab.servus.at/autoradio/meta/-/raw/master/images/aura-logo.png" width="250" align="right" />
Aura Engine is a play-out engine as part of Automated Radio (Aura) system,
specifically build for the requirements of community radios.
<!-- TOC -->
- [AURA Engine](#aura-engine)
- [Features](#features)
- [Architecture](#architecture)
- [Installation](#installation)
- [Start the Engine](#start-the-engine)
- Play audio from multiple sources
- Dynamic switching of sources
- Record output to filesystem
- Stream output to an Icecast Server
- Multichannel Line-out
- Blank Detenction / Silence Detecter
- Auto Pilot a.k.a. Fallback Handling
Read more on the [Engine Features](docs/engine-features.md) page.
## Architecture
AURA Engine as part of the AURA Radio Suite uses an modulear architecture
based on a REST API. All external information is retrieved using JSON data-structures.
To learn more, checkout the [Engine Developer Guide](docs/developer-guide.md) or visit
the [Aura Meta](https://gitlab.servus.at/autoradio/meta) repository.
**Hardware Requirements:** This depends on how many audio sources and targets you are
going to use, but for the most common scenarios any current hardware should be sufficient.
For the audio devices it is required to use an interface which has supported ALSA drivers.

Gottfried Gaisbauer
committed
**Operating System:** Any linux system with ALSA, PulseAudio or Jack2 support should work.
It is tested and coded on Debian Stretch and Ubuntu 18.0 with Python 3.6+.

Gottfried Gaisbauer
committed
```bash
git clone https://gitlab.servus.at/autoradio/engine

Gottfried Gaisbauer
committed
```

Gottfried Gaisbauer
committed
```bash
sudo apt install \
git \
python3 python3-pip \
redis-server \
liquidsoap liquidsoap-plugin-icecast \
mariadb-server libmariadbclient-dev \
quelcom \

Gottfried Gaisbauer
committed
liquidsoap-plugin-all
```
sudo pip3 install -r requirements.txt
CREATE DATABASE aura_engine CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'aura'@'localhost' IDENTIFIED BY 'secure-password';
GRANT ALL PRIVILEGES ON aura_engine.* TO 'aura'@'localhost';

Gottfried Gaisbauer
committed
```bash
sh init.sh
```

Gottfried Gaisbauer
committed
This creates the folder */var/audio* and copies some default configuration
to */etc/aura/engine.ini*

Gottfried Gaisbauer
committed
After that, you have to edit the settings in */etc/aura/engine.ini*. Ensure to take
your time to carefully review those settings!

Gottfried Gaisbauer
committed
Read more about detailed settings in the [Configuration Guide](docs/configuration-guide.md).

Gottfried Gaisbauer
committed
To start the AuRa Engine execute:
```bash
systemctl start aura-lqs
systemctl start aura-engine
```
and on system boot run following:
```bash
systemctl enable aura-lqs
systemctl enable aura-engine
```
The first service starts the LiquidSoap Engine, while the latter boots the actual AuRa Engine.
journalctl -u aura-lqs
journalctl -u aura-engine
## Resources ##
* **Python**: https://docs.python.org/
* **Redis**: https://redis.io/
* **Liquidsoap**: https://www.liquidsoap.info/doc-1.4.0/
* **Jack Audio**: https://jackaudio.org/