As pointed out in #151, the 'noise' wave puts 'wtosc' in a special noise generator mode, where the 'phase' register has no effect. 'wtosc' instances share a state global noise state, to ensure that multiple simultaneously running 'noise' waves generate different output.
While useful and handy for implementing "chip" sound effects and the like, this design pretty much violates the very idea that 'wtosc' is supposed to be a deterministic wavetable oscillator, and is not ideal when using the oscillator in offline wave rendering, and it's not usable at all if you want deterministic results in realtime contexts.
How about adding a new noise "wave," which behave like a prerendered wave of "infinite" length, with the 'phase' register properly implemented? That is, basically Perlin noise. (Like a non-cyclic version of #78.)
As pointed out in #151, the 'noise' wave puts 'wtosc' in a special noise generator mode, where the 'phase' register has no effect. 'wtosc' instances share a state global noise state, to ensure that multiple simultaneously running 'noise' waves generate different output.
While useful and handy for implementing "chip" sound effects and the like, this design pretty much violates the very idea that 'wtosc' is supposed to be a deterministic wavetable oscillator, and is not ideal when using the oscillator in offline wave rendering, and it's not usable at all if you want deterministic results in realtime contexts.
How about adding a new noise "wave," which behave like a prerendered wave of "infinite" length, with the 'phase' register properly implemented? That is, basically Perlin noise. (Like a non-cyclic version of #78.)