Installation#

Magenta RealTime 2 ships as a single PyPI package, magenta-rt, which gives you both the mrt command-line tool and the magenta_rt Python library. Which backend you install depends on what you want to do:

  • Real-time streaming (DAW plugins, live performance) runs on Apple Silicon via the MLX backend. Install magenta-rt[mlx].

  • Offline / batch generation and research runs anywhere via the JAX backend, which is always included. The base install ships JAX on CPU; on Linux you add a hardware-accelerated JAX wheel (CUDA or TPU).

The base install always includes JAX (CPU). The [mlx] extra adds the Apple Silicon backend on top of it — it does not replace JAX.

For which Macs can stream each model size in real-time, see the hardware requirements table.

1. Create a virtual environment#

We use uv to manage the Python environment.

# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh

# Create and activate a Python 3.12 virtual environment
uv venv --python 3.12
source .venv/bin/activate

2. Install magenta-rt#

uv pip install "magenta-rt[mlx]"

Pick the JAX wheel that matches your hardware (e.g. jax[cuda13] or jax[tpu]) and install it alongside magenta-rt:

uv pip install "magenta-rt" "jax[cuda13]"

3. Download models#

# Download shared resources (MusicCoCa style model + SpectroStream codec)
mrt models init

# Download a streaming model — run with no argument to pick interactively
mrt models download

Assets are saved under ~/Documents/Magenta/magenta-rt-v2/. See Models & checkpoints for the full directory layout, the available language-model checkpoints, and how to fetch raw safetensors for research.

4. Generate music#

Confirm everything works by generating a short clip. Use mrt mlx on Apple Silicon and mrt jax elsewhere:

# Use --model=mrt2_small for the small model
mrt mlx generate --prompt "disco funk" --duration 4.0 --model=mrt2_base
mrt jax generate --prompt "disco funk" --duration 4.0 --model=mrt2_base

See Inference for more on prompting, tokens, and bulk generation.

Local development#

To work on the library itself, clone the repo and install in editable mode instead of from PyPI:

git clone --recurse-submodules https://github.com/magenta/magenta-realtime.git
cd magenta-realtime

uv pip install -e ".[mlx]"           # macOS
uv pip install -e "." "jax[cuda13]"  # Linux with CUDA

C++ app development#

To build C++ apps on the inference engine, install cmake and build a target. This assumes you have already downloaded models (step 3 above).

# Install cmake
uv pip install "cmake<3.28"

# Build hello_mrt2, a basic command-line interface
cmake . -B build
cmake --build build --target hello_mrt2 -j10

# Generate 4 seconds of music (replace <model_name>, e.g. mrt2_small)
./build/examples/hello_mrt2/hello_mrt2 \
    ~/Documents/Magenta/magenta-rt-v2/models/<model_name>/<model_name>.mlxfn \
    ~/Documents/Magenta/magenta-rt-v2/resources \
    100 \
    --prompt "ambient pads with sub bass"