[sdiy] Prophet VS a phase accumulator design
Scott Nordlund
gsn10 at hotmail.com
Fri Feb 4 15:05:06 CET 2011
> Well, again i took the liberty this time to ask Dave Rossum
> directly since you brought it up, i asked only about the Emus
> but aparently he enjoyed the question so he just continued,
> and thats great/splendid because he extended our discussion
> by highlighting the next suspect, FZ1.. :)
Damn, you're pestering everyone! Good work.
I've made a point lately to do the same. Certain people I'd been
thinking about contacting ended up dying, so I figure it's worth being
a nuisance.
> ----------------------------------------------------------------------
> *The Emulator 1 used a high frequency varactor tuned (for pitch bend and
> *vibrato) 10HMz oscillator, with programmable dividers to set the sample
> *rate for each channel. So they were variable sample rate channels,
> *which produces no pitch-shifting aliasing.We also had a tracking lowpass
> *filter, which reduced some of the imaging at low sample rates. The
> *Emulator II worked in the same manner, although using a superior data
> *encoding. The original Emulator III operated similarly as well, using
> *16 bit linear encoding, and a custom FIR digital oversampling filter
> *chip ("F-chip") for each DAC to minimize imaging.
Wow, the F-chip is a good idea, but I think the particularly clever part
here is the memory access. I like imaging, though...
> *Beginning with the EMAX II and the Emulator IIIx, we used our "G-chip"
> *technology, which was a 7th or 8th order interpolator operating from
> *large fractional value phase accumulators. These gave excellent (still
> *largely unsurpassed) alias and image attenuation, with all the advantages
> *of a syncronous design. The original G-chip was 32 channels; the G-chip
> *II had 64 channels per chip, and two chips could share a memory to give
> *128 channels.
I noticed the Kurzweil K2000 series has pretty good interpolation, I wonder
how they compare. It was mentioned recently on the music-dsp list that
"every" Alesis synth used linear interpolation. I'd a little be surprised
if that included the Fusion as well, but that's at least the Quadrasynth
line.
> *I believe the Fairlight used a separate 6805 type processor, and a
> *separate memory for each channel, and used a variable sample rate
> *divisor output similar to the Emulator I (the Emulator I, though,
> *shared the memory among all 8 channels, which gave it a huge cost
> *advantage over the fairlight). I don't know if the fairlight could
> *do fine resolution vibrato or pitch bend, as this would require a
> *VCO for the master oscillator.
I have a Wersi MK1/EX20 that works very much like this, only the waveform
data it uses is small enough to fit in the (Z8601) processor's register file.
It uses the dual/interleaved CPU architecture as well, so I wonder if there
was some direct inspiration. I think it's not true variable rate, though, as
there's considerable jitter (but not aliasing) at very high frequencies.
(I believe the designer's name is Wilfried Dittmar, maybe I should try to
bug him about it).
> *There was a 16 bit Casio machine (the first 16 bit sampler, I think)
> *that used 2x oversampled linear interpolation. I was impressed with
> *that - it was released about the same time as the EMAX, and was a
> *clever step between linear interpolation (which is still largely
> *used today and has substantial aliasing artifacts) and a high-order
> *interpolator.
The mysterious thing about the Casio is the filter chip. Rainer wrote
about it a little bit: http://www.buchty.net/casio/dcf.html
I'd read that one of the early problems with resonant digital filters
is that large, high resolution tables are needed to map the cutoff
frequency to the biquad filter coefficients. To make this resonant
it needs to be a two dimensional table with several coefficients,
which is way too much, and explains why the ones that were resonant
often only had a range of 8 values.
The Ensoniq EPS, for example, apparently just used 4 first order
filters which could be grouped as two independent high pass or low
pass filters. This requires just one table with one coefficient and
some other simple stuff.
The patent Rainer links to (4467440) seems to address this. If it's
using analog scaling it doesn't even need the usual multipliers. But
the patent is dated years before the FZ-1 came out, Yamaha's patents
at least seemed to correspond pretty well to product release dates.
More information about the Synth-diy
mailing list