An all-in-one drum-charting tool for Paradiddle (.rlrr), with Clone Hero (.chart) support.
ParaKit is actively being developed/supported. v5 Major Update/Rebuild is in the works, until that ships v4 will continue getting regular updates often.
Version in this release:
4.5.4-1• Runtime: Python 3.12 (required)
Check the bottom of the page for the Change/fix log
📄 Prefer plain text, or reading outside GitHub? A Notepad-friendly
README.txtand a separate, fullCHANGELOG.txtare now included in the repo — the same info without the Markdown clutter.
Note: the compiled .exe version is a little bit behind the .py version at the moment (4.4.52), I've seen a LOT more engagement with the .py version so that's what I'm more actively supporting, I will periodically update the .exe version when enough changes pile up or there are significant fixes. I will also compile the v5 rebiuld when it's finished for those who want it.
The old LimeWire links will EXPIRE if they are not downloaded at least once per 7 days so I made a website to host the .exe versions, but it's having some issues server side. So I'll try to have a fix and the site up before the LW expires.
.exe DOWNLOAD: LimeWire Bundle Link
Jarredou Model / Requirements Link: LimeWire Jarredou/Req Bundle
Note (v4.5.3.1-1): The in-app download button for the Jarredou neural stem-isolation model has been rewired to the official Hugging Face repo for it, with a second Hugging Face mirror as an automatic fallback. If both of those ever go down for any reason, the LimeWire bundle above is still an option.
ParaKit Official Homepage (Site temporarily down)
README FOR .EXE VERSION: (https://github.com/sherifican/ParaKit---Releases)
Putting this up at the top so its found easier.
KNOWN QUIRK WITH THE AUDIO TO MIDI CHART GENERATION:
As of v4.4.66-1, ParaKit de-duplicates kicks at 55 ms by default, so kicks that used to group together now come out clean on the first Convert for the vast majority of songs — nothing to do. You'll mainly see grouped kicks now if you've lowered the kick dedup gap for a fast-kick song (needed to keep its correct kicks — but set it too small and the grouping creeps back in). If that happens, it's still quick to fix:
Step 1. Zoom out all the way on your chart in the midi editor tab
Step 2. Hold Shift + Left Click + drag to multi select all the kicks
Step 3. Press the "Dedup x" button in the tool hot bar above your chart and set the ms slider to ~50 - 65ms
Done! this gets rid of the layered extra kicks while leaving your correct kick note placements nearly untouched.
However, be aware that on particularly fast double bass songs this fix largley does not apply, since it will treat a large portion of your correct kicks as duplicates and remove them. Working on a work-around to this issue.
Want to tune it at convert time instead? Click here for the per-instrument dedup gap settings in the Audio → MIDI tab.
Screenshots will be added here each time there is a Feature/Tab Layout redesign.
v4.4.64-1
2026-06-16
YouTube ---> FLAC
- Song List / Library
- Swapped with log's original slot
- Reorganized settings into panels
Note: Both the Practice and Preview mode updates that are currently HTMLs will be folded into ParaKit propper in a future update, but for now the HTML/web versions function fine as a quick and easy substitute until then.
Take a song, isolate the drums, turn them into a playable drum chart, refine it in a visual MIDI editor, practice it with falling notes, and export it, use iTunes/MusicBrainz to find Album Art & Meta Data, turn Sheet Music into MIDI files, and create batches of songs at once — all in one app.
ParaKit always has been and always will be free of charge, and will never host ads. This repository now makes the full v4.x source code open under the GPLv3 license, so anyone can run it from source, learn from it, fix it, or build their own version.
Version in this release:
4.5.4-1• Runtime: Python 3.12 (required)
ParaKit is mid–transition between two generations, and it matters for what you can do here:
| ParaKit v4.x (this release) | ParaKit v5 (future) | |
|---|---|---|
| UI framework | Tkinter / TTK | PySide6 / Qt |
| Status | The complete, stable, shipping app | Early rebuild, barely started — not in this release |
| Themeable with UI Studio? | No | Yes (UI Studio is built for v5) |
UI Studio — the visual UI/layout designer — is built for the v5 (PySide6) rebuild and is not compatible with this v4.x (Tkinter) app. It is not included in this release because it can't run without the v5 code, which isn't ready yet. UI Studio and v5 will arrive in a later follow-up. You cannot use UI Studio to re-theme or edit this v4.x app — but once it ships, you'll be able to use it to design for v5 or build your own custom ParaKit from source.
See docs/ROADMAP.md for the v5 / UI Studio / GPU-build plan.
NOTE: The screenshots show "MIDI Unsupported" that is just because they were not loaded in a supported browser yet, I took the screenshots in Firefox before I had fixed the MIDI config, see below for details, although Chrome and Edge work best for MIDI inputs
| Folder / file | What it is |
|---|---|
ParaKit v4.0.py |
The full ParaKit v4.x app (single file) |
Run ParaKit v4.0.bat |
Windows double-click launcher |
requirements.txt |
Python dependencies for the main app |
parakit_drum_model.onnx |
Neural drum-detection model loaded by the ML / Hybrid Audio → MIDI engines |
parakit_separators/ |
Neural drum-stem separator plug-ins (Jarredou MDX23C) for the Audio → MIDI detection pipeline |
rlrr_parse.py |
The .rlrr parsing core, shared by the app's MIDI Extractor and extractor/ |
extractor/ |
RLRR Extractor — converts .rlrr charts back into .mid MIDI (readme) |
Practice Window v3 - Web Edition/ |
Practice Mode v3 — Web Edition — combined rebuild: v2's falling-note play + a built-in Kit Studio + song-library loading; the in-progress successor, offered alongside v2 (see the section below) |
Practice Window v2 - Web Edition/ |
Practice Mode v2 — Web Edition — self-contained browser rebuild of the falling-note practice game; offered alongside v3 so you can compare (see the section below) |
Preview Track v2 - Web Edition/ |
Preview Track v2 — Web Edition — falling-note review + live Edit Mode for catching & fixing chart issues (see the section below) |
Detection Research Notes - Web Edition/ |
Detection Research Notes — Web Edition — offline research hub (one HTML): how detection works + the published literature and hands-on testing behind it (see the section below) |
practice_v2/ |
Practice Window v2 (Python) — standalone falling-note practice mini-game (alpha, readme) |
docs/ |
Building from source, troubleshooting, roadmap |
LICENSE |
GNU GPL v3 |
Practice v1 vs v2: the stable Practice mode is v1, built into the main app.
practice_v2/is an in-development alpha — included so you can build on it. See its readme.
Looking for the web-based Practice & Preview tools? They live further down this page ↓ — the falling-note Practice editions (v2 / v3, with Kit Studio) and the Preview review/edit tool, with screenshots. Everything in between is the main desktop app.
- MIDI editor — visual note placement and refinement
- Audio → MIDI detection — automatic drum transcription with three engines: Spectral (traditional), ML / ONNX (neural net), and Hybrid (combined), plus genre presets (Pop / Rock / Metal / Funk)
- Stem splitter — isolate a drums-only track from any song (Demucs)
- MusicXML → MIDI — convert sheet music into a chart
- YouTube → FLAC — download lossless audio to chart from YouTube
- Asset management — metadata, album art, preview clips
- Preview & Practice — falling notes synced to the audio, keyboard or USB MIDI kit
- Song Tester — verify sync before export
- Export — Paradiddle (
.rlrr) and Clone Hero (.chart)
The automatic difficulty reduction — the Easy / Medium / Hard versions ParaKit builds from your full chart — was rebuilt. The old version dropped the kick and toms entirely on Easy and Medium, so those charts were missing whole parts of the kit. It now keeps a thinned-down kick and tom line the way real charts do, matches the note density of human-made difficulties much more closely, and keeps the strongest beats first (downbeats before off-beats). Expert charts are unchanged. Instrument variants (alternate kicks/snares, china/splash cymbals) that used to vanish on lower difficulties are kept now too. Validated against the human-made Easy/Medium/Hard charts for 100+ Paradiddle songs.
Heads-up / caveats:
- Hard comes out closest to human charts, Medium is good, and Easy is the roughest tier.
- On the most heavily-thinned lanes — especially the Easy kick and toms, where a human keeps only a handful of notes — the reduction keeps the right lanes at about the right density, but which exact notes it keeps won't always match a human's feel (there are many equally-valid ways to thin an Easy chart).
- Reduced charts run slightly busier than a human's (a bit more kept than dropped).
- As always, give a reduced chart a quick once-over in the MIDI Editor — it's a strong starting point, not a finished hand-made difficulty.
ParaKit was quietly dropping hi-hats it had actually detected. In Hybrid mode a hit is normally "confirmed" by the spectral engine — but spectral detects almost no hi-hats, so every hat had to clear a stricter confidence bar on its own, and softer / faster hats (intros, fast hat patterns) were being thrown out. v4.5.1-1 retunes that hi-hat confidence gate so the real hits survive — hi-hat only; kick, snare, crash, ride and toms are untouched. It was validated on the final chart (after the cleanup pass, the way it actually runs) two ways: a 60-song set scored against human charts, and 14 fresh songs across genres scored against the audio itself.
📊 Click to expand — corpus result (60 songs, final chart vs human charts)
| hi-hat | precision | recall | F-measure |
|---|---|---|---|
| before (v4.5.0-1) | 0.73 | 0.63 | 0.68 |
| after (v4.5.1-1) | 0.63 | 0.81 | 0.71 |
Recall +0.17, F +0.03. Every other drum lane held effectively unchanged (kick, snare, ride and toms identical; crash within 0.005) — the change is isolated to the hi-hat lane. Scored against human charts that under-chart hi-hats, so the real-world recovery is larger than the F number alone shows.
🎚️ Click to expand — cross-genre check (14 fresh songs, vs the audio)
| genre | songs | hi-hat F change |
|---|---|---|
| pop | 2 | +0.13 |
| pop-rock | 1 | +0.17 |
| pop / R&B | 1 | +0.11 |
| R&B | 1 | +0.10 |
| rock | 2 | +0.08 |
| metalcore | 2 | +0.05 |
| metal | 1 | +0.14 |
| funk | 1 | +0.10 |
| electronic | 2 | +0.18 |
| indie-pop | 1 | +0.08 |
Every one of the 14 fresh songs improved — including the cymbal-heavy metalcore tracks, the worst case for false hi-hats — with no false-hat blowups on any genre. Scored against an audio-derived hi-hat reference, so these are relative/directional, not absolute accuracy.
Full methodology and the experiments that didn't pan out live in the research hub below.
Curious how ParaKit turns audio into a drum chart, or want to build on the detection work yourself? This is a self-contained, offline research hub (one HTML file, dark/light mode, three reports in tabs) documenting the detection-cleanup research behind the app — published drum-transcription literature paired with hands-on testing on real songs, with sources listed, and the experiments that didn't work kept in.
▶ Open it: download Detection Research Notes - Web Edition/parakit-detection-research.html and open it in any browser — no internet needed. It's included when you clone the repo.
ParaKit targets Python 3.12 specifically. Get it from
python.org (check "Add to PATH" / use the py launcher).
py -3.12 -m pip install -r requirements.txt
(See requirements.txt — note the Stem Splitter pulls in demucs + torch, a large
~2–3 GB download you can skip if you won't split stems.)
ParaKit shells out to several tools that are not Python packages:
- FFmpeg (
ffmpeg/ffplay/ffprobe) — audio conversion /pydub - yt-dlp (+ deno, its JS signature runtime) — YouTube → FLAC downloads
- ADB (+
AdbWinApi.dll,AdbWinUsbApi.dll) — "push to Quest" / device transfer
These are distributed separately as the Requirements.zip bundle (≈174 MB — too large to
include in the Git repo). Download it here → Requirements.zip (LimeWire)
I have also uploaded the Jarredou model alongside the Reqs on the LimeWire page since the original repo for it is down. There are mirrors on HuggingFace but I don't wanna force people to dig thru the giant repo + read thru the 600+ page report.
Extract it, then place the files next to ParaKit v4.0.py, or keep them in the included
Requirements\ subfolder beside it. They're kept out of the Git tree on purpose — large
binaries with their own licenses, well over GitHub's per-file size limit. Leave yt-dlp's
auto-update on so it stays current with YouTube changes.
py -3.12 "ParaKit v4.0.py"
…or just double-click Run ParaKit v4.0.bat.
- Stem Splitter — isolate drums from the backing track
- Audio → MIDI — transcribe the drums-only stem to MIDI
- MIDI editor — clean up and refine the chart
- Preview / Practice — watch it as falling notes
- Song Tester — confirm sync
- Assets — set metadata, album art, preview clip
- Export — Paradiddle
.rlrror Clone Hero.chart
The Practice and Preview web editions are not meant to replace Paradiddle — or any other rhythm game you play your charts on. They're authoring & QA tools. The whole point is to make charting easier: to spot and fix errors fast, and to confirm a chart "feels" right to actually play — as quickly and effortlessly as possible — before it goes into the real game. Catch the snare that's a hair early, the crash that should be a ride, the part that just doesn't groove; fix it, and verify the fix, in seconds. And they stay deeply customizable (Kit Studio, lane layouts, note shapes/sizes, palettes, and more), so there's room for more abstract methods and full freedom of approach.
Two editions are available — v2 and the new v3 — on purpose. v3 is a from-scratch combined rebuild: the falling-note play plus a full Kit Studio and a polished, everything-up-front home. Both are kept up because I'm still deciding which parts of each I like best and what should be folded together or trimmed — so try both and use whichever you prefer. Your feedback helps shape the single best version that eventually folds back into the main ParaKit desktop app in v5.
🎹 USB-MIDI needs the right browser. These editions run in any modern browser, but direct USB drum-kit input uses the Web MIDI API, which isn't supported everywhere. Playing on your keyboard works in every browser — only the MIDI-kit input depends on this:
TL;DR — for a USB drum kit, open the page in Chrome or Edge. Keyboard play works in every browser. Full per-platform breakdown (from MDN's requestMIDIAccess data):
| Platform | Browser | USB-MIDI input | Since |
|---|---|---|---|
| 🖥️ Desktop | Chrome | ✅ Yes | v43 |
| 🖥️ Desktop | Edge | ✅ Yes | v79 |
| 🖥️ Desktop | Opera (& Chromium: Brave, etc.) | ✅ Yes | v30 |
| 🖥️ Desktop | Firefox | v108 | |
| 🖥️ Desktop | Safari | ❌ No * | — |
| 📱 Mobile | Chrome for Android | ✅ Yes | v43 |
| 📱 Mobile | Opera for Android | ✅ Yes | v30 |
| 📱 Mobile | Samsung Internet | ✅ Yes | v4 |
| 📱 Mobile | Android WebView | ✅ Yes | v43 |
| 📱 Mobile | Firefox for Android | ❌ No | — |
| 📱 Mobile | Safari on iOS | ❌ No * | — |
| 📱 Mobile | WebView on iOS | ❌ No * | — |
| ⚙️ Other | Node.js | ❌ No | — |
* See implementation notes. The asterisked rows carry caveats in MDN's data — some otherwise-unsupported or limited cases can be enabled with extra configuration (a permission prompt, a browser flag, or a polyfill). Firefox works since v108 but MDN still flags the whole API "not Baseline." Sources: MDN — Web MIDI API › Browser compatibility · caniuse.
📸 Source screenshots (MDN — for reference)
Source: MDN Web Docs — Web MIDI API › Browser compatibility.
Kit Studio is the built in customization studio that lets you customize your experience to your liking, change the orders of lanes, change note sizes and shapes, and much more.*
A from-scratch rebuild that folds the falling-note play experience together with a full Kit Studio and a polished home. It does everything v2 does — notes down 8 lanes, keyboard + USB-MIDI play, latency calibration, a results screen with a timing histogram — and adds:
- 🥁 Kit Studio (the headline) — rearrange the lanes, set each lane's color / shape / width, add aux lanes, lefty-flip the whole kit, save kit presets, pin a kit to a song. Edit it live mid-song or from the home.
- A polished Song / Setup / Input home — every option up front: your songs folder (a searchable library of
.rlrrpackages) or a single-chart load, the play toggles + fall-time / note-size sliders, and your MIDI device + key bindings shown inline. - Native
.rlrr— point it at a Paradiddle songs folder and play any chart, or load a single.rlrr(+ optional audio; a synth fills in if there's none). - In-play live-settings dock (toggle with H), loop A/B, speed control, on-screen pads, accessible colorblind-safe palettes, and per-song calibration.
▶ Try it: download Practice Window v3 - Web Edition/parakit-practice-v3.html and open it in any modern browser (Chrome or Edge for USB-MIDI).
The falling-note Practice experience, rebuilt from scratch as a fast, self-contained web app — a big step up from the in-app mini-game and the practice_v2/ alpha. Notes fall down 8 lanes in time with the music while you play along on a USB MIDI drum kit or your keyboard.
- Rock-solid timing — a sample-accurate Web Audio clock, no drift.
- One file, zero setup — open it in any modern browser; includes a built-in demo plus a synth that makes any chart audible even with no audio file.
- Latency calibration, mid-song mix/stem switching, touch support, a results screen with a timing histogram, and full keyboard + MIDI play.
- Loading your own song — the built-in demo + synth play by default, so a track is always there the moment you open it. To practice your own: click Choose MIDI or Choose .rlrr to load a chart, and Full Mix / Drum Stem to load the audio (no audio file? the chart is synthesized so it's still audible).
▶ Try it: download Practice Window v2 - Web Edition/parakit-practice.html and open it in any modern browser (Chrome or Edge for USB-MIDI).
Both v2 and v3 are complete and ready to play today. A single, best-of-both native (
.py) version folded back into the app is planned for a later release.
Watch your drum chart fall in time with the music — then fix what's wrong without ever leaving the view. Preview Track is the review half of ParaKit's Preview/Practice tab, rebuilt as a fast, self-contained web app. Notes scroll down 8 lanes synced to the audio so you can catch detection problems — a snare a hair early, a crash that should've been a ride, a doubled hit — and the headline of v2: a live Edit Mode that lets you fix them right there on the falling chart, then resume. The see-it → fix-it loop, closed, with no tab switch.
🎹 USB-MIDI here needs Chrome or Edge too. Like the Practice editions, MIDI-kit input uses the Web MIDI API — supported in Chrome / Edge / Chromium browsers, not in Safari, and limited in Firefox. Keyboard play works in every browser; see the browser-support table under Practice Mode above, or MDN's compatibility list.
- ✎ Edit Mode (press
E) — pause and the subdivision grid becomes a precise ruler. Click an empty spot to place a note (snapped to the grid); drag a note vertically to move it in time, horizontally to reclassify its lane — drag a wrong-drum note onto the right one; one gesture, two fixes. Right-click deletes (hold & sweep = eraser); wheel scrubs, Ctrl+wheel zooms the fall window;Ctrl+Z/Ctrl+Yundo/redo. - Tap-along charting — keys
1–8drop a note at the hit line, even during playback, so you can play along and tap in missing notes. ● Record captures live keyboard/MIDI hits with an optional Count-in + Metronome. - Review controls — Speed 0.5×–1.25× (slow a busy passage down to inspect it), Fall time, Grid (1/4–1/32) + Snap, 🥁 Pads for mouse/touch, ⇪ Receive a chart from the MIDI editor, MIDI in for a USB kit, and built-in demo charts.
- Hide notes past the hit line — a toggle in Preview Settings (off by default) that hides notes once they cross the hit line / playhead, so only upcoming notes stay on screen — cleaner for precise timing analysis.
- Loading your own song — the built-in demo + synth play by default, so a track is always there without loading anything. To review your own: click Mix / Drums / Stems to load an audio file (full mix or an isolated stem), and ⇪ Import to load a chart (
parakit-chart-v1JSON/MIDI); ⇪ Export saves your edits back out. Charts round-trip with the MIDI editor and Practice v2.
▶ Try it: download Preview Track v2 - Web Edition/parakit-preview.html and open it in any modern browser (Chrome or Edge for USB-MIDI).
The stem splitter uses GPU acceleration on NVIDIA GTX 10-series through RTX 50-series.
As of v4.4.58-12, ParaKit detects your GPU's architecture and uses CUDA whenever your
installed PyTorch supports it — including RTX 50-series (Blackwell — 5070/5080/5090),
which needs a CUDA 12.8+ (cu128) PyTorch build. If your PyTorch doesn't include your
GPU's architecture, the split log reports which architectures it does support, and the app
falls back to CPU (still works, just slower). AMD / Intel GPUs are CPU-only too (Demucs
needs CUDA).
A working GPU fix exists (CUDA 12.8 / cu128 PyTorch + a save-path tweak) — see
docs/TROUBLESHOOTING.md. We're also preparing a separate,
creator-verified RTX 50-series build with GPU acceleration configured out of the box,
to ship as a follow-up. The CPU fallback always stays in the code regardless — the point is
that the feature works on every machine, even if a bit slower.
Because this is the full source, you can add features, remove them, rearrange the UI, or
make your own personal ParaKit. See docs/BUILDING.md for running from
source and compiling a standalone .exe.
| Version | Summary |
|---|---|
| v4.5.4-1 2026-06-25 |
|
| v4.5.3.1-1 2026-06-25 |
|
| v4.5.3-1 2026-06-23 |
|
| v4.5.2-1 2026-06-20 |
|
| v4.5.1-1 2026-06-20 |
|
| v4.5.0-1 2026-06-18 |
|
| v4.4.69-1 2026-06-17 |
|
| v4.4.68-1 2026-06-17 |
|
| v4.4.67-1 2026-06-17 |
|
| v4.4.66-1 2026-06-16 |
|
| v4.4.65-1 2026-06-16 |
|
| v4.4.64.1-1 2026-06-16 |
|
| v4.4.64-1 2026-06-16 |
|
| v4.4.63-1 2026-06-16 |
|
| v4.4.62-1 2026-06-16 |
|
| v4.4.61-1 2026-06-15 |
|
| Preview Track v2 (Web) 2026-06-14 |
Export now writes a real .midi file (format-0 SMF) instead of the internal JSON, so exported charts open in any DAW / notation tool and round-trip with the MIDI editor. Import still accepts .json, .mid / .midi, and .rlrr. |
| Practice Mode v3 (Web) 2026-06-12 |
|
| Preview Track v2 (Web) 2026-06-12 |
Hide notes past the hit line — a new Preview Settings toggle (off by default) that hides notes once they cross the hit line, for cleaner timing analysis. |
| v4.4.60-12 | MIDI Editor — alternate hi-hat notes import correctly. Hi-hat hits on alternate MIDI notes (21/22/23/26, used by some electronic kits) now import into the Hi-Hat lane and export to Clone Hero instead of being dropped (standard 42/44/46 already worked). |
| v4.4.59-12 | MIDI Editor — Velocity Lane colored by drum. Each velocity bar is drawn in its drum's lane color (Hi-Hat cyan, Snare red, Kick pink, toms blue/green/purple, Crash orange, Ride yellow) to match the piano roll; selected bars stay white. |
| v4.4.58-12 | RTX 50-series (Blackwell) GPU acceleration for the Stem Splitter. ParaKit detects whether your PyTorch was built for your GPU (sm_120) and uses CUDA when it is, instead of always falling back to CPU. 50-series needs a CUDA 12.8+ (cu128) PyTorch build; the split log reports which architectures yours supports. (Also fixes RTX 40-series cards that were wrongly on CPU.) |
| v4.4.57.99-10 | Initial public source release (GPLv3). |
ParaKit is released under the GNU General Public License v3.0 (see LICENSE).
In short: you're free to use, study, modify, and share it — but if you distribute a modified
version, you must also make your source available under the same license. This keeps ParaKit
and everything built from it free and open.
Bundled third-party tools (FFmpeg, yt-dlp, ADB) and Python dependencies each carry their own licenses.
ParaKit — free forever, no ads.
























