Educational DIY Synth Thing

For a while I’ve wondered if it was possible to find something that could be used to learn about the basics of analog synthesis. This is the first part of a series of posts looking at the possibilities.

  • Part 1 – This introduction and high-level design principles.
  • Part 2 – Detailed design of an ESP32 based PCB.
  • Part 3 – Software design.
  • Part 4 – Mechanical assembly and final use.
  • Part 5 – Six simple experiments to try.

Warning! I strongly recommend using old or second hand equipment for your experiments.  I am not responsible for any damage to expensive instruments! Please note that I am not an electronics person – I’m only dabbling.

Introduction

There are several educational synths on the market – just searching for “educational synthesizer” brings up many such hits, such as the Tangible Waves Synth Explorers or Erica Synth’s Bullfrog. And whilst these aren’t ridiculously priced when you consider the build quality and functionality, they are not really the kind of thing I had in mind.

Another great looking one is the mki x es.EDU DIY synth kit which is a collaboration between Mortiz Klein and Erica Synths. This is particularly interesting because it comes with very comprehensive teaching guides for each module to be built, walking through the electronics principles and design process behind each module, which is great if you want to learn about synthesis at the same time as learning about electronics.

Update (June 2024): After getting right past building and starting to experiment with my own build, I noticed that Erica Synths and Mortiz Klein have just released the Labor – this is a synth and circuit experimenter kit which has a lot more of the same aims as mine, but is designed by professionals and is a lot more robust for proper educational use as a result. It is also a lot more affordable that some of the other things I’m describing here. I’m seriously thinking about getting one 🙂

More Updates (June 2024): Here are a list of other projects that have somewhat related aims (I’ll keep updating this as I find more – feel free to send me any you know of in the comments!):

  • Open Euro Board – provides key Eurorack relevant circuits surrounding a breadboard.

There are also some interesting takes on the “synthesis as lego block” idea – Korg’s Little Bits springs to mind here, but I don’t think they are available anymore. But many devices in this category start to look a little like a toy even if quite fully featured (e.g. Blipblox) if not careful.

There are some interesting “all in one modular in a box” type devices too – I quite like the look of the Korg Volca modular for this. Others that might fit here too might be some of the Bastl Instruments devices (such as the Kastle), or any one of a number of semi-modular devices, but the prices are going up (these are quality instruments in their own right) and so is their complexity in moving away from the “basics”.

There are also some excellent looking online tools too (Ableton’s “Learning Synths” is excellent), but I wanted something tangible and tactile. Something more akin to the old spring-based electronics kits you used to be able to buy.

The closest thing I’ve found is perhaps MiniMo – the “mini modular synth” project, and whilst I like the idea of a single hardware platform that can be reconfigured via software into different modules, it does make for a rather clumsy user interface.

Another angle is the “DIY solder kit” synth like the Atari Punk Console or similar, but they are more for learning to solder not learning about synths.

So this has got me wondering what it would take to produce something that could support the absolute basics of an analog synth in a cheap (so 100x100mm) PCB with through-hole components that would be suitable to linking up to a solderless breadboard for further experiments.

This is the start of my “thinking out loud” in this space seeing as this is one of those wheels I’ve yet to have a go at reinventing.

Basic Idea and High-level Requirements

Fundamentally I’d like to have something that allows the tactile experience of plugging in cables and twiddling knobs for learning about signals and sounds in a very “immediate feedback” kind of way.

It also has to be cheap and relatively easy to get hold of and DIY build. This is more important than quality of output I feel. It also means it won’t be an issue if something gets fried whilst experimenting – just build a new one.

Ideally there would be enough self-contained functionality that it won’t need to be plugged into anything else. Which might mean it could have simplified protection on external electronic connections – which, let’s face it, would otherwise be pretty critical if used for educational purposes and meant to be connected to other equipment!

To me this all implies some kind of pseudo-analog synth – the user interface presents like a simple, standard analog synth, but the internals don’t have to be analog at all. And considering how much I know of electronics myself, a microcontroller with some basic circuitry is the obvious choice for the insides…

Whilst not meant to be connected to anything else, it would be useful to be able to measure the individual signals with a scope, so this means “proper” wired links between modules – it can’t be a “logical” connection – it has to be a real one ideally with real measurable voltages.

Design Requirements

So, chewing over the above, this is leading me to ponder some kind of microcontroller-based system with real physical jumper wires – so something like the MiniMo is a good model, but ideally it could be USB powered – I don’t want to be stuck with just batteries, although a single 9V might be useful option to have.

