olofson / audiality2

A realtime scripted modular audio engine for video games and musical applications.
http://audiality.org/
zlib License
79 stars 5 forks source link

Dedicated noise oscillator unit? #151

Open olofson opened 9 years ago

olofson commented 9 years ago

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...

olofson commented 7 years ago

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.