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