You are here

Creative Synthesis With Yamaha XG (Part 2)

XG Masterclass
By Mike Senior

Layering voices is one of the best ways to maximise the potential of your XG module, so here are a variety of ingenious ways you can use this technique — you can even turn your synth into a high-spec step sequencer!

Creative Synthesis With Yamaha XG - XG logo.In Part 1, I demonstrated how to control the different XG editing parameters in real time over MIDI, producing more expressive synth parts and arpeggiations in the process. I also showed how you could creatively 'waste' your XG module's polyphony and multitimbrality by using fast note repetition and complex MIDI delays. In this month's column, I'll be looking in detail at another way you can fritter away your XG synth's horsepower in the name of inspiration: layering voices.

In order to layer XG sounds you have to make two or more of the multitimbral parts respond to MIDI messages on the same MIDI channel. Some XG modules provide a way to set this up directly, but if you can't find the parameter on your unit you can use the hexadecimal SysEx string F0 43 10 4C 08 mm 04 xx F7, where 'mm' is the multitimbral part and 'xx' the MIDI channel you want it to respond to.

Mix & Match

The most common reason I find I want to layer XG voices is to change the attack characteristics of a sound that I otherwise like. Take a listen to the bass line in Example 1a, for instance, which uses a voice based on the Oscar preset. (As with last month's article, we have placed all the sound and MIDI files relating to this workshop into a ZIP file, available from the righthand Media sidebar.) I like the high-resonance filter squelch at the start and the meatiness of the steady-state tone, but I'd prefer more weight to the attack, so I'm going to add this by layering in another sound. For this role, I need one of the more percussive sounds which automatically decay to silence regardless of how long you hold the note. One of my favourites is the MuteGtr patch, because it is clearly pitched rather than just percussive. In Example 1b you can hear the line played using this sound on its own.

As it stands, Example 1b is a bit too clicky and buzzy for my taste, but some judicious sculpting with the filter and envelope generator transforms it into the much more suitable Example 1c — the high end has been tamed and the amplitude envelope's decay shortened so that the MuteGtr will only contribute to the very start of the layered sound. Example 1d combines the two sounds, but although I've adjusted the volumes of the two parts to my liking, the high end of the attack is still dominating over the low end, so in Example 1e I've increased the attack time of the Oscar patch just enough to take the edge off its attack without destroying the filter sweep. I've also turned on the Portamento Switch parameter for the Oscar layer, so that the filter sweep doesn't necessarily trigger with each new note, even though the MuteGtr part does. (See the box elsewhere in this article for more information about how Portamento works in XG.)

By layering two voices together you can often get the best of both, as in this case. And, of course, you don't hear the result as two separate sounds, despite its actual composition.

Stealth Layering

Sometimes I've created XG sounds which seem great in isolation, but which get lost in the mix on some systems. This is often because there is not enough energy to cut through all the other sounds in a particular critical frequency range. My solution to the problem is to choose a voice with a very limited frequency bandwidth and then to layer it alongside the main voice. Then I play back my mix and adjust the Note Shift and Volume of the new layer such that it fills the gap in the main sound, bringing it forward in the mix.

My favourite voices for this task are: SineLead (a variation of SquareLd) for reinforcing specific harmonics; SoloSine (another variation of SquareLd) if you want something with a few more harmonics to fill a slightly wider gap; or Sine Pad (a variation of Warm Pad), which also provides a little stereo width. Alternatively, you can tweak the Whistle or Ocarina patches into something similar, but with a slightly fuzzier feel, using their synthesis parameters.

These patches can also be useful for layering as sub-bass tones under synth bass patches, a technique particularly beloved of hip-hop and R&B production. Just watch that you don't blow your speakers up! SineLead can create tones so low that you will hardly hear them on small speakers, but even if you can't really hear a strong sub-bass note on your monitors, it could still be causing potentially damaging wide cone excursions.

More Elaborate Layering Techniques

Even though this example is fairly simple, I've still been using the editing parameters to craft each individual voice to my needs. However, you can go a lot further with this idea. Example 2a has some basic rhythm chords played with a fairly uninteresting SineMrmb patch, albeit with a rather weird reverb effect. In order to generate a more interesting hybrid, I've layered it in Example 2b with the RevCymb1 patch. By tuning the added layer two octaves down and adjusting its filter settings, I have been able to tweak the timbre to my taste. The envelope generator has then been used to specify the length of the 'chiff' in this case, and the attack time of the SineMrmb voice has been increased to shift emphasis to the RevCymb1 part at the start of each note. The 'chiffs' track the note pitches to some extent, but I'd like the sound of the 'chiff' to change a little more organically from note to note, so in Example 2c I've added some slow flange just to the RevCymb1 voice.

This technique of replacing the attack phase of one sound with a short burst of another is a great way to resurrect many sounds which you might already have consigned to the grave. Many people completely discount all the completely bonkers sounds in the SFX voice category, but they can act as attack transplants for other patches — it's particularly worth returning to Str Slap, Fl.KClik, LaserGun, and Scratch. You may also rarely feel moved to delve into the Chromatic Percussion, Synth Effects, Ethnic, or Percussive voice sections, but browse through there with all the main envelope generator's time settings at minimum and you'll find a huge palette of attack transients perfect for grafting onto other meeker voices.

Because of the way I've programmed the composite sound in Example 2c, each note is pretty short regardless of how long you hold the MIDI notes for. This leaves me the scope to add another layer (using a slow-attack ThaiBell patch) which only makes itself known when I play longer notes. In Example 2d you can hear this new layer on its own — it contributes almost nothing to the short notes, because of its slow attack, but you can immediately hear which are the longer MIDI notes. I've put all of the layers together in Example 2e, and I've sent a little of the ThaiBell layer to the flanger along with the RevCymb1 'chiff'. A few sneaky Mod Wheel messages add a little vibrato to the SineMrmb layer as well in a couple of places.

Before we move on, here's a little foretaste of some of the advanced modulation possibilities available for layered sounds — I'll be discussing this in much more detail next month. In Example 2f, I've used the Bend Pitch Control parameter to make only the ThaiBell layer sensitive to MIDI Pitch-bend messages. This means that I have been able to waggle the pitch-bend wheel to create wacky pitch slides for the Thai Bell layer without affecting the pitch of the other layers.

How The XG Portamento Parameters Work

The way the Portamento Switch parameter works is a little more complicated than on some other synths, and it also causes different results depending on the Mono/Poly Mode parameter setting for the voice in question. So let's take a look at each scenario in turn. (In case you can't access Mono/Poly Mode directly, MIDI Continuous Controllers 126 and 127 select monophonic and polyphonic operation respectively. In hexadecimal those messages are Bn 7E 00 and Bn 7F, where 'n' in the MIDI channel number — note that the latter message needs no data byte. Alternatively, you could use the hexadecimal SysEx strings F0 43 10 4C 08 mm 05 00 F7 and F0 43 10 4C 08 mm 05 01 F7, where 'mm' is the multitimbral part.)

