[sdiy] VCO autotune for poly analog modular

Amos controlvoltage at gmail.com
Wed Apr 4 00:28:22 CEST 2007


Yes you can do this.

Possible disadvantages/challenges:  You'll either need (A) a processor
burly enough to interpolate a curve between your sampled note values +
stored offsets, or (B) a LUT containing offset values for every note
at every octave setting of each oscillator in your system.  The former
demands more CPU horsepower than you might otherwise need, and the
latter means a heinously-long calibration routine.

Also, you may need to experiment to find a waveform that is "easy to
count" from the processor's POV.  Not doing this may cause your
routine to time out or hang.

Good luck!

-Amos

On 4/3/07, Magnus Danielson <cfmd at bredband.net> wrote:
> 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
> _______________________________________________
> Synth-diy mailing list
> Synth-diy at dropmix.xs4all.nl
> http://dropmix.xs4all.nl/mailman/listinfo/synth-diy
>



More information about the Synth-diy mailing list