Raspberry Pi Music Sequencer

Low-cost and low-latency drum machine

1 January 2017


  • Music Technology

This project came out as a result of an internship with Arturia, a company specialized in the development of music software and hardware. I am currently in charge of developing open software for using the Raspberry Pi (and other development boards, like the BeagleBone + Bela) as an electronic musical instrument together with the Beatstep Pro (a MIDI sequencer) and other Arturia products. Programmed with Pure Data by Santiago Rentería and Miguel Moreno. See the demo videos below.

How does it work?

A set of samples is loaded to an SD card togheter with de Pure Data patch cointaining the sequencer. The Raspberry Pi (running Debian and connected to a DAC via I2C) is configured to launch the patch at startup on headless mode. Because the system should work in realtime I had to kill all unnecessary services consuming extra memory. Once the Beatstep Pro is conencted via USB to the Raspberry Pi MIDI communication is established and you can start playing. New samples can be added by uploading them to an USB drive in real time (or directly to the SD). Effect presets can be saved and shared. The system has a playback latency of 5 ms. Currently I am translating the code to run it on C++ in the Bela platform where latency is < 2 milliseconds.

Test screen for checking if the patch is receiving input MIDI data from the Beatstep Pro.

Programming blocks for each of the 16 samples of the sequencer/drumachine.

ctlin objects route control MIDI messages coming from Beatstep Pro knobs. Playback speed, start and end times of each sample can be configured.

You can apply effects (Filters, Bitcrusher, Delay, etc.) to each sample individually.

Santiago Rentería

Computer scientist and audio engineer working at the intersection of artificial intelligence and biology.
Interests: Artificial Intelligence, Cognitive Science, Music and Philosophy.