PSR/Tyros XG effects

I’ve been busy making my PSR-S950 gig-ready. I’ll describe the overall set-up in a separate post as soon as I have a little more time.

Part of the job involves converting some of my General MIDI 2 backing tracks to the PSR-S950 sound engine. The PSR (and Tyros) sound engine follows the Yamaha XG architecture and the sound engine responds to Yamaha XG System Exclusive (SysEx) MIDI messages. The XG SysEx messages configure tone generation and the effects that are applied to the tone generator outputs. Let’s limit the discussion to MIDI song sequencing and assume that there are 16 MIDI channels and each channel is routed to a separate tone generator. We’ll ignore style parts and how to tweeze tone generation in order to keep this discussion focused on effects.

There are two types of XG effects: system effects and insertion effects. We are already quite familiar with two common system effects: chorus and reverb. Potentially, the output from any tone generation channel can be sent independently to chorus and/or reverb. System effects routing and control follows a send-return model like a well-featured analog mixer. The amount of signal sent to the (virtual) chorus or reverb unit from a given channel is determined by a send level. Chorus and reverb are used so frequently that “standard” MIDI controller numbers are assigned for reverb (CC91) and chorus (CC93) depth.

Just like the real-world mixer model, an insertion effect is a channel specific effect. The output from a tone generator is sent directly to the input of the insertion effect and the output of the insertion effect becomes the output from the channel. An insertion effect belongs to one and only one channel (tone generator). The XG architecture does not allow insertion effects to be chained. So, if you need a chain of guitar-oriented effects, you need to read through the effects table in the Yamaha data list and find a multi-effect that does the job.

Now, life gets interesting. The XG architecture defines two kinds of (virtual) effect units: EFFECT1 and EFFECT2. Each kind of effect has certain capabilities and SysEx messages.

XG EFFECT1 has a special name: the Variation effect. The Variation effect is very (no pun!) flexible. It can function as either a system effect or as an insertion effect. In PSR/Tyros-land, the Variation effect is assigned to the DSP1 unit. That’s why the user and reference manuals have special rules and conditions that govern the use and configuration of DSP1. On certain specific PSR models such as the PSR-S750, DSP1 often supports more effect types (e.g., kinds of distortion or whatever) than its cousins, DSP2, DSP3, DSP4, etc. If a song uses DSP1, the set-up information in your MIDI SMF file, at a minimum, must send SysEx to choose system or insertion mode and the effect type.

XG EFFECT2 effects are optional, that is, an XG keyboard does not need to implement any EFFECT2 effects. (EFFECT1 is also optional, but such a keyboard is only “XG-Lite” compliant like the PSR-E443.) The old QY-70 sequencer, for example, implements EFFECT1, but doesn’t support any EFFECT2 effects. The Yamaha Mobile Music Sequencer only supports EFFECT1, too. In PSR/Tyros-land, the number of ancillary DSP units (DSP2, DSP3, DSP4, etc.) determine the number of supported XG EFFECT2 effects. All XG EFFECT2 effects are insertion effects. Period. No choice.

With this background in mind, you will need to take some time to study the XG effects-related parameters in the MIDI message section of the PSR/Tyros manual. This is time well-spent.

Let’s take a look at a few details, though, in order to see how all of this fits together. First, here are a few points to summarize EFFECT1, the Variation effect.

  • XG EFFECT1 is assigned to PSR/Tyros DSP1.
  • This effect unit provides reverb, chorus and other insertion/system effects.
  • The Variation effect is configured for either insertion or system mode.
  • The Variation effect is shown in the mixer console effect window.
  • As an insertion effect, the send level is 127 and cannot be changed through the mixer console window.

The following three SysEx messages configure the Variation effect as an insertion effect. All numbers are hexadecimal. The effect type is MSB:5F and LSB:20, which is MSB:95 (decimal) and LSB:32, known to human beings as Real Distortion “MLT DS SOLO.” It’s a guitar multi-effect suitable for a lead guitar solo.

     Start SysEx message
     |  Yamaha ID
     |  |  Device number
     |  |  |  Model ID
     |  |  |  |                 End SysEx message
     |  |  |  |                 |
    F0 43 10 4C 02 01 40 5F 20 F7      Choose effect type
    F0 43 10 4C 02 01 5A 00 F7         Variation connection (00:insertion)
    F0 43 10 4C 02 01 5B 00 F7         Variation part
                 |  |  |
                 EFFECT1 parameter addresses

These three messages are called “XG Parameter Change” messages because they change an XG control parameter (e.g., effect type) stored at a particular address (e.g., 02 01 40). Most of the message is reusable boilerplate like the Yamaha ID, device number and model ID. Since we are using the Variation effect in insertion mode, we must assign the effect to a part, also know as a MIDI channel. In this case, we are assigning the Variation effect to Part 1 (MIDI channel 0).

Here’s a few bullet points to summarize what we know about EFFECT2.

  • XG EFFECT2 is assigned to one of DSP2, DSP3, DSP4, …
  • XG EFFECT2 is always an insertion effect.
  • The DSP unit is selected via the XG parameter address in the SysEx message.
  • The insertion effect must be assigned to a (song) part/MIDI channel.

Here is a quick example of two SysEx messages to set up an insertion effect on part 2 (MIDI channel 1) on DSP4.

                 EFFECT2 parameter address
                 |  |  |
    F0 43 10 4C 03 02 00 4E 10 F7      Choose effect type (0x4E 0x10)
    F0 43 10 4C 03 02 0C 01 F7         Variation part
                    |     |
                    |     Part 2 (MIDI channel 1)
                    00:DSP2 01:DSP3 02:DSP4

The first SysEx message selects the effect type (XG parameter address: 03 02 00). The effect type is MSB:4E and LSB: 10 which is MSB:78 (decimal) and LSB:16 (decimal). This is AUTO WAH1. The second message assigns DSP4 (02) to MIDI channel 1. Please note that the DSP unit is selected by the second byte in the XG parameter address.

This information should be enough to get you started. From here, I recommend reading about the Yamaha XG tone generation and effects architecture.

Yamaha, at one time, published diagrams showing Tyros 2 and XG effect routing. Unfortunately, these helpful diagrams are now hard to find. Here are links to the Tyros 2 effect diagram and the MU-128 XG effect diagram.