[sdiy] DIY polyphony handler

chris chris at chrismusic.de
Wed Jan 23 10:54:52 CET 2019

You can get by without an extra mux for the VCOs. You can tap the VCF
input, assuming you have switches (or level VCAs, or waveform output
switches) for each VCO in a voice. Alternatively you can PWM the VCOs
not to be measured to the extreme end, so they are silent (if the static
PWM param goes that far).
Selecting a single target voice's gate is a no brainer for a poly
controller, so you could add all voices' measurement outputs to be fed
into a single timer input.

In theory, you could even tap after the VCF, and using max resonance you
could calibrate the (preferably self oscillating) filter's cutoff as

I haven't tried it, but I'd suspect using the normal voice audio output
may have too much of undesired properties for a clean measurement, like
noise, CV feed-through, VCA not closing completely, DC shift, etc.


On Tue, 22 Jan 2019 23:42:49 -0800 Brian Willoughby
<brianw at audiobanshee.com> wrote:

> > (bonus feature; DIY autotune anyone?)
> All you need is an input to the processor. You might need some wave shaping to make the VCO into a square wave - or you could just hook up the square wave output to the processor. In the latter case, you’ll just need to scale down the +/-10V square wave to +5/0V digital levels plus insert series resistance to protect the processor inputs.
> Some processors even have Timer peripherals that can count based on an external pin. You’ll need a mux unless your processor has 6 or 12 or 18 Timers with dedicated pins. It’s possible even with a single Timer and a single input pin. Just dial in the mux for each voice VCO, one at a time, and measure the frequency for a range of CV values. You’re measuring the period of the waveform, but you can calculate the target period in advance, based on the desired frequency. Once your processor measures how far off the VCO is in several octaves, it should be possible to calculate a correction that is specific to each VCO. Whether you measure two points, three, or more is up to you. Usually, linear is enough (two points), but sometimes the error can change near the extremes, and perhaps you could even compensate for that with enough math.

More information about the Synth-diy mailing list