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

Brute-force additive synthesis oscillator #297

Open olofson opened 7 years ago

olofson commented 7 years ago

Additive synthesis implemented using actual oscillator banks. Though less efficient for high numbers of partials, this method has one major advantage over IFFT (see #296): It has no transient response restrictions. It's on par with normal wavetable oscillators or similar in that regard.

IFFT synthesis is limited by window size and overlap, and needs to run at a quite low "frame rate" to be reasonably efficient. There are ways to combat this in the frequency domain, but that basically just moves the problem - and CPU load - there instead.

It would also be possible to use other waveforms than pure sine for the oscillators. Not sure how useful that is in real applications, but theoretically, it should make the method a lot more efficient in terms of timbre complexity vs CPU load. We could share code and waves with 'wtosc' for this, perhaps with some restrictions as to which kinds of waves are supported.

Quite similar to #296, and might even be able to work with the same "modulator" units, if a new port type for oscillator bank control is added.