When you turn the Portamento Switch on for a polyphonic voice, the pitch will glide to every newly played note from the previous note according to the Portamento Time parameter, regardless of whether or not the notes overlap. This means that the exact order you play the notes in chords makes a difference to how the pitch glides happen. For example, let's say that you first played a two-note chord of C3 and G3, and then released that chord before pressing down the same chord again. Given that the MIDI protocol is serial, and that it is therefore impossible for any two notes to happen simultaneously, in each chord one note must happen before the other. If you hit the C3 fractionally before the G3 in each case, then each C3 would glide down from the G3 in the previous chord, and each G3 would glide up from the C3 in its own chord. If a third chord were then played, where the G3 this time preceded the C3, the G3 wouldn't glide at all from the G3 in the second chord, but the C3 would still glide downwards, this time from the G3 in its own chord.

Although the portamento response of polyphonic voices is simple in theory, the results with chords in practice can be rather haphazard, with pitch glides sprinkled all over the place. There is a certain amount you can do to make things more predictable by programming the note order in you chords carefully, but some of the better-specified XG modules have another tool at your disposal for controlling the pitch glides: the Portamento Control parameter. This is accessed using MIDI Continuous Controller number 84 (which is Bn 54 xx in hexadecimal, where 'n' is the MIDI channel and 'xx' the data value) and acts as a kind of 'silent note' for the purposes of tweaking portamento pitch glides. The Portamento Control value specifies which MIDI note number the next MIDI note should glide from. For instance, you could defeat any pitch glide to a C3 note using a Portamento Control message with a data value of 60 — remember that, as far as Yamaha are concerned, middle 'C' is called C3 and has a MIDI note number of 60.

Even with the Portamento Switch on, each note in a polyphonic voice will always trigger its own envelope, regardless of whether the note overlaps with any other notes already sounding. With a monophonic voice, however, turning the Portamento Switch on stops the envelope re-triggering when you play a legato line (in other words, where the notes overlap). If you want no pitch glide, then simply set the Portamento time to zero, which still leaves the legato envelope action in place. If you want pitch glide, but you want the envelope to re-trigger for each note, then make sure that the notes stop just short of overlapping in your MIDI sequencer. It's probably also worth mentioning that the Portamento Control only affects the initial note in legato monophonic lines.

Published May 2004