FM-able Antialiased CPU-friendly Multiwave Oscillator
The DPW Algorithm is nice and simple. I guess you cant find an antialiasing algorithm that is faster than DPW. But it comes with a cost. The modulation capabilities are really limited. As you can see at higher order DPWs you cant even play them without the chance of clicks, while the first order DPW is good enough to result in a good sounding and CPU-friendly FM-oscillator.
So when you want some simple CPU-friendly FM-able oscillators in core. This is for you.
- Test ensemble with higher order DPW oscillators up to N=3. The higher order DPW is just for proof of concept. You could play them, but as you can see/hear in the test ensemble, you're likely to get clicks. In the test ensemble the output is clipped to [-1,1].
- Overworked testing environment. Added a simple to use Random Note Player and the Filterbank Spectrometer by Jan Brähler. Safety Switch enables Audio, Scope and Spectrometer when the user want to. The backend of the audio test ensemble is guarded by an AHDSR, so the audio stream is enveloped when it is fed to your sound card.
Thanks to Andres Picornell, who pointed out that the Signal Analyzer was causing the crashes on macbooks, I removed it from the test ensemble and plugged a primary scope to it. This is strange behaviour I dont understand yet. Howeber, I hope the new version of the test ensemble doesnt crash the macbook.
- Overworked Demultiplexing of Control parameters in attempt to solve the issue in the test ensemble posted by Phil Durrant. I cannot acknowledge, if this solves the problem. All I can acknowledge, is that the oscillators dont lead to this crash. So please let me know, if anything unexpected happening, when playing the new ensemble.
V1.2 features two major updates:
- I tuned the structure to be even more CPU-friendly by inserting some latched operations
- I added a DPW-antialiased parabol to the oscillator. There are two macros added, featuring a DPW-antialiased parabolic waveform. Which gives a cleaner FM-sound than the prior version, but also takes a few multiplications and additions more into account!
- Please Notice: The macros in the .zip has been renamed. The macros with the non-DPW parabol has now the suffix (cheap sin). When you want to update your instruments with the new oscillators, and dont want to change the sonic behaviour, please use the version with suffix (cheap sin)!!!
These first order DPW oscillators are well suited for FM and AM. It is good practice to run the core macros running the oscillator at 64bit precision. All oscillator macros in this download are set to 64bit precision. Lower precisions can lead to clicks in the frequency scaling.
The Sinewave outputs a parabolic waveform. But it is not differentiated in the (cheap sin)-version. So it is not DPW-antialiased in the (cheap sin)-version. It gives a simple distorted sinewaveform, whiches aliasing is comparable to the other waveforms of the DPW oscillator.
The oscillators are not suited to be resetted by audio sources.
The download contains:
-Test ensemble containing a simple FM pair.
-Test ensemble containing higher order DPW algorithms
-4 DPW multiwave core macros, two with Gate input for Phase reset, two without. Two of them are implemented with a cheap non antialiased parabol.
-1 DPW multiwave core cell with an interpolating waveform selection
-1 higher order DPW core cell with an interpolating waveform selection