Wavetable oscillator. First attempt here but how viable is WT synthesis in Audulus?

Wavetable Oscillator.audulus4 (181.0 KB)

Nooby user been getting stuck in for a couple of days. Thought I’d have at a wavetable oscillator. We have an array and a means of reading it so what could go wrong?
Bearing in mind I’m being somewhat naive and haven’t read any papers or documentation around implementing WT oscillators, so this is just me having fun and figuring things out. No doubt the aliasing police will come a knocking… but it seems to work.

Any serious drawbacks I should know about?


Cool approach. You could also just use the four wavetables and mix across them. Also, you could try poly nodes and send multiple reads to one read index (like for each waveform in the table, though if you want poly voices say from a midi keyboard input, poly reads might not be the best approach). Different ways to get there, I like this one!


Thanks! Dual read indexes for the two wave cycles to be mixed would be an elegant solution for mono synths though I quite liked having the two identical arrays to do an A|B interpolation as conceptually it’s easy to see what’s going on. Looking at it again though I think one of those two arrays could be dropped.

Yes, I can’t see any reason why any two waves across the entire bank couldn’t be mixed, that would open up some interesting possibilities.

I’ve got a strong suspicion that some serious upsampling needs to happen. I’d like to get my head around that. I should get the spectrogram out and have a look for aliasing, from what I’ve been reading that seems to be the main drawback with this technique.

1 Like

Yep, multiple read indices limit the poly possibilities…

Upsampling – there is the Resample node, though imo linear interpolation for audio playback will get you pretty far, though of course idk what you are up to… In other words, the trade-off between lerp and upsampling CPU usage might not be worth it – try it and see. (I mean if you consider the history and beautiful warm sounds, early machines ran at lower sample rates).

I like the A/B setup you have here as well – it is clear, and might be a great way to go. Mixing waveforms is the heart of the matter – for example, using a table of 16 waveforms with ability to fade across some or all approaches the spirit of a lot of popular stuff out there (Serum, Ableton’s, back to PPG – like with those cool 3d waveform views where the waveforms are stacked front to back). Just need to stage the A/B setup correctly here, I suppose.