# Aura Engine

<img src="https://gitlab.servus.at/autoradio/meta/-/raw/master/images/aura-engine.png" width="250" align="right" />

Aura Engine is a scheduling and play-out engine as part of [Aura Radio Software Suite](#About), specifically build for
the requirements of community radios.

<!-- TOC -->

- [Aura Engine](#aura-engine)
    - [Features](#features)
    - [Architecture](#architecture)
    - [Installation](#installation)
    - [Read more](#read-more)
    - [About](#about)
    - [Resources](#resources)

<!-- /TOC -->

## Features

- **Scheduler** to automatically broadcast your radio programme (see [AURA Dashboard](https://gitlab.servus.at/aura/dashboard) for an schedule user interface)
- **Play audio from multiple sources** including files, streams and analog live audio
- **Dynamic switching of sources** organized as playlists
- **Stream output** to an Icecast Server
- **Multichannel Line-out**
- **Silence Detector** to avoid *Dead Air*
- **Auto DJ** which plays random music when silence is detected
- **ReplayGain** normalization done using passed [ReplayGain](https://en.wikipedia.org/wiki/ReplayGain) meta data
- **API** to query Track-Service, monthly reports and information for displaying the Studio Clock (see [Engine API](https://gitlab.servus.at/aura/engine-api))
- **Web Application for a Track Service** (see [AURA Player](https://gitlab.servus.at/aura/player))
- **Web Application providing a Studio Clock** (see [Engine Clock](https://gitlab.servus.at/aura/engine-clock))
- **Bulk and Timeslot Recorder** (This will be provided after v1.1 by a planned `engine-recorder` component)

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.

## Installation

- [Installation for Development](docs/installation-development.md)
- [Installation for Production](docs/installation-production.md)
- [Running with Docker](docs/running-docker.md)
- [Setup the Audio Store](docs/setup-audio-store.md)

## Read more

- [Developer Guide](docs/developer-guide.md)
- [Engine Features](docs/engine-features.md)
- [Frequently Asked Questions (FAQ)](docs/frequently-asked-questions.md)


## About

Aura Engine is a scheduling and play-out engine as part of [Aura Radio Software Suite](#About), specifically build for
the requirements of community radios.

[<img src="https://gitlab.servus.at/autoradio/meta/-/raw/master/images/aura-logo.png" width="150" />](https://gitlab.servus.at/aura/meta)

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](https://gitlab.servus.at/aura/meta) repository or on the specific project pages.

| [<img src="https://gitlab.servus.at/aura/meta/-/raw/master/images/aura-steering.png" width="150" align="left" />](https://gitlab.servus.at/aura/steering)  |  [<img src="https://gitlab.servus.at/aura/meta/-/raw/master/images/aura-dashboard.png" width="150" align="left" />](https://gitlab.servus.at/aura/dashboard)  |  [<img src="https://gitlab.servus.at/aura/meta/-/raw/master/images/aura-tank.png" width="150" align="left" />](https://gitlab.servus.at/aura/tank) | [<img src="https://gitlab.servus.at/aura/meta/-/raw/master/images/aura-engine.png" width="150" align="left" />](https://gitlab.servus.at/aura/engine)  |
|---|---|---|---|
| [Steering](https://gitlab.servus.at/aura/steering)  | [Dashboard](https://gitlab.servus.at/aura/dashboard)  | [Tank](https://gitlab.servus.at/aura/tank)  | [Engine](https://gitlab.servus.at/aura/engine)<br/>[Engine API](https://gitlab.servus.at/aura/engine-api)<br/>[Engine Clock](https://gitlab.servus.at/aura/engine-clock)  |

## Resources

* **Python**: https://docs.python.org/
* **OPAM (OCaml Package Manager)**: https://opam.ocaml.org/
* **Liquidsoap**: https://www.liquidsoap.info/doc-1.4.0/
* **Jack Audio**: https://jackaudio.org/
* **Flask**: https://palletsprojects.com/p/flask/
* **Systemd**: https://systemd.io/
* **Supervisor**: http://supervisord.org/
* **Gunicorn**: https://gunicorn.org/