Skip to content

Repository files navigation

feedBack-plugin-drum-school

Progressive drum lessons for feedBack: twelve short (1–2 minute) play-along tracks that teach core drum skills from a first steady beat to a full mini-song, with per-drummer progress tracking for the whole household.

Heritage note: this repository previously carried a fork of the Slopsmith core app. The platform has been renamed and now lives at got-feedback/feedBack; this repo was repurposed to hold just the Drum School plugin (the old history is preserved in git). The plugin runs on feedBack and on pre-rename Slopsmith installs.

Install

Clone into your feedBack plugins directory — the directory name must equal the plugin id:

cd /path/to/feedback/plugins       # or your SLOPSMITH_PLUGINS_DIR
git clone https://github.com/mikey0000/slopsmith drum_school

Restart (or hot-reload plugins), open the new Drum School nav entry, and hit Install lessons — the plugin generates its twelve lesson tracks into DLC_DIR/tutorials-builtin/drum-school-v1/ (the host's hidden-exercise convention: playable, but kept out of the library grid). Requires ffmpeg on the server, which the Docker image and desktop builds always have.

What it does

  • Generates its own content. A stdlib drum synthesizer (drumsynth.py) renders a guide track per lesson, and lessons.py expands compact 16-step pattern grids into feedpaks: a modern drum_tab.json chart (full drum vocabulary — ghosts, flams, open/closed hats, cymbal chokes) plus a fallback arrangement that maps the kit onto the stock six-lane highway (kick / snare / hats / toms / crashes / ride), so lessons play out of the box. Directories use the .feedpak suffix on feedBack and fall back to .sloppak on older hosts automatically.

  • Curriculum with progression points. Five levels — Foundations, Grooves, Toms & Fills, Independence & Dynamics, Advanced. Each lesson steps up one idea per named section (hats only → hats+snare → full beat), and each run ends with a rating: pass a lesson (≥1 star) to unlock the next. A parent-mode "unlock everything" toggle lives in Settings → Drum School.

  • Household profiles. The platform has no user accounts, so Drum School keeps named progress tracks server-side (CONFIG_DIR/drum_school/), shared by every browser and tablet in the house. Add one per kid and one for yourself. Friendly progress separation — not an auth boundary.

  • E-kit ready. With feedBack-plugin-drums installed you get the lane-based drum highway plus USB-MIDI input (Alesis and other GM-compatible kits plug straight in) with hit scoring. Scoring plugins can pre-fill the post-lesson rating by emitting

    window.feedBack.emit('drum_school:score', { accuracy: 87.5 }); // 0–100

    before the song ends (≥75 % suggests 2 stars, ≥92 % suggests 3).

Curriculum

# Lesson Level Teaches
01 Keeping Time Foundations steady pulse, alternating hands
02 Boom & Crack Foundations kick technique, backbeat
03 The Money Beat Foundations the classic rock beat, limb coordination
04 Kick It Around Grooves kick variations
05 Open Up Grooves open hi-hat accents
06 Four on the Floor Grooves dance beat, endurance
07 Around the Kit Toms & Fills tom control
08 First Fills Toms & Fills 4-bar phrases, fills, crash landings
09 Ghosts & Accents Independence & Dynamics dynamics, ghost notes
10 Ride the Wave Independence & Dynamics ride/bell, syncopated kick
11 Sixteenth Sense Advanced 16th notes, two-handed hats, flams
12 Graduation Groove Advanced song form, half-time, cymbal chokes

Regenerate the pack outside the server (development):

python lessons.py /path/to/out [ffmpeg] [.feedpak|.sloppak]

API

  • GET /api/plugins/drum_school/status — curriculum + install state
  • POST /api/plugins/drum_school/install — (re)build the lesson pack
  • GET/POST /api/plugins/drum_school/profiles — profiles + progress (create / select / delete / record / reset_all)

Development

pip install pyyaml pytest
pytest

Tests build lessons against a stub ffmpeg, so no audio tooling is needed.

License

AGPL-3.0-only, same as feedBack core.

About

Self-hosted Docker web app for browsing, playing & practicing interactive full-band music notation, with an extensive plugin system

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages