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.
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.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.
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.
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.
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 key | MIDI | Slot and articulation | Your kit piece | v7 uses |
|---|---|---|---|---|
| C3 | 36 | slot 0, artic 0 | Mapleworks Custom Kick Wood, Hit | 156 |
| D3 | 38 | slot 1, artic 0 | Canopus Bronze Piccolo Snare, Hit | 132 |
| D#3 | 39 | slot 3, artic 2 | Gretsch Purple Floor Tom 1, Rim | 0 |
| E3 | 40 | slot 1, artic 3 | Canopus Bronze Piccolo Snare, Rim | 6 |
| F#3 | 42 | slot 2, artic 8 | Paiste 2002 Hihat, ClosedT | 97 |
| G3 | 43 | slot 3, artic 0 | Gretsch Purple Floor Tom 1, Hit | 15 |
| G#3 | 44 | slot 2, artic 7 | Paiste 2002 Hihat, QuarterS | 63 |
| A3 | 45 | slot 4, artic 0 | DW Mardi Gras Sparkle Mid Tom 1, Hit | 10 |
| A#3 | 46 | slot 2, artic 0 | Paiste 2002 Hihat, OpenT | 38 |
| B3 | 47 | slot 4, artic 2 | DW Mardi Gras Sparkle Mid Tom 1, Rim | 0 |
| C4 | 48 | slot 5, artic 0 | DW Mardi Gras Sparkle High Tom 1, Hit | 8 |
| C#4 | 49 | slot 6, artic 0 | Zildjian A-Custom Rezo Crash, Hit | 0 |
| D4 | 50 | slot 5, artic 2 | DW Mardi Gras Sparkle High Tom 1, Rim | 0 |
| D#4 | 51 | slot 8, artic 3 | Zildjian A Rock Ride, Bow | 49 |
| A4 | 57 | slot 7, artic 0 | Paiste Signature Power Crash, Hit | 0 |
| A#4 | 58 | slot 3, artic 3 | Gretsch Purple Floor Tom 1, Rim Click | 0 |
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 key | MIDI | Now plays | Slot, artic | Copied from | v7 uses |
|---|---|---|---|---|---|
| F4 | 53 | Ride bell | slot 8, artic 1 | General Midi note 53, BFD 3.0 ride note 71 | 17 |
| E4 | 52 | Ride edge | slot 8, artic 2 | BFD 3.0 ride note 50 | 0 |
| C#3 | 37 | Snare cross / side stick | slot 1, artic 4 | General Midi note 37 | 0 |
| F3 | 41 | Hi-hat foot (pedal chick) | slot 2, artic 5 | General Midi note 44 | 0 |
| F#4 | 54 | Crash 1 choke | slot 6, artic 8000 | BFD 3.0 note 75 | 0 |
| G4 | 55 | Crash 2 choke | slot 7, artic 8000 | BFD 3.0 note 80 | 0 |
| G#4 | 56 | Ride choke | slot 8, artic 8000 | BFD 3.0 note 87 | 0 |
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.
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.
| Added | Count | Measured from | Rule |
|---|---|---|---|
| Cymbal split | 229 reclassified | cymbals.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 graces | 37 | snare.wav | A second snare strike 18 to 50 ms from one of your hits, at under 62% of its peak |
| Hi-hat | 29 | hihat.wav | Onsets above half the lane median that the cymbal transcription missed by more than 50 ms |
| Ghost notes | 23 | snare.wav | Onsets between 5.5% and 80% of the snare median, more than 75 ms from any transcribed hit |
| Toms | 6 | toms.wav | Must beat both the snare and the kick lane at that instant, so bleed cannot pass. High, mid or floor by spectral centroid |
| Tom fills | 7 fills, 37 notes | your own hits | Spaced 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 |
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:
| Lane | RMS | Peak | Crest | Below 200 Hz | 8 to 16 kHz | Verdict |
|---|---|---|---|---|---|---|
| kick | 0.00684 | 0.138 | 20.2 | 0.902 | 0.002 | real |
| snare | 0.01562 | 0.463 | 29.7 | 0.293 | 0.020 | real |
| toms | 0.00065 | 0.029 | 44.3 | 0.466 | 0.021 | real, quiet |
| hihat | 0.00048 | 0.020 | 40.8 | 0.011 | 0.370 | real, air-dominant |
| cymbals | 0.00214 | 0.038 | 17.9 | 0.011 | 0.115 | real |
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.
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.
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.