Pretty simple question -
Just wondering if the entire signal path gets oversampled or it is just the wavetable engine?
Would really love it if it’s end to end and includes the wavetables, filters, effects (& lfos?) with only one stage of conversion at either end of the signal chain :
I tried searching the forum and couldn’t find an answer …
The entire signal path, near as I can tell.
To demonstrate, drive a max-volume sine wave into a max-drive hard clip waveshaper in the distortion algorithm. This generates harmonics, which will alias if not oversampled (since Vital’s waveshaper doesn’t seem to do much in the way of internal antialiasing, though perhaps it does some). Play a high-ish note. Observe the spectrum readout at the bottom and how the aliasing artifacts (non-harmonic tones) decrease as the oversampling level is increased.
Now, whether or not that actually means the ENTIRE signal path is oversampled, or the oversampling setting is simply used as a flag in multiple places (e.g. at drive stages) I couldn’t say… but then I’d also challenge that oversampling a delay probably doesn’t matter much. My suspicion is it just oversamples the entire thing.
That’s a good investigation! I like the way you’re thinking
The only thing I can think of that might counter this is that the wavetable engine is oversampled and the distortion is simply amplifying existing artefacts that gradually reduce as you increase the oversampled rate, but I’d like to think that Matt would have just oversampled everything but I legit have no idea.
I don’t really understand DSP but would it make more sense to oversample the entire path to reduce multiple sequential stages of up/down sampling adding delay at the sacrifice of higher CPU use?
Nah, overdrive explicitly generates new harmonics so you’d see aliasing if the distortion wasn’t oversampled, that’s a full-stop fact. A hard clip distortion with no oversampling at all simply won’t look like the readout looks at 8x OS in Vital, no matter how clean the input signal. At the very least you can be sure that the FX drive (and presumably filter drive though I didn’t test) are oversampled according to Vital’s OS rate.
To be honest I don’t even know how much Vital oversamples its wavetables; they’re stored internally as FFT bins, and the partials above the Nyquist limit of the samplerate are discarded automatically. I’m not sure how much you’d NEED to oversample them to achieve a zero-alias result; certainly the aliasing in pic one is not the result of “hidden aliasing” on the root sine wave.
It’d actually be nice if Vital did oversampling in stages, or supported some other form of WS antialiasing, so you could either 16x the waveshaper specifically and/or utilize an algorithm like ADAA to antialias the waveshaper which would drastically improve the aliasing at 2x OS, but I digress.
Thanks for the explanation!