Beat Friend: Teensy 4.1-based analogue drum machine

ihatemornings

Active member
Earlier this year I finally launched a drum machine that I’ve been working on for a few years. It’s all based around a Teensy 4.1, and I learned a LOT from this forum along the way. I haven’t open sourced the code, but might do in the future when I’ve had a chance to tidy it up a bit more and document it. :)


Interesting bits:
  • Teensy triggers the analogue drum circuits by sending short pulses out on 6 pins
  • Drum sounds are mixed and sent back into the Teensy to add digital effects
  • Using ES8388 audio codec
  • All effects (bitcrush, filter, waveshaper, reverb) are digital except for delay
  • Delay uses PT2399 chip, with Teensy controlling the delay time and wet/dry mix via a digital pot
  • Digital pots (8 in total) also control decay time of the drum circuits
  • Firmware updates over USB using FlasherX and WebSerial API
We’ve just ordered another box of Teensys to build batch 2, and it occurred to me that this was the kind of thing it’s fun to see on the forum! There’s more info on our website but I’m happy to answer questions here if I can be useful to anyone working on something similar.
 
This is amazing. At first I thought it was weird that there was no obvious way to program a pattern, but I love the idea of making it "intelligent". I would probably get more use out of something this if I didn't spend time tweaking the pattern.
 
Pt2399 audio performance isn't exactly stellar (upto 1% THD and 80-90dB SNR ). Any reason not to do delay inside teensy?
 
That looks really fantastic, I'm a big fan of the minipops and your cr78 vibe sounds great. Interested in your use of dig-pots - is that for CVs or in the audio path?
 
@tomas -- Many people love the 'analog,' slightly low-pass-filtered-sounding quality of the pt2399. It seems very appropriate for this throwback-inspired drum machine.

I love this. Very cool approach to the three-knob effects section.

I am extremely impressed by the enclosure. Can you talk about how you made/fabricated it and how you printed the front plate? Is it screen-printed? How many enclosures did you make? Was it expensive or extremely labor intensive? I'm working with 3d-printed enclosures and it's not exactly optimal though it is workable.


Screenshot 2025-12-09 at 5.34.21 PM.jpg
 
Very cool! Thanks for the FlasherX shout-out. I need to learn about WebSerial...
FlasherX is a great resource! It still feels a little scary to swap the car out while you’re driving it, but since I got a good sequence of commands, responses and error handling in place on both sides of the serial port it has been extremely solid and reliable. The Chrome docs for WebSerial are a good place to start – if you know some javascript it’s a really quick and easy way to throw together a GUI that can talk to a Teensy.
 
Pt2399 audio performance isn't exactly stellar (upto 1% THD and 80-90dB SNR ). Any reason not to do delay inside teensy?
@tomas The audio performance is why I chose it – it sounds great! I’ve spent a lot of time playing 1960s transistor organs so I’m quite partial to a noisy signal. Digital delay is nice, but to my ears not very appropriate for a 1978-sounding drum machine. And like @piere_delecto said, the analog low pass filters are a big part of the (slightly muddy, BBD/tape-ish) sound. I wrote a post about the PT2399 filters a while ago, if you’re interested!
 
That looks really fantastic, I'm a big fan of the minipops and your cr78 vibe sounds great. Interested in your use of dig-pots - is that for CVs or in the audio path?
@houtson thanks! The digipots do a few different things: variable resistance to control the PT2399 delay length, variable resistance to set the decay of the kick/tom/woodblock drum circuits as part of a Twin-T setup, and voltage dividers to set the delay feedback level and the delay level. So they’re in the audio path for the delay, but that’s already noisy characterful and filtered, but they’re not in the audio path for the main dry signal.

TBH I haven’t heard any unwanted noises from the digipots at all – I spent all my signal/noise optimisation time getting the layout and grounding right so the ADC/DAC wasn’t adding digital hiss...
 
I am extremely impressed by the enclosure. Can you talk about how you made/fabricated it and how you printed the front plate? Is it screen-printed? How many enclosures did you make? Was it expensive or extremely labor intensive? I'm working with 3d-printed enclosures and it's not exactly optimal though it is workable.
Thanks! The enclosure is custom made from folded aluminium by a local company (near Oxford, UK). They laser cut the metal, fold it, add internal welded standoffs and powder coat it black. There’s another company nearby that screen prints the top panel. We made 100 for the first batch – yes it’s relatively expensive, but we factored it into the retail price. It feels solid as a rock and looks great. Working with a local company was worth it too – being able to drop in for a chat probably saved us a couple of rounds of prototypes. I do envy you being able to 3D print test designs and one-offs though...
 
Back
Top