Skip to main content

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)

Source distribution for groovebin 0.3.0
File Size Uploaded
groovebin-0.3.0.tar.gz 57.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for groovebin 0.3.0
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

This release

0.3.0 This release

2 release files

0.2.0

2 release files

0.1.0

2 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