perf09, band practice 18 July 2026

perf09 drums v7, your cymbal fix plus the ride bell

v7 starts from your own v6 pass, the one that moved the cymbal work onto the ride, and puts the ride-bell accents back on top. 574 of the 591 notes are byte for byte your v6. The only change is 17 ride hits now voiced as the bell.

574notes identical to your v6
17ride hits voiced as bell
0notes moved in time
7empty keys filled in the map
0notes on an unmapped key
93.83 slength, take is 93.8
What v7 is. You made a v6 that fixed the cymbals by moving them onto the ride. v7 is that file, untouched, with the ride bell added back: the loudest 17 ride hits in the heavy section (53 to 77 s) are voiced as bell, everything else is your v6 exactly. The bell key comes from your map, perf09 bc3 plus bell.bfd3map, note 53, slot 8 artic 1. The v5 read of the cymbals, with the split into crashes and hats, is kept in the superseded/ folder next to the load file.

The two things that were wrong in v3

Bug 1

88 notes hit keys your kit does not have

v3 put the floor tom on 41 and a ride bell on 53. Neither key exists in your map, so 50 floor toms and 38 bell hits triggered nothing. Those carried the intro, the build, the drop and the four pedal bars, which is why most of it read as wrong.

Bug 2

It was written on a grid that chased the guitar

v3 was composed on a beat grid tracked bar by bar, drifting between 116 and 167 BPM instantaneously, and it snapped kicks to the guitar's low-E attacks. On a strummed or fast-picked passage that grid follows the picking, so the kick and snare rush. That is time breaking to match an implied strum.

What v4 does instead

Your three stem MIDIs are the skeleton. Their ticks are never touched. Nothing anywhere in the part is placed from a guitar onset, and there is no tempo grid in the build at all. Measured after the fact, the 132 added notes sit a median of 223 ms from the nearest guitar onset.

Hear it

v7

Guitar, bass and your cymbal fix with the ride bell

v7

Drums alone, your ride mix plus 17 bells

v5

The earlier read, cymbals split into crash and hat

These renders use a synthesised kit written for this page so the part can be judged without loading a session. The MIDI is the deliverable, and it is built for BFD3. The synth bell here is only a stand-in, on your kit it plays the Zildjian A Rock Ride bell.

Your kit map, verified

Read from /Volumes/T7 Shield/BFD Drums/BFD3/Maps/Alesis Nitro bc3.bfd3map and cross-checked slot by slot against your Key Map screenshots. All sixteen agree, which fixes the octave question: BFD3 displays C3 as MIDI note 36. The seven rows in green were empty and are now filled.

BFD3 keyMIDISlot and articulationYour kit piecev7 uses
C336slot 0, artic 0Mapleworks Custom Kick Wood, Hit156
D338slot 1, artic 0Canopus Bronze Piccolo Snare, Hit132
D#339slot 3, artic 2Gretsch Purple Floor Tom 1, Rim0
E340slot 1, artic 3Canopus Bronze Piccolo Snare, Rim6
F#342slot 2, artic 8Paiste 2002 Hihat, ClosedT97
G343slot 3, artic 0Gretsch Purple Floor Tom 1, Hit15
G#344slot 2, artic 7Paiste 2002 Hihat, QuarterS63
A345slot 4, artic 0DW Mardi Gras Sparkle Mid Tom 1, Hit10
A#346slot 2, artic 0Paiste 2002 Hihat, OpenT38
B347slot 4, artic 2DW Mardi Gras Sparkle Mid Tom 1, Rim0
C448slot 5, artic 0DW Mardi Gras Sparkle High Tom 1, Hit8
C#449slot 6, artic 0Zildjian A-Custom Rezo Crash, Hit0
D450slot 5, artic 2DW Mardi Gras Sparkle High Tom 1, Rim0
D#451slot 8, artic 3Zildjian A Rock Ride, Bow49
A457slot 7, artic 0Paiste Signature Power Crash, Hit0
A#458slot 3, artic 3Gretsch Purple Floor Tom 1, Rim Click0

The seven empty keys, now filled

Each value below is copied verbatim from a shipped BFD3 map, your own bc3, the built-in BFD 3.0 default, or the built-in General Midi map. No articulation index is guessed. The new map is perf09 bc3 plus bell.bfd3map, a new file that leaves your bc3 map untouched.

BFD3 keyMIDINow playsSlot, articCopied fromv7 uses
F453Ride bellslot 8, artic 1General Midi note 53, BFD 3.0 ride note 7117
E452Ride edgeslot 8, artic 2BFD 3.0 ride note 500
C#337Snare cross / side stickslot 1, artic 4General Midi note 370
F341Hi-hat foot (pedal chick)slot 2, artic 5General Midi note 440
F#454Crash 1 chokeslot 6, artic 8000BFD 3.0 note 750
G455Crash 2 chokeslot 7, artic 8000BFD 3.0 note 800
G#456Ride chokeslot 8, artic 8000BFD 3.0 note 870

