You are here

Page 2: Creative Synthesis With Yamaha XG (Part 2)

XG Masterclass By Mike Senior
Published May 2004

Combining Velocity Responses

The previous example showed how voices in a layered sound could be set up to respond differently to different note lengths, but you can also make the different layers respond very differently to velocity by using the two Velocity Sense parameters: Depth and Offset. Figure 1 shows how these two parameters affect the response of a given voice to the complete range of MIDI note velocities from one to 127 — the default response is shown as the centre of the nine graphs.

Figure 1. The effects of the Velocity Sense Offset and Velocity Sense Depth settings.Figure 1. The effects of the Velocity Sense Offset and Velocity Sense Depth settings.

These different responses provide a lot of flexibility in practical terms. For example, for your first layer in a composite sound you could set Depth to its minimum value and Offset to 40, so that the layer responds to all incoming MIDI notes as if they had velocity values of 40. Then you could set the Offset of a second layer to its minimum value and the Depth to its maximum, so that the layer would only respond to MIDI notes with velocities higher than 64. Now if you combined these layers with another which used default Velocity Sense settings, you would get the following result: at low velocities the first layer would dominate over the third layer, and the second layer would be silent; by the velocity value of 64, the third layer would dominate over the first, with the second layer still silent; and at higher velocity values the third layer would add progressively to the second, until both layers were equally strong at maximum velocity. This kind of setup would perhaps suit a bass sound, where you want the sub-bass weight to remain consistent (first layer), the more audible low and high mid-range parts of the sound to respond naturally to velocity (third layer), and a stronger attack element to be introduced for accents (second layer). Juggling different velocity responses can seem a little daunting at first, but it allows you timbrally to differentiate MIDI notes of different velocities in much more interesting ways than those enshrined within the preset XG multisamples.

Here's a practical example to give you a feel for how this technique can offer more scope for expression. The electric piano sound in Example 3a has been set up with its Velocity Sense Depth at 40 and its Offset at 100. These parameter values have the effect of reducing the sensitivity to velocity, which keeps the level fairly consistent.

As it stands, this sound is a bit lifeless and cheesy, especially given the limited velocity response, so I'm now going to add a layer to dirty up the sound at higher velocity values. You can hear this part on its own in Example 3b — it's a mellower electric piano patch which has been sent to the Amp Simulator Variation effect. The voice's Dry Level parameter has been set to zero so that you only hear the output of the effect, and the heavy overdrive does a good job of turning the line into a mush! However, you'll also notice that this sound is responding much more selectively to the MIDI notes. This is because I've set the Velocity Sense Depth to 100 and the Offset to 50, which gives a velocity curve a little like that at the bottom right of Figure 1 — very soft MIDI Notes hardly register at all, but as the note velocities increase, the voice becomes louder much more quickly than with default settings.

You can hear the combined result in Example 3c, where the clearer electric piano sound provides the pitching and definition for the composite, and the distorted sound gives a bit of attitude and a more expressive timbral change with velocity. This is a sound which simply wouldn't be possible in XG without layering, but it's much more fun to play than most single XG voices and easy enough to set up.

That said, there are some practical points to mention here. Firstly, although I have isolated the two layers for demonstration purposes in Examples 3a and 3b, I actually set up the synth parameters for the two voices from scratch while playing the composite sound from the keyboard. This is important, because adjusting the relative Velocity Sense settings, effects send levels, and volume levels is a delicate balancing act which is most easily done by ear.

The second thing to mention regards Example 3 in particular. Because an XG voice's send to the Variation effects block is post-fader when you're not in the global Insert Variation Mode, adjusting the main Volume parameter also adjusts the send to the Amp Simulator, which of course alters the tone along with the level. To control only the level of the effect, use the Variation Return parameter instead. This parameter can be accessed using the hexadecimal SysEx string F0 43 10 4C 02 mm 56 xx F7, where 'mm' is the multitimbral part and 'xx' the effect return level (which defaults to a value of 64).

Switching Timbres From The Keyboard

If you assign several voices to a single MIDI channel, but set each voice to respond only to a single note number, you can use the keyboard to control timbre rather than pitch — each note plays a different sound, in much the same way as in an XG drum kit. The parameters you need in order to cordon off the required note per voice are Note Limit Low and Note Limit High, and these parameters can be accessed by the hexadecimal SysEx strings F0 43 10 4C 08 mm 0F xx F7 and F0 43 10 4C 08 mm 10 xx F7 respectively, where 'mm' is the multitimbral part and 'xx' the MIDI note number.

