MuScriptor local audio → MIDI pipeline
CPU-capable · optional GPU · no cloud required at runtime
Input
Audio file
WAV / MP3 / stems
Runtime
Pinokio 1-click
Zero-terminal launcher
Native Python / FastAPI
CLI + localhost:8000
MuScriptor model
Small 103M · Medium 307M · Large 1.4B
Output
Per-instrument MIDI
Streaming note events · DAW-ready
01
Pinokio
Search · Install · Start
02
or native
HF auth · uvx serve
03
Transcribe
Drop audio → MIDI
Overview
- Model: MuScriptor by Kyutai + Mirelo AI — decoder-only transformer, trained on 170K songs, multi-instrument.
- Variants: Small (103M, ~1GB RAM), Medium (307M), Large (1.4B). CPU-capable on all tiers.
- Output: per-instrument MIDI with streaming note events, importable into any DAW.
- Launcher: 1-click Pinokio app (zero terminal) or native Python CLI with a FastAPI server.
Model Comparison
| Variant | Params | RAM | Speed | Best for |
|---|---|---|---|---|
| Small | 103M | ~1 GB | Fastest | CPU-only, laptops |
| Medium | 307M | ~2 GB | Balanced | Default choice |
| Large | 1.4B | ~8 GB | Slow | Max accuracy, GPU |
Method 1: Pinokio 1-Click (Easiest)
- Install Pinokio from pinokio.co (Mac/Win/Linux).
- Search "MuScriptor" in the app store, click Install.
- Click Start Small/Medium/Large — downloads the model, starts the server, opens the Web UI.
- Drop an audio file → optionally select instruments → download MIDI or WAV.
Pinokio handles the Python env, dependencies, web-client build, and model caching. No terminal needed, and no Hugging Face login required (it uses ungated mirrors).
Method 2: Native Python (Full Control)
Authenticate with Hugging Face
Accept the license at huggingface.co/MuScriptor, then log in.
uvx hf auth loginLaunch the Web UI
uvx muscriptor serve # opens browser at localhost:8000Transcribe from the CLI
uvx muscriptor transcribe audio.wav --model mediumAutomate with the Python API
model.transcribe_to_midi("audio.wav")HTTP API Endpoints
| Endpoint | Method | Description |
|---|---|---|
| /health | GET | Server status check |
| /instruments | GET | List valid instrument names |
| /transcribe | POST | Upload audio, stream SSE events → MIDI |
| /auralize | POST | Render MIDI → WAV (FluidSynth) |