Fork of the Magenta RealTime 2 AUv3 plugin, extracted to this repo root with upstream kept as a git submodule.
mrt2-au3/
├── magenta-realtime/ # upstream submodule (core + shared examples/common)
├── MagentaRT_AudioUnit.* # AUv3 plugin sources (fork-owned)
├── MagentaRT_AUHostApp.mm
├── react_ui/ # React UI (fork-owned)
├── assets/
└── CMakeLists.txt
Shared model-loading code lives in magenta-realtime/examples/common/. Inference engine: magenta-realtime/core/ (magentart::core).
Models and resources: ~/Documents/Magenta/magenta-rt-v2/ (see upstream installation docs).
- macOS 14+ on Apple Silicon
- Full Xcode (Metal compiler required; Command Line Tools alone are not enough)
- Node.js (
brew install node) - Python 3.12 + uv (for pinned CMake during dev)
git clone --recurse-submodules https://github.com/audiohacking/mrt2-au3.git
cd mrt2-au3Pre-built macOS arm64 builds are attached to GitHub Releases:
| Asset | Use |
|---|---|
MRT2-AU3-<version>-macOS-Installer.pkg |
Double-click (or sudo installer -pkg … -target /) — installs to /Applications and registers the AU |
MRT2-AU3-<version>-macOS.dmg |
Drag MRT2 (AU).app to Applications |
Models are not included — download separately to ~/Documents/Magenta/magenta-rt-v2/ (see upstream installation docs).
Release builds are ad-hoc signed. After download, clear quarantine and re-sign locally if Gatekeeper blocks launch:
xattr -cr "/Applications/MRT2 (AU).app"
codesign --force --sign - "$(find "/Applications/MRT2 (AU).app" -name mlx.metallib)"
codesign --force --sign - "/Applications/MRT2 (AU).app"
open "/Applications/MRT2 (AU).app"To cut a release: create a new GitHub release (tag + publish). The Release workflow builds on macos-14 and uploads the .pkg and .dmg. Use Actions → Release → Run workflow to test without publishing.
Build installers locally after package_mrt2_au:
./scripts/build-installer-pkg.sh --version 0.1.0 --sign-appThe React UI is a standalone Vite app. You can iterate on layout and colors in the browser without building the AU or MLX backend.
# From repo root (installs workspace deps on first run)
npm install
cd react_ui
npm run devOpen http://localhost:62420 in a browser. Edits hot-reload instantly.
To preview inside the plugin UI with the same HMR server:
- Leave
npm run devrunning inreact_ui/ - Open the plugin in Logic (or
open ~/Applications/MRT2\ \(AU\).app) — the AU detects port62420and loads the dev server instead of the bundledindex.html
Fork accent colors live in react_ui/src/forkTheme.ts and react_ui/src/index.css (--fork-accent). Production builds still use npm run build inside react_ui/ (or the full CMake deploy_mrt2_au target, which runs the UI build for you).
Requires full Xcode (Metal compiler). Command Line Tools alone are not enough.
uv venv --python 3.12 && source .venv/bin/activate
uv pip install "cmake<3.28"
cmake . -B build
cmake --build build --target deploy_mrt2_au -j10Deploys to ~/Applications/MRT2 (AU).app. Open once to register the AU extension. See INSTALL.md for DAW setup (48 kHz required).
Package only (for CI or manual distribution):
cmake --build build --target package_mrt2_au -j10
./scripts/build-installer-pkg.sh --version 0.1.0 --sign-app
# -> release-artifacts/MRT2-AU3-0.1.0-macOS-Installer.pkg
# -> release-artifacts/MRT2-AU3-0.1.0-macOS.dmgOptional debug overlay + disk log:
cmake . -B build -DMAGENTART_DEBUG_LOG=ON
cmake --build build --target deploy_mrt2_au -j10When enabled, logs appear in the plugin UI and in mrt_debug.log under your models folder.
cd magenta-realtime
git fetch origin && git checkout main && git pull
cd ..
git add magenta-realtime && git commit -m "Bump magenta-realtime submodule"See PLUGIN.md for state/bank panel semantics and React ↔ native bridge details.