https://github.com/alexisvassquez/audiomix
AudioMIX is an AI-assisted music production software for independent artists, DJs, and developers with a live performance engine, live coding features with a custom DSL, real-time audio analysis, and LED integration.
https://github.com/alexisvassquez/audiomix
audio audio-analysis audio-processing cmake cpp daw daw-software digital-signal-processing dsl dsp ethical-ai fastapi haskell live-coding live-performance machinelearning music-production-software music-programming-language portaudio python
Last synced: about 12 hours ago
JSON representation
AudioMIX is an AI-assisted music production software for independent artists, DJs, and developers with a live performance engine, live coding features with a custom DSL, real-time audio analysis, and LED integration.
- Host: GitHub
- URL: https://github.com/alexisvassquez/audiomix
- Owner: alexisvassquez
- License: other
- Created: 2024-12-05T01:32:18.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2026-06-26T00:58:27.000Z (12 days ago)
- Last Synced: 2026-06-26T02:19:50.781Z (12 days ago)
- Topics: audio, audio-analysis, audio-processing, cmake, cpp, daw, daw-software, digital-signal-processing, dsl, dsp, ethical-ai, fastapi, haskell, live-coding, live-performance, machinelearning, music-production-software, music-programming-language, portaudio, python
- Language: Python
- Homepage:
- Size: 98.9 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE.txt
Awesome Lists containing this project
README
# AudioMIX
**AI-assisted music production and live performance — one platform for the studio and the stage.**