The concept of mapping different voices across the keyboard can be used to create a flexible step sequencer, simply by triggering a series of XG voices from a repeating scale in your MIDI sequencer. Just as on an analogue step sequencer, the step pitches can be individually defined by using the Note Shift parameter for each XG voice. However, whereas an analogue step sequencer will rarely offer more than a couple of control-voltage outputs per step, each voice in this XG step sequencer can be completely transformed using all of the XG synthesis and effects parameters. Furthermore, you can edit the MIDI trigger sequence to create complex patterns of steps which go far beyond the capabilities of most traditional step sequencers.

Figure 2. In Example 6, six different voices are set to the same MIDI channel, and then each one is restricted to one note by setting the Note Limit Low and Note Limit High parameters appropriately.Figure 2. In Example 6, six different voices are set to the same MIDI channel, and then each one is restricted to one note by setting the Note Limit Low and Note Limit High parameters appropriately.

To get a grasp on some of the possibilities available here, have a listen to Example 6a, where I've programmed six identical XG voices to respond to one MIDI note number each and I've then triggered them in a complex pattern using a repeating 16-note MIDI sequence. Despite a few small velocity swells, this is hardly the greatest step-sequencer part of all time, but you can improve it dramatically by selecting slightly different patches for each voice, as in Example 6b.

But the best is still to come. Because all of the voices are responding to the same MIDI channel, a single MIDI Continuous Controller message will adjust them all. Messing about with the filter settings immediately makes things much more interesting in Example 6c, and various effects rides (using Tunnel, Celeste, and Phaser algorithms) transform the sound from moment to moment in Example 6d. And now the icing on the cake: by using the hexadecimal SysEx string F0 43 10 4C 08 mm 23 58 F7 (where 'mm' is the multitimbral part again) for each voice, you can set the pitch-bend range for all of the voices to two octaves, which means that you can sweep the pitch of the sequence around while it's playing. In Example 6e I've waggled the pitch-bend control around, and I might even have laughed maniacally while I was doing it...

And the fun doesn't stop there. You could set the Note Limit parameters to provide, say, an octave of each voice instead of a single note, which gives you limited pitch control from the keyboard alongside the timbral switching. Plus, there's still scope for independent real-time control of the individual voices using SysEx messages, which can be directed to the different multitimbral parts regardless of the MIDI channels they're set to receive, as discussed last month.

Full-fat Pad Sounds

So far I've been looking at layering different sounds together, but there are some cases where you might want to layer the same sound against itself. One of the problems with synths which are based on samples is that the pad sounds in particular can tend to sound a bit static and boring. And easy way to liven them up is to layer two or more voices on each note and then detune the voices against each other. This is similar to the way you might layer oscillators in an analogue synth, but the differences here are that there is a much larger range of waveforms available and that each voice can have completely independent synthesis and effects settings.

I've deliberately chosen one of the most monotonous synth-style patches I can find to create the pad part in Example 4a, in order to highlight the kind of difference that this technique can make. In Example 4b, I've layered two further voices with it, using exactly the same synth settings, with the exception that the second layer has its Detune parameter set to -0.8Hz and the third layer has its Detune parameter set to +0.6Hz. Already the layered sound is more involving than the unlayered one, as the different layers interfere with each other over time.

But there's much more you can do. If you pan the second and third layers to opposite sides, this widens the sound and makes the interference patterns move around the stereo image, as in Example 4c. You can also add more movement by setting up subtle pitch LFOs for each of the layers, but with slightly different settings for each, which gives the more lush sound of Example 4d. Then you might adjust the Pitch EG for each part so that each note starts out of tune and then drifts onto a more stable pitch, as in Example 4e. And this is all before you've even thought about having different filter, envelope, or effect settings for the different layers... Who knows? Maybe you might even be able to find a use for that stupid Bagpipe patch after all!

Livin' On A Layer

To round things off for this month, I've combined all the above example sounds into Example 5, which you can also download as an XG MIDI file from the SOS web site if you want to have a look at exactly how I've set everything up. You'll notice that Example 5 also includes an extra solo treble synth line, which is there to show that the Trumpet patch doesn't have to be unusable just because is sounds cheesy in its basic form! You can transform cheesy sounds into something more inspiring by using them out of their normal range, tweaking the synthesis parameters, and using real-time controllers and MIDI delays.

Next month, I'll be looking at using the ideas from the first two parts of this series to do weird real-time modulations with layered sounds. Plus, I'll show you how to morph between completely different sounds while you're playing.

Go to: Creative Synthesis With Yamaha XG (Part 1 of 3)
Go to: Creative Synthesis With Yamaha XG (Part 3 of 3)