[sdiy] VCO autotune for poly analog modular

Magnus Danielson cfmd at bredband.net
Tue Apr 3 23:30:17 CEST 2007


From: mrmike <mrmike at clickbang.com>
Subject: [sdiy] VCO autotune for poly analog modular
Date: Tue, 03 Apr 2007 10:00:15 -0500
Message-ID: <46126BFF.5010907 at clickbang.com>

Mike,

> Yes, I'm insane.
> I'm trying to build a polyphonic analog modular based on five ASM-1s. 
> Think Obie 4 voice, rather than Prophet-5, as a design style.  I would, 
> however, like to be able to set an accurate single voice across all five 
> modules. Basically, all five panels could have their own controls, but a 
> switch on panel one will disable the front panel controls  on panels 2-5 
> and slave them to the controls on panel one.  In this mode,  an autotune 
> function would be useful.  Has anyone ever implemented one of these in a 
> DIY polysynth?
> 
> I was thinking of having the tune function compare VCO freq at a given 
> CV voltage at several points across the 0-5V range for each VCO, then 
> create a lookup table with a compensation map for each VCO.  As each CV 
> for each voice comes in, its corresponding spot in the table is found 
> and the tuning offset voltage is added to the initial CV and then sent 
> to the VCO. Is this a dopey idea?
> 
> Thoughts welcome!

Now I get the ASM-1 question on a separate thread! :-)

Look at the Oberheim OB-8 (service manual on my webpage).

It uses a single Z80 processor, a 14 bit DAC and an Intel 8253 PIC. Two of
the three 16 bit counters is used for the auto-tune feature.

What the logic do is to setup the VCAs for each oscillator such that during
auto-tune it scans through each VCO and listen to the output mix with the
8253. It compares the VCO to the CPU clock, which is a crystal oscillator.
Without checking the details, I beleive that the CPU clock is divided down
to create the counter gate-time and a certain number of oscillator cycles is
measured. It is fairly obvious how to elaborate on that. It is easy to get
sufficient resolution, I know alot about that.

In the other end you need an oscillator model which you need to correct.
The most simplest model is to just have CV offset and scale being corrected.
This is easy enought. You can take just a few samples (two will do) and you
will get both offset and scale errors corrected. A more elaborate scheme would
also do high frequency compensation to handle errors in the high frequency
compensation already there.

Once you have measured your compensation parameters, you use them to offset
and scale your signals.

The cool thing about the OB-8 VCO trimming is that you have two LEDs and those
tell you which way to turn the single trimmer on the VCO. When both LEDs are
on. After that the auto-tuning does the rest.

Unfortunatly this is not done for the VCFs. Sigh.

Hitting the auto-tune on the OB-8 certainly makes things muuuch more in tune.
I even find it "too perfect" for some stuff so I don't turn it or actually
joggles the power-switch to un-tune it (There should be a feature to disable
tuneing!). It is sufficient and not too complex. You should be able to do
something similar.

Build an high-freq tuning support would be nice.

Cheers,
Magnus



More information about the Synth-diy mailing list