> Write a script. Make a beat. Light up a room.
**AudioMIX** is an open-source DAW and live-performance engine for independent artists and developer-musicians. It combines a real-time **C++ DSP** stack, an AI creative layer (**Juniper2.0**), and **AudioScript** — a domain-specific language for controlling audio, mood, lighting, and show logic in code.
This repository is the **core engine**. The desktop UI lives in a separate repo: [AudioMIX-Electron](https://github.com/alexisvassquez/audiomix-electron).
---
## Table of contents
- [Why AudioMIX](#why-audiomix)
- [Quick start](#quick-start)
- [Core features](#core-features)
- [Architecture](#architecture)
- [Project layout](#project-layout)
- [AudioScript](#audioscript)
- [Juniper2.0](#juniper20)
- [External services](#external-services)
- [AudioMIX-Electron](#audiomix-electron)
- [Development](#development)
- [Ethical AI](#ethical-ai)
- [License](#license)
---
## Why AudioMIX
Most DAWs are built for the studio. Most live-coding tools are not built for performers. AudioMIX bridges that gap.
| You are… | AudioMIX gives you… |
| ---------- | --------------------- |
| **Producer** | DSP, mood/ML analysis, EQ tooling, and AI-assisted production workflows |
| **Live performer** | AudioScript to script audio, lighting, and transitions in real time |
| **Developer-musician** | Modular Python/C++ extension points, a compiler pipeline, and an event-driven runtime |
---
## Quick start
### Prerequisites
- **Python 3.11** (recommended; see `requirements.txt` — librosa targets ≤ 3.11)
- **CMake 3.10+**
- System audio: PortAudio and/or PulseAudio, ALSA (Linux)
- Build tools: `build-essential`, `ffmpeg`
Optional: run `./install.sh` on Debian/Ubuntu for system packages and a local `amenv` virtualenv.
### Install and build
```bash
git clone https://github.com/alexisvassquez/audiomix.git
cd audiomix
python3 -m venv amenv && source amenv/bin/activate
pip install -r requirements.txt
cmake -S . -B build
cmake --build build -j"$(nproc)"
```
Verify the DSP build:
```bash
./build/test_sine_dsp
```
### Run the AudioScript shell
```bash
python audioscript_runtime.py
```
Run a script file:
```bash
python audioscript_runtime.py path/to/show.audioscript
# or
python audioscript_runtime.py path/to/show.as
```
Useful flags:
| Flag | Effect |
| ------ | -------- |
| `--safe` | Restrict loaded modules; no hardware/audio side effects |
| `--no-dsp` | Skip launching the C++ `audiomix` binary |
| `--debug` | Verbose module loading |
| `--no-emoji` | Plain text output |
Set `AUDIOMIX_SAFE=1` in the environment for the same allowlist as `--safe`.
### Compile audio → AudioScript (IR)
```bash
python audioscript/compiler/run.py --file your_track.wav
python audioscript/compiler/run.py --file your_track.wav --save
```
---
## Core features
- **Real-time DSP** — C++ engine with EQ, compression, gain, and more (`audio/dsp/`)
- **AudioScript** — Live shell + IR compiler for scripted performances (`audioscript/`)
- **AI / ML analysis** — Mood tagging, MFCC/spectral features, tempo and beat tracking (`audio/ai/`)
- **Performance engine** — Modular command registry, session state, event bus, DSP bridge (`performance_engine/`)
- **Streaming integrations** — Official Spotify Web API; Bandcamp embed support (`audio_providers/`)
- **LED & lighting** — Mood/BPM-driven patterns and reactive output (`audio/led/`, `audio/led-service/`)
- **Audience listener** — Crowd-reactive performance hooks (in development)
---
## Architecture
AudioMIX is organized around two creative modes:
| Mode | Context | Role of AudioScript |
|------|---------|---------------------|
| **Studio** | Desk, iteration, AI as collaborator | Author and refine scripts; use the compiler and analysis pipeline |
| **Performance** | Stage, low latency, crowd-reactive | Execute Live scripts; runtime mutates mood, DSP, and lighting via the event bus |
**Runtime data flow (simplified):**
```bash
AudioScript shell → command modules → EventBus → DSPBridge (NDJSON) → C++ audiomix
↓
audio/ai, LED, providers
```

Full directory snapshot: [`docs/AudioMIX_project_tree.txt`](docs/AudioMIX_project_tree.txt)
---
## Project layout
| Path | Purpose |
| ------ | --------- |
| [`audio/dsp/`](audio/dsp/) | C++ real-time DSP modules and tests |
| [`audio/ai/`](audio/ai/) | ML inference, feature extraction, datasets, planners |
| [`audio/eq/`](audio/eq/) | EQ engine, presets, live streaming |
| [`audio/led/`](audio/led/) | LED controller, color profiles, reactive logic |
| [`audio/led-service/`](audio/led-service/) | FastAPI microservice for mood/BPM JSON input |
| [`performance_engine/`](performance_engine/) | Live runtime: modules, event bus, DSP bridge, session state |
| [`audioscript/`](audioscript/) | Language spec, EBNF grammars, compiler, example scripts |
| [`audio_providers/`](audio_providers/) | Spotify and Bandcamp adapters |
| [`runtime/`](runtime/) | Refactored shell components (see `audioscript_runtime.py` for the current entry point) |
| [`audioscript_runtime.py`](audioscript_runtime.py) | **Primary** interactive AudioScript shell |
Datasets and training metadata live under [`audio/ai/datasets/`](audio/ai/datasets/) (not a top-level `datasets/` folder).
---
## AudioScript
**AudioScript (AS)** is AudioMIX’s musical programming language — human-readable, whitespace-sensitive, and built for emotional, mood-aware control of audio and lighting.
### Live vs IR
| Branch | Use case |
|--------|----------|
| **Live** | Written on stage; forgiving, expressive syntax ([`audioscript/live/`](audioscript/live/)) |
| **IR** | Machine-generated, precise pipelines; compiler output ([`audioscript/ir/`](audioscript/ir/)) |
### Example
```python
mood.set("uplifted")
glow("lilac")
play("intro.wav")
pulse("yellow", bpm=120)
```
### Learn more
- [Language specification](audioscript/AUDIOSCRIPT_SPEC.md)
- [AudioScript directory guide](audioscript/README.md)
- Example scripts: [`audioscript/scripts/`](audioscript/scripts/)
---
## Juniper2.0
**Juniper2.0** is the AI layer built for AudioMIX — not a generic chatbot, but a collaborator that understands AudioScript, mood mappings, LED profiles, and your session context.
- **AudioScript** — Generate and debug Live and IR scripts from natural language
- **Production** — EQ suggestions, track flow, and emotional arc analysis
- **Lighting** — Map inferred mood to color and pattern profiles
- **Live performance** — Audience-aware transitions and guidance (roadmap)
**Design principle:** amplify creative intent; every suggestion is traceable and overridable.
> *"Juniper doesn't replace the artist — she collaborates with them."*
Integration into the CLI and [AudioMIX-Electron](https://github.com/alexisvassquez/audiomix-electron) is in active development.
---
## External services
### Spotify
- Uses the **official [Spotify Web API](https://developer.spotify.com/documentation/web-api)** with OAuth — no scraping
- Feature extraction via permitted endpoints per [Spotify Developer Terms](https://developer.spotify.com/terms)
- Credentials via `.env` (see `.gitignore`; never commit secrets)
### Bandcamp
- Embed-based integration for ethical, artist-facing playback links
---
## AudioMIX-Electron
Companion desktop UI for the core engine — Electron shell with DAW-style panels (mixer, EQ, LED zones) and a secure preload bridge to the Python/C++ backend.
| Layer | Repository |
|-------|------------|
| Core engine | [audiomix](https://github.com/alexisvassquez/audiomix) (this repo) |
| Desktop UI | [audiomix-electron](https://github.com/alexisvassquez/audiomix-electron) |
```bash
git clone https://github.com/alexisvassquez/audiomix-electron.git
cd audiomix-electron
npm install
npm run dev
```
Status: **First Breath** milestone (v0.1-dev). FastAPI bridge to the backend is planned.
---
## Development
### Python stack
Key dependencies (full list in [`requirements.txt`](requirements.txt)):
- Audio: `librosa`, `soundfile`, `sounddevice`, `PyAudio`, `mido`, `python-rtmidi`
- ML: `scikit-learn`, `torch`, `transformers`
- Integrations: `spotipy`
- UX: `rich`
### C++ targets
After `cmake --build build`:
| Target | Role |
| -------- | ------ |
| `audiomix` | Main DSP binary (used by `DSPBridge`) |
| `test_sine_dsp` | Sanity check tone generator |
| `test_clipper` | Clipper module test |
### Contributing
1. Read [`CHANGELOG.md`](CHANGELOG.md) for recent architectural decisions
2. Follow the [Ethical AI manifesto](ETHICAL_AI_MANIFESTO.md)
3. Prefer extending `performance_engine/modules/` and emitting events on `performance_engine.event_bus.bus`
---
## Ethical AI
AudioMIX is developed with an artist-first, emotionally-aware, open-source philosophy.
See **[ETHICAL_AI_MANIFESTO.md](ETHICAL_AI_MANIFESTO.md)** for principles and creative mission.
---
## License
[GNU General Public License v3](LICENSE.txt) — free for independent artists and developers.
---
© 2026 Alexis M. Vasquez · [AMV Digital Studios](https://github.com/alexisvassquez)