Working with XG SYSEX on the Yamaha QY70

by Robert W. Stead
2/12/2000

I discovered this past week that I can create multi-timbral patches on my QY70. The QY70 lets more than one part be controlled by one channel. This is set up in the following way:

  1. Go to an empty song. In other words, you usually will want to create a multi-timbral patch in an empty song position. If you create one in a pre-existing song, you may get some unexpected results
  2. In Song mode, press the menu key and select Edit
  3. Press menu again and select Insert
  4. Use +1 to navigate to the XG Exc Multi screen
  5. Navigate to the beat and clock setting at which you want to insert the part setting.
    Example: 1:001 would place you at beat one with the clock setting at 001. Please note that you must leave sufficient time for each message to be received. For multi settings, I leave at least 2 clock beats between each setting. I have not had any trouble with this so far. If I encounter any problems, I will simply advance the clock settings to allow more time.
  6. Navigate to the XG multi part parameter name using the -1 or +1 key
    Example: RcvCH {for receive channel}
  7. Choose your settings {select the part number and the data associated with the part}
    Example: If you want to set the part number to 2 and the receive channel to one, you would enter 02 for the part number and 001 for the data. For another clock setting you might set the part number to 03 and the data to 001. This would allow parts 2 and 3 to be controlled by channel 1. Playing on channel 1 would activate parts 2 and 3.
  8. Press Enter after setting the parameter, part number, and data.
  9. Repeat the process in order to insert another setting for the part. 
    NOTE:
    Each setting must have its own beat and clock setting. When you press Enter, you are dedicating that beat and clock setting to a particular parameter for a particular part. 
  10. Once you have entered all the data, you must reset your song to measure 1 and then play the settings (press the play button). You are actually playing the multi settings you have created. Once the settings have been played, your patch is activated. Make sure that the channel that you have established as the patch channel is active when you test out the patch.

About MSB and LSB when working with XG Exc Multi

In XG Exc Multi, MSB (most significant bit) controls the type of voices that will be used. In other words, the MSB determines whether you will be calling upon the melody voices (00h), the SFX voices (40h), the SFX kit (7Eh), or the rhythm kit (7Fh). In most cases, for channels 1-9 and 11-16 the MSB is set to 00h (melody voices) and channel 10 is set to 7Fh (rhythm kit).

LSB (least significant bit) determines what bank the voice or kit will come from. XG has the potential to address 128 banks with each bank having 128 voices (from 0-127). In reality XG does not use all of its potential. 

Example: For the Yamaha QY70, having the MSB set to 00h, the LSB set to 22h (34 decimal), and the program number set to 6 selects the DX Legend voice.

Note: XG actually has the potential to address 2, 097, 157 voices. Think of the MSB as an On switch that has the capability of activating LSB banks. With the MSB set to 00h, there are 128 potential LSB banks. But it is also possible to set the MSB to 01h (or any other number up to 7Fh) with another 128 banks with each bank having 128 voices. Therefore, the XG potential is 128 MSB banks X 128 LSB banks X 128 voice possibilities in each bank. 128 cubed equals 2,097,157.

By using MSB and LSB settings, the XG can go beyond the limited potential of GM (General MIDI). GM, in effect, has only 1 bank for voices (128 voices). With the current XG MSB-LSB approach, it is possible to have 128 * 128 banks (16, 384 banks).

Keep it Simple for Starters

The simplest XG Exc Multi (hereafter referred to as "multi") would utilize only the RcvCh parameter to set multiple parts to one receive channel. The RcvCh XG multi part parameter, for example, could be set to 001 (channel 1) for part 1, 2, and 3. Once the channel is set, you can then change voices, adjust the volume, and determine the pan setting in the song voice mode. (The song voice mode is the screen that you normally use to change voices, adjust volumes, etc..) Once you determine the voices, volumes, and pan, you can then add these setting using the multi settings in the Edit/Insert/XG Exc Multi screen. 

Just remember that you can only hear the patch when you are on the receive channel that you have designated. For example, if you have set channel 1 to receive part 1, part 2, and part 3, and if you have moved to part 2 to select a voice and a volume, you must move back to channel 1 in order to hear the voice.

GM On and XG On Sysex

You might want to include GM On and XG On in your patch. These must appear at the beginning of the patch. Keep in mind that GM On and XG On initialize the song. In other words, these sysex commands wipe out any previous settings and set the song to an initial XG state. If you do not want this to happen, then do not use these sysex commands in the patch. When I create a regular song (not a patch), I always include GM On and XG On to insure that I don't have any settings left over from a previous song that has been loaded. I'm not sure, yet, whether I need to worry about this for a patch (if the purpose of the song is only to be a patch). If anyone has any input, I would appreciate it.

