Close

DIY Modular Update: Now with 24U, digital oscillators, and MIDI (sort of)!

A project log for DIY Modular Synthesizer

A full-featured modular synthesizer • aka "The Alligator"

chrisbeckstromchrisbeckstrom 08/30/2015 at 11:240 Comments

After a few months focused on other things (fishing, cooking, kayaking, etc) I'm back on the synthesizer building war path."In the past few weeks I filled my third 19" x 6U rack and built another. Some of the new modules:

– Multiple clock module (40106)– I wanted more clocks; something went wrong in building the circuit so I only got 5 instead of the 6 on the chip. Oh well!

– Dual 4-bit shift register (4015). This was completely inspired by Elliot Williams' post about shift registers in the Hackaday Logic Noise series (http://hackaday.com/2015/05/04/logic-noise-taming-the-wild-shift-register/). I love watching the blinking lights! I also discovered (stumbled upon) if I take the output of each step of the register and run it into a R/2R ladder, which then modulates the pitch of a VCO, I get a psuedo-random (but repeating) series of notes. It sounds great!

– Spring Reverb – I have an old spring reverb I got on ebay, which I'd been using with tube preamps to boost the input and output. I wanted to integrate reverb into the synth itself, so I used a pair of op amps to build some preamps/amps for the reverb. In the process of doing that I discovered the idea of feedback on a modular synth; running the output of the reverb through a filter then back into the input, I'm able to get some absolutely gorgeous very warm-sounding distortion oscillations. Aside from that, a bit of spring reverb makes everything the synth does sound even more awesome.

– Simple vactrol VCA (voltage controlled attenuator)– Still haven't figured out how to make a good active VCA, so I built another vactrol-controlled one. It's just an LED stuck to a LDR that controls volume. I'm not able to modulate the amplitude with audio-rate CV, but it works great for simple envelopes and on/off. The characteristics of the LED (I used a blue one) create a very nice quick decay when the VCA is pinged, creating excellent percussive sounds which I love.

– Quad AND gate (4070) - just wired the pins to the panel. Works great with my new clock module– run a bunch of clocks into the AND gate and get a variety of sort-of-random-repeating clock outputs. When connected to my 10 step sequencer it makes cool stuttering sequences.

– Active LP and HP filters (no resonance)– I didn't have any high pass filters so I created this module. I put a switch on the panel which, when flipped, sends the output of the low pass filter into the input of the high pass filter. My idea was to make it into a band pass filter. It doesn't work exactly as I expected, but that's part of the charm of this whole synthesizer. Somehow the high pass filter also amplifies the signal a lot (I think I used the wrong size resistor) which sounds really cool.

– Super growly amplifier/distortion– I wanted to create another amplifier/preamp specifically for taking external sounds and bumping them up to my synth level (it's very hot!) but instead ended up creating an op amp distortion circuit. It easily turns sine waves into square waves. Love it! Great for growly sounds.

– Headphone output– I've been running my synth through an old analog mixer which goes into Ableton Live running on my computer, but sometimes I want to keep the computer off and just plug in headphones. I didn't have any stereo 1/4" jacks so I soldered some wire onto a mono jack to make one. Added a simple attenuator and now I have a stereo (TRS) headphone output. Nifty!

I've also been experimenting with other ways to control the synth, especially using piezo pickups as triggers:

https://vine.co/v/eDbZddKYDDA

After adding those modules I've mostly been working on ways to integrate a Raspberry Pi Model B+ into the synth. I've been doing a lot of programming in PureData running on the (headless) Pi– here's what happens:

– MIDI comes into the Pi via a USB MIDI device

– PureData takes the MIDI and uses it to generate gate on/off messages which are sent to the GPIO pins or the right channel of the audio output (timing is better this way), which can then be used in the rest of my synth

– PureData also takes the MIDI, converts it to frequency, and uses it to control various software oscillators. So far I have a few oscillator modes: tones (sine, triangle, saw, square, with a few weird digital-sounding ones in there like sinesum square, whatever that really means), noise (white, pink), an a very cool sounding additive oscillator (16 sine wave oscillators pitched in the harmonic series above the incoming frequency). The oscillators

– A 16-step gate sequencer that listens to external clock input (via GPIO) and spits out gate messages (via GPIO).

– the PureData patch is controlled by various GPIO pins (buffered logic inputs from the synth) as well as OSC messages coming from TouchOSC running on an old iPhone I mounted to the panel. It might be the coolest thing I've done yet; I built a touch interface in TouchOSC that lets me control various features of the oscillators. The iPhone is also how the 16-step gate sequencer is programmed.

Originally my goal was to create an all-analog synth, but my limited skills with analog electronics have made creating exponential oscillators very difficult. In other words, I can't really "play" them with my keyboard so the notes fit the traditional equal-tempered scale. Generating the a square oscillator in PD and running that into a 4040 divider spits out a great analog square– which may be the weirdest way I've seen to implement MIDI control of an analog synth... but it works!

Here are some videos:

https://instagram.com/p/6-lGfSJHeu/?taken-by=cbfishes

https://instagram.com/p/6-Zh3FpHSG/

My synth now has a digital brain and a touchscreen controller. #weekendproject #diysynth #raspberrypi
A video posted by Chris Beckstrom (@cbfishes) on Aug 29, 2015 at 10:03am PDT
Analog and digital, bffs #diysynth #electronics #puredata #raspberrypi
A video posted by Chris Beckstrom (@cbfishes) on Aug 29, 2015 at 11:44am PDT

And even the totally digital oscillator sounds from PD sound good– they are at the beginning of the signal path, and after going through all the analog circuitry (especially the resonant LP filter!!) they sound warm and fuzzy and wonderful... and in tune. Because the Raspberry Pi is hooked up to my main computer via MIDI, now I can sequence my analog synth with Ableton Live. It's amazing!

Here's a finished song using the synth and a drum set (this one doesn't use any PureData sounds– it's all analog):

https://chrisbeckstrom.bandcamp.com/track/soundcheck

At some point maybe I'll share all the circuits I've used (at the risk of showing how little I really understand about electronics!). Almost all of them exist only in hand-drawn circuits on paper, but I think they might be helpful for other newbies like me; it really is possible to build stuff like this without an extensive knowledge or understanding of electronics (or even with that many components).

Thanks, Hackaday! I couldn't have done this without you (especially you and your Logic Noise series, Elliot Williams!!) Also fantastic is the electro-music.com DIY forum. Check it out!

Discussions