midigpt
A transformer model for computer-assisted multitrack music composition.
- Fill in missing bars while preserving your existing arrangement
- Generate new tracks from scratch, conditioned on musical attributes
- Steer the output with attribute controls (note density, polyphony, note duration, and on
prism/expressivealso key, pitch range, pitch classes and genre), globally or per bar - Run a MIDI-GPT API server over HTTP, with streaming, cancellation and several models in one process
- One-line setup — load pretrained models from HuggingFace Hub, no compiler needed
Installation
pip install "midigpt[inference]"
Pre-built wheels for CPython 3.10–3.14 on Linux (x86_64), macOS (x86_64 + arm64), and Windows (AMD64). No compiler needed.
On Intel Macs, midigpt[inference] needs Python 3.12 or older: PyTorch stopped publishing macOS x86_64 wheels after 2.2, so it installs with torch<2.3 and numpy<2.
| Extra | What it adds |
|---|---|
inference |
torch>=2.0, tqdm, huggingface_hub, safetensors |
train |
PyTorch Lightning, HuggingFace datasets, pyarrow, python-dotenv, wandb |
realtime |
python-osc, Flask, Flask-SocketIO |
http |
FastAPI, uvicorn |
dev |
pytest, ruff, mypy |
docs |
mkdocs-material, mkdocstrings |
all |
realtime + train |
Quick start
Load a pretrained model from HuggingFace Hub and generate music in four lines:
from midigpt import Score, Track, Bar
from midigpt.inference import InferenceEngine, GenerationRequest, InferenceConfig, TrackPrompt
engine = InferenceEngine.from_pretrained("yellow_medium")
# 4-bar score with one empty melodic track
score = Score(tracks=[Track(bars=[Bar() for _ in range(4)])])
result = engine.session(
score,
GenerationRequest(
tracks=[TrackPrompt(id=0, bars=[0, 1, 2, 3])],
config=InferenceConfig(model_dim=4, mask_mode="attention"),
),
).run()
total = sum(len(b.notes) for t in result.tracks for b in t.bars)
print(f"Generated {total} notes")
result.to_midi("output.mid")
The model is downloaded once and cached by huggingface_hub in ~/.cache/huggingface/hub/. When the model repo is gated, accept its license on Hugging Face and run hf auth login (or set HF_TOKEN) first; see access tokens.
Models
| Model | Checkpoint | num_bars_map |
Context (tokens) | Infill | Attributes |
|---|---|---|---|---|---|
yellow_medium |
checkpoint | 4, 8 | 2048 | yes | note density, polyphony (min/max), note duration (min/max) |
yellow_small |
checkpoint | 4, 8 | 2048 | yes | note density, polyphony (min/max), note duration (min/max) |
prism_medium |
checkpoint | 4, 8, 12, 16 | 4096 | yes | key signature, pitch range, silence, note duration, note density (bar), polyphony (bar), pitch class set, genre |
expressive_medium |
checkpoint | 4, 8, 12, 16 | 4096 | yes | key signature, pitch range, silence, note duration, note density (bar), polyphony (bar), pitch class set, nomml, genre |
InferenceEngine.from_pretrained(name) downloads the current checkpoint for that model name.
model_dim in InferenceConfig is the context window in bars, not a vocabulary dimension — pass a value from the model's num_bars_map. expressive_medium additionally encodes sub-grid timing via delta tokens and supports switchable velocity/microtiming controls. yellow has no MaskBar token, so use mask_mode="attention" (or "attention_approx", "attention_skip", "remove") with it. See docs/models.md for the full breakdown.
The weights are licensed separately from the code, under the Metacreation Non-Commercial Research License: non-commercial research (including research-creation) and education. They were trained on GigaMIDI; see the model card for details.
Inference API
Load a model
# By name (downloads from Metacreation/MIDI-GPT on HuggingFace Hub)
engine = InferenceEngine.from_pretrained("yellow_medium") # or "prism_medium", "expressive_medium"
# From a local checkpoint (.safetensors or .pt bundle)
engine = InferenceEngine.from_checkpoint("path/to/model.safetensors")
Infill existing bars
score = Score.from_midi("my_song.mid")
request = GenerationRequest(
tracks=[
TrackPrompt(id=0, bars=[4, 5, 6, 7]), # bars to regenerate
TrackPrompt(id=1, bars=[], ignore=True), # leave track 1 unchanged
],
config=InferenceConfig(temperature=1.0, top_p=0.95, model_dim=8, mask_mode="attention"),
)
result = engine.session(score, request).run()
result.to_midi("output.mid")
Autoregressive generation from scratch
score = Score(tracks=[Track(bars=[Bar() for _ in range(8)])]) # one empty 8-bar track
request = GenerationRequest(
tracks=[
TrackPrompt(
id=0,
bars=list(range(8)), # bars to generate, in order
autoregressive=True,
attributes={"max_polyphony": 3}, # quantized attribute level
controls={"time_signature": 0}, # index into encoder TS list
),
],
config=InferenceConfig(temperature=1.0, model_dim=8, mask_mode="attention", polyphony_hard_limit=4),
)
result = engine.session(score, request).run()
Every track in the score needs a TrackPrompt; use ignore=True for tracks to leave out.
Key types
| Class | Module | Purpose |
|---|---|---|
InferenceEngine |
midigpt.inference |
Top-level loader and session factory |
GenerationRequest |
midigpt.inference |
Bundle of per-track prompts and config |
TrackPrompt |
midigpt.inference |
Per-track bars, mode, attributes, controls |
InferenceConfig |
midigpt.inference |
Temperature, sampling filters, step planner |
SamplingSession |
midigpt.inference |
Token-level sampling loop (returned by session()) |
TrackPrompt fields
| Field | Type | Default | Meaning |
|---|---|---|---|
id |
int | — | Track index in the score |
bars |
list[int] | — | Bars to generate |
autoregressive |
bool | False |
Generate bars from scratch, continuing the track's earlier bars (no per-bar prompt) |
ignore |
bool | False |
Leave this track out of the prompt; it comes back unchanged in the result |
mask_bars |
list[int] | [] |
Bars hidden with MASK_BAR (disjoint from bars) |
attributes |
dict[str,int] | {} |
Quantized attribute overrides |
controls |
dict[str,Any] | {} |
Token locks e.g. {"time_signature": 0} |
bar_attributes |
dict[int,dict] | {} |
Per-bar attribute overrides (absolute bar index) |
bar_controls |
dict[int,dict] | {} |
Per-bar control overrides (absolute bar index) |
Sampling filters
InferenceConfig exposes a four-stage logit-filtering pipeline (top_k → top_p → mask_k → mask_p):
| Field | Default | Meaning |
|---|---|---|
top_k |
0 (off) |
Keep top-k highest-probability tokens |
top_p |
1.0 (off) |
Nucleus: keep the smallest set summing to ≥ top_p |
mask_k |
0 (off) |
Remove the top-k most-likely tokens (novelty pressure) |
mask_p |
0.0 (off) |
Anti-nucleus: remove tokens summing to ≥ mask_p from the top |
A small mask_k=1 or mask_p=0.3 pushes the model off its most-confident picks — useful for getting diverse outputs when novelty_check=True.
Generation options
A few more InferenceConfig fields (see docs/api.md for all of them):
| Field | Default | Meaning |
|---|---|---|
model_dim / bars_per_step / tracks_per_step |
4 / 1 / 1 |
Window size and step size; each also takes "auto" to let the planner choose |
num_candidates |
1 |
Generate several independent takes (one seed each) from the same prompt |
infill_probability |
1.0 |
Infill only a random share of the target bars; session.generated_bars says which |
novelty_check / novelty_threshold |
True / 1.0 |
Retry a step whose result shares at least this share of its notes with the original |
context |
"auto" |
When a step won't fit the model, leave out whole context tracks ("auto", "listed", "all"); session.dropped_context lists them |
plan_only |
False |
Return the step plan without generating |
Mask modes
Control how future bars appear in the context window:
| Mode | Behaviour |
|---|---|
"token" |
Encoder emits a MaskBar token (requires vocab support) |
"attention" |
Future bars zeroed in the KV cache via exact span masking |
"attention_approx" |
Single prefill mask + KV surgery; cheaper than "attention" |
"attention_skip" |
Future tokens filtered from input; position_ids passed explicitly |
"remove" |
Future bars omitted entirely from the token stream |
Set via InferenceConfig(mask_mode="attention"). "attention" works on all encoders; "token" requires the encoder vocab to include a MaskBar domain.
Attribute controls
Introspect available controls at runtime:
engine._analyzer.attribute_sizes() # {"note_density": 10, "min_polyphony": 10, ...}
engine._analyzer.attribute_value_labels() # {"note_density": ["very sparse", ...], ...}
engine._analyzer.attribute_track_types() # {"note_density": "drum", "min_polyphony": "melodic", ...}
Pass quantized levels (integers in [0, size)) in TrackPrompt.attributes. Each attribute applies to melodic tracks, drum tracks or both (attribute_track_types()); on yellow, note_density is drum-only and polyphony and note duration are melodic-only.
Training
1. Preprocess parquet shards
python -m midigpt.training.preprocess \
--parquet /data/train/*.parquet \
--checkpoint models/yellow_medium-final.safetensors
Builds a valid-index cache so dataset initialization is instant on subsequent runs. Cached in ~/.midigpt/ (override with MIDIGPT_CACHE).
2. Launch training
python -m midigpt.training.trainer \
--config models/train_config.json \
--train-data /data/train/*.parquet \
--eval-data /data/valid/*.parquet \
--output-dir checkpoints/run_001
3. Python API
from midigpt.training.trainer import TrainConfig, train
config = TrainConfig.from_file("models/train_config.json")
train(config, train_path="/data/train/00000.parquet", eval_path="/data/valid/00000.parquet")
train() uses PyTorch Lightning and writes a packed .safetensors bundle at the end of training containing weights, architecture config, and encoder config.
Key TrainConfig fields
| Field | Default | Notes |
|---|---|---|
n_embd / n_layer / n_head |
512 / 6 / 8 |
Model architecture |
max_seq_len |
2048 |
Token sequence cap |
infill_probability |
0.75 |
Fraction of samples trained with FillIn tokens |
mask_apply_probability |
0.5 |
Fraction of samples with MASK_BAR applied |
precision |
"fp16" |
"fp16", "bf16", or "fp32" |
logger |
"none" |
"tensorboard", "wandb", or "none" |
num_workers |
0 |
Data loader workers; the loader uses a spawn context, so above 0 is safe |
HTTP server
pip install "midigpt[http]"
# From a local checkpoint (.safetensors or .pt)
midigpt-http --ckpt checkpoints/run_001/model_final.safetensors --port 8000
# From HuggingFace Hub, by checkpoint name (optionally from another repo with --hf-repo)
midigpt-http --pretrained yellow_medium --port 8000
# Several models in one server
midigpt-http --config models.yaml
A stateless REST API — every request carries the full score and generation parameters. The interactive API docs are available at http://localhost:8000/docs.
| Endpoint | Description |
|---|---|
GET /health |
Liveness probe, with queue depth |
GET /info |
A model's capabilities, valid model_dim values, context length and attributes |
GET /models |
The loaded models and the default one |
POST /generate |
{score, request} → {score, timing, tokens, ...}; "stream": true streams notes and progress as server-sent events |
POST /generate/{request_id}/cancel |
Stop an in-flight generation; its /generate call returns "cancelled" with what it has so far |
A generation whose client disconnects is cancelled; --max-generation-seconds caps how long one may run. See docs/http.md for the config file, response fields and streaming.
# Score: 1 melodic track, 4 empty bars — generate all 4 from scratch
curl -s -X POST http://localhost:8000/generate \
-H "Content-Type: application/json" \
-d '{
"score": {
"resolution": 480, "tempo": 500000,
"tracks": [{
"instrument": 0, "track_type": "melodic",
"bars": [
{"ts_numerator": 4, "ts_denominator": 4, "notes": []},
{"ts_numerator": 4, "ts_denominator": 4, "notes": []},
{"ts_numerator": 4, "ts_denominator": 4, "notes": []},
{"ts_numerator": 4, "ts_denominator": 4, "notes": []}
]
}]
},
"request": {
"tracks": [{"id": 0, "bars": [0, 1, 2, 3]}],
"config": {"model_dim": 4, "mask_mode": "attention"}
}
}' | jq .score
The server runs on the CPU by default. Add --device cuda for an NVIDIA GPU (with a CUDA build of PyTorch), --device mps for Apple Silicon, or --device auto to pick CUDA, then MPS, then CPU. See docs/http.md.
Real-time OSC server
pip install "midigpt[realtime]"
midigpt-server --ckpt models/yellow_medium-final.safetensors --port 7400
Listens for OSC messages on a UDP port and streams generated notes back in real time. Generation is triggered bar-by-bar via /midigpt/bar/end on a background thread.
Selected OSC addresses:
| Address | Direction | Description |
|---|---|---|
/midigpt/session/init |
in | Start a new session |
/midigpt/track/create |
in | Register a track |
/midigpt/note |
in | Push an incoming note |
/midigpt/bar/end |
in | Signal bar end (triggers generation) |
/midigpt/param/set |
in | Adjust sampling parameters at runtime |
/midigpt/attr/set |
in | Set attribute overrides |
/midigpt/generated/note |
out | Emit a generated note |
/midigpt/generated/features |
out | Per-bar statistics |
/midigpt/capabilities |
out | Attribute support for the loaded checkpoint |
Development
Setup
git clone https://github.com/Metacreation-Lab/MIDI-GPT.git
cd MIDI-GPT
pip install -e ".[inference,dev]" # compiles the C++ extension in-place
Prerequisites: Python 3.10+, CMake 3.21+, a C++20 compiler.
Tests
# Python
pytest tests/python/
pytest tests/python -m "not slow and not inference" # CI subset (no model needed)
# C++
cmake -S . -B build_cpp -DCMAKE_BUILD_TYPE=Release
cmake --build build_cpp -j
ctest --test-dir build_cpp --output-on-failure
Linting
ruff check src/ tests/ # lint
ruff format src/ tests/ # format
pre-commit runs both automatically on commit:
pip install pre-commit && pre-commit install
Release
Tag a commit vX.Y.Z → .github/workflows/wheels.yml builds wheels on Linux / macOS / Windows × Python 3.10–3.14, drafts a GitHub Release, and publishes to PyPI via OIDC Trusted Publishing.
Logging
Set MIDIGPT_LOG_LEVEL=DEBUG (or a numeric level) before importing. Accepts both string names (DEBUG, INFO, WARNING) and integers.
Citation
@misc{pasquier2025midigptcontrollablegenerativemodel,
title={MIDI-GPT: A Controllable Generative Model for Computer-Assisted Multitrack Music Composition},
author={Philippe Pasquier and Jeff Ens and Nathan Fradet and Paul Triana and Davide Rizzotti and Jean-Baptiste Rolland and Maryam Safi},
year={2025},
eprint={2501.17011},
archivePrefix={arXiv},
primaryClass={cs.SD},
url={https://arxiv.org/abs/2501.17011},
}
License
The code is released under the MIT License — Copyright (c) 2026 Metacreation Lab. See LICENSE.
The pretrained weights are not covered by the MIT License: they are under the Metacreation Non-Commercial Research License, for non-commercial research and education. For other uses, contact pasquier@sfu.ca.
Metadata
Release files for midigpt 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| midigpt-0.4.0.tar.gz | 9.1 MB | With provenance | Details |
Built distributions (wheels)
Total release size: 26.1 MB
Release files / midigpt-0.4.0.tar.gz
| Download URL | midigpt-0.4.0.tar.gz |
|---|---|
| Size | 9.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1ac9a5b219575f16d34065ccd814fd75add2546e6077d0b2569038ac30c40646
|
|
BLAKE2b-256 checksum How to use checksums |
ac8c61786e03e1ed88925633560f80a816c0c0efdc89c036476c5baf994784a4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / midigpt-0.4.0-cp314-cp314-win_amd64.whl
| Download URL | midigpt-0.4.0-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
4d100ee46b53ad0b2436d75c8a1024df9628b4c428a3695ad3b550824ad4918a
|
|
BLAKE2b-256 checksum How to use checksums |
7e18ddcb0949d6da2adaeb1bc1793148c413736bb1edb45708ab9af2275e5eda
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / midigpt-0.4.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | midigpt-0.4.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 859.4 kB |
| Tags | CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
903de5e59d806820cf9cfcc08fc2c6dcd8d20a73333b56df39f3e80b52308583
|
|
BLAKE2b-256 checksum How to use checksums |
893563753b632779da7d7cc5712f51b6f17b94dcbadd6684e95a86d8c165cc89
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / midigpt-0.4.0-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | midigpt-0.4.0-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 637.3 kB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
d34fbc5620a19780a3e9a12001e13eb46f0508056913674cbcf24e5a0a02f58c
|
|
BLAKE2b-256 checksum How to use checksums |
c2ebe5cec6e053903af64d6107f9eb3e5a7ab0791d75acc9b11ae382a80fc817
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / midigpt-0.4.0-cp314-cp314-macosx_10_15_x86_64.whl
| Download URL | midigpt-0.4.0-cp314-cp314-macosx_10_15_x86_64.whl |
|---|---|
| Size | 724.4 kB |
| Tags | CPython 3.14 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
17be76730a8af3493d73acfcf8faa9bee97a030c854ce60617fef9b9baa86b26
|
|
BLAKE2b-256 checksum How to use checksums |
ad5b9669f180e49a1e25e619c7ef5fcf1a3e932e1a973621b9ffedc2a107abfa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / midigpt-0.4.0-cp313-cp313-win_amd64.whl
| Download URL | midigpt-0.4.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
403cb5231e2c1aa15474a8920cff9bef5fac1dea6bca312607f39fa73104d103
|
|
BLAKE2b-256 checksum How to use checksums |
ab3949977ff6a160af87bc6302ec62d9944de06d4d094c7020061c653a78991e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / midigpt-0.4.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | midigpt-0.4.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 858.9 kB |
| Tags | CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
7d9b955dc124b1ef4f59f34d56689acb4db0b5d31aaf3c52d52a7589ef9badd8
|
|
BLAKE2b-256 checksum How to use checksums |
57c41568683f2fa10a7d4e4c1b6432973c5c0ed58eba74c4baf25c2b151261fe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / midigpt-0.4.0-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | midigpt-0.4.0-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 636.7 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
38dd7bd917f3c243278a605526420cd9f6f1642806161c80eecc1b3dd2ca7b1d
|
|
BLAKE2b-256 checksum How to use checksums |
fa79787c5786ea78a176a41867d938a62eeb7bd8d28e84ff9ef696f150208f95
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / midigpt-0.4.0-cp313-cp313-macosx_10_15_x86_64.whl
| Download URL | midigpt-0.4.0-cp313-cp313-macosx_10_15_x86_64.whl |
|---|---|
| Size | 724.2 kB |
| Tags | CPython 3.13 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
df818c2d564bfcd3cd77fc4436c44596867194b8989e94acfd501835b0537413
|
|
BLAKE2b-256 checksum How to use checksums |
b01109c1c7c69bf534f79ac142a473b22fc350f3a255fdd97bfdaf69f4dae4ce
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / midigpt-0.4.0-cp312-cp312-win_amd64.whl
| Download URL | midigpt-0.4.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 1.2 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
8e702d72108212f027fc7fbdfed2f32d8682c3259d2e6593a9d472fdeb2c5f20
|
|
BLAKE2b-256 checksum How to use checksums |
41f70f053f75019d617bce4b156951b4eebeb464d2e2e6197083183233be2aa5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / midigpt-0.4.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | midigpt-0.4.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 859.0 kB |
| Tags | CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
7ea6a5fb92af0669c8d1e0622c7ce70aaa38eedf146bd78b6c867491341e230c
|
|
BLAKE2b-256 checksum How to use checksums |
cde116f1442ead74c81e9c11c6f3f1b2a410b16bdca9fb4dafd9826afae4129e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / midigpt-0.4.0-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | midigpt-0.4.0-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 636.5 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
37fa86cb386bd895366dedb3dda653e377fbac4f3d31c627e349d0d5ca89715d
|
|
BLAKE2b-256 checksum How to use checksums |
99cda2fdc8d12f8adfb00ca79046724ccf3390d40097ffbe609b7c98175bd44f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / midigpt-0.4.0-cp312-cp312-macosx_10_15_x86_64.whl
| Download URL | midigpt-0.4.0-cp312-cp312-macosx_10_15_x86_64.whl |
|---|---|
| Size | 724.2 kB |
| Tags | CPython 3.12 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
dc370844a3adbf1bb8bbe2b69ddab762496791a62d4fa4231cf1516e4e087d7a
|
|
BLAKE2b-256 checksum How to use checksums |
ff02b4046e318f0f5f79492f7429844b3d976ffeb8b2937fdaee2d89658a0e60
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / midigpt-0.4.0-cp311-cp311-win_amd64.whl
| Download URL | midigpt-0.4.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 832.6 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
97c0f20432bd49a6a7db6e3b17648442e1e7fa3e59b680ebe78a649966541ce7
|
|
BLAKE2b-256 checksum How to use checksums |
49a86f3002182ef47f10db090ed4408fbc015f26ea9144b1f85b19a4a438d8f2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / midigpt-0.4.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | midigpt-0.4.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 858.0 kB |
| Tags | CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
929ee94bfd26a5424697684c520102b9188d8fd4b9dfebbb5d25772369467750
|
|
BLAKE2b-256 checksum How to use checksums |
d100d7211d0ece1921ffd74b30af0206820814459fe78849e0474b07c23094a0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / midigpt-0.4.0-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | midigpt-0.4.0-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 635.3 kB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
a72fa6033de331c1be6f6cd7b368dded0e900c3ae5a4147c1eaac2b98a4f8d9d
|
|
BLAKE2b-256 checksum How to use checksums |
d94ee56e803bf89f2782767da310671b1b2ed6c7df4ce32fc962307e5c159944
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / midigpt-0.4.0-cp311-cp311-macosx_10_15_x86_64.whl
| Download URL | midigpt-0.4.0-cp311-cp311-macosx_10_15_x86_64.whl |
|---|---|
| Size | 720.4 kB |
| Tags | CPython 3.11 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
d210124f10e4276832514c66ff848d5c8fec1e4bfd79edc9016fba3fa4bf3e74
|
|
BLAKE2b-256 checksum How to use checksums |
302a442a6eae5288d2f8941f4b721fe3fa42e41272b5b1c36e16ff4de557b5f2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / midigpt-0.4.0-cp310-cp310-win_amd64.whl
| Download URL | midigpt-0.4.0-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 506.4 kB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
94b976e46ba2bc98fefbf948cd2ff28d19364b24e781eebc8e6b20b90ee5e5e1
|
|
BLAKE2b-256 checksum How to use checksums |
c61b71542d4a77194de20c6404bb17787d5e360763b762644d29e5fa90a0287c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / midigpt-0.4.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | midigpt-0.4.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 857.3 kB |
| Tags | CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
2fbbdf04465d354dabfb0e1585c889ed6b196c21dac0319303a15a0b6f88caed
|
|
BLAKE2b-256 checksum How to use checksums |
a7f73af0f935485c79028e804f5d77fae4967dd1605d3c372304c570d152b5b1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / midigpt-0.4.0-cp310-cp310-macosx_11_0_arm64.whl
| Download URL | midigpt-0.4.0-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 633.5 kB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
5dbeab89e38153ce296997141dc6c5c826adf9afb06bf829c8ef5359e10995fb
|
|
BLAKE2b-256 checksum How to use checksums |
7c8a9f7db7f23f77e64efe8d89ff9f5b9a33f917bd32e9431102d35741aeebd3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / midigpt-0.4.0-cp310-cp310-macosx_10_15_x86_64.whl
| Download URL | midigpt-0.4.0-cp310-cp310-macosx_10_15_x86_64.whl |
|---|---|
| Size | 718.9 kB |
| Tags | CPython 3.10 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
63bff7071026c0e32b95e8efe52e74a0e4bbdf5ebdc3051881d2528453d1ea55
|
|
BLAKE2b-256 checksum How to use checksums |
77ec65abcf5fe3ebd6a5fa29c37727d299ccb046c3c01114a174d738db68ae76
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logSecurity for midigpt 0.4.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 21 files in this release have been uploaded with provenance metadata.
Attestation for midigpt-0.4.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.