Beat Boi is a 4-track sample based drum machine with a euclidean sequencer, curated selection of samples, and some tweakable lo-fi effects, build with a Teensy 4.1 Microcontroller.
The interface uses rules of 4: 4 encoders to interact with the 4 tracks, and 4 mechanical keys that select different control modalities for the encoders.
This approach to different “pages” of encoders is a common design scheme among digital synthesizers that allows for many different controllable parameters in a small form factor, while still (ideally) allowing the user to build up muscle memory with the hardware.
A minimal UI is implemented with an 8x16 led matrix, providing just enough visual feedback to get comfortable with the controls, without distracting from the musical interactions.
Hardware Design
The project was designed backwards - I knew up front I wanted 4 tracks, 4+ control states, and some minimal visual feedback, so I found hardware that would let me do that and provide flexibility without knowing up front how the UX would work.
I procured 4 encoders and 4 mechanical keys, each driven by a “feather” board / I2S interface.
A fifth, “master” encoder, and an 8x16 LED matrix, also on feather boards, live on the top half of the devices.
The i2S interface allow all the control componenets to be daisy-chained via STEMMA i2s cables. This saved a lot of time soldering invidual input components.

Originally the project was running on the Arduino Uno, using the Mozzi audio library. Samples were converted into integer arrays and loaded directly into the program memory along with the application.
Audio was output using a PWM pin directly, without any proper digital to analog conversion.
The combination of low fi samples, PWM audio out, and permeating electrical noise sounded predictably awful, although this stage was primarily to prototype and make sure I could get a sequencer running.
Once the premise of sequencing audio was verified, I switched to a Teensy 4.1, another microcontroller with substantially more processing power, and a robust audio library I could use for sample playback and DSP.
I fabricated a a cardboard fingerjoint box to serve as a basic prototyping enclosure, and allow me to start designing the UX.

I also installed a PCM5102A I2S dac for proper analog conversion.
Enclosure

For the enclosure, I chose laser-cut acrylic. I chose this over 3D printing for a few reasons:
- Vastly faster iteration time, which proved very necessary
- Only needed a simple box shape
- 3D prints have rough quality that makes the object feel like a prototype, even if relatively polished, while acrylic owns up to its “DIY” feel
- Transparent acrylic gets us that Y2K gameboy color retro future vibe
The enclosure was designed in rhino (above). I did a number of test prints to dial in overall dimension and tolerances.
In order to give the mechanical keys a comfortable inset position, I added a standoff with an acrylic plate and stacks of laser-cut washers:

The acrylic panels were glued together, which is not ideal as the box still feels creaky and a bit fragile.
Audio

The sample playback and dsp was build with Teensy Audio Library, which features a number of modules that allow for creating custom signal paths.
The 4 sample tracks are mixed, and fed into two effects passes - a filter/bitcrusher pass, and a reverb pass - before being mixed down and output to the dac.
Features and Interface
The interface represents each control modality and parameter through glyphs that change appearance based on input. They are not meant to give precise values, but rather be a memorable impression of what that control is doing, so the user can build a map of the controls over time by using the machine.
The 4 keys can be pressed to access 7 pages of functionality for the encoders.The functions roughly follow the signal path under the hood:
Sequencer
Each of the four tracks has 16 steps, represented on the first four rows of the 16x8 matrix. An active step is lit. The encoders control a cursor, and pushing the encoder adds or removes a step from the sequence.
The master encoder changes the tempo.
Euclidean Steps
On this page, the four encoders change the sequence length of each track, from 1 to 16 steps. The master encoder changes to total length of the sequence, after which all tracks are reset so musical patterns can emerge.
Euclidian sequencing allows the track patterns to “phase” over eachother, creating more complex beats that last longer than the limited 16 steps.
Sample
Each track can play one of 16 samples. The master encoder changes all samples at once to quickly change the vibe of the beat.
Tune
Encoders set the playback rate of each sample, and the master encoder pitches all samples, which is a fun tool for rising or falling effects.
BitCrush
This pages features a 24db/oct ladder filter, fed into a bit crusher. The encoders control frequency and resonance of the filter, and the bit rate and sample rate of the sound.
Bit crush creates a crunchy lo fi distortion, which lends itself to a chiptune aesthetic.
Filtering before a bitcrusher creates a classic vocal effect - although this would benefit from some kind of modulation.
Reverb
This page controls the size / decay of the reverb, as well as damping, which removes high frequencies from the reverb’s feedback loop.
For all effects the master encoder controls the dry-wet mix for that page of effects.
Mix
This page is a simple four track mixer, with master volume on the master encoder. The GUI also features visual feedback for the volume of each track.
Feedback and Next Steps
The development and fabrication process for this project went remarkably smoothly, with each component working as expected. That said, it filled every second of available time - so I don’t think I would change the process except to leave myself more time for potential setbacks on a more complex project.
For the enclosure - the glued acrylic is creaky and does not feel very polished. Given time, I would 3D print corner pieces that hold the 6 sides together, and have an m2 or m3 screw driven through the entire case. This way, the entire project could be assembled and disassembled without glue, and the constinuous pressure from the screws would minimize creakyness.
A few more software features and polish elements would let me feel the software experience is complete:
- A delay effect, (crucial for a drum machine!) which was cut due to time
- Some kind of side chain ducking on the effects mix to allow the kick drum to come through even when the effects pushed to extremes
- Master EQ and compressor
- A randomizer for track patterns for instant gratification
- Presets which can be saved and recalled after powercycling the unit