Skip to 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.

About

Read, remap and generate drum MIDI from the command line: translate between kit note maps, index a folder of grooves and search it by meter, tempo and role — no DAW needed

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages