Re: Intellasys question for Jeff Fox
Nick Maroudas <[email protected]> Tue, 19 Aug 2008 22:37:23 +0300
| Newsgroups | gmane.comp.lang.forth.colorforth |
|---|---|
| Message-ID | <[email protected]> |
On Sat, 24 May 2008 gwenhwyfaer wrote: ... here's a suggestion for an interesting benchmark - the number of voices of MIDI-driven OPL2-style FM synthesis (at a 48k sample rate) that each chip can perform, complete with a subjective audio quality comparison. It's a nice realtime app; the specifications are fixed, well known, and quite implementation-independent; it doesn't need multiplication or large amounts of memory, but it can take advantage of it if it's there; the clock required for sample output has the potential to test interrupt latency; you end up with a nice little figure at the end of it; it scales down to the lowest PICs (which may manage to get 1 voice out, but not much more) and up to the scary fast GPUs nVidia are producing these days (millions of voices! eek!); it can be implemented easily in assembler, C or Forth; and it would provide anyone interested in synthesis with a ready-made demo app. Nick here: To which I add, why stick to poor quality FM synthesis when there is better ground on which to compete? As witness, this clip from: http://dspwiki.com/index.php?title=Acoustic_Instrument_Resynthesis 1. Fixed-waveform Additive Synthesis: Some software packages and synthesizers let musicians create waveforms by harmonic addition. [Nick here: This is what I am doing with CF on a Pentium] 2. Phase: ... the different starting points in the phase of each individual harmonic frequency ... Proper phase data help reassemble short-lived components of a sound in their correct order, and are therefore essential in reconstructing an analyzed sound. [Nick here: This is where I would like to go - trouble is, most FFT studies on instrument timbre publish the frequencies without their phase; which is why, for Fourier synth, I use Fixed-waveform method (1 above). 3. CPU Demands: Time-varying additive synthesis makes heavy demands on a digital music system. If we the assumption that each sound event in a piece may have up to 24 partials, and that up to sixteen events can be playing simultaneously, we need 384 oscillators at any given time. If this system sampling rate is 48 kHz, it must be capable of generating 48,000 x 384 = 18,432,000 samples per second. If each sample requires about 768 operations, the total computational load is over 1.4 billion operations per second. This is all without counting table-lookup operations, or control data. [Nick here: This would be my slant on Gwenhyfaer's suggestion for a music synth benchmark. With CF on a 550 M Hz Pentium I can manage a sampling rate of 256 k Hz for a "string quartet" that has 4 to 8 "voices" (sound events) with 16 partials per voice. I would hope to do ten times better with a 4 G Hz Pentium and a faster DAC; in which case I could try to improve tone quality by adding more partials or adding phase (if I could find Fourier phase data for strings). But this would hit the billion ops-per-second speed barrier for a conventional CPU - so this might be where Intellasys parallel Forth could shine. On Mon 26 May 2008, JF answered Gwenhyfaer by pointing to Intellasys demo of plucked string waveguide synth (Bach on a Guitar?): Wasn't the 96k sample MIDI-driven FM synthesis and waveguide synthesis and more that has been demonstrated before and where voices were compared to Pentium and custom chips where people could do subjective audio quality comparisons sufficient to figure where chips that didn't beat Pentium would fit in a comparison? [Nick here: I have not heard the Intellasys demo, but am not impressed by the quality of sound from either FM or waveguide synth. Neither method is computationally intensive; which is why I suggest a better benchmark would be Fourier synth (3, above). Caritas, Nick PS: I can't resist stirring a bit of controversy by quoting this view from Al Steffens: Alfred Steffens Jr [email protected] Of all the physical modeling techniques, I am the least interested in the digital waveguide synthesis algorithm. It seems like a lot of work (and hype) over a result that can be created easier with a pencil and paper and a fourier series calculation. There is nothing easier to "model" than the sound of a plucked string. The mathematics for this has been known for at least a hundred years (see J.W.S. Rayleigh, The Theory of Sound, 1895). And in the end, the digital waveguide technique is severely limited. The phenomenon of two oppositely traveling waves combining into a standing wave is a special circumstance in one-dimension.