🏷️ Centralized Tag Manager

Single source of truth for ALL tags and UI filters

6 Tag Collections
45 Total Tags
6 UI Filter Sections

🎛️ Live UI Filter Preview

These are the filters that appear on the Videos page, dynamically generated from the centralized system:

BOOK SECTION

All Videos Solos #1-#5 Solos #6-#10 Named Pieces

PART TYPE

Part 1 Part 2 Standalone Duet

VIDEO TYPE

With Counting Practice Tempo Performance Tempo

TEMPO RANGE

40-50 BPM 60-70 BPM 80-90 BPM 100+ BPM

RUDIMENT FAMILY

Rolls Paradiddles Flams Drags Ratamacues Strokes

SPECIFIC RUDIMENT

5 Stroke Roll 6 Stroke Roll 7 Stroke Roll 9 Stroke Roll 13 Stroke Roll 17 Stroke Roll Paradiddle Double Paradiddle Paradiddle-diddle Triple Paradiddle Flam Flam Accent Flam Drag Flam Paradiddle Flam Tap Flamacue Drag Drag Paradiddle #1 Drag Paradiddle #2 Single Drag Single Drag Tap Single Dragadiddle Single Ratamacue Double Ratamacue Single Stroke 4 Single Stroke 7 Swiss Army Triplet Lesson 25

📚 Tag Collections

Edit tags in src/data/tag-system.js - changes automatically update the UI

bookSections

4 tags
all-videos All Videos
solos-1-5 Solos #1-#5
solos-6-10 Solos #6-#10
named-pieces Named Pieces

partTypes

4 tags
part-1 Part 1 part 1
First part of multi-part pieces
part-2 Part 2 part 2
Second part of multi-part pieces
standalone Standalone standalone
Single-part pieces
duet Duet duet
Videos with part 1 and part 2 in the same video

videoTypes

3 tags
with-counting With Counting with counting
Slow tempo with counting overlay
practice-tempo Practice Tempo practice tempo
At slower practice tempo
performance-tempo Performance Tempo performance tempo
At target performance tempo (includes blueprint demos)

tempoRanges

4 tags
40-50 40-50 BPM 40-50
Slowest tempo range
BPM Range: 40 - 50
60-70 60-70 BPM 60-70
Medium-slow tempo range
BPM Range: 60 - 70
80-90 80-90 BPM 80-90
Medium-fast tempo range
BPM Range: 80 - 90
100+ 100+ BPM 100+
Fastest tempo range
BPM Range: 100 - ∞

rudimentFamilies

6 tags
rolls Rolls rolls
Roll family rudiments
Rudiments: 5 Stroke Roll, 6 Stroke Roll, 7 Stroke Roll ... +8 more
paradiddles Paradiddles paradiddles
Paradiddle family rudiments
Rudiments: Paradiddle, Paradiddle-diddle, Double Paradiddle ... +2 more
flams Flams flams
Flam family rudiments
Rudiments: Flam, Flam Accent, Flam Drag ... +5 more
drags Drags drags
Drag family rudiments
Rudiments: Drag, Drag Paradiddle #1, Drag Paradiddle #2 ... +5 more
ratamacues Ratamacues ratamacues
Ratamacue family rudiments
Rudiments: Single Ratamacue, Double Ratamacue, Triple Ratamacue
strokes Strokes strokes
Single stroke family rudiments
Rudiments: Single Stroke 4, Single Stroke 7, Single Stroke Roll ... +1 more

specificRudiments

28 tags
5-stroke-roll 5 Stroke Roll 5 Stroke Roll
6-stroke-roll 6 Stroke Roll 6 Stroke Roll
7-stroke-roll 7 Stroke Roll 7 Stroke Roll
9-stroke-roll 9 Stroke Roll 9 Stroke Roll
13-stroke-roll 13 Stroke Roll 13 Stroke Roll
17-stroke-roll 17 Stroke Roll 17 Stroke Roll
paradiddle Paradiddle Paradiddle
double-paradiddle Double Paradiddle Double Paradiddle
paradiddle-diddle Paradiddle-diddle Paradiddle-diddle
triple-paradiddle Triple Paradiddle Triple Paradiddle
flam Flam Flam
flam-accent Flam Accent Flam Accent
flam-drag Flam Drag Flam Drag
flam-paradiddle Flam Paradiddle Flam Paradiddle
flam-tap Flam Tap Flam Tap
flamacue Flamacue Flamacue
drag Drag Drag
drag-paradiddle-1 Drag Paradiddle #1 Drag Paradiddle #1
drag-paradiddle-2 Drag Paradiddle #2 Drag Paradiddle #2
single-drag Single Drag Single Drag
single-drag-tap Single Drag Tap Single Drag Tap
single-dragadiddle Single Dragadiddle Single Dragadiddle
single-ratamacue Single Ratamacue Single Ratamacue
double-ratamacue Double Ratamacue Double Ratamacue
single-stroke-4 Single Stroke 4 Single Stroke 4
single-stroke-7 Single Stroke 7 Single Stroke 7
swiss-army-triplet Swiss Army Triplet Swiss Army Triplet
lesson-25 Lesson 25 Lesson 25

🛠️ Tag Helper Functions

Available helper functions for tag management and auto-generation:

getTagCollection(collectionName)

Get all tags for a specific collection

getUILabels(collectionName)

Get UI labels for generating filter buttons

getAllTagValues()

Get all possible tag values for validation

findTagByValue(tagValue)

Find tag information by its value

getTempoRangeTag(bpm)

Auto-generate tempo range tag from BPM

getMeterTag(meter)

Auto-generate meter tag from meter field

⚡ System Status

✅ Centralized System Active

All tags managed from tag-system.js

✅ UI Dynamically Generated

Filter buttons auto-generated from centralized tags

✅ No Hardcoded Tags

All UI filters pull from single source of truth