WIP: Polyphonic Synthesiser
I’ve been working on a standalone polyphonic synthesiser, though it is far from finished.
In Mid-2018 I started taking on a project I’d been dreaming up since I started making modules for my modular synthesiser: a standalone polyphonic synthesiser, using everything I’d learned so far and more. The modules had me figuring things out as I went, and as a result were not always great. For this polyphonic synth project, the intention is to engineer things rigorously. I’m doing the math, simulating, optimizing, and so forth.
So far, I’ve developed the following components:
- Digitally controlled oscillator (DCO) design + firmware code, around an STM32F0-series microcontroller, with otherwise a mostly similar topology to regular voltage controll oscillator ramp core circuit
- Wave shaping converting ramp waveform into saw, triangle, sine, and square/pulse waveforms
- Additional “wave folder” wave shaping for more versatile modulatable waveforms
- One of two filters (state variable filter)
- Noise generator
- Audio source mixer
- Rudimentary communication protocol from motherboard to a voice board
The project is on the backburner while I focus on developing some Eurorack modules that I intend to bring to market. For a start, the “BWEEOO” filter originates from this project’s state variable filter.
I further intend to spin out the wave folder into its own Eurorack module. The circuitry is a much more refined version of “Michstortion” with additional functionality.
I’ve designed one or more development boards for each function so far. Using a bunch of test points, this allowed me to thoroughly measure output signals and confirm functionality and signal ranges. As you can see in the cover picture, I include a large “ground” wire loop on each of them, which makes it easy to clip on oscilloscope probe alligator clips and other measuring equipment.
Work Involved So Far
- Circuit design, simulation (LTSpice)
- Schematic capture (KiCad)
- PCB Design (KiCad)
- Firmware development (C/C++, using TrueSTUDIO, STM32 HAL libraries)
- PCB assembly (SMD soldering, with stencils, hot air)
- Testing and verification using oscilloscope, function generator
- Development of python scripts to automate test equipment