When creating a patch, reserve clock-setting 000-200 for the GM On and 200-400 for XG On sysex. This should allow enough time for the commands to execute. The hexadecimal numbers for GM On and XG On are as follows:

GM On: F0 7E 7F 09 01 F7
XG On: F0 43 10 4C 00 00 7E 00 F7

Please note that these sysex lines are not put in the multi screen. Instead they go in the Exc screen. In other words, when you are in Song mode, you press Menu/Edit and then press Menu/Insert. You must navigate to the Exc screen and enter the sysex shown above. The GM On and XG On sysex goes on a separate beat:clock settings. As stated above, you must leave enough time for the sysex to execute. Since these statements are, in effect, resetting your sound module, it takes a bit longer for them to execute.

Note: By using multi to create a patch, you can create a library of song/patches and call them up quickly.

Problem:

When you load embedded sysex into song mode and then activate a pattern, the pattern tries to play while you are loading the sysex. The result is cacophony. Perhaps the solution is to have a pattern start with a blank measure in order to allow the sysex to load. I need to explore this area a bit more.

Tweaking Multi Settings

You can tweak multi settings in the Edit screen. When you are in S0ng Mode, simply press Menu/Edit and then navigate to the beat:clock setting that you want to change. When you make a change, the line you are editing will blink. This is a reminder to press Enter in order to make the change take effect. You can change the parameter for any beat:clock setting as well as the data. This is especially helpful if you want to tweak a volume setting or a pan setting.

Suggestion

In order to create a patch that consisted of four parts, I find it helpful to first set the receive channel for the four parts. (Remember to play the song so that the settings take effect). I then adjust each part in the Song/Voice mode (press the Song key once while in the main Song mode to get to the Song/Voice mode) in order to get the desired voice, volume, and pan. Please note that when you adjust the voices for the parts that are not on the receive channel, you must move to the part to change it, and then move back to the receive channel in order to hear the change. Once I know what voices I want and their associated settings, I then insert multi statements for the voice, volume, pan, etc....

Example: 4 parts sent to one channel 

The table below shows the multi lines for a 4 part patch. You will notice that I include the settings for voice, volume, and pan settings for each part

Beat:Clock Setting Exc Parameter Part Number Data
1:100 RcvCh 01 001
1:102 Bank-M 01 000
1:104 Bank-L 01 033
1:106 Pgm# 01 006
1:108 Vol 01 110
1:150 RcvCh 02 001
1:152 Bank-M 02 000
1:154 Bank-L 02 032
1:156 Pgm# 02 061
1:158 Pan 02 R26
1:160 Vol 02 075
1:200 RcvCh 03 001
1:202 Bank-M 03 000
1:204 Bank-L 03 038
1:206 Pgm# 03 017
1:208 Pan 03 L20
1:210 Vol 03 030
1:250 RcvCh 04 001
1:252 Bank-M 04 000
1:254 Bank-L 04 000
1:256 Pgm# 04 090
1:258 Pan 04 L04
1:260 Vol 04 100

The patch designated in the table above uses the following voices:

In order to determine the LSB bank numbers and the program numbers for your patch, simply refer to the "XG Normal Voice List" found on page 2 of the QY70 List Book.

After entering all of the above, I then played the song in order to activate the settings. When I activated channel 1 and pressed a key on the micro keyboard (or whatever MIDI controller I may be using) all four voices with their associated volume and pan sounded simultaneously.

What is possible?

Please refer to the QY70 List Book (Table 1-6 MIDI Parameter Change table (MULTI PART) in order to see all the parameters that can be changed--and therefore embedded into a song through the Insert Multi technique described above. As the table shows, you can control the envelope (attack, sustain, release, decay), the effects (reverb, chorus, variation), the sound quality (filter cutoff and resonance), vibrato, transposition, and channel aftertouch {plus a few more things}. It is also possible to create keyboard splits with a bass voice set for the lower part of the keyboard and a piano voice for the upper part. All you need to do is set the Note Limit Low and Note Limit High parameter for each part.

Since the QY70 is only 32 note polyphony, you could create a patch that is too rich for the sound module. As soon as all 32 notes are taken, voices will begin dropping out. Therefore, a note played with a multi-timbral patch could, if sustained long enough, begin dropping voices.