Our hacker [Moritz Klein] shows us how to make a minimalist analog drum machine. If you want the gory details check out the video embedded below and there is a first class write-up available as a 78 page PDF manual too. Indeed it has been a while since we have seen a project which was this well documented.
A typical drum machine will have many buttons and LEDs and is usually implemented with a microcontroller. In this project [Moritz] eschews that complexity and comes up with an analog solution using a few integrated circuits, LEDs, and buttons.
The heart of the build are the integrated circuits which include two TL074 quad op amps, a TL072 dual op amp, a CD4520 binary counter, and eight CD4015 shift registers. Fifteen switches and buttons are used along with seven LEDs. And speaking of LEDs, our hacker [Moritz] seems to have an LED schematic symbol tattooed to his hand, and we don’t know about you, but this screams credibility to us! :)
This capable drum machine includes a bunch of features, including: 4 independent channels with one-button step input/removal; up to 16 steps per channel; optional half-time mode per channel; two synchronizable analog low-frequency oscillators (LFOs) for dynamic accents; resistor-DAC output for pitch or decay modulation; and an internal clock with 16th, 8th, and quarter note outputs, which can be synchronized with external gear.
Of course at Hackaday we’ve seen plenty of drum machines before. If you’re interested in drum machines you might also like to check out Rope Core Drum Machine and Shapeshifter – An Open Source Drum Machine.
Love this, awesome drumhack :-)
Even if you’re not into drum machines, this is a joy to watch. He builds it step by step and explains it well with careful use of animations. There went a lot of effort into creating this.
They’re using op-amps as buffers at first, but later they’re using emitter followers for the same point. Why not use emitter followers for buffers all along and save a bunch of op-amps?
For example (falstad link) https://tinyurl.com/2xo6mqjm
Surprised to see commenters posting obfuscated/tinyurl links on hackaday. Copy/pasting the actual url takes the same amount of work, what’s the point? I’m assuming that folks who spend time here know better than to click a link with no visible endpoint.
A falstad simulator link would be too long, since it encodes the circuit diagram in the URL. Trying to paste it here would either break the board, or get rejected by automatic moderation.
When you click on the link, tinyurl gives you a page to review the URL before re-directing you to the site.
Emitter followers are great buffers IF you don’t mind that there’s a DC offset that gets imposed on the output. A DC offset can be a serious issue with for control voltages, particularly those that represent the logarithm of a frequency (i.e., anything that is expressed as volts/octave), where a small change in voltage can mean a large change in frequency. Not a problem with op-amps.
Yes, you get a roughly 0.6 V drop at each stage, but for the most part that doesn’t matter when you’re buffering AC signals or logic signals over a single step. For the op-amp, the same issue can crop up if you don’t have rail-to-rail outputs because such chips often lose much more voltage than the simple transistor would, and they’re not linear near the limits.
Furthermore, the op-amp can have a tendency to lock up at the rails which leads to problems with timing (you should use a comparator instead) because the output stays high or low for a long time after the input has changed. The emitter follower doesn’t do that. I’ve been bitten by that in trying to use op-amps for switching in signal generator circuits.
In general, you can’t assume that your buffer is perfect and perfectly linear across the whole range. It’s better to design the circuit with the assumption that it isn’t.
Then there are other problems with op-amps, such as, they’re generally meant to be used in feedback circuits which maintain the “virtual short circuit” between the positive and negative inputs. When you’re using them as comparators, where the voltage difference between the two inputs can be much different from zero, some of them can start misbehaving badly such as drawing significant amounts of current through the inputs.
Sometimes, even the assumption that you can simply loop the output to the negative input to create a unity buffer can get you into trouble, for instance when the output cannot swing as high or low as the input, which leads to the problem above.
Then there’s common mode voltage rejection, or non-rejection as would be the problem. If both inputs have a common offset, some small portion of that will pass through to the output, and the rejection ratio often depends on how much common offset they have. You will get small offsets in your output depending on how you bias the inputs.
Not to mention that op-amps always have input offsets as well. Better ones in microvolts, cheaper ones in millivolts. The effect on the output depends on your feedback circuitry. When amplifying, the offset is amplified as well, so your logarithmic converter can produce wildly wrong outputs if you don’t trim the input biases.
I hope I’m not too off topic, but many of the deficiencies of opamps you’ve described are what makes many nonlinear/distortion effects have character. Latchup on my Rat is desirable, however I agree it’s a poor comparator with deep fuzzy gritty bass
A drum machine has sound generation or sample playback integrated with a sequencer. This is “just” a sequencer. I did enjoy the video and his presentation style, which includes showing his mistakes so we can learn along with him.
Moritz Klein is the Ben Eater of analog electronics. His videos cover pretty much every circuit used in analog synths in a most comprehensive and accessible way. Tip of the hat and thanks for the manual!
It seems a little weird that with “mkixes.edu” written at the top of the document, there is no such website. The actual website for this collaboration is https://www.ericasynths.lv/news/mki-x-esedu/