[sharing] Integrated Wavetable Synthesis (Geiger)

.quasar's icon

I recently managed to adapt to gen the antialiasing scheme for wavetables proposed by Geiger. I thought I would share it. Basically the process consists in 3 steps :
- Wavetable generation
- Non-realtime integration of wavetable
- Resampling and realtime differentiation of wavetable lookup

The method has been further improved (Mutable Plaits uses 1 integration stage and a linear interpolation for its wavetable engine) to add integration stages + interpolation in order to reduce aliasing even more. Contrary to BLIT, this method reduce the aliasing but does not make it disappear altogether. However, you'll judge the results compared to no integration and adding a small factor of oversampling will make it an efficient combo I think.

Here's the patch!

Max Patch
Copy patch and select New From Clipboard in Max.

MAX.XAM's icon

Thanks! :)

missmiss's icon

I'd like to hear the sound, but there's a "empty" gen here ... ...

.quasar's icon

Oh yeah I'm using the event version of the gen~ object but it's just creating a bipolar sawtooth. I've replaced it with a max expr object in the patch below.

Max Patch
Copy patch and select New From Clipboard in Max.