Skip to main content

Metacreation Lab

midigpt

PyPI Python CI Docs License: MIT arXiv HuggingFace

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 by controlling note density, polyphony, and note duration — globally or per bar
  • Run a MIDI-GPT API server via a HTTP server
  • 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.12 on Linux (x86_64), macOS (x86_64 + arm64), and Windows (AMD64). No compiler needed.

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
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/.


Models

Name num_bars_map Infill Attributes Download
yellow_medium 4, 8 yes note density, polyphony (min/max), note duration (min/max) yellow_medium-final.safetensors
yellow_small 4, 8 yes note density, polyphony (min/max), note duration (min/max) yellow_small-final.safetensors
prism_medium 4, 8, 12, 16 yes key signature, pitch range, silence, note duration, note density (bar), polyphony (bar), pitch class set, genre prism_medium-step58000.safetensors — training in progress
expressive_medium 4, 8, 12, 16 yes key signature, pitch range, silence, note duration, note density (bar), polyphony (bar), pitch class set, nomml, genre expressive_medium-step56000.safetensors — training in progress

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. See docs/models.md for the full breakdown.


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),
)

result = engine.session(score, request).run()
result.to_midi("output.mid")

Autoregressive generation from scratch

request = GenerationRequest(
    tracks=[
        TrackPrompt(
            id=0,
            bars=[],
            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, polyphony_hard_limit=4),
)
result = engine.session(score, request).run()

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 from scratch (no per-bar prompt)
ignore bool False Omit this track from the token stream
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.

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": "melodic", ...}

Pass quantized levels (integers in [0, size)) in TrackPrompt.attributes.


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 Must be 0 — the C++ MIDI parser is not fork-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 name or repo ID)
midigpt-http --pretrained yellow --port 8000
midigpt-http --pretrained Metacreation/MIDI-GPT --hf-filename yellow_medium-final.safetensors --port 8000

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
GET /info Model capabilities and attribute sizes
POST /generate {score, request} → {score, timing}
# 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}
    }
  }' | jq .score

Use --device cuda, --device mps, or --device auto (default) to select the compute device.


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.12, 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

MIT License — Copyright (c) 2026 Metacreation Lab. See LICENSE.

Release files for midigpt 0.3.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for midigpt 0.3.4
File Size Uploaded
midigpt-0.3.4.tar.gz 18.1 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for midigpt 0.3.4
File
midigpt-0.3.4-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
midigpt-0.3.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
midigpt-0.3.4-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
midigpt-0.3.4-cp312-cp312-macosx_10_15_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.15+ x86-64 Details
midigpt-0.3.4-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
midigpt-0.3.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
midigpt-0.3.4-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
midigpt-0.3.4-cp311-cp311-macosx_10_15_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.15+ x86-64 Details
midigpt-0.3.4-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
midigpt-0.3.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
midigpt-0.3.4-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
midigpt-0.3.4-cp310-cp310-macosx_10_15_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.15+ x86-64 Details

Total release size: 27.0 MB

Release files / midigpt-0.3.4.tar.gz

Download URL midigpt-0.3.4.tar.gz
Size 18.1 MB
Tags Source
SHA-256 checksum
How to use checksums
c950344702c6a72ae566e8d96151f8df8724da5c4d855e9fa91326bdc26fa80f
BLAKE2b-256 checksum
How to use checksums
39c86972e4de6d3d20dd862d507a9fa1c81326046f26908f09d785097599be1d
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 Aug 19, 2026.

Transparency log

Release files / midigpt-0.3.4-cp312-cp312-win_amd64.whl

Download URL midigpt-0.3.4-cp312-cp312-win_amd64.whl
Size 1.1 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
b2e65f23077efd921cab5e13d4c9c9314b4678c027b108af9e718eca606bedba
BLAKE2b-256 checksum
How to use checksums
d93217feb1924ed06ebdb88abb6633b0d39280ae58831d92fc07e00933970ac8
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 Aug 19, 2026.

Transparency log

Release files / midigpt-0.3.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL midigpt-0.3.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 840.4 kB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
57ccc85917aa7fef3773b3132ef0747cd8cfa59e58cf8df804f4bc4b8f0a8a62
BLAKE2b-256 checksum
How to use checksums
4d83a9ecb0949b070919cacaff92f0d8eeecd3765c6ed7b6091b3a1685755725
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 Aug 19, 2026.

Transparency log

Release files / midigpt-0.3.4-cp312-cp312-macosx_11_0_arm64.whl

Download URL midigpt-0.3.4-cp312-cp312-macosx_11_0_arm64.whl
Size 618.5 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
898d1f5b732cc53604c07bac01184179c4194411c5d2751ff3dce82f14287604
BLAKE2b-256 checksum
How to use checksums
340263717a7be949fb29217b70c7d46616184bd0135059aaa1a81252d310e90b
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 Aug 19, 2026.

