This release is a pre-release and may not be stable for production use.
mlx-minimax-music3 is an independent project for local MiniMax Music 3
inference with MLX. The runtime accepts lyrics and a structured music
caption, generates the model's autoregressive music representation, synthesizes
the acoustic latents, and returns stereo waveform audio without using PyTorch or
CUDA at runtime.
[!IMPORTANT] Version
0.0.1a0is an alpha. Dense tensor mapping and waveform execution are validated locally, but end-to-end music quality parity, quantized quality, long-form generation, and the reference 32 kHz output profile remain in progress.
Project goals
- Pure MLX inference on Apple silicon.
- End-to-end waveform generation, not token-only output.
- Local checkpoint loading with explicit weight mapping.
- Phase-scoped model residency for predictable unified-memory use.
- Small, testable model components with numerical correctness checks.
- No model weights or generated media in the source distribution.
Installation
The package will be installable from PyPI after the first pre-release is published:
uv add "mlx-minimax-music3==0.0.1a0"
Model weights remain a separate, explicit local download.
Dependency policy
The runtime dependency is only mlx. A small local tokenizer reads the
checkpoint's exact Qwen2 BPE vocabulary; its output is continuously checked
against Hugging Face tokenizers during development. Dependencies are added only
when a working implementation proves they are necessary.
PyTorch, Diffusers, Transformers, Accelerate, Torchaudio, Librosa, and
huggingface_hub are intentionally excluded from the runtime. MLX reads
Safetensors directly, checkpoint paths are local-first, and standard-library WAV
output is preferred.
Current status
| Area | Status |
|---|---|
| Repository and package metadata | Ready |
| PyPI trusted-publishing workflow | Ready |
| Architecture and porting contract | Ready |
| Official checkpoint inventory and conversion | Ready |
| Prompt and checkpoint-native tokenizer | Validated |
| Global language model and RVQ depth decoder | Validated |
| Flow-matching acoustic model | Validated |
| Waveform decoder | Validated |
| Dense end-to-end music quality | In validation |
| Selective-q8 execution | Experimental; multi-seed listening validation in progress |
| Long-form quality and 32 kHz output parity | In progress |
Python API
The pipeline keeps only the checkpoint manifest and tokenizer between requests. Model weights are loaded, evaluated, measured, and released one stage at a time.
from mlx_minimax_music3 import GenerationRequest, Music3Pipeline
pipeline = Music3Pipeline("weights/mlx-dense/MiniMax-Music3")
result = pipeline.generate(
GenerationRequest(
caption="Warm acoustic folk, intimate vocal, gentle fingerpicked guitar.",
lyrics="[verse]\nMorning light across the room\nA quiet road will lead me home",
audio_duration=10.0,
seed=0,
),
output="outputs/song.wav",
)
print(result.metadata.checkpoint_profile)
print(result.metadata.memory_reports)
The current output profile is native 44.1 kHz stereo PCM16 WAV. The API refuses
to overwrite an existing file unless overwrite=True is explicit.
Lyrics must contain more than structure tags alone. For a vocal-free request,
use instrumental_lyrics() to add the explicit content expected by the model:
from mlx_minimax_music3 import instrumental_lyrics
lyrics = instrumental_lyrics("intro", "outro")
Intended runtime
lyrics + structured caption
|
v
Qwen3 global language model + local RVQ depth decoder
|
v
continuous hidden-state conditioning
|
v
flow-matching diffusion transformer
|
v
Flow-VAE / DAC-style waveform decoder
|
v
native 44.1 kHz stereo WAV
The implementation is deliberately staged so the autoregressive models can be released before acoustic synthesis begins. See the architecture document for the design.
Development
git clone https://github.com/appautomaton/mlx-minimax-music3.git
cd mlx-minimax-music3
uv sync --locked
uv run ruff check .
uv run pytest -q
uv run python dev/check_public_tree.py
uv build --no-sources
Convert the componentized official checkpoint to the dense baseline. The second command creates an experimental selective-q8 profile for memory and quality research; it is not a quality-validated release profile:
uv run python -m dev.convert_checkpoint \
weights/bf16/MiniMax-Music3 \
weights/mlx-dense/MiniMax-Music3
uv run python -m dev.verify_dense_checkpoint \
weights/bf16/MiniMax-Music3 \
weights/mlx-dense/MiniMax-Music3 \
--verify-digests
uv run python -m dev.quantize_checkpoint \
weights/mlx-dense/MiniMax-Music3 \
weights/mlx-8bit/MiniMax-Music3
Upstream implementations live in the ignored .references/ directory. Existing
local checkouts may be reused through Git worktrees instead of downloading a
second copy. Their URLs, revisions, roles, and licenses are documented in
the reference guide.
First pre-release
The first package version is 0.0.1a0. After a GitHub pre-release is created from
tag v0.0.1a0, .github/workflows/workflow.yml will build the distributions and
publish them through PyPI trusted publishing.
The release must remain marked as a pre-release. Publishing is intentionally not
performed from a developer machine. The PyPI Trusted Publisher must match owner
appautomaton, repository mlx-minimax-music3, workflow workflow.yml, and
environment pypi. The environment scopes the trusted-publishing identity; this
sole-maintainer project does not require a reviewer approval rule.
Licensing
The source code in this repository is MIT licensed. MiniMax Music 3 model weights are distributed separately under the MiniMax-Music3 Community License. Installing this package does not download or grant additional rights to those weights. See the third-party notices.
This project is not affiliated with or endorsed by MiniMax.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mlx_minimax_music3-0.0.1a0.tar.gz.
File metadata
- Download URL: mlx_minimax_music3-0.0.1a0.tar.gz
- Upload date:
- Size: 70.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4eeeed47343014765de7b2d1624770c537465b819222d437e6a520c3312060ae
|
|
| MD5 |
8a813298d6ba7bf3b04058e2637068e1
|
|
| BLAKE2b-256 |
657b2cf0060a93e4fa8678c3c6f44181917e52d2c89855523af0e2bab7f35b6c
|
Provenance
The following attestation bundles were made for mlx_minimax_music3-0.0.1a0.tar.gz:
Publisher:
workflow.yml on appautomaton/mlx-minimax-music3
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mlx_minimax_music3-0.0.1a0.tar.gz -
Subject digest:
4eeeed47343014765de7b2d1624770c537465b819222d437e6a520c3312060ae - Sigstore transparency entry: 2467560629
- Sigstore integration time:
-
Permalink:
appautomaton/mlx-minimax-music3@95825fccf4dbc5f050ac02b377865be165249de3 -
Branch / Tag:
refs/tags/v0.0.1a0 - Owner: https://github.com/appautomaton
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@95825fccf4dbc5f050ac02b377865be165249de3 -
Trigger Event:
release
-
Statement type:
File details
Details for the file mlx_minimax_music3-0.0.1a0-py3-none-any.whl.
File metadata
- Download URL: mlx_minimax_music3-0.0.1a0-py3-none-any.whl
- Upload date:
- Size: 60.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f74e326b9ba5a68e787299e6687de90d8ae26113f42232f3ac6b3e7921f75e4
|
|
| MD5 |
020520409c0acb6cc9ccfb17efca0062
|
|
| BLAKE2b-256 |
15e2f5bb17615aa98ff50c6bebd3e10363761f72dc7dc38862e5f19b64a36437
|
Provenance
The following attestation bundles were made for mlx_minimax_music3-0.0.1a0-py3-none-any.whl:
Publisher:
workflow.yml on appautomaton/mlx-minimax-music3
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mlx_minimax_music3-0.0.1a0-py3-none-any.whl -
Subject digest:
2f74e326b9ba5a68e787299e6687de90d8ae26113f42232f3ac6b3e7921f75e4 - Sigstore transparency entry: 2467560640
- Sigstore integration time:
-
Permalink:
appautomaton/mlx-minimax-music3@95825fccf4dbc5f050ac02b377865be165249de3 -
Branch / Tag:
refs/tags/v0.0.1a0 - Owner: https://github.com/appautomaton
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@95825fccf4dbc5f050ac02b377865be165249de3 -
Trigger Event:
release
-
Statement type: