Whither XG?

Once upon a time, the hardware tone module was king of “desktop music production.” A wide range of options were available from pro-level tone modules to desktop tone generators to ISA/PCI cards. The General MIDI (GM) standard came about in this era because people wanted to have consistent playback across hardware platforms.

Every manufacturer offered one or more modules. Two players — Roland and Yamaha — jumped in big. Each company offered desktop tone modules adhering to their own semi-proprietary extensions of the General MIDI standard. Roland had its GS while Yamaha had its XG.

Then, software plug-ins killed the tone module.

Native, computer-based signal processing became fast enough that hardware tone generation was no longer required.

Roland GS, meanwhile, has gone on relatively hard times. Today, Roland offers two products that are up-front GS: Mobile Studio Canvas and Sound Canvas for iOS. The Mobile Studio Canvas is a pricey little number that streets out at $429 USD. Not exactly cheap. Sound Canvas for iOS is an iOS app supporting Inter-App Audio and Audiobus. Roland claim that the app and its host can act as a tone module through a suitable Core MIDI compatible interface. Mobile Studio Canvas is $19.99 through the Apple App Store.

The Virtual Sound Canvas was a VST- and DXi-compatible, multi-timbral soft synth. Unfortunately, for desktop users, the Roland Virtual Sound Canvas (VSC-MP1) was discontinued.

Yamaha XG is battered, but is still breathing. XG-based hardware tone modules are nearly extinct. (Check ebay…) However, current arrangers from Yamaha offers XG compatibility, even if it’s only the XGlite subset. In fact, XG is the de facto voice architecture on arranger keyboards. Edit a voice on an arranger and you are tweaking XG parameters. Of course, this means that you must have space for an arranger on your desktop. A half-rack 1U tone module is far more compact and desktop-friendly.

“Pro” keyboardists still turn up their noses at GS, XG and arrangers. A large part of this is guilt by association with General MIDI. Beneath it all in Yamaha-land, the synths and the arrangers share hardware technology such as CPUs and tone generation circuits. XG is essentially a wrapper around pro-level samples and tone generation.

XG also lives at the heart of the Yamaha Mobile Music Sequencer (MMS) app. MMS has a software-based XG engine inside. It supports 9 reverb, 4 chorus and 26 variation effects. Yamaha cut down the XGlite sound set to just 42 GM voices plus 42 or so synth voices. In case you’re interested, I’ve documented many of the XG features in MMS here:

Mobile Music Sequencer Reference
Make music with MMS on PSR/TYROS

MMS demonstrates that it’s possible to host XG on an iPad with an ARM processor. Will Yamaha answer Roland’s Sound Canvas for iOS?

Needing an XG-compatible VST soft synth on Windows, I went in search of one and stumbled onto a retro cult. Turns out, there are a whole lot of other people who would like an XG-compatible VSTi on Windows, too.

First, there are enthusiasts who are trying to resurrect the S-YXG50 soft synthesizer on Windows 7 (and earlier). The S-YXG50 uses either a 2MByte or 4MByte wave table, so we’re not talking stellar sound quality. I experimented with S-YXG50 on Windows 7 with no success.

Then, there are enthusiasts who take old daughter boards (DB50XG or DB60XG) and fashion standalone tone modules from them. (Just add a power supply and a MIDI interface.) These daughter boards have a 4MByte wave table. Like XG tone modules, XG daughter boards are scarce as hen’s teeth.

The issue that always rears its head with this old tech is the availability of drivers. You can find the occasional Yamaha-based sound card or SW1000XG, but driver support usually stops with Windows XP (at best).

Finally, another sub-cult has discovered the joys of Yamaha MidRadio. MidRadio is a MIDI player application for Windows 8 (and earlier). It is XGlite compatible with 361 regular voices, 10 drum kits and 2 SFX kits. A few of the regular voices are so-called “panel voices” in the PSR E-series — an added bonus! Wave table size is about 11MBytes. And, guess what? It sounds pretty darned good. Here are links to the list of voices and effects in MidRadio version 7:

List of MidRadio voices and effects

If you try MidRadio, be prepared to use Google translate and be prepared to wade through a Japanese-only user interface.

A few intrepid souls discovered that the MidRadio sound engine (SGP2.DLL) is just a few bricks short of being a VST software instrument (VSTi). They developed a patch which turns the DLL into a VSTi. Yes, the patch works and I can send XG-compliant MIDI from Steinberg Cubase, Ableton Live and VSTHost to SGP2. It plays rather nicely.

In general, I do not recommend this approach. Anytime you download a patch from the Web and execute it, you put the privacy and security of your computer and its information at risk.

Given this enormous red flag, I wish that Yamaha would sell an XG-compatible VSTi for Windows and Mac. There are users waiting for properly a supported, street legal XG plug-in soft synth at a reasonable price. And certainly, we wouldn’t turn down a free one.

Serial memory and tone generation

Ah, September. Soon it will be time to speculate about new products at the Winter 2016 NAMM!

Every now and again, I take a pass through recent patent filings from Yamaha to get an idea about future product developments. Of course, the tech in a filing may never make it to product. However, a few common threads begin to appear over time.

This post starts with a patent application having the inauspicious title, “Sound Generation Apparatus.” This US application 2014/0123835 was filed on November 5, 2013 and is based on Japanese patent -244002, which was filed November 5, 2012.

First, a little background about the Yamaha tone generation architecture. Yamaha has used the same overall architecture for mid- and high-end workstations and tone modules since the mid-1990s. (TG-500, anyone?) These products employ one or more large scale integrated circuits for tone generation. Current versions of the tone generator IC, the SWP51L, has two dedicated memory channels for waveform data. Each channel has a 16-bit parallel data bus and a parallel address bus (24 or more bits wide). The parallel interface takes at least 40 pins per channel.

That’s a lot of incoming and outgoing connections (80 plus pins for both channels). IC packaging costs are in the range of $2.50 USD to $4.50 per pin. So, there is a direct relationship between the number of IC pins and manufacturing cost. Ultimately, this cost has a real effect on profit and the final price of the product.

The Yamaha patent application describes a serial interface for waveform memory in place of a parallel interface. The serial interface requires six pins per channel. Instead of 80 pins, the serial interface approach uses only 12, providing an 8 to 1 savings in packaging costs alone.

The application cites the Winbond 25Q series as the kind of flash memory to be supported by the serial interface. The largest 25Q device has a 64MByte capacity and can sustain a 40MByte/second transfer rate (quad SPI mode). This is nearly sufficient bandwidth to drive 128 44,100Hz stereo polyphonic voices (about 45MBytes/sec).

If you do the math that’s 128 times 44,100Hz times eight bytes. Two successive samples are required in order to perform interpolation although the oldest sample could be cached.

The product implications are interesting. At the low end of the scale (one or two channels), the device footprint is much smaller. The small size allows a corresponding decrease in the size of the product. Maybe a guitar pedal stomp box?

The high end of the scale is more intriguing. It becomes possible to build a tone generator IC with four or even eight independent channels of tone generation where each channel is driven by its own memory stream. We’re talking 1,024 polyphonic voices in the same LSI footprint as today’s SWP51L.

There are design implications for entry-level keyboard products, too. The SWL01 system on a chip (SOC) integrates both CPU and tone generator onto the same IC. Waveform data (samples) travel on the same bus as CPU instructions and data. A serial SPI interface requires only six pins and might let designers shift waveform storage from ROM on the system bus to a dedicated memory bus and channel. Software might be able to perform new tasks such as variation effects with more bandwidth available to the CPU on the system bus.

I feel confident to predict that the next generation of Standard Wave Processor (SWP) is in development. The SWP51L has been around for a while (including Tyros5). Here are a few key products and members of the SWP50 family:

    Product   Year  TG chip
    --------  ----  -------
    Tyros     2002  SWP50
    Motif XS  2007  SWP51
    Tyros 3   2008  SWP51B
    Tyros 5   2013  SWP51L

It is definitely time for a new design, not an incremental refresh.

Yamaha sees its internal integrated circuit capability as a strategic advantage. Up to this point, Yamaha have both designed and fabricated its own ICs. Last year, Yamaha transferred its fabrication line to Phenitec Semiconductor. Yep, Yamaha has gone fabless. This gets a huge capital expense off its balance sheet. It also means that Yamaha is under less pressure to reuse the same parts across product lines in order to get its IC manufacturing volume up. This is one reason why the SWP51 has had such long legs and why the SWL01 is used across all of the E-series arrangers. Volume, volume, volume! The pressure to (re)use Yamaha’s own IC solutions has been reduced.

We’ll see if Johnny can read (defenses) against Dick LeBeau. Go Browns!

Scat voices the newest Yamaha arrangers

The original Jazz Scat voices expansion pack for the Yamaha PSR-S950 arranger workstation remains a popular part of the site. With the Tyros5, Yamaha took a different direction and format for expansion packs. The new approach to expansion pack development and use is embodied in the Yamaha Expansion Manager, or “YEM” for short. Up to now, Tyros5 users have not been able to load and use the original Jazz Scat voices expansion pack.

That’s all changed! I’m pleased to announce the alpha test version of the Jazz Scat voices expansion pack for YEM-compatible Yamaha arranger workstations. The list of YEM-compatible arrangers include the Tyros5, PSR-S670, PSR-S770 and PSR-S970 workstations.

Why “alpha test?” At this time, I do not have access to a YEM-compatible workstation in order to do my own testing. (I’m happy with the S950, thanks.) In response to requests, however, I have produced a new YEM-compatible expansion pack. I’ve done as much testing as I can in YEM. Now, it’s your turn!

The expansion pack is in YEM project file format, sometimes called a “PPF file” because of its file extension. The PPF file must first be loaded into YEM. Once it is in YEM, you can send it to your keyboard, generate an install file (PPI format), copy voices to your own custom pack and even edit the voices themselves. That’s a lot of flexibility!

If you encounter problems, please post your issues to the PSR Tutorial Forum . If you are a PSR/Tyros user, you really should participate at the forum anyway. It’s a great place to meet other PSR/Tyros users and to learn new techniques.

Here is a link to the expansion pack. You need to download and UNZIP this file, read the README_PACK_YEM.TXT file, and then load the pack into the Yamaha Expansion Manager.

Both the scat voice expansion pack and the scat voice samples are released under a Creative Commons Attribution 4.0 International License.

Creative Commons License
ScatVoices and ScatVoice samples by Paul J. Drongowski are licensed under a Creative Commons Attribution 4.0 International License.

You are free to use the expansion pack voice or samples (even for commercial purposes) as long as you provide a link to http://sandsoftwaresound.net from your own web site AND/OR explicitly credit me in your creative work, e.g., “Scat samples/voice by Paul J. Drongowski”.

If you would like to know more about the sampling and voice design process, please read this post. The original S750/S950 compatible pack is here. Or, feel free to listen to the MP3 demo.

XG effects: SYSTEM mode

The last time that I took a look at Yamaha XG effects, I discussed using the VARIATION effect as a channel insertion effect. I’m now working on a PSR/Tyros style where I would like to apply an amp simulation effect to two channels. So, it’s time to learn about the configuration of VARIATION effects in SYSTEM mode. Even though I’m working on a style, you can apply these techniques to any Standard MIDI File (SMF) for play-back on an XG sound engine.

XG insertion effects are relatively easy to configure as the VARIATION effect is added to the signal chain of a single MIDI channel (XG part). Configuration of the VARIATION block as a SYSTEM effect takes more effort (i.e., more System Exclusive messages), but is well worth it. Now that I understand SYSTEM mode better, I may set up a DAW template for SYSTEM mode and use that template as my default effect configuration.

The diagram below shows the signal flow for the VARIATION, CHORUS and REVERB effect blocks when VARIATION is configured for SYSTEM mode. I show only one channel (Part NN) entering from the left in order to keep the diagram simple. Control “knobs” are drawn as ovals; these are XG/MIDI parameters under your control. The first four knobs — CC91, CC93, CC94 and DRY — are per-part parameters and need to be set for each of the sixteen channels (parts). The MIDI Continuous Controller (CC) knobs set the reverb, chorus and variation send levels for the part, respectively. In my project, I set the variation send (CC94) for two parts to non-zero levels and set CC94 for the remaining parts to zero. The non-zero levels pass the signal to the VARIATION block.

XG_System_Mode

The reverb, chorus and variation send levels are configured using MIDI Continuous Controller messages, but the DRY level is set using an XG System Exclusive (SysEx) message. Although this looks inconsistent, it follows Yamaha’s XG recommendations, i.e., use CC messages in preference to SysEx where possible. DRY level must be controlled using SysEx as no corresponding MIDI CC message is defined.

Please see the table at the end of this post for further message programming details.

The rest of the effect blocks and knobs are global (system-wide). The REVERB, CHORUS and VARIATION return levels (REV RET, CHO RET, and VAR RET) along with the DRY levels determine the amount and balance of effected and un-effected (dry) sound. All of the return levels default to 0dB (decimal 64 or 0x40 in hexadecimal notation). The default for each per-part DRY level is the maximum (decimal 127 or 0x7F). These default values enable signal flow right from the beginning and are a good starting point for experimentation and tuning. At least you are guaranteed to get some sound out of the effect section!

The VARIATION, CHORUS and REVERB blocks need to be configured through the usual XG SysEx voodoo. You need to select at least the effect type and be sure to configure the VARIATION effect for SYSTEM mode. In actual practice, you should do this before setting any send levels as the change to SYSTEM mode changes the level parameters to new default values.

Now the fun begins! The default configuration puts the three effect blocks in parallel. The inter-block send levels:

  • Send VARIATION to CHORUS (VAR to CHO)
  • Send VARIATION to REVERB (VAR to REV)
  • Send CHORUS to REVERB (CHO to REV)

establish serial effect routings between blocks. The level values determine the degree to which a series connection is made (i.e., how much signal is passed). Initially, all of these knobs are set to zero and the effects are full parallel. You can change these values to add reverb and/or chorus to the effected variation signal, for example, in the same way that you add reverb and/or chorus to a part.

The higher end arranger workstations offer a rich choice of CHORUS block effects — everything from chorus, phaser and flange to rotary speaker. Thus, you can create a long effect chain from VARIATION to CHORUS to REVERB, if you so desire. Want to phase a distorted guitar sound? You can!

The following tables summarize the low level details of effect programming. The addressable XG parameters must be set with the usual SysEx magic, e.g., F0 43 10 4C 02 01 40 4B 01 F7 to set the effect type.

Continuous Controller (Per part/channel)                    "Knob"

  CC91  Part/Channel REVERB SEND                            (CC91)
  CC92  
  CC93  Part/Channel CHORUS SEND                            (CC93)
  CC94  Part/Channel VARIATION SEND                         (CC94)

MULTI PART (per part/channel NN)

  Address   Parameter             Default
  --------  --------------------- -------
  08 NN 11  DRY LEVEL             0x7F                      (DRY)
  08 NN 12  CHORUS SEND           0x00
  08 NN 13  REVERB SEND           0x28 (decimal 40)
  08 NN 14  VARIATION SEND        0x00

REVERB effect block (global)

  Address   Parameter             Default
  --------  --------------------- -------
  02 01 00  REVERB TYPE           0x01, 0x00 (HALL1)
  02 01 0C  REVERB RETURN         0x40 (off:0x00, 0dB:0x40) (REV RET)
  02 01 0D  REVERB PAN            0x40 (center)

CHORUS effect block (global)

  Address   Parameter             Default
  --------  --------------------- -------
  02 01 20  CHORUS TYPE           0x41, 0x00 (CHORUS6)
  02 01 2C  CHORUS RETURN         0x40 (off:0x00, 0dB:0x40) (CHO RET)
  02 01 2D  CHORUS PAN            0x40 (center)
  02 01 2E  Send CHORUS to REVERB 0x00 (off, 0dB:0x40)      (CHO to REV)

VARIATION effect block (global)

  Address   Parameter             Default
  --------  --------------------- -------
  02 01 40  VARIATION TYPE        0x05, 0x00 (DELAY LCR2)
  02 01 56  VARIATION RETURN      0x40 (off:0x00, 0dB:0x40) (VAR RET)
  02 01 57  VARIATION PAN         0x40 (center)
  02 01 58  Send VAR to REVERB    0x00 (off, 0dB:0x40)      (VAR to REV)
  02 01 59  Send VAR to CHORUS    0x00 (off, 0dB:0x40)      (VAR to CHO)
  02 01 5A  VARIATION CONNECTION  0x00 (insert:0, system: 1)
  02 01 5B  VARIATION PART #      0x7F (off: 0x7F)

Arranger memory: One more time!

OK, OK, not everyone reads service manuals and schematics for their keyboard. However, I do get a little frustrated when posters compare apples to oranges, and make statements like “I can buy 1GByte for $1 (USD), so why is Yamaha so stingy with wave memory?”

Here is some information from the S750/S950 and Tyros5 service manuals and product data sheets. Please keep in mind that there are many different kinds of memory in an arranger. I’m going to focus on tone generation because that is the most relevant to wave memory size.

Both the S750/S950 and Tyros5 use proprietary Yamaha tone generator integrated circuits designated “SWP51L”. The S750/S950 designs use one SWP51L and the Tyros5 has two SWP51L chips. Each SWP51L has two dedicated memory ports (called “HIGH” and “LOW”) where each port consists of an address bus and a 16-bit parallel data bus.

In the S750/S950, each port is connected to a WAVE ROM:

    S750 WAVE ROM-L 1Gbit IC308   JS28F00AM29EWLA
    S750 WAVE ROM-H 1Gbit IC302   JS28F00AM29EWLA

That’s 128MBytes per device for a total of 256MBytes (2 times 128MBytes).

The Tyros5 microarchitecture is a little more complicated — the memory devices are shared between two SWP51Ls via separate shared address and data busses. There are six WAVE ROM integrated circuits:

    Tyros5 WAVE ROM-L0 1Gbit IC702   S29GL01GS10TFI020
    Tyros5 WAVE ROM-H0 1Gbit IC716   S29GL01GS10TFI020
    Tyros5 WAVE ROM-L1 1Gbit IC703   S29GL01GS10TFI020
    Tyros5 WAVE ROM-H1 1Gbit IC717   S29GL01GS10TFI020
    Tyros5 WAVE ROM-L2 1Gbit IC704   S29GL01GS10TFI020
    Tyros5 WAVE ROM-H2 1Gbit IC718   S29GL01GS10TFI020

That’s a total of 768MBytes (6 times 128MBytes).

Those cryptic names in the tables above identify the specific memory component. The components come from two vendors: Micro Technology and Spansion. Here are the gory details.

    Micron Technology JS28F00AM29EWLA  56-pin TSOP
        Parallel NOR Flash Embedded Memory
        Configurable width data bus (8- or 16-bits)
        Asynchronous random/page read
            Page access speed: 25ns
            Random access speed: 110ns
            Page size: 16 words or 32 bytes

    Spansion S29GL01GS10TFI020 56-bit TSOP

        GL-S MirrorBit Eclipse Flash Non-Volatile Memory
        S29GL01GS 1 Gbit (128 Mbyte)
        16-bit parallel data bus
        Asynchronous 32-byte page read
            Page access speed: 25ns
            Random access speed: 100ns
        Program and erase rates (i.e., write speed)
            Buffer Programming (512 bytes) 1.5 MB/s
            Sector Erase (128 kbytes) 477 kB/s

The read speed (25ns per 16-bit word in page mode) is much faster than write speed, and that’s OK in this application because the data is always read once it’s loaded/initialized. The SWP51L probably operates in page mode since the samples are accessed sequentially. Dunno ’bout you, but 25 nanoseconds per 16-bit word is darned fast. The access speed is MUCH higher than a typical USB flash drive.

Two 27-bit address busses and two 16-bit data busses are sent to/from the plug-in expansion board. These busses extend the two shared WAVE ROM busses. The expansion board needs to keep up with the high read rate.

Please note that the CPU does not get anywhere near the sample streams. That work is assigned to the SWP51Ls.

Hope this helps to clarify.

Crunchin’ da drums

In my last post, I discussed Motif/MOX eight zone (8Z) drum kits. The eight zone concept lets you assemble eight different percussion sounds into a custom kit. The waveforms are assigned to voice elements and are stretched/limited to eight different keyboard (MIDI note) zones. The Motif/MOX have matching arpeggios that work with the 8Z kits.

By the way, the 8Z drum kits were first introduced with the Motif XS. My notes on the 8Z kits and this note on effects apply to all later models including the Motif XF and MOXF.

If you have ever tried the percussion sounds alone without effects, the drum sounds are kind of “plain Jane” without a lot of impact. This post deconstructs a couple of effects which can be applied to break beats and other styles that require crunch and animation.

The first effect chain is taken from the Voice PRE8:060 “8Z Romps.” The voice has two insert effects connected in series. INSERT A is a Lo-Fi algorithm with the following parameters (effect preset “Max Lo-Fi”):

    #  Parameter              Value    Numeric
   --  ---------------------  -------  -------
    1  Sampling Freq Control  4.01KHz  (10)
    2  Word Length            93       (93)
    3  Output Gain            +7 dB    (14)
    4  LPF Cutoff             20.0KHz  (60)
    5  Filter Type            Radio    (2) 
    6  LPF Resonance          10.0     (100)
    7  Bit Assign             2        (2)
    8  Emphasis               On       (1)
   10  Dry/Wet                D<W63    (127)
   15  Input Mode             Stereo   (1)

The parameter number, name, values, etc. are taken from the MOX Data List. (See the section titled “Effect Parameter List” in the PDF file). The numeric values — given here in decimal — are what you need to program the effect through System Exclusive MIDI messages. More about this in a minute.

The Lo-Fi effect adds a lot of crunch and crush. But, wait! There’s more. The INSERT B effect is the AmpSim 1 amp simulator. Its parameters are:

    #  Parameter              Value    Numeric
   --  ---------------------  -------  -------
    1  Over Drive             54%      (54)
    2  Device                 dst1     (2)
    3  Speaker                Combo    (2)
    4  Presence               +10      (10)
    5  Output Level           34%      (34)
   10  Dry/Wet                D<W63    (127)

This is the “Beat Crunch” effect preset.

Please remember that my goal is to use the 8Z break beats in a PSR/Tyros style. In order to do accomplish this, I found the equivalent effects algorithms for the Yamaha PSR-S950 arranger workstation. Here are the equivalent algorithms:

    MOX            PSR-S950
    --------       -----------------------------
    Lo-Fi    --->  Lo-Fi DRUM1 (MSB:94 LSB:18)
    AmpSim 1 --->  V_DIST CRUNC (MSB:98 LSB:18 )

Unfortunately, the XG effects architecture supports at most one system-wide variation effect or one per-part insert effect. So, I decided to use the Lo-Fi algorithm because it seemed to provide most of the grit and nastiness that I was seeking.

It took a little detective work to find and match up the corresponding effect algorithms between the Motif/MOX and the PSR/Tyros. The effect type is enough to get into the same neighborhood. The rest of the sleuthing involves comparing the parameter lists in order to find the exact (or best) match. The MOX has Virtual Circuit Modeling (VCM) effects and the S950 does not. Therefore, you may not always be able to find an exact match.

With the S950 Data List in hand, I translated the effect parameters into the hexadecimal System Exclusive (SysEx) messages to configure the Lo-Fi effect on the PSR:

    F0 43 10 4C 02 01 40 5E 12 F7   Variation Type
    F0 43 10 4C 02 01 5A 01 F7      Variation Connection (SYSTEM)
    F0 43 10 4C 02 01 42 00 0A F7   PARAMETER 1 Sampling Freq Control (10)
    F0 43 10 4C 02 01 44 00 5D F7   PARAMETER 2 Word Length (93)
    F0 43 10 4C 02 01 46 00 0E F7   PARAMETER 3 Output Gain (14)
    F0 43 10 4C 02 01 48 00 3C F7   PARAMETER 4 LPF Cutoff (60)
    F0 43 10 4C 02 01 4A 00 02 F7   PARAMETER 5 Filter Type (2)
    F0 43 10 4C 02 01 4C 00 64 F7   PARAMETER 6 LPF Resonance (100)
    F0 43 10 4C 02 01 4E 00 02 F7   PARAMETER 7 Bit Assign (2)
    F0 43 10 4C 02 01 50 00 01 F7   PARAMETER 8 Emphasis (1)
    F0 43 10 4C 02 01 54 00 7F F7   PARAMETER 10 Dry/Wet (127)
    F0 43 10 4C 02 01 74 01 F7      PARAMETER 15 Stereo  (1)

I configured the effect as a system-wide variation effect such that multiple percussion parts may be sent to the effect. I inserted the SysEx messages into the set-up measure of the PSR style file using SONAR (my usual DAW/sequencer). Yow, the difference between the percussion sounds without and with this effect is like night and day!

The MOX insert effects are followed by a system-wide Tempo Cross Delay effect (effect preset “4beat Echo”). This effect adds a nice bit of animation to the overall sound. The MOX effect parameters are:

    #  Parameter              Value    Numeric
   --  ---------------------  -------  -------
    1  Delay Time L>R         4th      (11)
    2  Delay Time R>L         8th.     (10)
    3  Feedback Level         16       (80)
    4  Input Select           L        (0)
    5  Feedback High Dump     0.5      (5)
    6  Lag                    0ms      (64)
   10  Dry/Wet                D<W63    (127)
   13  EQ Low Frequency       250Hz    (22)
   14  EQ Low Gain            0dB      (64)
   15  EQ High Frequency      4.0KHz   (46)
   16  EQ High Gain           0dB      (64)

The equivalent S950 effect is TEMPO CROSS1 (MSB:22 LSB:0). I assigned this effect to the system-wide CHORUS block.

Here are the S950 (XG) SysEx messages to configure the delay effect in the CHORUS block:

    F0 43 10 4C 02 01 20 16 00 F7  Chorus Type TEMPO CROSS1
    F0 43 10 4C 02 01 22 0B F7     PARAMETER 1 Delay Time L<R     (11)
    F0 43 10 4C 02 01 23 0A F7     PARAMETER 2 Delay Time R<L     (10)
    F0 43 10 4C 02 01 24 50 F7     PARAMETER 3 Feedback Level     (80)
    F0 43 10 4C 02 01 25 00 F7     PARAMETER 4 Input Selection    (0)
    F0 43 10 4C 02 01 26 05 F7     PARAMETER 5 Feedback High Dump (5)
    F0 43 10 4C 02 01 27 40 F7     PARAMETER 6 Lag                (64)
    F0 43 10 4C 02 01 2B 7F F7     PARAMETER 10 Dry/Wet           (127)
    F0 43 10 4C 02 01 32 16 F7     PARAMETER 13 EQ Low Frequency  (22)
    F0 43 10 4C 02 01 33 40 F7     PARAMETER 14 EQ Low Gain       (64)
    F0 43 10 4C 02 01 34 2E F7     PARAMETER 15 EQ High Frequency (46)
    F0 43 10 4C 02 01 35 40 F7     PARAMETER 16 EQ High Gain      (64)

A little bit of delay on a busy drum part goes a long way. The send level (not shown here) is relatively low — just enough to add a little animation to the sound without creating a lot of clutter. It sounds OK, but I might adjust the send level dynamically and add more delay to exposed parts like the break while keeping the MAIN sections clean.

I hope this short effects clinic helps you out!

Groovin’ in eight zones

I heard a great interpretation of Chris Isaak’s “Wicked Game” by Groovy Waters. Their work inspired me to create a down-tempo PSR/Tyros style with break beats that would let me jam over the changes (Bm-A-E-E).

And that led me into a whole new exploration in Motif/MOX and PSR/Tyros styles!

While goofing around with the Yamaha MOX6 workstation, I stumbled into some break beats with “8Z” in the name. I noticed that the “8Z” arpeggios are targeted for voices with “8Z” in their names. So, what is this “8Z” business?

The Motif XS (and MOX) added 8-zone drum kits and arpeggios, hence, the “8Z” in the names. A conventional drum kit has dozens of individual percussion sounds laid out across the MIDI note range (AKA “the keyboard”). An 8-zone kit is an extension of a regular synth voice where each voice element is assigned a percussion sound. The usual upper and lower note limits determine the key range for each sound. Here is the element information for the PRE8:060 “8Z Romps” voice:

                            Name        Note#
                         ----------   ---------
    Waveform             Low   High   Low  High
    ----------------     ----  ----   ---- ----
    BD T9-4               C0    C1     24   36  
    SD Elec7              C#1   F1     37   41  
    China St              F#1   C2     42   48  
    SD Rim SE             C#2   C3     49   60  
    Bd Jungle 2           C#3   F#3    61   66  
    Bd Distortion4        G3    C4     67   72  
    Bd Distortion RM      C#4   C5     73   84  
    Bd D&B2               C#5   C6     85   96  

Each waveform is stretched across a multi-key zone. Thus, each of the notes within a zone have a slightly pitch-shifted tone, allowing for tonal variation in patterns where repeated notes are played in sequence. Since these are basically regular synth voices, you are also free to mess about with the filter, amplitude envelope and all the usual sound design goodies.

The arpeggios designed for the “8Z Romps” voice do just that. (See “MA_8Z Romps” and so forth.) The pitch shift, etc. breaks up the monotony of repeated notes.

The “8 zone” idea makes it easy to cobble new drum kits together from the diaspora of waveforms in the regular drum kits. You probably don’t need more than eight different percussion sounds for a set of basic beats. A quick survey of other “8Z” kits shows this to be true:

    8Z HeavyHearts      8Z Chilly Breakz    8Z Gated Beatz
    --------------      ----------------    --------------
    Bd T9-1             Bd HipHop6          Bd Gate
    Bd Hard Long        Sd HipHop9          Bd HipHop9
    SD Elec12           Sd T8-1             Sd HipHop6
    Sd HipHop6          HH Closed T8-2      Sd Hip Gate
    HH Closed D&B       HH Open T8-2        HH Closed T8-1
    HH Open T9          Electric Perc1      HH Open T8-1
    Clap AnSm           Sleigh Bell         Noise Burst
    Shaker Hip 2        Shaker Hip 1        Shaker Hip 1

These kits have a different key layout than “8Z Romps”. In fact, these 8Z kits have a few zones that resemble the conventional kit layout — the bass drums (Bd) cover the notes where bass drum is usually found, the snare drums (Sd) cover the usual notes for snare drum, etc. Thus, you can play “regular” drum arpeggios through these 8Z voices and they sound just fine. The upper range elements cover a wide range of notes and are the “catch all” for the usual percussion spice such as conga, shakers, guiro, triangle and the like. With the pitch shifting, the “catch all” approach can produce some hip patterns.

There is far more fun to be had. I came across the “8Z” kits and arpeggios while playing the Performance USR2:102(G06) Ibiza Growl Sax. This Performance had the feel that I was looking for, although I wasn’t too pleased with the sax voice. (A problem that is easily fixed.) The Performance assigns “8Z Romps” to the first voice, but, wait! It plays break beats through “8Z Romps” that were not designed for “8Z Romps”, having different zones, etc. Cool. Yamaha sound designers are not only good at following the rules, they are equally adept at breaking the rules, too.

I decided to go ahead with the break beats from Ibiza Growl Sax even though the PSR/Tyros do not have “8Z” drum kits. I had to unwind all of the 8Z-ness and map the percussion voices to standard PSR-S950 drum kits. Unfortunately, the repetitive patterns are a little bit plain even though the musical feel is still good.

Next up, crushing the drums and bouncing them around.

Performance styles for PSR-E443

The PSR-E443 folks don’t get enough love, so here is a collection of performance styles for the E443 and the E433.

So, what is a “performance style?”

The Yamaha Motif/MOX series of synthesizer workstations have hundreds of factory “Performances” to to help a composer get started with a new song. A Performance has up to four independent voices (drum, bass, guitar, etc.) and up to six sets of related musical phrases — “arpeggios” in Motif-speak. The arpeggios are drawn from a built-in library of several thousand musical phrases in a slew of contemporary genres. Each set of phrases has a role (main section, fill, break) and the composer switches between sets while playing in order to lay down a basic arrangement or backing track. Even if you’re not a songwriter, the Motif Performances are just plain fun for jamming or practice.

I recorded and translated 22 of my favorite Motif/MOX Performances to PSR/Tyros styles — Performance styles. They play just like regular styles (follow chords in the left hand, play fill-ins when changing main sections, etc.) The styles are stripped down and are meant to be played. A few of the styles have only bass and drum, so there isn’t a lot of elaborate orchestration to get in the way. The introductions and endings are very simple.

This first collection targets the PSR-E443 and E433. The styles are SFF1 and should work on other arrangers supporting SFF1 although you may need to substitute different drum kits. The styles in this collection do not use Mega Voices. A more advanced collection with SFF GE and Mega Voices is being developed.

Since these are my favorite performances, the styles come from a funky, jazzy, fusion kind of place.

For more information, check out the README page. Then, download the ZIP file and have fun!

Free DJX-II styles/patterns for PSR/Tyros

Once upon a time (around the year 2000), Yamaha was into beat boxes and other spiffy tools for creating dance, hip hop, and other forms of “electronic” music. The DJX-II groove machine was an entry-level keyboard designed for budding DJs and musicians. It combined a funky looking 61-key keyboard, pattern-based sequencer and basic sound engine into an all-in-one, battery-powered instrument with built-in amplifier and speakers. Genres included techno, trance, garage, hip hop, old skool and trip hop.

DJX-II

The musician or DJ could select from 70 preset patterns, each pattern with ten variations. The variations were further categorized into six MAIN patterns and four FILL patterns. The keyboard was divided into five 12-key zones where each octave performed a specific performance function. One of the zones selected the current variation allowing the player to switch between pattern variations. Another zone transposed the pattern into the current root key.

Yamaha still makes the original DJX-II patterns available through its support site. Each of the files is a standard MIDI file (SMF) containing a single pattern. Although they are in SMF format, the files are not immediately useable. The rhythm tracks are programmed for some truly ancient and arcane Yamaha drum kits, none of which adhere to GM or XG layout conventions. Further, the files cannot be imported and played as an arranger workstation style, i.e., they do not contain the information and format needed by a PSR/Tyros style.

Last December, I developed a process for converting a DJX-II pattern file to a PSR/Tyros style file. I wrote and posted an earlier article on the DJX-II style format and conversion process. I then got to work and converted fifteen patterns to PSR/Tyros style format.

The patterns are all on the jazz tip and they include some pretty hip chord changes! I quickly found that I needed to transcribe the chord changes and bass lines in order to play along. I used Sibelius First to notate the MIDI data in each pattern and saved the lead sheets in PDF files. Knowing the changes makes jamming easier and a lot more fun.

At long last, I’m ready to distribute the converted patterns. Here is a link to the the ZIP file. The ZIP file contains fifteen style files (one for each DJX-II pattern), fifteen PDF lead sheets and a README.TXT file with performance tips.