Only the bell is used in the part, since that is what you asked for. The other six are available on your kit the moment you load the map, an edge for a ride wash, a cross-stick for the quiet verses, a foot chick, and three chokes for cutting a crash or the ride off short.

How the bell was placed

The bell is an accent, so it goes on the loud ride hits. In the heavy ride section (bars 28 to 47, which is 48.4 to 83.2 seconds on the beat grid tracked from MIDI kick.mid, MIDI snare [2026-07-23 174311].mid and MIDI cymbals [2026-07-23 174806].mid, the same grid the form table above is built from), the ride onsets whose cymbal-lane peak sits in the top quarter, or that land on a bar's downbeat and are not soft, are voiced as bell. In v7 that is 17 bells across 53 to 77 seconds, picked from the 57 ride hits your v6 has in that window. Every bell note number is 53 in the delivered .mid, and every one sits on a ride hit that was already in your v6, so the bell never adds a note in time, it only changes the sound of a hit you already played. The remaining 49 ride hits stay on the bow.

What was added, and where it came from

AddedCountMeasured fromRule
Cymbal split229 reclassifiedcymbals.wav decay, brightness and peak at each of your onsets Long ring plus a top-3% peak plus space after it reads as a crash. Mid-focused and loud inside the heavy stretch reads as ride. Air-dominant and ringing reads as an open hat.
Flam graces37snare.wavA second snare strike 18 to 50 ms from one of your hits, at under 62% of its peak
Hi-hat29hihat.wavOnsets above half the lane median that the cymbal transcription missed by more than 50 ms
Ghost notes23snare.wavOnsets between 5.5% and 80% of the snare median, more than 75 ms from any transcribed hit
Toms6toms.wavMust beat both the snare and the kick lane at that instant, so bleed cannot pass. High, mid or floor by spectral centroid
Tom fills7 fills, 37 notesyour own hitsSpaced by the local median gap between your hits, and the last note of every fill lands on one of your hits at the section boundary

How it was measured

Every audio number on this page comes from a run of build_v4.py over the perf09_v4 stems using librosa 0.11.0, soundfile and numpy, on ~/venvs/audio_midi_311/bin/python3. Onsets: librosa.stft(n_fft=1024, hop_length=256) into librosa.onset.onset_strength into librosa.util.peak_pick. Band energies and decay ratios: numpy.fft.rfft over a Hann window at the onset (attack 0 to 80 ms) and after it (sustain 300 to 900 ms). Spectral centroid for tom pitch is the first moment of the same rfft. Peak amplitude for velocity is numpy.abs(...).max() over a 50 ms window in the lane. MIDI read and written with mido at 96 ticks per beat.

Lane reality gate first, so no number rests on a hallucinated stem:

LaneRMSPeakCrestBelow 200 Hz8 to 16 kHzVerdict
kick0.006840.13820.20.9020.002real
snare0.015620.46329.70.2930.020real
toms0.000650.02944.30.4660.021real, quiet
hihat0.000480.02040.80.0110.370real, air-dominant
cymbals0.002140.03817.90.0110.115real

The toms lane is 24 times quieter than the snare, which is why a tom has to beat both the snare and the kick lane at the same instant before it is written. Six passed.

The cymbal split

This split is the earlier v5 read of the cymbals, kept here for the record. Your v6 pass folded the crashes and the split hats onto the ride instead, and v7 follows your v6. The bell placement above runs on v6's ride hits, not on this split.

Across your 229 cymbal onsets the v5 read was: 97 closed hat, 63 quarter-open hat, 38 open hat, 51 ride, 9 crash. The loud onsets cluster between 53 and 78 seconds with peaks five to ten times the median, and their energy sits in the 2 to 6 kHz band rather than above 8 kHz. That is a ride being hit hard through the heavy section, with crashes where the ring is long and the next hit is more than 0.65 s away.

Verification

Files

Load folder: ~/Projects/_outputs/perf09-drums/LOAD THESE perf09 drums/

perf09 drums v7 (cymbals fixed + bell).mid — the deliverable, your v6 with the bell added

perf09 bc3 plus bell.bfd3map — your map with every empty key filled. Also dropped into /Volumes/T7 Shield/BFD Drums/BFD3/Maps/ so it shows in the BFD3 Map chooser

READ ME.txt — the five load steps

superseded/ — the earlier v5 and v6, kept, not deleted

Renders in ~/Projects/_outputs/perf09-drums/

perf09 preview v7 (guitar + bass + drums).wav, perf09 drums v7 SOLO.wav

To load the map: in BFD3, Key Map tab, Tools, Load Map from file, pick perf09 bc3 plus bell. Then drag the v7 MIDI onto the track at 120 BPM.

Sources: MIDI kick.mid, MIDI snare [2026-07-23 174311].mid, MIDI cymbals [2026-07-23 174806].mid, the perf09_v4 kick, snare, toms, hihat, cymbals, guitar and bass stems, and Alesis Nitro bc3.bfd3map. Every count computed from those files on 2026-07-23. Companion: perf09 bass, the moving floor.