https://github.com/rixiiz/drum-learner
Generate drum rhythms and drum partitions based on music
https://github.com/rixiiz/drum-learner
artificial-intelligence gui lilypond machine-learning magenta neural-network python tkinter
Last synced: 3 months ago
JSON representation
Generate drum rhythms and drum partitions based on music
- Host: GitHub
- URL: https://github.com/rixiiz/drum-learner
- Owner: rixiiz
- Created: 2025-10-30T00:36:49.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-10-30T00:53:24.000Z (8 months ago)
- Last Synced: 2025-10-30T02:48:02.995Z (8 months ago)
- Topics: artificial-intelligence, gui, lilypond, machine-learning, magenta, neural-network, python, tkinter
- Language: Python
- Homepage:
- Size: 7.81 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Drum-Learner
Generate playable drum parts from scratch — or from any song — using Magenta's DrumRNN for practice and coordination, and visualize the result as real drum sheet music.
## Features
- AI Groove Generation (Magenta DrumRNN)
- Generates 4-bar drum grooves (kick, snare, hats, cymbals, toms) using a pretrained model
- Can also generate split sticking variations (left hand / right hand)
- Song Drum Transcription
- User inputs a song and the model will generate the drum partition for the song
- Interactive Notation GUI
- Outputs like a real drum partition
## How It Works
1. Input
- Select option A (generate rhythms) or B (generate from song)
- If A is selected then the user has to choose between grooves or split sticking variations
2. Sequence generation
- Use DrumRNN to produce a drum sequence
3. Notation rendering
- Converts DrumRNN's output into a real drum partition using LilyPond and displays it onto a GUI
## Setup
- Create a Python environment `pythono3 -m env env` `source venv/bin/activate`
- Install `requirements.txt` with `pip install requirements.txt`
## Progress Tracker
- Done with the rhythm generator
- Currently working on the GUI