DRUM TO MIDI · TESTED ON 3 DRUM KITS · UPDATED 2026-10-20
Drum to MIDI Converter: Turn a Drum Recording Into MIDI
To convert drums to MIDI, a drum transcriber finds the moment of every hit, decides which drum it was, and writes General MIDI drum notes on channel 10: 36 for kick, 38 for snare, 42 for closed hi-hat. The converter below does this in your browser, with no upload. Use a drum loop or stem, not a full song.
Convert a drum recording to MIDI in your browser
Choose a drum loop or drum stem (MP3, WAV, OGG, FLAC or M4A, up to 10 minutes). The tool finds each hit and writes kick (note 36), snare (38) and closed hi-hat (42) on MIDI channel 10, the General MIDI drum channel. Everything runs on this device; the audio is never uploaded.
Raise it if quiet hits (ghost notes) are missing; lower it if you get extra hits.
Only sets the grid your DAW shows; hit times stay where they were played.
| Drum | MIDI note | Hits | First hit |
|---|
How it works: onset detection in three frequency bands plus a spectral-shape check for each hit (our own code, MIT licence: drum-to-midi.js). Toms, cymbals other than the hi-hat, and drums mixed under bass or guitar are not separated; see the test results below.
Published 2026-10-20. Every accuracy number on this page comes from our own test on 2026-10-20: drum clips we programmed ourselves, so the exact hits are known, rendered with three different drum kits and run through the converter above. The clips, results and scripts are linked so you can check them.
How does drum to MIDI conversion work?
Drum to MIDI conversion works in two steps: find the hits, then name the drum. A hit is a sudden rise in energy, so the converter watches three frequency bands, where a kick (30–120 Hz), a snare (150–1,000 Hz) and a hi-hat (7–16 kHz) put most of their attack. When a band jumps, it checks the shape of the sound just after the jump: a kick has much more low end than midrange, a snare has a strong midrange and less top, a hi-hat is mostly high frequencies. Each confirmed hit becomes a short note on MIDI channel 10, with a velocity that follows how hard it was hit.
That is different from normal audio to MIDI conversion, which looks for steady pitches and harmonics. A drum hit has no steady pitch, so a melody converter mostly ignores it (see the test below).
How accurate is drum to MIDI? Our test on 3 drum kits
On our 7 drum clips the converter found 79 of 83 kicks, 58 of 58 snares and 184 of 184 hi-hats with the FluidR3 kit, and saving the same audio as a 128 kbps MP3 changed almost nothing (81 kicks, 58 snares, 184 hats). A hit counts as found when a note of the right drum starts within 50 ms of it; each found note is used once.
How we tested: we wrote 7 drum patterns as MIDI files (338 hits, 90–140 BPM, all on channel 10), rendered each one with FluidSynth 2.4.4 through three General MIDI drum kits, and ran the converter's detector (the same file the page loads) on the 44.1 kHz audio. Because the patterns are ours, we know the exact time of every hit and can count what was found, missed and added.
| Drum kit the clips were rendered with | Kick (83) | Snare (58) | Hi-hat (184) |
|---|---|---|---|
| FluidR3_GM (148 MB SoundFont) | 79/83 found, 0 extra | 58/58 found, 12 extra | 184/184 found, 6 extra |
| TimGM6mb (6 MB, the sounds our in-browser player uses) | 83/83 found, 1 extra | 54/58 found, 12 extra | 180/184 found, 28 extra |
| MuseScore General Lite | 67/83 found, 0 extra | 55/58 found, 12 extra | 184/184 found, 3 extra |
| FluidR3_GM, saved as 128 kbps MP3 | 81/83 found, 0 extra | 58/58 found, 12 extra | 184/184 found, 8 extra |
Per clip, so you can see where it fails. Each cell shows FluidR3 · TimGM6mb · MuseScore General Lite as found/true, with extra notes in brackets:
| Clip | BPM | What is in it | Kick | Snare | Hi-hat |
|---|---|---|---|---|---|
| 1-rock-beat | 100 | 8th-note hats, kick on 1 and 3, snare on 2 and 4 | 8/8 · 8/8 · 8/8 | 8/8 · 8/8 · 8/8 | 32/32 · 32/32 · 32/32 |
| 2-kick-snare-only | 90 | syncopated kick and snare, no cymbals | 12/12 · 12/12 · 12/12 | 8/8 · 8/8 · 8/8 | — · +8 extra · — |
| 3-sixteenth-hats | 120 | 16th-note hats with accents | 12/12 · 12/12 · 12/12 | 8/8 · 8/8 · 8/8 | 64/64 · 64/64 · 64/64 |
| 4-hats-only | 100 | hats only, open hat on the "and" of 4 | — · — · — | — · — · — | 32/32 (+1) · 28/32 · 32/32 |
| 5-tom-fill | 110 | 3 bars of beat, then a 16th-note fill on 3 toms and snare, crash | 7/7 · 7/7 · 7/7 | 10/10 (+12) · 10/10 (+12) · 10/10 (+12) | 24/24 (+4) · 24/24 (+4) · 24/24 (+3) |
| 6-ghost-notes | 95 | backbeat at velocity 110 plus ghost snares at velocity 35 | 12/12 · 12/12 (+1) · 12/12 | 20/20 · 20/20 · 20/20 | 32/32 · 32/32 (+12) · 32/32 |
| 7-double-kick | 140 | 16th-note double kick | 28/32 · 32/32 · 16/32 | 4/4 · 0/4 · 1/4 | +1 extra · +4 extra · — |
- Timing: the median timing error was 1.1–7.3 ms per clip and drum, well inside a 16th note at 140 BPM (107 ms).
- Fast double kick is the weak spot: at 140 BPM 16ths the kick was found 28/32 times with FluidR3 and 32/32 with TimGM6mb, but only 16/32 with MuseScore General Lite, whose kick rings into the next hit. The snares in that clip were also missed with two of the kits.
- Toms come out as snare: 12 of the 12 tom hits in the fill were written as extra snare notes, because toms sit in the same frequency range.
- Honest limit of this test: the detector's thresholds were set while testing on FluidR3 and TimGM6mb, so those two results are partly training results; MuseScore General Lite was only tested after, but its drums are close to FluidR3. Real recorded drums with room sound and bleed will score lower. All clips are programmed General MIDI drums.
Can you transcribe drums from a full song?
Only partly: with bass guitar and piano playing over the same beat, the converter still found every snare and hi-hat, but the bass covered kicks. We added a bass line and piano chords to the rock beat (clip 8-beat-with-bass-and-piano, listen) and ran it again:
| Drum kit | Kick · snare · hi-hat |
|---|---|
| FluidR3_GM (148 MB SoundFont) | 4/8 · 8/8 (+2) · 32/32 |
| TimGM6mb (6 MB, the sounds our in-browser player uses) | 8/8 · 8/8 · 32/32 |
| MuseScore General Lite | 5/8 · 8/8 · 32/32 |
For a song, split out the drum stem first with a stem separation tool, then convert the stem; the kick then no longer competes with the bass.
Why does a normal audio to MIDI converter miss drums?
A normal audio to MIDI converter looks for pitched notes, so drums mostly disappear. We ran the same 7 FluidR3 clips through this site's regular converter (the Basic Pitch model that runs on the MP3 to MIDI converter): it returned 26 notes for 338 hits, 3 clips gave no notes at all, only 11 notes started within 50 ms of a real hit, and every note was a pitched note (MIDI 30, 33, 36, 56, 71), mostly from the ringing tail of toms, crash and kick.
| Clip | Real hits | Regular converter notes | Pitches it wrote | Drum converter notes |
|---|---|---|---|---|
| 1-rock-beat | 48 | 2 | 56 | 48 |
| 2-kick-snare-only | 20 | 0 | — | 20 |
| 3-sixteenth-hats | 84 | 0 | — | 84 |
| 4-hats-only | 32 | 8 | 71 | 33 |
| 5-tom-fill | 54 | 7 | 36 | 57 |
| 6-ghost-notes | 64 | 0 | — | 64 |
| 7-double-kick | 36 | 9 | 30, 33, 36 | 33 |
So for drums, use the drum converter on this page; for a melody, bass line or chords, use the regular converter.
Does drum to MIDI keep ghost notes and accents?
Yes, as velocity: every ghost snare in our test was found and written softer than the accented backbeat with all three kits. The clip plays accents at velocity 110 and ghost notes at 35; the converter does not copy the original velocity number, it measures how strong each hit is, so the scale is relative.
| Drum kit | Ghost snares (played at 35) | Accented snares (played at 110) |
|---|---|---|
| FluidR3_GM (148 MB SoundFont) | 12 of 12: velocity 50–60 | 8 of 8: velocity 102–127 |
| TimGM6mb (6 MB, the sounds our in-browser player uses) | 12 of 12: velocity 61–69 | 8 of 8: velocity 84–127 |
| MuseScore General Lite | 12 of 12: velocity 52–63 | 8 of 8: velocity 104–127 |
What MIDI notes do drums use?
In General MIDI, all drums are on MIDI channel 10, and the note number chooses the drum sound rather than a pitch. These are the numbers you will see most often in drum MIDI files, from the General MIDI Level 1 percussion map:
| Note | Drum | Note | Drum |
|---|---|---|---|
| 35 | Acoustic Bass Drum | 45 | Low Tom |
| 36 | Bass Drum 1 (kick) | 46 | Open Hi-Hat |
| 37 | Side Stick | 47 | Low-Mid Tom |
| 38 | Acoustic Snare | 48 | Hi-Mid Tom |
| 39 | Hand Clap | 49 | Crash Cymbal 1 |
| 40 | Electric Snare | 50 | High Tom |
| 41 | Low Floor Tom | 51 | Ride Cymbal 1 |
| 42 | Closed Hi-Hat | 53 | Ride Bell |
| 43 | High Floor Tom | 55 | Splash Cymbal |
| 44 | Pedal Hi-Hat | 57 | Crash Cymbal 2 |
Some drum plugins use their own map. If the kick plays as the wrong sound, change the plugin to a General MIDI map or move the notes.
Free drum MIDI files to download
The 8 drum MIDI files from our test are free to download and use in your own music; we programmed them for this page. Each one is a short General MIDI groove on channel 10, with an MP3 of the FluidR3 render (128 kbps) so you can hear it first. The test is also repeatable: drop an MP3 into the converter above and compare its MIDI with ours.
| File | BPM | Hits | Groove | Download |
|---|---|---|---|---|
| 1-rock-beat | 100 | 48 | 8th-note hats, kick on 1 and 3, snare on 2 and 4 | MIDI · MP3 |
| 2-kick-snare-only | 90 | 20 | syncopated kick and snare, no cymbals | MIDI · MP3 |
| 3-sixteenth-hats | 120 | 84 | 16th-note hats with accents | MIDI · MP3 |
| 4-hats-only | 100 | 32 | hats only, open hat on the "and" of 4 | MIDI · MP3 |
| 5-tom-fill | 110 | 54 | 3 bars of beat, then a 16th-note fill on 3 toms and snare, crash | MIDI · MP3 |
| 6-ghost-notes | 95 | 64 | backbeat at velocity 110 plus ghost snares at velocity 35 | MIDI · MP3 |
| 7-double-kick | 140 | 36 | 16th-note double kick | MIDI · MP3 |
| 8-beat-with-bass-and-piano | 100 | 48 drum hits + bass and piano | clip 1 with a bass line (program 33) and piano chords | MIDI · MP3 |
Test files: ground-truth.json (every hit), results.json (all scores), gen.py and gen_mix.py (make the clips), score.js (scoring, Node.js), drum-to-midi.js (the detector).
How do I get a better drum transcription?
- Use drums only. A drum stem or a solo drum loop gives the best result; bass and guitar cover kicks and snares.
- Adjust sensitivity once. If quiet ghost notes are missing, raise it; if cymbal wash turns into extra hi-hats, lower it, then convert again.
- Set the tempo. Enter the song's BPM so the MIDI lines up with your DAW's bars and beats. The hits keep their real timing; quantize in the DAW if you want a strict grid.
- Fix toms and cymbals by hand. Move tom hits from note 38 to 45, 47 or 50 and crashes from 42 to 49.
- Check the result by ear. Use the listen button to hear the MIDI next to your recording before you export.
When should you not use this converter?
- When you need toms, ride and crash on their own notes: it writes only kick, snare and closed hi-hat.
- For a full mix you cannot separate: expect missing kicks, as in the mixed-clip test.
- For drum notation: the MIDI can be opened in a notation program, but this page does not draw a drum score.
- For pitched instruments: use the MP3 to MIDI converter, piano to MIDI or guitar to MIDI.
Frequently asked questions
Can I convert drums to MIDI for free?
Yes. The converter at the top of this page turns a drum recording (MP3, WAV and other formats your browser can decode) into a MIDI file with kick, snare and hi-hat notes on the General MIDI drum channel, free and without uploading the file. It found 99% of the kick, snare and hi-hat hits in our FluidR3 test clips.
Why does my audio to MIDI converter not detect drums?
Most audio to MIDI converters, ours included, are built to find pitched notes, not drum hits. On our 7 drum clips (338 hits) the site's normal converter returned 26 notes, 3 clips gave none at all, and the notes came out as pitched notes (MIDI 30, 33, 36, 56, 71) rather than kick, snare and hi-hat.
What MIDI notes are kick, snare and hi-hat?
In General MIDI, drums play on channel 10 and the note number picks the drum: 36 is Bass Drum 1 (kick), 38 Acoustic Snare and 42 Closed Hi-Hat; 46 is Open Hi-Hat and 49 Crash Cymbal 1. The converter writes 36, 38 and 42, so the file plays as drums in any GM player or drum sampler.
Can it transcribe drums from a full song?
Only partly. In our mixed clip with bass and piano, the snare (8 of 8) and hi-hat (32 of 32) were found with every kit, but the bass covered half of the kicks with FluidR3 (4 of 8). Separate the drum stem first with a stem-splitting tool, then convert the stem.
Does it detect toms and cymbals?
No. Toms are written as snare (in our fill test 12 tom hits became extra snare notes) and crashes and rides are not separated from the hi-hat. Move those notes to the right drum in your DAW after converting.
Does drum to MIDI keep ghost notes and accents?
Yes, as velocity. In our ghost-note clip every ghost snare was found and written with a lower velocity than the accented backbeat, so the MIDI keeps the dynamics. Raise the sensitivity slider if very quiet hits are missing.
Is my drum recording uploaded?
No. The file is decoded and analysed by JavaScript in your browser tab, and the MIDI file is created on your device; nothing is sent to a server. The detector source is linked under the converter.
Sources and tools
- MIDI Association, General MIDI Level 1 specification (RP-003): percussion on channel 10 and the percussion key map.
- FluidSynth 2.4.4 (render), FluidR3_GM, TimGM6mb and MuseScore General Lite SoundFonts (drum sounds for the test clips).
- Spotify Basic Pitch, the model behind this site's regular converter (used in the comparison test).
Related: audio to MIDI converter · WAV to MIDI · MIDI to MP3 and WAV · MIDI converter