Releases: Metacreation-Lab/MIDI-GPT
Releases · Metacreation-Lab/MIDI-GPT
Release list
v0.3.2
Added
- Prism Documentation: Full
docs/models.mdsection for theprism_mediumcheckpoint — same wide attribute/genre set asexpressive, standard 32-level velocity,num_bars_mapup to 16 bars. - Real-Checkpoint Smoke Tests: New
test_pretrained_checkpoints.pydownloads and exercisesprism_medium/expressive_mediumend-to-end (AR + infill generation, attribute/genre conditioning,MaskBar-mode rejection).
Changed
- Dynamic Checkpoint Resolution:
InferenceEngine.from_pretrainednow resolves checkpoint filenames dynamically against the HuggingFace repo's file listing (preferring-final, falling back to the highest-step<N>) instead of a hardcoded filename map — re-uploading a checkpoint no longer requires a code change.
Fixed
- Attribute Token Names: Corrected
TOKEN_TYPE_TO_ATTRIBUTEand individual attribute classes'token_typestrings to match the C++TokenType::name()runtime values (TrackLevelPitchRangeMax,TrackLevelSilenceProportionMax,BarLevelPitchClassSet), fixing silent attribute auto-inference and BPE classification failures.
Removed
- Ghost Model References:
"ghost"removed fromInferenceEngine.from_pretrained's known model names (no checkpoint has ever been trained for it); docs now explicitly mark it as an unreleased, planned architecture instead of implying it's usable today.
v0.3.1
Added
- Token Diagnostics: Opt-in
TokenLoggerforSamplingSession— per-token JSONL logs capturing token id/type/value, the grammar-masked T=1 distribution (log-prob, entropy, top-5 alternatives), grammar-collapse events, per-step summaries (context size, token budget, velocity mode) and per-bar summaries of the decoded result. No behavior change when no logger is attached. Also warns when the context window is nearly full and late tracks would be silently truncated. - Replay Scoring:
SamplingSession.score_from_tokens()— teacher-forced log-probability of a previously generated token sequence under the session's context, applying the same grammar legality masks used at sampling time. Enables cross-conditional scoring (score a generation made under conditioning A against conditioning B) without re-sampling. Sequences longer than the model's positional window are scored with a sliding window; generation paths are untouched.
v0.3.0
Added
- Expressive Encoder & Controls: Support for sub-grid microtiming (
Delta) tokens, 128 velocity levels (vs 32), and piece-level switchable microtiming and velocity controls. - NOMML Attribute: Added
TrackLevelNomml(median metric depth) attribute control end-to-end to steer rhythmic quantization. - Genre Grouping: Piece-level genre conditioning via
GenreGroupingfor model training and inference. - HTTP Server Timeout: New
--idle-timeoutflag to support automatic shutdown on inactivity. - Developer Documentation: Added comprehensive implementation and design guides for both Attribute Controls and Encoder Configs.
- Preprocessing Acceleration: Added a
--workersflag to parallelize preprocessing across multiple parquet shards. - Training Tests: Integrated training pipeline end-to-end tests using MIDI-fixture-based parquet data.
Changed
- Checkpoint Format: Switched to
.safetensorsas the default serialization format (format_version: 2), embedding weights and configuration metadata in the SafeTensors header. - Tension Attribute: Refactored Tension extraction into a separate module structure, and updated tension quantization to decile bins.
Fixed
- Grammar Constraints: Allowed
NoteOnsetimmediately followingFillInStart(at onset = 0). - Quantization Agnosticism: Refactored
NoteDurationQuantileto be TPQ- and time-signature-agnostic. - DDP & Lightning Training: Corrected training configs (
num_epochs->max_steps), fixed DDP learning rate scaling, and removed unnecessary deepcopy operations. - Worker Safety: Made dataloader worker spawning fork-safe for C++ pybind11 tokenizer.
- Genre Validation: Improved error validation to list canonical genres upon validation failures.
v0.2.4
Added
- Stateless HTTP server (
midigpt[http]install extra) with end-to-end tests. CITATION.cffand rootCONTRIBUTING.md.- MkDocs documentation site, dark slate theme, brand styling, docs badge in README.
- Ruff + pre-commit linting setup.
- Curated
CHANGELOG.md— release workflow now uses per-version sections as the GitHub Release body. - Auto-publish GitHub Release on tag push (previously created a draft only).
Changed
- Checkpoint format migrated to safetensors (
format_version: 2). The.ptpacked-bundle loader still readsformat_version: 1.
Fixed
- Session device mismatch on GPU inference.
- PyPI publish environment name.