Cherry Blossom Valley Drum Spike

Every drum hit, on the first sample.

Drum Spike finds every hit in your close-mic drum tracks, puts each one on the first sample of its attack, and exports MIDI and spike files that trigger on time.

Free and open source Apache-2.0 source code macOS, Apple silicon and Intel

Latest release · signed and notarized by Apple · release notes and checksums

Which one? Apple menu › About This Mac: "Chip: Apple M…" is Apple silicon, "Processor: Intel" is Intel.

A level threshold fires late; Drum Spike marks the first motion level threshold first sample
rose: where Drum Spike puts the hitgrey: where a level threshold fires1 ms = 48 samples at 48 kHz

What Drum Spike does

Three steps from your recording to triggers that fire on time.

Finds the real hits

Drum Spike listens to each close mic for its own drum only. It checks which mic heard a hit first and how the hit sounds: a kick in the snare mic is bleed, not a snare hit.

Places them on the first sample

Each hit moves to the first motion of its attack. A soft ghost note and a loud backbeat get the same point.

Exports MIDI and spike files

Per track, on your session's time. Spike type Audio writes a short piece of the track's own audio at each hit: the body of the hit, not a click.

Explainer 5, "The body of the hit": what the Audio spike holds and why.
Why it matters

One millisecond is audible.

A trigger that fires one millisecond late against the close mic cuts holes into the sound at 500 Hz, 1.5 kHz and 2.5 kHz, right where a snare has its body and crack. Level-based transient detection fires late on soft hits and early on loud ones, and it fires on bleed.

Drum Spike puts every hit on the first motion of its attack, soft or loud.

48
samples in one millisecond at 48 kHz
34 cm
sound travels in one millisecond
500 Hz
first notch of a 1 ms delay
Explainer 1, "Why one millisecond matters": a snare plus its copy, 1 ms late, then the delay moves to zero.
Explainer 3, "How Drum Spike hears a hit": the spectrogram and the spectral flux find the hits, the gates drop the bleed.
Explainer 4, "Finding the first sample": the threshold and the walk back, sample by sample.
How it works

The spectrum finds the hits. The waveform gives the sample.

Drum Spike watches each close mic for a sudden rise of energy in its drum's own frequency bands, and keeps a hit only when it sounds like that drum.

Then Drum Spike walks back from the attack's peak, sample by sample, to the first motion of the attack. The threshold sits 33 dB under the peak and stays over the noise before the hit.

The result is the start of the attack, not the moment a level is crossed.

Learn it in four steps

Step 1 does the whole job. The other steps are there when you need them.

  1. 1

    Get the hits

    Add your drum tracks, let Drum Spike find the hits, export MIDI and spike files.

    the whole job Guide: part 1
  2. 2

    Check and fix

    Listen, zoom in, and correct a hit by hand. The app shows the doubtful hits first.

    when a hit is wrong Guide: part 2
  3. 3

    Let the app do more

    Bleed rules keep the other drums out, flams become two hits, and tempo, followers and layers run on their own.

    for difficult sessions Guide: part 3
  4. 4

    Automate it

    Run Drum Spike from scripts or AI agents with its command line and MCP server. Detector plug-ins add their own detectors; Drum Spike asks for a plug-in's licence before first use. Guide: detector plug-ins

    for power users Guide: part 4

Each step has a short guide. Read the guides

The Drum Spike editor: the Inspector on the left, kick, snare and tom close mics with their detected hits as spikes above each waveform, and the tempo, meter and bar rulers on top.
The editor: one lane per close mic, every detected hit as a spike above the waveform, the Inspector for the selected track.
Explainer 8, "From waveform to velocity": how hard each hit was played.
Open source

Built in the open. Read it, build it, improve it.

Drum Spike is free. Its source code is on GitHub under the Apache License 2.0.

A Rust core for the detection and the sample-exact placement, a Tauri desktop app, a headless CLI and an MCP server.

# on an Apple silicon Mac with Xcode tools, Rust and Node
git clone https://github.com/Cherry-Blossom-Valley/drumspike
cd drumspike
apps/desktop/scripts/build-dmg.sh
# for Intel, add: --arch x86_64

Check how it works

The detection, the threshold and the walk back are in the code, with tests. No black box between your tracks and your triggers.

Your audio stays on your Mac

No account, no upload, no tracking. The analysis runs locally.

Make it better

Report a session that trips it up, propose a fix, or add a kit preset. Pull requests are welcome.