# MissingTextures Software - ASMARA
### Automated System for Monitoring And Relaying Alerts
The comprehensive software EAS solution.
## Features
> - [x] EAS Generation and Translation using stable and tested systems
> - [x] Live and buffered audio flow systems
> - [x] Audio file and log generation systems
> - [x] Easy to use
> - [x] Built-In Discord and Email logging
> - [x] Comprehensive audio quality
> - [x] AutoDJ for Playout, with a Tone Only mode.
> - [x] InfiniteMonitor System for unlimited monitoring
> - [x] Back-to-back Alert Detection on all monitors
> - [x] MultiATTN Attention Detection on all Monitors
> - [x] ENDEC Header Style Emulation
> - [x] The Fastest and most reliable system on the market for over 6 monitors
> - [x] Built-in Icecast Playout with Metadata
> - [x] Direct stream monitoring
> - [x] SDR monitoring
## Installation
This system currently only runs on MacOS and Linux.
If you are running the Compiled ASMARA Binary, skip to step 2.
### Step 1
Install Python dependencies
```
sudo apt update
sudo apt install python3 python3-pip python3-pyaudio
pip3 install -r requirements.txt
```
### Step 2
Install other dependencies.
#### FFmpeg:
```
sudo apt update
sudo apt install ffmpeg
```
#### Samedec:
```
sudo apt update
sudo apt install curl git
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
git clone https://github.com/cbs228/sameold.git
cd sameold
cargo install --path crates/samedec
```
> NOTE: Add RUST to path with `source $HOME/.cargo/env` after CURL, otherwise restart your terminal or log out/in before installing sameold, otherwise cargo will not work.
### Step 3
Test ASMARA's config generation by running
`python3 asmara.py -d` if using Python, or
`./asmara -d` if using compiled binaries.
> Configs will by default be stored in `.config` if not specified.
> To specify a config, add it after the ASMARA executable, and all flags.
> E.G. `./asmara -d CONFIGFILE.CFG` for a file named `CONFIGFILE.CFG`
## Configuration
DO LATER
## Usage
To run ASMARA, use the executable or the raw Python script.
For the Python executable:
```
python3 asmara.py
```
For the Compiled Binary:
```
./asmara
```
### Verbosity
If you would like more info in the terminal, you can increase the `verbosity` flag.
For a higher verbosity, run `-v`. The more `v`s you add increase the verbosity. (E.G. `-vvvv` is higher than `-vv`)
For debug info, run `-d` for debug.
For the lowest verbosity, run `-q` for quiet mode.
### Extra Flags:
`-A` gives data about ASMARA.
`-V` gives the current version of ASMARA.
`-u` updates the current version of ASMARA if there is a newer version available in the internal updater system. use `-n` to disable the internal updater for this session. (NOT IMPLEMENTED YET.)
`-U` sets your config file to always update if available. `-N` disables this feature, and update notifications. (NOT IMPLEMENTED YET.)
### Config Files:
Adding a file on to the end of the executable after all flags will set that file as a config file.
> Note: Must be a valid ASMARA config file for that version. Using an incompatible file may cause problems, and-or corruption of the said file.
Example:
```
python3 asmara.py -vvvv .config2
```
to use `.config2` as the selected config file. If the file does not exist, it will be created.
> Note: The config file *must* always come after the flags. Adding a flag after the config file may result in unexpected behavior.
## Changelog
DO LATER
###### Copyright © 2024 MissingTextures Software