Maybe this will be a bit easier to follow:
dblue-ringmod-monophonic-synth-demo.xrns
I’ve broken it down into 3 steps that show how I build things up:
- 1: Basic oscillator sound
- 2: Oscillator with a volume envelope
- 3: Oscillator with volume and filter envelopes
Basically, the RingMod effect modulates the amplitude of a signal, right? If you put a vocal sample through RingMod, then you get that weird kind of robotic sound, because the voice is being modulated by a sinewave or whatever you’re using. Well, we can take advantage of this to actually produce new sounds, rather than simply modifying existing ones in the traditional way.
If you apply RingMod to silence, then you get… silence… because there’s no signal to actually modulate. So this is where the DC offset comes into play. By applying a manual DC offset to our silence, we now have a very rough (and very flat) signal that we can work with. We have changed the input audio from a constant stream of 0.0’s into a constant stream of 0.5’s, for example. When we apply RingMod to this new signal, it actually has some values that it can modulate, which in turn creates sound. We’re now changing that boring sound of ‘nothing’ into a sinewave, or a sawtooth, or a square, etc.
(I’ve included another instrument/sample called ‘Silence + DC Offset’ which simply shows the modified signal, to get a better understanding of how the DSP chain starts out)
From there, you can do more interesting things like shape the signal with a volume envelope. To do this I’m using a Gainer, which is being controlled by an LFO Device with a custom envelope shape, which is in turn being reset by a Velocity Device each time a note is triggered. You can do a similar thing with a Filter instead of a Gainer to give the sound a more interesting tone. The DSP chains might look complex, but it’s really just a combination of various simple things stacked together in order to change the sound. You don’t have to focus so much on these, just focus on the very basics first, and the rest will eventually fall into place.
The RingMod wouldn’t be very useful to begin with unless it could be accurately tuned to the correct frequency for each note, so this is where my first custom LFO comes into play. This was probably the trickiest part of the whole process. I had to write a program to generate the correct envelope points for all 120 notes (C-0 to B-9), which I copied as XML from my program into Renoise. I use the Key-Tracking device to read the note that is played in the pattern, and then I translate this to an LFO reset command that corresponds to the correct point in the custom envelope. The LFO then sets the RingMod frequency to the correct value to match the note.