I’ve now implemented a 3d-wavetable for my oscillator:
The three dimension are [Shape | Frequency (numHarmonics) | Waveform]. All
these get interpolated linearly. The result is actually quite impressive. I
could not ask for more. Thanks for your input!
However two tasks are remaining:
# Phase modulation (Lfo)
Introducing phase modulation would again introduce alias. The only solution I
can think of is to extent the wavetable to 4D, but that seems rather slow,
memory consuming and over-complicated. Another ‘solution’ is to allow alias on
lower frequencies and reduce the amount of pulse-modulation when approaching
higher frequencies. The problem is that alias is bad because it also varies
with different sample-rates. In the web we currently get 44.1kHz and 48kHz
assigned by the browser. No way to adjust it.
The only solution I see here is to quickly blend the amplitude (f(x)) of the
phase from the current value to zero when sync is happening.
Any further suggestions appreciated!
dupswapdrop: music-dsp mailing list