Update: Check out version 2 of the DJX-II style collection. It’s still free!

I strongly recommend reading the README.TXT file before using the new styles. The converted patterns behave like the new Yamaha DJ styles on the PSR-S670. You only need to play a single note in the left hand accompaniment. No chords are necessary because the chord progressions are cooked into the patterns. The note sets the root note for the progression and the arranger and DJ style take over from there.

Current and recent workstation arrangers should play these styles without problem, save the occasional kit or voice substitution. Good news for musicians with entry-level models (e.g., PSR-E443) as the style files are SFF1 and no OTS. Thus, entry-level arrangers should load and play these pattern styles, too.

Please enjoy playing with these “DJ styles.” In terms of the future, the DJX-II trip hop styles are genuinely sick and I hope to convert them one of these days!

What’s in a name?

Anything that we want to go from just a beginner to a pro,
You need a montage (montage)
Oh, it takes a montage (montage)
Team America Lyrics

Back in January before Winter NAMM 2015, there was a lot of speculation about a new Yamaha workstation to replace the venerable Motif product line. Yamaha filed for the trademark name “Montage” in December 2014 and many wondered if this would be the name of the new workstation. (Yamaha have a teaser ad for “Reface” at https://www.yamahasynth.com with a countdown clock leading up to Summer 2015 NAMM week. Your guess is as good as mine!)

Getting a little bit Zen for a moment, it doesn’t matter what a thing is called. All that matters is what the thing is.

Periodically, I troll the United States Patent and Trademark Office (USPTO) database for interesting patents and patent applications. Yamaha carefully (and wisely!) protects its inventions through patents. Yamaha R&D, by the way, rarely publishes in the scientific literature, which is another way to stake your ground. Patent protection is stronger legally. A patent costs money, so a corporation is usually serious about a technology when it makes the commitment to file. The Yamaha patent applications cite Japanese applications/patents to establish priority in the United States. Thus, there is usually an existing Japanese application or patent that was filed at an earlier date for each US application.

Of course, a patent does not necessarily indicate that a product will follow. However, I’ve noticed a trend in some (relatively) recent filings by Yamaha.

Let’s start with US Patent Application Publication 2013/0305902, “Accompaniment Data Generating Apparatus,” published November 21, 2013. Quoting the application, “An object of the present invention is to provide an accompaniment data generating apparatus which can generate automatic accompaniment data that uses phrase waveform data including chords.” This rather lengthy patent application describes a musical instrument keyboard that uses audio waveforms in the same way that an arranger or Motif-series workstation uses MIDI phrases (AKA arpeggios). The application cites Japanese Patent Publications No. 2900753 (MIDI-based accompaniment) and No. 4274272 (MIDI-based arpeggio performance) as prior art.

US Patent Application Publication 2013/0047821 (published February 28, 2013) covers similar ground. This application adds waveform pitch shifting and time stretching. It cites Japanese Patent Publication No. 3397082 on the specific capability of pitch shifting and time stretching. Audio phrases (waveforms) need to be transposed via pitch shifting and must fit into the rhythm via time-stretching.

US Patent Application Publication 2013/0305907 (published November 21, 2013) is related to the previous two application. It covers production of chords using audio waveforms, guided by chord root and chord type.

US Patent Application Publication 2014/0033902 (published February 6, 2014) is titled “Technique for Analyzing Rhythm Structure of Music Audio Data.” The technique described in this application identifies the beat positions and intervals in a piece of music in audio form (i.e., rhythm pattern analysis). Figure 1 shows the embodiment (design) of the technique within an accompaniment generation system. The beat position information is used to synchronize playback of both MIDI and audio phrases. The diagram shows a “MIDI reproduction section” and an “Audio reproduction section.”

The most recent publication is 2015/0154979 (June 4, 2015) and is titled “Automated Performance Technology Using Audio Waveform Data.” The application deals with a specific issue that arises when audio waveforms are used for accompaniment (pitch shifting and time stretching). Quoting the application, “it is an object of the present invention to properly deal with a processing delay and sound quality deterioration that are likely to occur when audio waveform data is reproduced with time axis expansion/contraction control performed on the audio waveform data in accordance with a desired performance tempo.”

These are long documents with a lot of detail expressed in excrutiating “patent language.” They are too long and detailed to summarize here. I recommend downloading the patent applications from the USPTO, brewing coffee, and then reading the applications.

Looking at the overall trend, Yamaha are thinking about automated accompaniment that incorporates both MIDI and audio phrases. This technology could be applied to arranger instruments or a new generation of synthesizer workstation. The latest arrangers have “audio styles” which only use audio for the rhythm track. No “harmonic” phrases (e.g., bass line, electric piano comping, etc.) are available. The current Motif generation (the XF and MOXF) have only MIDI-like arpeggios. Possibly, combined audio/MIDI accompaniment was not fully cooked in time for the PSR-S950 and Tyros 5.

I am very interested to see if Yamaha rolls out this technology in future products. The definition of “montage” is “the process or technique of selecting, editing, and piecing together separate sections of film to form a continuous whole.” Hmmm.