Skip to content

Latest commit

 

History

443 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AudioMIX

AI-assisted music production and live performance — one platform for the studio and the stage.

License Stack Platform Status AI DSP Built For

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.


Table of contents


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

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:

./build/test_sine_dsp

Run the AudioScript shell

python audioscript_runtime.py

Run a script file:

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)

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):

AudioScript shell  →  command modules  →  EventBus  →  DSPBridge (NDJSON)  →  C++ audiomix
                              ↓
                        audio/ai, LED, providers

AudioMIX system map

Full directory snapshot: docs/AudioMIX_project_tree.txt


Project layout

Path Purpose
audio/dsp/ C++ real-time DSP modules and tests
audio/ai/ ML inference, feature extraction, datasets, planners
audio/eq/ EQ engine, presets, live streaming
audio/led/ LED controller, color profiles, reactive logic
audio/led-service/ FastAPI microservice for mood/BPM JSON input
performance_engine/ Live runtime: modules, event bus, DSP bridge, session state
audioscript/ Language spec, EBNF grammars, compiler, example scripts
audio_providers/ Spotify and Bandcamp adapters
runtime/ Refactored shell components (see audioscript_runtime.py for the current entry point)
audioscript_runtime.py Primary interactive AudioScript shell

Datasets and training metadata live under 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/)
IR Machine-generated, precise pipelines; compiler output (audioscript/ir/)

Example

mood.set("uplifted")
glow("lilac")
play("intro.wav")
pulse("yellow", bpm=120)

Learn more


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 is in active development.


External services

Spotify

  • Uses the official Spotify Web API with OAuth — no scraping
  • Feature extraction via permitted endpoints per Spotify Developer 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 (this repo)
Desktop UI audiomix-electron
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):

  • 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 for recent architectural decisions
  2. Follow the Ethical AI manifesto
  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 for principles and creative mission.


License

GNU General Public License v3 — free for independent artists and developers.


© 2026 Alexis M. Vasquez · AMV Digital Studios

About

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.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages