C:\PROJECTS\LITTLE-BREAKCORE-BUDDY.EXE _X
🚧 PoC — still tinkering 🚧
idle drummer sprite drummer hitting a snare drummer hitting a crash cymbal

LITTLE BREAKCORE
BUDDY

A drum-break onset analyzer and a little animated drummer that watches your amen breaks (or anything else you throw at it) and reacts in real time — as a desktop app, and as a VST3 plugin that lives right on your FL Studio channel.


Demo

🔶demo1.mp4 _X
MediaPlaybackAudioVideoTools
🔊 00:00 / 00:00

desktop app — onset detection + editing

  • look at me haphazardly (rehirable)

vocals removed

🔶demo2.mp4 _X
MediaPlaybackAudioVideoTools
🔊 00:00 / 00:00

exported animated video (MP4)

  • db_amen_2019 (drexgod)

vocals removed

🔶demo3.mp4 _X
MediaPlaybackAudioVideoTools
🔊 00:00 / 00:00

VST3 plugin — live in FL Studio

  • impacto (enjambre)
  • Buddy Holly (Weezer)
  • Bad Piggies Theme (Ilmari Hakkola)
  • look at me haphazardly (rehirable)
  • db_amen_2019 (drexgod)

vocals removed, drums chopped, guitars hardcore'd

Installation

DESKTOP APP (WINDOWS EXE, NO PYTHON NEEDED)

  1. Download AmenAnalyzer.exe from the Releases page (or build it yourself, see below).
  2. Put it in a folder next to the WAV file(s) you want to analyze.
  3. Open a terminal in that folder and run it, pointing at your audio:
    AmenAnalyzer.exe "drums_only.wav" "full_song.wav"
    (the second file is optional — omit it to use one file for everything)

DESKTOP APP (FROM SOURCE)

  1. Clone the repo and install dependencies:
    git clone https://github.com/JadonKJones/little-breakcore-buddy.git
    cd little-breakcore-buddy/amen_analyzer
    pip install -r requirements.txt
  2. Run it directly with Python:
    python main.py "drums_only.wav" "full_song.wav"
  3. (Optional) Build your own standalone exe with PyInstaller:
    pyinstaller --noconfirm --name AmenAnalyzer --add-data "../animation frames;animation frames" main.py

VST3 PLUGIN (DRUMMER) — FL STUDIO

  1. Download Drummer.vst3 from the Releases page (or build it yourself, see below).
  2. Close FL Studio if it's open, then copy the Drummer.vst3 folder into your system VST3 folder (from an elevated/Admin PowerShell):
    Copy-Item -Recurse -Force "Drummer.vst3" "C:\Program Files\Common Files\VST3\"
  3. Open FL Studio → Options → Manage Plugins → Find Plugins to rescan, then drop "Drummer" onto a mixer channel like you would Fruity Dance, and hit play.

VST3 PLUGIN (BUILD FROM SOURCE)

  1. Prerequisites: Visual Studio 2022 (with the "Desktop development with C++" workload) and CMake installed.
  2. Clone the repo and configure the build (this also fetches JUCE automatically — first run takes a few minutes):
    cd little-breakcore-buddy/amen_plugin
    cmake -B build -G "Visual Studio 17 2022" -A x64
  3. Build it:
    cmake --build build --config Release
  4. The built plugin lands at build\AmenDrummer_artefacts\Release\VST3\Drummer.vst3 — copy it into your VST3 folder as in step 2 above.

The Analyzer (Desktop App)

What it isA Python/Pygame desktop tool that loads a WAV, splits it into kick/snare/cymbal onset bands, and lets you scrub, zoom, and manually correct the detection before exporting.
StackPython, librosa, numpy, scipy, pygame-ce
Packaged asStandalone .exe via PyInstaller — no Python install required to run it

WAVEFORM + PLAYBACK

Zoomable, scrollable waveform view with a real playhead, so a 2-minute break isn't just an unreadable smear at full zoom-out.

3-BAND ONSET DETECTION

Kick, snare, and cymbal are each detected in their own frequency band instead of one shared envelope — otherwise cymbals drown out everything else.

CLICK-TO-CORRECT EDITING

Click a marker to select it, K/S/C to relabel, Delete to remove, click empty space to add one. Full undo/redo history.

EXPORT EVERYTHING

Save/load the analysis as JSON, export as CSV, or render the whole animated drummer reacting to the track — synced with audio — as an MP4 via ffmpeg.

The Plugin (Drummer VST3)

What it isThe same idea, but live — drop it on a channel like you would Fruity Dance, hit play, and the drummer reacts to the audio passing through in real time.
StackC++, JUCE 7 (VST3), CMake
StatusWorking proof of conceptPoC
Known issuesDrum rolls (rapid repeated hits, especially kicks) don't always animate correctly yet — actively being worked on.

REAL-TIME 3-BAND ONSETS

Same kick/low, snare/mid, cymbal/high split as the analyzer, running as independent envelope-follower detectors per audio block instead of an offline pass.

LIVE SPRITE ANIMATION

The same drummer state machine as the desktop app, ported to C++ — idle timeout, snare cycling, crash pairs chosen by whatever came before, kick as a quick overlay instead of its own pose.

SELF-CONTAINED

All animation frames are embedded directly into the plugin binary at build time — no external files to ship alongside it.

How It Works

Both versions share the same core idea, split into three layers:

  • Detection — the incoming audio is filtered into three frequency bands (kick ~20-150Hz, snare ~150-4000Hz, cymbal 4000Hz+), and each band gets its own onset detector so a loud hi-hat doesn't drown out a quiet kick.
  • State machine — each detected hit feeds a small state machine that tracks the current pose, how long it's been idle, and what came before it (so repeats cycle through frames, and a kick briefly overlays whatever's already playing instead of interrupting it).
  • Render — the desktop app draws this to a Pygame window (or renders it frame-by-frame into an MP4 with ffmpeg); the plugin draws it straight into its JUCE editor, live, synced to whatever's coming through the channel.

Tech Stack

DESKTOP APP

Pythonlibrosa numpyscipy pygame-cePyInstaller

VST3 PLUGIN

C++17JUCE 7 CMakeVST3 SDK

SIGNAL PROCESSING

Onset DetectionBand-pass Filtering Envelope FollowingSpectral Analysis

Controls in the desktop app: SPACE play/pause · KSC relabel · CTRL+Z undo · CTRL+V export video