Dexed: Building An FM Square Pad

, , , ,

We learned in the last article the steps we needed to take to build a simple 2-op FM patch in dexed. In this edition, weโ€™ll add a bit more complexity to our sound design by building a simulated Analog FM Square Pad. Moreover, the following programming approaches will be used:

  • The use of longer, pad-type envelopes, and copy-paste easily
  • The creation of motion and chorusing in a voice
  • The addition of modulation other than LFO -> Pitch
  • The addition of more harmonics to the Square Wave

Letโ€™s put on our overalls and head to the โ€œgarageโ€.

Last time, we saw that creating a โ€œsquare waveโ€ of sorts can be done using dexed, which as a 6-op FM DX7 emulator, is built on six sine wave generators, or operators. In the voice we designed, we used Operator 2 to modulate Operator 1 at 2x the frequency of Operator 1, which, by adding that second harmonic, created something close to a square wave. Weโ€™ll build on this knowledge to create our target sound. 

the simulated Analog Square Pad starts with an initialized voice
Start with an Initialized Voice

Two operators will not be enough to get our sound close to an analog square pad, Start by pressing [INIT], which creates a baseline voice. Letโ€™s find and select an algorithm that can generate three carriers, along with three modulators. Algorithm 5 seems to fit the bill, so choose that.

The initialization process creates a simple voice. All six operators are enabled, but we can only hear Operator 1, as the other 5 operators have their volumes set to zero. Letโ€™s first get Operator 1 to work as we want. Since we are targeting a pad-type voice, adjust the EG Rates 1 and 4 for Operator 1. Iโ€™ve used 40 as a rate for EG Rate 1, and 30 for EG Rate 4. You are welcome to adjust to your taste. Now that the EQ is sorted, letโ€™s add in a little Key Vel sensitivity by setting that parameter to 5. Now, we have a nice, boring sine wave voice with dynamics. 

Copy, then Paste the EG parameters
dexed has the ability to copy and paste Envelope Generators

Copying and Pasting EG Parameters

Creating the square wave is easy. Change the Coarse value of Operator 2 to a value of 2, and increase the Output Level to 7. We will also want to duplicate the envelope from Operator 1 to Operator 2. By right-clicking in the Envelope editing area of Operator 1, we can select โ€˜Copy Operator Valuesโ€™. Next, right-click in the Envelope editing area of Operator 2, and select โ€˜Paste Envelope Valuesโ€™. This copies and pastes the envelope values between operators. Now, there was another paste option there too – the notion of โ€˜Paste Operator Valuesโ€™, which we will get to shortly. At this point, we have a square wave pad-type sound, generated by Operators 1 and 2. We can verify this by looking at our oscilloscope output – there it is, our Square wave.

Create the triple oscillator by copying operators
dexed also can copy and paste complete Operator settings

Copying and Pasting Complete OP Parameters

Next, we want to add a bit of thickness and motion to our pad. To me, one of the things that makes a pad special is a little chorusing effect – a bit of audio thickening. Since we have an algorithm that can output three carriers at once, we can use the additional carriers, programming them to be slightly detuned from Operator 1, to create a moving, chorus effect. Using our newly discovered trick of copying and pasting, we can copy the Carriers and the Modulators as they work in Operators 1 and 2, to the carrier/ modulator pairs of 3/4, and 5/6. Right-clicking in the Operator 1 editing area, select โ€˜Copy Operator Valuesโ€™. Next, right-click in the Operator 3 editing area, and โ€˜Paste Operator Valuesโ€™. Repeat the pasting into Operator 5. Similarly, we will right-click in Operator 2, and paste those operator values into Operators 4 and 6. 

the stack of three square oscillators
Here is our triple-square wave, without and chorusing

Adding Motion

A three-oscillator (operator) version of our 2-op square wave pad has been created. Thereโ€™s no chorusing or motion yet, however. By adjusting the Tune parameter of Operators 3 and 5, we can have our carrier operators slightly out of tune, creating a chorusing effect. This also adds a bit of motion to the sound. The further away from a tuning offset of zero programmed for these operators, the more modulation you will sense. Please try Tune values of +2 for Operator 3, and -2 for Operator 5, then increase both tune offsets to 5 or 7. You can choose which Tune offset sounds best to your ears; I selected 5 to get the effect that works for me.

There are some good options for saving in dexed, either with your DAW or in a separate .SYX

Saving Interim Work

Since doing sound design for so long, Iโ€™ve developed a set of practices while programming to keep me sane, and more importantly, from losing data. Back in the day, when I walked uphill – both ways – to school, I occasionally would have data loss DISASTERS involving both ZIP and Syquest drives, computer crashes, and even more fundamentally, losing patches because I would not save enough as I was programming. So, letโ€™s take a moment to save our work thus far. Press SAVE, and name your sound, deciding if you want to save it as a voice in your DAW or SysEx file. Letโ€™s move on to putting the final touches on our voice to make it musical and usable. 

Tailoring the mod matrix for tremolo
Turning off the Wheel -> Pitch switch disables vibrato

Voices with chorusing sound best to me when I donโ€™t use vibrato in the sound since there is already enough pitch modulation happening through chorusing. I tend to add a bit of tremolo, or amplitude modulation to a sound like this. Carefully open the PARM window – right next to INIT – and turn OFF the Wheel to PITCH switch if it is ON. Confirm that Wheel to AMP is ON. Close the PARM  window, and adjust the A Mod Sens for Operators, 1, 3, and 5 to a value of 2. A better way to have done this would have been to program the A Mod Sens parameter before we started copying Operators, but that is sometimes how the discovery process while programming goes. Weโ€™re essentially done with this voice for now, so letโ€™s store our final sound.

simulated Analog Square Pad - screenshot
A screenshot of the final product

Experiments & More Harmonic Content

Besides the depth of chorusing we can achieve by detuning Operators 3 and 5, we can also try a few more experiments with this sound. I found it interesting to use A Mod Sens on Operators 2,4, and 6 – the modulators – rather than the carriers. Since the LFO would then modulate the output level of those modulators – the voice output would change from Square wave to sine wave and back – an interesting effect, especially when coupled with a slower rate LFO. This also sounds really good with the LFO Key Sync turned off – letting the LFO run free.

Thereโ€™s another voice-global, rather than Operator-based, set of experiments you can do with the Cutoff and Resonance of the Filter, too. Try the Cutoff at around โ€œ10 oโ€™clockโ€ on the knob, and the Reso at 11 oโ€™clock, and you will hear an interesting interaction between the square waves and filter – especially when we use A Mod Sens on the modulators. Finally, I changed the Coarse parameter for Operator 6 to f=4. This increased the harmonic content of the sound making the square waves sound even more โ€œsquareโ€ to me. Give it a try and see what you think.

So we are at the end of our second voice program – an “Analog” FM Square Pad on dexed. Weโ€™ve added a couple of tricks to our toolbox – specifically the ability to cut and paste Operator Values to save time, as well as figuring out a means to create a chorusing effect. These tools will be useful as we continue our journey in programming FM in dexed. Our next programming will move from Analog-style simulations to percussive-oriented sounds, tapping into the dynamic nature of FM synthesis. Stay tuned and thanks for reading!

Resources: