groovebin
MIDI files, note maps and a pattern library in Python. It reads and writes Standard MIDI Files, translates notes between instrument maps — General MIDI drums, Addictive Drums 2, Logic's Drum Kit Designer — transforms notes by selection (velocity curves, humanize, swing, note lengths), and indexes a folder of MIDI patterns so they can be searched, shown and recombined. Nothing needs a DAW or a plug-in installed or running.
Status: alpha. Commands, the library API and the index format may change before 1.0.
Install
pip install groovebin
groovebin --version
Needs Python 3.12 or newer.
Commands
groovebin remap IN.mid --from drum-kit-designer --to addictive-drums-2 -o OUT.mid
groovebin notes IN.mid --map gm
groovebin transform IN.mid -o OUT.mid --preset humanize --seed 7
groovebin index ~/Grooves --map addictive-drums-2
groovebin search --role verse --meter 4/4 --tempo 90-110
groovebin generate --meter 4/4 --bars 16 --fills --role verse -o verse.mid
Usage: docs/usage.md. Changes: CHANGELOG.md.
Develop
From a checkout:
bin/run setup
bin/run pytest
bin/run lint # ruff + the pf-core structural gate (300 soft / 500 hard lines)
See CONTRIBUTING.md.
groovebin ships note-number tables only: no sounds, patterns or MIDI content from any vendor.
Metadata
Release files for groovebin 0.3.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 | |
|---|---|---|---|
| groovebin-0.3.0.tar.gz | 57.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| groovebin-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 123.5 kB
Release files / groovebin-0.3.0.tar.gz
| Download URL | groovebin-0.3.0.tar.gz |
|---|---|
| Size | 57.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5638b961d10487d38f0ce9df31b15284fbead131f049ab1b2c51a75fa9e641cf
|
|
BLAKE2b-256 checksum How to use checksums |
6bf4e7dfd1eaed52e2bf51f37079ad12a4a6b577bc6a2293925fab46f7b5dc32
|
| 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 Sep 17, 2026.
Transparency logRelease files / groovebin-0.3.0-py3-none-any.whl
| Download URL | groovebin-0.3.0-py3-none-any.whl |
|---|---|
| Size | 65.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d238d91fe8d34e23045dd0a263ab5f51e193914a2e3d37593c4a63c4307d39ae
|
|
BLAKE2b-256 checksum How to use checksums |
e773afdd25f778f828a5a4e31d34c3fc35f84934fc6a45eb44d4322d35d77cb0
|
| 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 Sep 17, 2026.
Transparency log