[sdiy] CV to Expo in a processor

Magnus Danielson magnus at rubidium.dyndns.org
Fri Jul 13 22:07:48 CEST 2012


Tim,

A few quick reflections.

On 07/13/2012 09:28 PM, Tim Ressel wrote:
>
>
> Hi,
>
> I am planning an oscillator using a DCO and having volt per octave CV input. So naturally I am looking at how to take values from the ADC and convert them to increment values that produce the needed frequencies. My first take was to have a table with values for each semitone and interpolate in between values. This leads to a maximum frequency error of 0.217 cents, and the error is always flat. Is this acceptable, or should I increase the size of the table? What is an acceptable error?
>
> Thanks!

Please note that 1 V/Oct allows for a trivial conversion to number of 
shifts. This allows you to store a 12 tone scale with high resolution, 
and then shift down as needed and only loose precision when you need to.

If you want higher resolution you can then interpolate on that, but do 
it prior to shifting. Also, you can add more locations in the 
look-up-table and interpolate from that.

If you make sure that you have an even power of 2 for every volt, then 
this becomes very straight-forward. Top 3 bits (or so) gives you the 
octave, and hence indirectly the shift-down bits, the next 4-5 bits is 
your lookup index and then the remainder is your interpolator index.

The top bits needs to be subtracted from the top octave of your 
interpolator octave. (say 5-(top-bits) ) to form the shift-down bits.

With this hand-waving it should be trivial to code what I think will be 
a good enough solution.

Cheers,
Magnus



More information about the Synth-diy mailing list