Transparency log

Release files / midigpt-0.3.4-cp312-cp312-macosx_10_15_x86_64.whl

Download URL midigpt-0.3.4-cp312-cp312-macosx_10_15_x86_64.whl
Size 706.1 kB
Tags CPython 3.12 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
a8b90de3ca4a5604173b5f0854ff9380180d11b2599405b2dceb6a2368613770
BLAKE2b-256 checksum
How to use checksums
76114324a479f6c9e2780435fdbdb2595d4b04fcac3b156570933fa89cc605fa
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 Aug 19, 2026.

Transparency log

Release files / midigpt-0.3.4-cp311-cp311-win_amd64.whl

Download URL midigpt-0.3.4-cp311-cp311-win_amd64.whl
Size 812.0 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
ee707153443a3ad9d784c5ee8401b8497d15f0ce8e0c9ee900ab1d624fe74690
BLAKE2b-256 checksum
How to use checksums
f7000b584dc947e53e9d4f775fb9d252441ca04a9b5212f7eb0fba33067459fb
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 Aug 19, 2026.

Transparency log

Release files / midigpt-0.3.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL midigpt-0.3.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 839.2 kB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
9c33793aa7d9636d6381687f001a9c264546ca9b15acde804037d018cd19fdc1
BLAKE2b-256 checksum
How to use checksums
c5dcf813d754f5d9c27461ad69fdf0970b09bf03bf7d04431fd3148203242707
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 Aug 19, 2026.

Transparency log

Release files / midigpt-0.3.4-cp311-cp311-macosx_11_0_arm64.whl

Download URL midigpt-0.3.4-cp311-cp311-macosx_11_0_arm64.whl
Size 617.3 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
44cd0e6b458decfca8be98a410297063ba211b388e05b8f3f29a78bf661a1c06
BLAKE2b-256 checksum
How to use checksums
4764e4898db9bfc28c4fff46eca83a3bd27388d80829360e2a1912e515976096
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 Aug 19, 2026.

Transparency log

Release files / midigpt-0.3.4-cp311-cp311-macosx_10_15_x86_64.whl

Download URL midigpt-0.3.4-cp311-cp311-macosx_10_15_x86_64.whl
Size 702.2 kB
Tags CPython 3.11 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
502d01071ccd1c85c546c7924699819df8b9349e7a6dc63e14223a730c548c54
BLAKE2b-256 checksum
How to use checksums
820c1e11a11a2dee91f31b7611835f0f0da328b9314b493cf42c03149608fb50
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 Aug 19, 2026.

Transparency log

Release files / midigpt-0.3.4-cp310-cp310-win_amd64.whl

Download URL midigpt-0.3.4-cp310-cp310-win_amd64.whl
Size 487.2 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
5f09b1220496a6d1ee384cc0899c016b67d65f1d1d2c5c528a19d3c942323c63
BLAKE2b-256 checksum
How to use checksums
f4ccc5b554a37970bd0aa25171852c2c88faa57211482d479ff29825bbd792b2
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 Aug 19, 2026.

Transparency log

Release files / midigpt-0.3.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL midigpt-0.3.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 838.6 kB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
ccfaffa063d66a94fa26411e80dc7779e3b2a25bc77dc986d8a7c59d81537e1b
BLAKE2b-256 checksum
How to use checksums
7bc25fbfa13b90b4f6f741c4c2a5be27f7cd6651d160ba7106d17815e03b5fa8
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 Aug 19, 2026.

Transparency log

Release files / midigpt-0.3.4-cp310-cp310-macosx_11_0_arm64.whl

Download URL midigpt-0.3.4-cp310-cp310-macosx_11_0_arm64.whl
Size 615.2 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b87a1ed8e4c8b2d863e083debee6fe250506fe4441f8ad352e43888df5f8f84a
BLAKE2b-256 checksum
How to use checksums
640e4f5e3a47f23cbb40738a1138cec75e020ae7d6a3011d24ed1eeb0edc3ddb
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 Aug 19, 2026.

Transparency log

Release files / midigpt-0.3.4-cp310-cp310-macosx_10_15_x86_64.whl

Download URL midigpt-0.3.4-cp310-cp310-macosx_10_15_x86_64.whl
Size 700.8 kB
Tags CPython 3.10 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
4e34aaf72709e844d5b29862c9e9e0d7c0583bd26d87b3b04efb1328f25bf19f
BLAKE2b-256 checksum
How to use checksums
e011d270048ebcc09ae1cadf5db8580e554dd208da24293c792b10a172c81030
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 Aug 19, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.4 This release

13 release files

0.3.3

13 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page