DIY Synth Voice
Transforming Bela into a fully featured Eurorack modular voice
In this post we look a full DIY modular synth voice created by Matthias Hassel. This feature-packed Eurorack module is the perfect starting point for a modular synth with many sonic possibilities. What’s more, it’s all built on top of a Bela Starter Kit.
The building blocks of a Modular Synth
A synth “voice” is the heart of all modular synthesiser set ups. A voice contains all the fundamental elements required to make a synth musically controllable. In most classical synthesiser designs a voice consists of the following basic building blocks:
- voltage controlled oscillator (VCO): the base tone generator which give the synth its pitch
- voltage controlled filter (VCF): this changes the quality of the sound by altering the frequency spectrum
- voltage controlled amplifier (VCA): this controls the volume of the sound
- envelope generator: this varies voltage over time and can be used for shaping musical notes
Matthias Hassel has created a full synth voice based around a Bela board with all these functions and more. His module, which is still a work in progress, features dual oscillators with variable waveshapes and a detune control; lowpass filter with resonance control; 8-step sequencer; clock generator; plus preset functionality for recalling preprogrammed patterns. See the video above for a full walkthrough.
Custom designed PCB
The hardware consists of a custom designed PCB which sits on top of a Bela Starter Kit with a Multiplexer Capelet. All potentiometers as well as the jack sockets for CV inputs are read via the Multiplexer Capelet, CV outputs come directly from the analog outs of the Bela board. All CV inputs and outputs are protected against input voltages above +5V (or +3.3V for the gate inputs) and below 0V by a protection circuit consisting of 2 Schottky diodes and a resistor. This also helps prevent the Bela board from being damaged when two output pins are short-circuited.
The LEDs for displaying the selected waveforms of Oscillator A and B and the Sequencer LEDs are controlled by 3 ICs (CD4017 Johnson counter). The IC switches one output on every positive edge at the clock input. For Waveform A, Waveform B and the Sequencer a digital output from the Bela board gives the signal to the clock input of the IC after reading from the respective buttons.
The 7 segment display is controlled by the 74HC4543 latch/decoder. For this 4 more digital outputs were used, which gives the IC the number to be displayed in binary notation. The LEDs, potentiometers, jacks and pushbuttons are connected via two ribbon cables to the PCB on which the ICs are mounted. The Bela board can simply be plugged directly on to pin headers on this PCB. A third ribbon cable goes from the PCB to the multiplexer capelet on the Bela board.
To finishing everything off there is a Eurorack compatible faceplate which is reminiscent of The Incredible Machine with cogs and belts connecting the various controls.
Coding a modular synth from scratch
This module is all programmed in c++. A lot of the code Matthias wrote was inspired by materials from our Master’s level module “Music and Audio Programming”, taught by Dr Andrew McPherson and available online for free. You can check out the introductory lecture here.
You can find all the rest of the lectures on YouTube and supplementary material in the Tutorial section of our knowledge base.
About Matthias Hassel
Matthias Hassel is a musician from Kaiserslautern, Germany. He plays the drums in a German Indie/Pop-Band called Vielleicht Emma. He is currently study “Sound and Music Production” at Hochschule Darmstadt where he is working on sound installations and music recordings. Since completing an apprenticeship as an electronics technician he has been mostly focused on the technical aspects that come along with producing new music.