Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

mlx-minimax-music3

Pure MLX inference for MiniMax Music 3 on Apple silicon.

Development status Python Apple Silicon MLX

appautomaton.renocrypt.com/mlx-minimax-music3

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.1a0 is 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

mlx_minimax_music3-0.0.1a0.tar.gz (70.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mlx_minimax_music3-0.0.1a0-py3-none-any.whl (60.8 kB view details)

Uploaded Python 3

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

Hashes for mlx_minimax_music3-0.0.1a0.tar.gz
Algorithm Hash digest
SHA256 4eeeed47343014765de7b2d1624770c537465b819222d437e6a520c3312060ae
MD5 8a813298d6ba7bf3b04058e2637068e1
BLAKE2b-256 657b2cf0060a93e4fa8678c3c6f44181917e52d2c89855523af0e2bab7f35b6c

See more details on using hashes here.

Provenance

The following attestation bundles were made for mlx_minimax_music3-0.0.1a0.tar.gz:

Publisher: workflow.yml on appautomaton/mlx-minimax-music3

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mlx_minimax_music3-0.0.1a0-py3-none-any.whl.

File metadata

File hashes

Hashes for mlx_minimax_music3-0.0.1a0-py3-none-any.whl
Algorithm Hash digest
SHA256 2f74e326b9ba5a68e787299e6687de90d8ae26113f42232f3ac6b3e7921f75e4
MD5 020520409c0acb6cc9ccfb17efca0062
BLAKE2b-256 15e2f5bb17615aa98ff50c6bebd3e10363761f72dc7dc38862e5f19b64a36437

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page