Port of muscriptor/muscriptor to ggml, scaffolded like uniflow.cpp.
| Component | Status | Notes |
|---|---|---|
| Scaffold (CMake/Makefile/ggml) | done | Metal/CUDA flags |
| Vocab / notes | done | 1393-token MT3 layout |
| Events / OpenNoteTracker | done | tie prologue, drums, window |
| MT3 instruments / masking | done | forbidden_token_ids |
| MIDI SMF writer | done | type-1 multi-track |
| Sampling helpers | done | top-k/p, stratified |
| Mel STFT + log-mel | done | pocketfft, HTK fb |
| StreamingTransformer | done | sin PE, KV cache, GELU FFN |
| LM forward / generate | done | greedy, sample, beam, masks |
| Pipeline + CLI | done | 5 s chunks, prelude forcing |
| GGUF converter | done | convert/convert_muscriptor.py |
| Hermetic CTest suite | done | mirrors Python unit tests |
| Weight parity (greedy tokens) | pending | needs HF GGUF + dump_parity |
| Server / web UI | deferred | v1 out of scope |
make test
# optional integration:
MUSCRIPTOR_GGUF=models/muscriptor-small-F16.gguf ctest -R integration --output-on-failureUpstream Python mapping:
| Python | C++ CTest |
|---|---|
| test_notes.py | test_notes |
| test_events.py | test_events |
| test_midi.py | test_midi |
| test_sampling.py | test_sampling |
| (mt3 bits) | test_mt3 |
| test_conditioners.py | test_conditioners |
| test_transformer.py | test_transformer |
| test_prelude_forcing.py | test_prelude_forcing |
| test_strict_instruments.py | test_strict_instruments |
| test_transcription_model.py | test_pipeline |
| test_integration.py | test_integration (env-gated) |
src/ core + CLI
convert/ safetensors → GGUF
tests/cpp/ CTest binaries
scripts/ download + parity dumps
third_party/ ggml, pocketfft