Project

Drum Extractor

Drop in a song and get the drums on their own, at half speed if you need it, with the sheet music following along.

Drum Extractor’s mixer with the demo riff loaded: bass, drums, guitars and master faders with mute and solo, the transport with its speed setting, an A-B loop and a strip of detected hits, and the engraved drum chart beneath
4stems, the parts each song is split into
50%speed, with the pitch kept
PDF · MIDI · GP5export formats (PDF needs MuseScore; MIDI is the note-⁠by-⁠note format music software reads; GP5 is Guitar Pro’s)

In motion

Drop a song in and watch it come apart into stems.
The chart lights the current measure as the song goes.

Why I built it

Learning a song on drums means hearing the kit on its own, slowing the hard part down, looping one fill until it sits and reading a chart. I was doing that with four different tools, so I built one.

What it does

Demucs, the open-source state of the art in source separation, splits the song into stems, each on a mixer fader with mute and solo. The drum stem is transcribed to MIDI and engraved as sheet music, and bass and guitar get tabs too.

The groove chart Drum Extractor engraved for the demo riff: two lines of hi-hat, snare and kick at 117 beats per minute, with the accents marked
The demo riff’s groove, as the app engraved it.

What I decided

  • Everything runs locally. Your audio never leaves your machine, and there’s no account.
  • Go through MIDI on the way to the chart. A MIDI transcription can be edited elsewhere and engraved again, not locked inside one picture.
  • Print the caveats in the product. High-gain rhythm guitar is about the hardest signal to transcribe, so those tabs are labeled a first sketch.
  • Ship a demo with no copyrighted recording in it. Its four-chord riff is synthesized by a script, so anyone can run the whole pipeline.

Try it

The install steps are on GitHub: a one-line install for macOS and Linux and a double-click installer for Windows. With no graphics card, separation takes roughly as long as the track.