--- license: cc-by-nc-4.0 base_model: facebook/musicgen-stereo-large pipeline_tag: text-to-audio library_name: mlx tags: - mlx - apple-silicon - text-to-audio - musicgen --- # mlx-musicgen-stereo-large (MusicGen Stereo Large, MLX) > **Non-commercial licence.** These weights are CC-BY-NC-4.0 and may **not** be used for commercial purposes. See [Licence](#licence) below. MLX conversion of [facebook/musicgen-stereo-large](https://huggingface.co/facebook/musicgen-stereo-large) for inference on Apple silicon via [mlx-audiogen](https://github.com/jasonvassallo/mlx-audiogen). ## Licence Upstream MusicGen is released under two different licences, and it matters which applies to what: - **Model weights — CC-BY-NC-4.0** (non-commercial). That is what this repository contains, so that is what governs it. - The upstream **code** is MIT. That does not extend to these weights. Key terms, summarised (the licence text governs): - Free to share and adapt for **non-commercial** purposes. - You must give appropriate credit and indicate if changes were made. - **No commercial use** — including use primarily directed towards commercial advantage or monetary compensation. mlx-audiogen's own Apache-2.0 licence covers the conversion **code** only. The full licence is in [`LICENSE`](LICENSE); attribution and the statement of modifications are in [`NOTICE`](NOTICE). ## Attribution MusicGen Stereo Large was created by Jade Copet, Felix Kreuk, Itai Gat, Tal Remez, David Kant, Gabriel Synnaeve, Yossi Adi and Alexandre Défossez, and published in [Simple and Controllable Music Generation](https://arxiv.org/abs/2306.05284). ## Modifications These weights are a modified version of the upstream checkpoint, converted to the MLX array format for inference on Apple silicon. Specifically: convolution weights are transposed where MLX's layout differs from PyTorch's, tensors are re-serialised as safetensors, weight keys are remapped to match this project's module names, and the text encoder is split into a separate file. The model is re-implemented against MLX rather than PyTorch. No weights are retrained or fine-tuned. Tensor precision is unchanged: the upstream checkpoint already stores float16 and so does this conversion. No weight value is altered by rounding — the float16 storage is upstream's choice, not a reduction introduced here. ## Bundled components - **T5 text encoder** — [https://huggingface.co/google-t5/t5-base](https://huggingface.co/google-t5/t5-base), Apache-2.0, Google LLC. Licence text: [`LICENSE.t5-apache-2.0`](LICENSE.t5-apache-2.0) Where component licences differ, the most restrictive term governs this repository: CC-BY-NC-4.0. ## Usage > **Generation via `mlx-audiogen` is not supported for the stereo variants yet.** > > MusicGen stereo uses 8 codebooks, but the pipeline loads the shared **mono** 32 kHz EnCodec (a 4-quantizer model) for every variant, so decoding raises `IndexError`. These weights are published for conversion parity and for use once stereo decoding lands; the mono variants work today. ```bash pip install "mlx-audiogen[server]" mlx-audiogen --model musicgen --prompt "happy rock song" --seconds 5 \ --weights-dir musicgen-small # a mono variant ```