Fri Jan 7 12:22:05 EST 2011

Exact frequency sawtooth w. approximate amplitude

Instead of going for the "analog" approach of having the oscillator
discharge as it crosses a threshold, we could also make the timing
exact by generating discharge pulses from the PIC, using the
exponential converter just to set the ramp slope.  (Juno DCO style).

This turns all errors into amplitude errors, which are not nearly as
detrimental.  It might also significantly relax constraints on the bit
depth of the PWM.

The voltage point where the discharge happens can then be measured,
giving feedback as to how much the ramp slope is mismatched.  Note
that this doesn't suffer from resolution problems that much, as the
measurement is _relative_ to the magnitude of the collector current.

This approach would simplify the PIC software and probably allow for
some more tricks like hard sync and faking multi-oscillator syncing.


  * How much of the "mojo" is lost this way?  If analog sawtooth mojo
    comes from jitter, i.e. from noise on the trigger level, it is
    easily faked.  Adding a bit of jitter to the digital oscillator
    timing isn't so much of a problem.  Noise could be a triangle
    distribution from adding two LFSR-generated n-bit numbers.

    My guess is that the mojo comes from the interaction of
    discontinuities (i.e. several saws together) and the high
    frequency sparkle they create when they are not 100% periodic.

    It would be interesting to figure out if this has been measured
    before.  The mojo myth is well established in the synth community
    but I've never heard a real explanation execept for the detune.

  * We can do both analog style triggering and perfect digital tuning
    and all the effects it allows using the same hardware.

  * Driving up the current it's possible to use one oscillator as a
    heater, i.e. when we have say 4 oscs with thermally coupled
    transtors and we want to operate them at 50 *C, one of them can be
    used in high-current (high-frequency) setting to control the

[1] entry://20110106-111938