Giving DetroitBeat “Soul”

I decided to have another go at Yamaha audio style conversion. This time I converted the PSR-S950 “DetroitBeat” audio style to an all-MIDI style called “DetroitSoul”. The name “DetroitSoul” seemed appropriate since most of the MIDI rhythm parts are taken from the Yamaha preset style “Soul”.

The conversion process was a little different.

  • Load DetroitBeat to set up the mixing console and the DSP effects.
  • Enter Style Creator and create a new style. Turn off the audio part.
  • Copy all non-rhythm parts from the MAIN and FILL IN sections of DetroitBeat into the new style.
  • Identify candidate donor styles for the MIDI rhythm parts. The “Soul” and “MotorCity” styles sounded the best (e.g., similar groove, no conflicting beats, etc.)
  • Audition the candidate MAIN and FILL IN sections. “Soul” was the best fit.
  • Copy the RHY1 and RHY2 parts from “Soul” into the new style (DetroitSoul).
  • Build a table of possible donor styles for the INTRO and ENDING sections.
  • Audition donor INTRO and ENDING sections which have the same length as the INTRO and ENDING sections in DetroitBeat.
  • Copy the donor INTRO and ENDING sections into the new style.
  • Double check and fix up the variation effect (DSP1).
  • Copy the OTS settings for DetroitBeat into the new style.

The process was smooth, but still required a lot of button pressing!

Here is a table with INTRO and ENDING section lengths. This table could come in handy when converting other audio styles to MIDI.

Section   DetroitBeat  Soul  MotorCity  FranklySoul  70sChartSoul
-------   -----------  ----  ---------  -----------  ------------
INTRO 1        1        (1)      1           1            1
INTRO 2        4        (4)     (4)          5            4
INTRO 3        8         4      (8)          8            8
INTRO 4        1         1       1           1            1

ENDING 1       2         1      (2)          2            2
ENDING 2       5         3       3           2            3
ENDING 3       5         4      (5)          4            4
ENDING 4       1        (1)      1           1            1

The parenthesized items in the table indicate the source rhythm sections that were copied to the new style. Please note that nothing was copied into ENDING 2. I couldn’t find an appropriate replacement and the ending sounded good enough by itself. Sometimes the right thing to do as a musician is lay out!

ENDING 3 ran on a little too long and the extraneous beats sounded like the drummer made a mistake. I shortened the section length to 4 bars.

DSP1 is configured as a SYSTEM variation effect. Here are the effect settings and parameters:

Category: REAL DIST
Effect: ST AMP VT

COMP SW          ON
COMP LEVEL       6.0
DIST TYPE        Crunch
DIST DRIVE       7.8
DIST EQ          Mid Boost
DIST TONE        7.0 

Overall, the end result is musical. The Soul beat is not quite the classic Motown groove. (Think “I Can’t Help Myself (Sugar Pie Honey Bunch” by the Four Tops.) I have a few phrases from the old Yamaha QY70 that might fit and someday I’ll look into it. In the meantime, enjoy the new style DetroitSoul.

60sSuperGroup mash-up

In my last post, I started the process of converting the PSR-S950 audio style “60sSuperGroup” to all MIDI. I like the 60sSuperGroup audio style, but the really strong back-beat in MAIN A makes it hard to use that section on anything other than the Beatles song “Ticket To Ride.” In order to make this style more generally useful, I’m replacing the audio rhythm tracks with appropriate MIDI tracks. Last time, I had worked on the MAIN and FILL IN sections and now it’s time to attack the INTROs and ENDINGs.

Here’s my process.

  • Find a style which is similar to 60sSuperGroup. 60sVintageRock is a good alternative because it is your basic Mark II rock and roll.
  • Load 60sVintageRock into Style Creator.
  • For each section, copy the non-rhythm parts from 60sSuperGroup into the new style.
  • Change the section lengths to match the source style 60sSuperGroup.
  • Save the new style as 60sFabFour.
  • Listen to each new section critically.
  • If a section doesn’t work musically, copy a section from a different candidate style.
  • Edit DSP effects to match 60sSuperGroup.
  • Save a bunch of intermediate copies along the way in case you need to back up to an earlier version.

Overall, the MAIN and FILL IN sections from 60sVintageRock were a good match and sounded pretty good. The one measure INTROs were OK, too. The longer INTROs and ENDINGs were more of a problem. So, I identified a few alternative candidate styles and built a table of INTRO/ENDING section lengths to find and try alternatives. Here’s the table:

         60sFabFour  60sVintageRock  60sPopRock  VintageGtrPop
         ----------  --------------  ----------  -------------
INTRO 1      1             1              1            2
INTRO 2      2             4              5            4
INTRO 3      5             9              4            9
INTRO 4      1             1              1            1
ENDING 1     3             3              3            2
ENDING 2     4             4              3            3
ENDING 3     5             6              7            5
ENDING 4     1             1              1            1

I tried to use alternatives that were the same section lengths as 60sSuperGroup and the new style 60sFabFour.

ENDING 2 was the most difficult to nail. I tried different alternatives and then needed to shorten the section length to get rid of some beats that ran on — kind of like Ringo didn’t know when to stop. Here are the final source styles for the INTROs and ENDINGs:

         60sFabFour  Source style
         ----------  --------------
INTRO 1      1       60sVintageRock
INTRO 2      2       VintageGtrPop
INTRO 3      5       60sPopRock
INTRO 4      1       60sVintageRock
ENDING 1     3       60sVintageRock
ENDING 2     4       60sPopRock
ENDING 3     5       VintageGtrPop
ENDING 4     1       60sVintageRock

A lot of luck and trial and error is involved here. Luckily, the alternatives fit pretty well.

DSP1 is configured as a SYSTEM variation effect for both 60sSuperGroup and 60sVintageRock. However, the parameters are different. The guitars are sent to the SYSTEM effect in order to get a VOX AC30 amp “chime”. The final effect parameters are taken from 60sSuperGroup:

Category: REAL DIST
Effect: ST AMP VT

COMP SW          ON
COMP LEVEL       6.0
DIST TYPE        Crunch
DIST DRIVE       7.8
DIST EQ          Mid Boost
DIST TONE        7.0 

This uses a Real Distortion effect and you will need to change this when porting the style to an older model keyboard. I did not change the OTS settings in the new style since I was happy with the OTS settings from 60sVintageRock.

I put a copy of the 60sFabFour style on the Music Gallery page.

S950 audio style mash-up

The Yamaha PSR-S950 and Tyros 5 arrangers provide audio styles as well as conventional, pure MIDI-based backing styles. Audio styles replace the MIDI-based rhythm tracks with an audio track of a (human) drummer playing a kit. The remainder of the backing track is provided by MIDI. On the up side, the audio rhythm parts have more nuance and sound pretty darned good. On the down side, the audio track in a style cannot be modified or eliminated nor can they be replaced by a user’s own audio track. Whether this limitation is a quirk of the Yamaha software or a permanent feature remains to be seen.

One of the S950 audio styles is “60sSuperGroup.” I’ve been off in Pepperland trying to pull some Beatles tunes together. I kept gravitating back to 60sSuperGroup for backing, but the drum back-beat in Main Section A is so strong that it doesn’t fit with hardly anything other than the song “Ticket To Ride.” It would be great to apply the non-rhythm parts to other songs.

Time to replace the audio rhythm parts in the 60sSuperGroup audio style. Unfortunately, one must work around the limitations of Yamaha’s software. The MIDI drum style “60sVintageRock” is roughly the same tempo and its rhythm parts are your basic Mark II rock and roll — in other words a good candidate style for a mash-up.

First, I loaded 60sSuperGroup, got into Style Creator and tried copying the 60sVintageRock rhythm parts into 60sSuperGroup. No joy. Once a style is an audio style, it’s always an audio style. Further, you cannot store the audio style to an external device like a USB jump drive. Yeah, the manual says this explicitly, but it was worth a try. No need to go down that rat-hole again.

So, here’s the process that I followed. I loaded 60sVintageRock as the base style and got into Style Creator. I then copied the non-rhythm parts from 60sSuperGroup into the new style which I called “60sHybrid”. I did this for MAIN A-D, FILL IN A-D, BREAK, INTRO 1 and ENDING 1. I’m not a big fan of long preplayed intros and endings, plus I didn’t know how well the longer intros and endings would mash up. Even without these additional intros and endings, this was more than enough button pushing for one day!

Here is a side-by-side comparison of INTRO and ENDING lengths:

         60sSuperGroup  60sVintageRock
         -------------  --------------
INTRO 1        1              1
INTRO 2        2              4
INTRO 3        5              9
INTRO 4        1              1
ENDING 1       3              3
ENDING 2       4              4
ENDING 3       5              6
ENDING 4       1              1

I’m not sure how to fix up these up as yet. Suggestions?

The two styles have different instrument-to-style part assignments. Here’s the instrument information for 60sSuperGroup:

Part  Vol  Pan  Var  Instrument         
----  ---  ---  ---  -----------------
RHY1   54  C      0  PowerKit1          OFF
RHY2   72  C      0  RealDrums          OFF
BASS   66  C      0  Mega VintageFlat   ON
CHD1   51  L28  127  Mega SingleCoil    ON
CHD2   42  R30  127  Mega SolidGuitar2  ON
PAD    48  C      0  Mega 12StringGtr   ON
PHR1   44  R32  127  Mega SingleCoil    OFF
PHR2   70  C      0  GrandPiano         OFF

The rhythm channels are both OFF because all drum/percussion is provided by the audio track. Here is the instrument information for 60sVintageRock:

Part  Vol  Pan  Var  Instrument         
----  ---  ---  ---  -----------------
RHY1   54  C      0  PopLatin           OFF
RHY2   72  C      0  RealDrums          ON
BASS   66  C      0  Mega VintagePick   ON
CHD1   51  L28  127  Mega SteelGuitar   ON
CHD2   42  R30  127  Mega SolidGuitar2  ON
PAD    48  C      0  CurvedBars         ON
PHR1   44  R32  127  Mega SingleCoil    OFF
PHR2   70  C      0  Harmonica          OFF

Since nothing was copied to INTRO 2-4 and ENDING 2-4, the instruments and sound for these sections do not match the sections copied from 60sSuperGroup. The mismatch is readily apparent when played.

DSP1 is configured as a SYSTEM variation effect. I needed to edit the effect parameters in order to get that VOX AC30 amp chime. Here are the parameters; they are the same as 60sSuperGroup DSP1:

Category: REAL DIST
Effect: ST AMP VT

COMP SW          ON
COMP LEVEL       6.0
DIST TYPE        Crunch
DIST DRIVE       7.8
DIST EQ          Mid Boost
DIST TONE        7.0 

It’s been an interesting experiment so far! The resulting mash-up should be quite useful when tracking up-tempo, early Beatles rock and roll.

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.