I’d want it to look more modular synth-like than the MiniMo, but having said that I think it would be fine to have all that within a single panel if its fits. I’m now wondering how much I could get into a 100x100mm sized front panel which means the panels could be made cheaply by PCB manufacturers as well as the PCB itself. The main limitation I think, will be size of potentiometers. Assuming I’m using Dupont-style jumper wires to join the bits together, then I won’t need much space for jacks.

It would be great to squeeze everything on a single 100×100 PCB too rather than have the hardware “user interface” on a stacked board, as you often see in modular designs. Working on the basis that this could go in a box (wood, 3d printed, laser cut, etc) then external connectors – power, MIDI IN (maybe), audio output, don’t have to be part of the front panel.

Ideally I’d like enough space to support the following as a minimum:

  • Dual voltage-controlled oscillators to allow for basic FM synthesis or modulation.
  • Ideally the oscillators would produce several waveforms.
  • Low-frequency oscillator, again possibly with a couple of waveforms.
  • An envelope generator – ideally ADSR if there is room for that many pots!
  • Single voltage-controlled amplifier.
  • Some kind of filter. Possibly voltage controlled too, but manually controlled at least.

It would be good if each module supported either pot or CV control.

Things I’m not planning to support:

  • Polyphony!
  • Keyboard.
  • Noise and effects.
  • Complex mixing.
  • Default internal patching – if there are no wires, there will be no sound!

I’m thinking it would be a basic, single-voice chain, triggered externally (CV/gate or MIDI or both) and a single mono audio output. Being able to drive it over USB MIDI would be a bonus but not essential I think.

At some point it might be nice to be able to produce a second module to expand the capabilities – e.g. alternative modulation possibilities, additional channels, effects, noise generator, filters, mixer, etc.

Basic Design Principles

As already mentioned, given my lack of expertise in proper electronics, the easiest way forward for me is to use a microcontroller with some support analog circuitry, so here is my list of design principles so far:

  • Microcontroller based.
  • All jumper inter-module links are at the microcontroller’s basic logic level – so that would limit it to 5V or 3V.
  • All jumper inter-module links would be real 0 to VCC signals. This means the microcontroller would need good analog input and output facilities.
  • System could be USB powered, but an external 9V (battery or DC) should be an option.
  • External connections include: serial MIDI (optional), USB MIDI (possibly), audio line output, speaker (possibly).
  • There will be some higher quality (i.e. requiring higher sampling rates) analog signals for audio, and lower quality (i.e. lower sampling rates) signals for control lines. There will be some digital gate or trigger signals required too, working at the MCU logic level.

The MiniMo uses an ATtiny85 for each module, so I have wondered about taking a similar approach – a single, small microcontroller per module. But there are so many other more powerful possibilities that I think a single microcontroller acting as a range of independent modules would be more useful and cost effective.

Taking a cue from my Selecting Microcontrollers for Music page it is worth noting any boards that support a DAC or I2S, both very useful for audio applications. The number of ADCs is relevant too.

Other hardware options might consider the use of:

  • Analog multiplexers, such as the MCP3008, CD4051, CD4067, etc.
  • SPI DACs such as the MCP48[012][12] range (8,10,12-bit DAC; single or dual format).
  • Digital potentiometers, such as the X9Cxxx or MCP41x2.

Following on from my series of ESP32 experiments, I’ve been really impressed with the capabilities of the original ESP32 module, so I’ve decided to use that as the basis for my board. I’m going with the original as I think the option for two DACs onboard could be really useful.

I did consider a Raspberry Pi Pico, but decided the lack of ADCs and DACs meant I was already “running uphill” just to get started. It is dual core, but so is the ESP32 and multi-tasking appears directly available from the Arduino IDE. The ESP32 also has a floating point unit which might come in handy too. Another alternative might be a more modern Arduino, but I’m going with the ESP32 for now.

I’m not after a software-defined synthesizer – all the routing and signal processing will effectively be done via hardware patching – so any actual modules of code are likely to be pretty straight forward. For this reason, I’m not planning on using any of the audio frameworks I’ve mentioned before beyond basic library support. I’m just aiming for some basic direct digital synthesis on the ESP32.

Closing Thoughts

That is the essential concept sketched out. In the follow-up parts of the series of posts, I’ll get into the detail of what I’ve actually done.

Watch this space.

Kevin

Leave a comment