audiality2
audiality2 copied to clipboard
Dedicated noise oscillator unit?
The built-in 'noise' wave isn't actually a wave at all! It's just a dummy that activates a special mode of the 'wtosc' unit.
Since 'wtosc' already needs "modes" (implemented by switching process() callbacks) to deal with plain and mipmapped waves anyway, it's of course tempting to add bonus features like the current noise generator, but that tends to get messy and/or restricted eventually. For example, the noise generator doesn't really have much use for the 'phase' register, and the wave player oscillators probably wouldn't care much for additional control registers for the noise generator.
This seems to suggest that it would be a much better idea to just have a dedicated 'noise' oscillator unit instead. We'd clean up the waves subsystem and 'wtosc' a bit, and we'd get a proper 'noise' oscillator unit, where we could add useful control registers to make it much more interesting.
The only downside is that 'noise' would no longer be an option in a wavetable synth, without adding an extra oscillator just for that - which is kind of unfortunate, because that's exactly how snare drums and the like are typically programmed on SID, AY and similar chips...
The current 'wtosc' is pretty limited when it comes to generalting chip style sounds anyway, as it doesn't have phase width control, hardsync, bit logic "ring modulation", or any weirdness like that anyway; only this noise generator, with basically no parameters. So, it would probably be better to implement a proper oscillator for that anyway, and then the noise generator can be moved there.