Hybrid Digital/Analog Synth

Analog hardware synthesizers are used widely, as many producers and musicians love the analog character of the sound and the experience of using physical knobs and controls to manipulate it. However, they are often much more expensive and less reliable than the digital software synths that are most commonly used in music production. This design was an effort to bring together the best of both worlds— an analog sound and experience, and the low cost and reliability of a digital software synth, and it ended up winning silver in the AES Saul Walker Student Design Competition.

Demo:

Concept

As a senior design project, I decided to expand on my G-Funk Synth project. The original synth lacked sonic flexibility, simply emitting a basic sawtooth wave with no additional effects. I wanted to create something that would be more useful, with volume and filter envelopes, vibrato control, and a chorus effect.

My idea was to create a hardware device that would include the digitally-controlled oscillator from my original synth, generating an analog waveform based on MIDI input, but that would also act as a control surface for a software plugin running on the user's computer. That way, additional effects processing could be done digitally in the user's DAW, providing more variety in the possible sounds, and it could all be controlled from one tactile hardware control surface.

All the user would then have to do is plug the device into their audio interface with an analog audio cable, plug it into their computer with a USB cable, set up the correct MIDI routing in their DAW, and load the included plugin onto an audio track. Then they would have an analog synthesizer with digital effects, all controllable from one hardware device at a fraction of the cost of most analog hardware synths.

A block diagram of the system is shown below:

System block diagram

Results

The device successfully generates an analog sawtooth waveform that eliminates aliasing. Below you can find a frequency-domain plot of a sawtooth wave generated digitally by a software synthesizer, alongside that of my analog synthesizer's sawtooth wave.

Frequency domain plots

The digitally generated version has visible aliasing happening toward the higher frequencies. In the analog version however, those aliases do not exist inherently in the signal, and are not introduced by the audio interface's analog-to-digital converter.

Design

The hardware

The schematic of the hardware device is shown below. It uses the Teensy microcontroller to read MIDI note data, sending control signals to the oscillator (DCO) circuit. The microcontroller also sends MIDI control change data to the software plugin, allowing the user to control the plugin using the rotary encoders on the device.

Because the microcontroller is limited on GPIO pins, it uses two 74HC165 shift registers to multiplex 8 rotary encoders into 4 GPIO pins instead of 16. It also has a few other buttons, LEDs and encoders that are connected directly to the microcontroller.

Hardware device schematic

The software

The hardware device is designed to be used with a software plugin that applies additional effects processing to the signal, digitally within the user's DAW. It includes a volume, glide time, chorus, and vibrato control for the oscillator, as well as an envelope generator to shape either the amplitude of the signal, the low-pass filter cutoff, or both. The plugin was designed in C++, using the JUCE framework.

The GUI, with custom-designed knobs and dividers between different sections, was designed to look somewhat similar to the hardware control surface. Since the controls are the same, the goal is for the user to be able to adjust the controls either on their computer using a mouse, or using the rotary encoders built into the hardware device. The plugin's GUI is shown below:

FX Plugin GUI

Hybrid Digital/Analog Synth

Analog hardware synthesizers are used widely, as many producers and musicians love the analog character of the sound and the experience of using physical knobs and controls to manipulate it. However, they are often much more expensive and less reliable than the digital software synths that are most commonly used in music production. This design was an effort to bring together the best of both worlds— an analog sound and experience, and the low cost and reliability of a digital software synth, and it ended up winning silver in the AES Saul Walker Student Design Competition.

Demo:

Concept

As a senior design project, I decided to expand on my G-Funk Synth project. The original synth lacked sonic flexibility, simply emitting a basic sawtooth wave with no additional effects. I wanted to create something that would be more useful, with volume and filter envelopes, vibrato control, and a chorus effect.

My idea was to create a hardware device that would include the digitally-controlled oscillator from my original synth, generating an analog waveform based on MIDI input, but that would also act as a control surface for a software plugin running on the user's computer. That way, additional effects processing could be done digitally in the user's DAW, providing more variety in the possible sounds, and it could all be controlled from one tactile hardware control surface.

All the user would then have to do is plug the device into their audio interface with an analog audio cable, plug it into their computer with a USB cable, set up the correct MIDI routing in their DAW, and load the included plugin onto an audio track. Then they would have an analog synthesizer with digital effects, all controllable from one hardware device at a fraction of the cost of most analog hardware synths.

A block diagram of the system is shown below:

System block diagram

Design

The hardware

The schematic of the hardware device is shown below. It uses the Teensy microcontroller to read MIDI note data, sending control signals to the oscillator (DCO) circuit. The microcontroller also sends MIDI control change data to the software plugin, allowing the user to control the plugin using the rotary encoders on the device.

Because the microcontroller is limited on GPIO pins, it uses two 74HC165 shift registers to multiplex 8 rotary encoders into 4 GPIO pins instead of 16. It also has a few other buttons, LEDs and encoders that are connected directly to the microcontroller.

Hardware device schematic

The software

The hardware device is designed to be used with a software plugin that applies additional effects processing to the signal, digitally within the user's DAW. It includes a volume, glide time, chorus, and vibrato control for the oscillator, as well as an envelope generator to shape either the amplitude of the signal, the low-pass filter cutoff, or both. The plugin was designed in C++, using the JUCE framework.

The GUI, with custom-designed knobs and dividers between different sections, was designed to look somewhat similar to the hardware control surface. Since the controls are the same, the goal is for the user to be able to adjust the controls either on their computer using a mouse, or using the rotary encoders built into the hardware device. The plugin's GUI is shown below:

FX Plugin GUI

Results

The device successfully generates an analog sawtooth waveform that eliminates aliasing. Below you can find a frequency-domain plot of a sawtooth wave generated digitally by a software synthesizer, alongside that of my analog synthesizer's sawtooth wave.

Frequency domain plots

The digitally generated version has visible aliasing happening toward the higher frequencies. In the analog version however, those aliases do not exist inherently in the signal, and are not introduced by the audio interface's analog-to-digital converter.