[sdiy] Re: Digital oscillators [was: Active VCO temp compensation]
Scott Gravenhorst
music.maker at gte.net
Mon Dec 22 18:02:44 CET 2008
Tom Wiltshire <tom at electricdruid.net> wrote:
>
>On 22 Dec 2008, at 15:08, Seb Francis wrote:
>
>> Tom Wiltshire wrote:
>>>
>>>
>>> I've tried going the whole hog, but I have to say that I'm not yet
>>> entirely convinced by my wavetable oscillators. To really remove
>>> the aliasing completely is difficult and finishes up using up so
>>> many processor cycles that you can't do any of the interesting stuff.
>>
>> I'm curious, what approach are you using to get 'alias free'
>> oscillators? Simply using a much higher internal sampling rate and
>> then a low pass FIR filter? Or something more sophisticated than
>> this. Which is the part that is burning most of the processor cycles?
>
>Well, like Scott G. I've tried a few things, but the comment was
>referring to using bandlimited wavetables. Unlike Scott, I've done
>this with multiple tables, like the Korg DW series synths. The
>original DW synths used one table per octave for eight octaves, at 8-
>bit resolution and about 50KHz sample rate, IIRC.
Great info, I'd like to see your code sometime.
Just so there's no confusion, I am not dissing/knocking wavetable synthesis at all.
Quite the contrary, it can work quite well.
My experiment was just that, I didn't push to the next stage - multiple tables with
interpolation because it makes the synthesis engine itself more complex than I wanted.
Kudos to Tom for taking wavetables to the level he described, it sounds quite
sophisticated.
I've not yet actually implemented the FIR lowpass filtering and decimation of
upsampled arbitrary naively generated waveforms in a working synth, only in a
functional testbed. I worked only with a sawtooth and a square wave to see how well
it deals with the artifacts. I was satisified enough that I will probably try to use
this method in a future project. It allows the waveform generation method to remain
fairly simple and intuitive while leaving the messy stuff to design code that one can
sort of forget about. What I like about this particular method is the synthesis and
alias artifact reduction are separate processes. Once you have a satisfactory
artifact reduction engine built, it's design can remain static while building more
complexity and features into the synthesis engine itself.
I think the actual application, the kinds of waveforms produced, makes a difference
in the choice of alias artifact reduction methods one chooses. A simple example of
this would be an additive synth made of sinewaves from wavetables - this needs no
alias artifact control at all.
-- ScottG
________________________________________________________________________
-- Scott Gravenhorst
-- FPGA MIDI Synthesizer Information: home1.gte.net/res0658s/FPGA_synth/
-- FatMan: home1.gte.net/res0658s/fatman/
-- NonFatMan: home1.gte.net/res0658s/electronics/
-- When the going gets tough, the tough use the command line.
More information about the Synth-diy
mailing list