Multi-Agent Digital Audio
MAGDA is a free, open-source DAW with AI integrated from the ground up. Built on C++23, JUCE, and MAGDA’s native audio engine.
- English | 简体中文
- Hybrid tracks: every track hosts both audio and MIDI clips
- Three views: Arrangement, Session, and Mix
- AI chat: natural language commands that generate and execute a custom DSL directly in the app (BYOAK, Bring Your Own API Keys)
- Modulation system: 16 LFOs (with bezier curve editor) and 16 macro knobs per device and rack
- Racks: parallel processing chains with volume, pan, mute, solo per chain, fully nestable
- Piano roll with pitchbend and MIDI CC lanes
- Drum grid device
- Session view with clip launching
- Mixer with faders, pan, mute, solo, sends, and I/O routing
- Collapsible, resizable panels: Inspector + AI Chat (left), Plugin Browser + Sample Browser (right), context-sensitive editor (bottom)
- Website: magda.land
- YouTube: Introduction Video
- KVR: Product Page
- Issues: Bug Reports & Feature Requests
See Issues for known bugs and planned features.
-
C++23 compiler and standard library: GCC 13+, Clang 16+ with libc++, AppleClang 16+, or MSVC 19.36+ (VS 2022 17.6). The floor is the library, not the language:
std::views::zip,std::views::chunk_by,std::ranges::fold_leftandstd::ranges::containsare in use, and libstdc++ only gained them in GCC 13.1, so a GCC 12 build fails even though CMake will select C++23 for it.std::ranges::tois not used: libstdc++ only has it from GCC 14, so collecting goes throughtoStd<C>()/toJuce<C>()inmagda/daw/core/RangesHelpers.hpp. (CI builds with GCC 13.3, AppleClang 16.0 and MSVC 19.50.) -
CMake 3.24+
-
Git LFS — required to fetch bundled binary assets (CJK font, etc.). Install with
brew install git-lfs(macOS),apt install git-lfs(Debian/Ubuntu), orchoco install git-lfs(Windows), then rungit lfs installonce per machine. -
Windows only: vcpkg supplies libxml2 (there is no system copy on Windows). Clone and bootstrap it once, then set a
VCPKG_ROOTenvironment variable pointing at the checkout — the build auto-detects it and installs libxml2 from thevcpkg.jsonmanifest on first configure. On macOS/Linux libxml2 comes from the system, so no vcpkg is needed.git clone https://github.com/microsoft/vcpkg C:\vcpkg C:\vcpkg\bootstrap-vcpkg.bat setx VCPKG_ROOT C:\vcpkg # reopen the shell so it takes effect
# Clone, then make setup initialises the submodules
git clone https://github.com/Conceptual-Machines/magda-core.git
cd magda-core
git lfs pull # safety net if git-lfs wasn't installed at clone time
# Setup and build
make setup
make debug
# Run
make runmake setup # Initialize submodules and dependencies
make debug # Debug build
make release # Release build
make test # Run tests
make clean # Clean build artifacts
make format # Format code
make lint # Run clang-tidy analysisTo build without embedded local inference, and so without the third_party/llama.cpp
submodule, pass CMAKE_EXTRA_ARGS="-DMAGDA_LOCAL_LLM=OFF" on the first configure. The
Local (Embedded) provider then reports that the build has no local inference.
The project includes automated GitHub Actions workflows:
- CI Workflow: Runs on every push to validate builds and code quality
- Security Scanning: CodeQL analysis, secret detection, and vulnerability scanning
- Periodic Code Analysis: Weekly scans for TODOs, FIXMEs, and code smells
- Refactoring Scanner: Bi-weekly analysis of code complexity and technical debt
See docs/ci/automated-workflows.md for details on automated analysis and periodic workflows.
MAGDA takes security seriously. The repository implements comprehensive security measures:
- 🔒 Branch Protection: Main branch protected with required reviews and status checks
- 🔍 Automated Scanning: CodeQL security analysis for C++ vulnerabilities
- 🔐 Secret Detection: Automated scanning to prevent credential leaks
- 🛡️ Dependency Monitoring: Dependabot for security updates
- ⚡ CI/CD Security: All security checks must pass before merge
Found a security issue? Please review our Security Policy for responsible disclosure.
For detailed information about branch protection and security architecture, see docs/ci/branch-protection.md.
magda/
├── daw/ # DAW application (C++/JUCE)
│ ├── audio/ # Audio processing
│ ├── core/ # Track, clip, selection management
│ ├── engine/ # Native engine host
│ ├── interfaces/ # Abstract interfaces
│ ├── profiling/ # Performance profiling
│ ├── project/ # Project management and serialization
│ ├── ui/ # User interface components
│ └── utils/ # Utility helpers
└── agents/ # Agent system (C++)
tests/ # Test suite
scripts/ # Development and build scripts
docs/ # Documentation
- JUCE - C++ application framework (GUI, audio I/O, plugin hosting, MIDI, DSP)
- juce-llm - LLM API client module
- llama.cpp - Embedded local LLM inference
- Catch2 - Testing (fetched via CMake)
Heads up: MAGDA is under very active development, which started in January 2026 with internal iteration before a public release. Expect bugs and missing pieces. The best way to help the project is to file an issue.
Found a bug or have a feature request? Please open an issue on GitHub.
GPL v3 - see LICENSE for details.
