Polynorth - a hybrid analog/digital polyphonic synthesizer
Summary
The Polynorth is my first attempt at designing a polyphonic synthesizer. It's got a completely analog filter section, combined with a powerful 200 MHz 32-bit microcontroller.
Introduction
I've always wanted to build an analog polyphonic synthesizer, but they often end up being very large and complex because the size of the electronics pretty much scales linearly with the number of voices.
In many ways I think the filters are the hardest part of a digital synthesizer to get to "sound analog", so I figured out a good compromise would be to keep the filters analog and do all the rest with a microcontroller. The mostly digital architecture also has some important benefits:
Flexible internal signal routing like a modular synth, but without a ton of patch leads
More advanced modulation options (FM)
Patch store/recall (including the routing)
Much smaller size
I stumbled upon the SSI2144 filter, which is a modern remake of the classic SSM2044. It's very similar in many ways, but in a much more compact package and with better dynamic range, so a 6 voice synth could be made pretty compact. This is what kicked off the project.
Let's start with a demo:
Hardware
The system architecture is explained in this block schematic:
A single DC input with a wide voltage span (8-20 V) is sufficient to generate all voltages used internally. +/- 6 V is generated with high effeciency, and LDOs takes the final drop to +/- 5 V with very low noise. This is used to power the filters and OP-amps. 3.3 V is used to power all digital electronics.
A single microcontroller does pretty much everything except filtering. Each filter module is fed with a separate DAC channel, before the filters are finally mixed to one output. An auxillary unfiltered output is provided for future use.
The first prototype is shown below:
Prototype hardware:
PCB: Cheapo 2-layer 100*100 mm
Microcontroller: PIC32MZ2048EFG, 200 MHz, 512 kB RAM, 2 MB flash, floating point unit
Audio DAC: 3 x PCM1753 24-bit delta sigma DAC (6 audio channels feeding the filters)
Control DAC: 2 x DAC60508 (to control the analog filters)
Filters: Separate PCB modules based on the SSI2144 4-pole low pass filter
Display: 256*64 pixel 16 level grayscale OLED
Optoisolated MIDI interface
3.3 V buck converter
6 V buck converter
-6 V generated by LC7660 switched capacitor inverter, clocked at 50 KHz from the MCU (to make it inaudible)
Low noise 5 V and -5 V LDO
Second revision hardware is nearly finished and improves on some important points:
PCB: 4-layer with improved signal integrity
Lower noise regulator section
Single 8 channel DAC with TDM interface and differential outputs
Better filtering of audio DAC before being passed into the filters
Firmware
The firmware for this project will most likely not be open source. This is what is implemented as of now:
Voice allocation (which oscillators and filter to use when a note is pressed)
Waveform generation (three oscillators per voice, 18 total)
Digital signal mixing
ADSR envelopes
LFOs
Mapping of envelope and LFO to any possible destination
MIDI handling
Display routines
Preset storage
All communication peripheral drivers (5 x SPI, 2 x UART)
All SPI/UART drivers for display, DACs etc. uses DMA and/or interrupts.
A high rate task runs at the audio sample rate (48 KHz):
Fixed point aritmetics (despite having an FPU, fixed point is more than twice as fast)
Update accumulators for the oscillators
Generates the waveforms directly from the accumulator (for saw wave) or by using look-up tables
Prepares samples to be loaded to the audio DACs
Mid rate task runs at 1 KHz:
All floating point
Handles parameter changes
Updates envelope and LFO
Updates gain and frequency increment for the oscillators
Updates the control DACs for cutoff/resonance
Low rate task runs at 20 Hz:
Updates UI/display
Next steps
Other than the next prototype PCB I'm also working on a user interface add-on with 16 illuminated buttons for a step sequencer, potmeters, a shaft encoder, and some basic buttons.
I also got this nice block of mahogny (?) probably dating back to the 80's which will be milled into an enclosure, with an aluminium front- and rear panel.
Comments
You need to be logged into Facebook in the browser for comments to appear