Launchpad Drum Machine

Custom Teensy/Arduino interface to allow sample playback controlled by standard MIDI controller (2022)

Launchpad Drum Machine on a table

Watch the build video here!

Overview

The original goal of this project was simple; Repurpose a Launchpad MK2 MIDI controller into a standalone drum machine. I had recently obtained a Launchpad Pro and wanted to find something to do with my old Launchpad MK2. The primary idea was to develop a standalone drum machine that could be used in conjunction with other synthesizers to perform an impromptu live performance.

Features

  • 8-sample simultaneous editing and playback
  • Stereo sound
  • .WAV sample loading
  • Two-bar operation
  • Analog sync

When loading files: Filenames MUST be short (<8 characters I believe), ALL CAPS, and the file must be encoded in 16-bit WAV. if it doesn't work, try importing and exporting from Audacity.

If the Launchpad is desynced from the clock source, pressing the volume button in the top-right corner will nudge the launchpad by 100ms, which seems to fix the sync issue most of the time. I believe this issue is caused by the digital read operation seeing different parts of the analog sync wave going high, but I didn't bother to fix this.

I had gotten the drum machine to work enough that I could use it for a small jam, and I realized that I just didn't particularly enjoy this kind of live music making. I could get similar results using Reason (my digital audio workstation of choice), but with the added benefits of more sonic options and the ability to better mix and master my tracks at the end. For this reason, I ended up ceasing development of this project to focus on other things.

Code can be found here

Parts

  • Teensy 4.1
  • Teensy Audio Shield
  • Novation Launchpad MK2
  • USB Host cable
  • A synth or other device with analog sync to clock to (I used Nanoloop)

Known Bugs

  • Pressing any button on the right side of the launchpad except volume causes a crash
  • Random crashes I was unable to solve (loose USB port or brownouts seemed likely cause)