"programming": ["audio", "low-level", "iOS"]

Monthly Archives: March 2013

Finally I have gotten the chance to polish up and release a new plug-in. This one is a ring modulator called Dyner (ring modulation is basically a type of heterodyning). I’ve spoken about this effect in a previous blog post, but just to quickly summarize, ring modulation is accomplished by multiplying a modulator signal (usually an oscillator of some kind) with the carrier signal (the audio). By itself it’s a very easy and straightforward operation, but unless you’re only modulating with a sine wave, aliasing becomes a big issue to deal with. Many free ring modulators that I’ve tried do not tackle this problem in any way, so I was determined to do so in Dyner.

This meant writing my own resampler to handle the oversampling of the operation. As I outlined in previous posts regarding resampling, this was no mean feat in making sure the process was accurate and efficient. However, without regard to the oscillator itself, a very strong anti-aliasing filter would be required, severely impacting the CPU load and execution of the effect. The next task was then to create fully band-limited oscillators. In this plug-in I’m just using the wavetable approach, with each oscillator using 10 different tables calculated with a unique number of harmonics appropriate for the octave range so they don’t alias. Now that it was ensured that the oscillators themselves would obey the sampling theorem, oversampling by 2X using a light filter is so far giving good results.

The plug-in (VST 2.4, for both Mac and Windows, 32-bit & 64-bit) can be downloaded for free in Downloads.

Dyner GUI

Features:

Five oscillators (sine, sawtooth up, sawtooth down, triangle, square)

Oscillators are fully band-limited and FFT generated for optimum performance