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 SUSTAIN     0.4
COMP LEVEL       6.0
DIST TYPE        Crunch
DIST DRIVE       7.8
DIST EQ          Mid Boost
DIST TONE        7.0 
DIST PRESENCE    6.0
DIST OUTPUT      24

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.

MMS as a tool

I’ve got a lot more experience with the Yamaha Mobile Music Sequencer (MMS), so it’s worth passing along an update. I’ve been composing backing tracks for classic soul jazz tunes. If you would like to hear the results, please browse over to the Music Gallery.

MMS is a phrase- and section- oriented composition tool. A song is a sequence of one or more sections and a section is a group of phrases that play together. The phrases follow the section’s chord progression. Thus, it’s easy to pull a section together given a chord progression from a lead sheet and a library of drum, bass, guitar and piano phrases (MIDI loops).

This approach works great for a simple tune like “Memphis Underground.” Memphis Underground is built on a single chord (C7) and simple bass figure that repeats ad infinitum. Just set the chord progression for each section to C7 and stack drum, bass, guitar and electric piano phrases. Vary the arrangement by stacking different phrases in each section and lay down the different sections in the song. I recorded the simple flute part that makes up the head (the main melodic theme) into a phrase of its own. Finally, I recorded solo parts into the MMS song screen because it didn’t make sense to split the solos into separate phrases. Overall, this approach worked out pretty well.

Life got a little more interesting with “Watermelon Man” and “Comin’ Home Baby.” These tunes are 16- and 12-bar blues. It would be great to arrange the songs from short 4-bar phrases and just let the phrases follow the chord progression. However, when fills are placed at the end of a 4-bar phrase, the fills do not always play at the most musically appropriate points in the tune! I resolved this problem by increasing the phrase length to 8 bars. I also recorded the head into a phrase of its own. It’s handy to play back the head while stacking phrases even if you intend to record the head along with the solos in the MMS song tracks. Melodic phrases such as these must be set to by-pass transposition.

Then there are tunes like “Tough Talk” and “Put It Where You Want It.” These tunes are based on one or more musical hooks that are essential to the character of the song. Generic bass or piano phrases just don’t cut it. I had to record phrases to cover the hooks and the head. Now, on-the-fly transposition guided by the section chord progression really starts to fight you! I wound up recording full, chorus-long phrases (all 12-bars), effectively ignoring (defeating) chord transposition by the sequencer. Each section has only one chord (e.g., F7 or C7) which simply determines the key for the tune. The hook phrases must be set for “parallel” transposition.

Put It Where You Want It is a work in progress. This tune is even more complicated to sequence because it has three major sections, each with a distinctive hook and theme. Stay tuned!

Overall workflow with MMS has been good. The Mixdown feature makes it easy to create a WAV file. MIDI (SMF) export is also easy. I’m using iTunes File Sharing to move the WAV and MID files to a PC where I convert the WAV to MP3 and add General MIDI (GM) SysEx and voices to the SMF file. iTunes File Sharing is a lot less hassle than I originally anticipated. The latest version (3.1) of MMS adds Dropbox, but I haven’t updated as yet.

There is one minor recurring problem. The MMS tone generator is a subset of the Yamaha XG standard and includes extended XG drum kits. This is good for musicians who are working on XG-compatible and/or Yamaha instruments because the GM drum kit is quite limited. However, the extended MIDI notes outside of the GM range do not map to the same percussion sounds on non-XG equipment, e.g., Roland Sound Canvas. So, I have had to edit the MIDI file and remap notes to make the drum parts truly General MIDI compatible.

Workflow is essentially in one direction only. I think the software developers see MMS as a mobile sketchpad where a musician jots down ideas that are transferred to and finished on a computer-based DAW. MMS cannot import results from the DAW. So, once you start editing with your DAW (e.g., SONAR or Cubase), you’re committed.

Well, there you have it. The true worth and limitations of a software tool like MMS are only apparent when taking on complicated, real-world problems. I’m still enthusiastic about MMS, but I’m also more knowledgeable and wary of its limitations. The song/section/phrase structure can definitely fight back at times!

Yamaha arranger product family

Even I found the last post to be down in the weeds and confusing. So, here’s a better summary.

I went on an Internet dumpster dive over the weekend to find more service manuals for Yamaha keyboards. I’ve always been interested in the architecture of product families and curiosity got the best of me, again.

The Yamaha arranger keyboard family has four main tiers: 1. Premium, 2. Upper mid-range, 3. Lower mid-range and 4. Entry. These are my names. Each tier has its own hardware architecture. Let’s take it from the top.

Keyboard Main CPU Sub CPU Tone gen Wave ROM
Tyros 2 128MHz SH7727 200MHz SH7709S 2xSWP50 6x256Mbit
Tyros 3 128MHz SH7727 200MHz SH7206 2xSWP51B 4x512Mbit
Motif XS 400MHz TX4939 None 2xSWP51 2x512Mbit

Tyros keyboards form the premium tier. I could find service manuals for only the Tyros 2 and Tyros 3; I’ll bet that the Tyros 4 has a similar internal architecture. The Tyros has two CPUs: a main CPU to handle the user interface and peripherals (e.g., the hard disk) and a sub CPU for digital signal processing (DSP) and to manage tone generation. The main CPU bus and the sub CPU bus are connected through a bridge (implemented in gate array technology). The main and sub CPU each have their own SDRAM and program ROM. (This is true for the other tiers as well and I won’t mention it again.)

Tone generation is performed by two SWP5x integrated circuits. The SWP51 is the current series. The wave ROM is split into an upper and lower bank and is shared by the two SWP5x tone generators on a common wave memory bus. SWP51 wave ROM is dedicated to tone generation. The SWP51 implements higher waveform sample compression. Thus, the Tyros 3 actually has less physical wave ROM than the Tyros 2, even though the Tyros 3 implements memory hungry Super Articulation 2 (SA2) voices. Interestingly, there is an audio backchannel from one of the SWP51s to the hard disk subsystem. The audio data passes through an “audio transformer” circuit on its way between the SWP51 and the hard disk subsystem.

BTW, I resist making any guesses about the inner design of the new Tyros 5.

I included the Motif XS in the table for comparison. The Motif’s TX4939 is a MIPS architecture processor while the Tyros CPUs are SH-2/SH-3 architecture. (Completely incompatible, of course.) The Motif XS runs Monta Vista Linux. The tone generation architecture is very similar to the Tyros: two SWP51s and two banks of wave ROM on a shared bus.

Keyboard Main CPU Sub CPU Tone gen Wave ROM
PSR-S750 135MHz SWX08 None 1xSWP51L 2x1Gbit
PSR-S950 256MHz SH7331 SSP2 1xSWP51L 2x1Gbit
PSR-S710 128MHz SH7727 None 1xSWP51L 2x256Mbit
PSR-S910 128MHz SH7727 135MHz SWX02 1xSWP51L 2x512Mbit
TMS320DA150

The upper mid-range keyboards have a main CPU. However, only the S9xx keyboards have auxilliary processors. The older S910 has a sub CPU (SWX02) and bridge, an arrangement which is similar to Tyros. The S910’s TMS320 (Texas Instruments DSP) implements the MP3 CODEC. The S950 does not have a sub CPU. Its main CPU, however, has a much higher clock rate and probably took over the workload performed by the S910’s sub CPU and MP3 CODEC. The S950’s SSP2 processor is a Yamaha custom IC for vocal harmony processing.

Upper mid-range keyboards use one SWP51L integrated circuit for tone generation. Wave ROM is split into two banks and is connected directly to the SWP51L. Current generation keyboards (S750 and S950) make wide use of flash memory. More than ever, product features are determined by code and content alone.

Keyboard Main CPU Sub CPU Tone gen Wave ROM
PSR-S650 135MHz SWX02 None On SWX02 1x512Mbit
PSR-S550 135MHz SWX02 None On SWX02 1x256Mbit

The lower mid-range keyboards have only a main CPU: an SWX02. The SWX02 has a Renesas part number and is probably an SH architecture machine. Tone generation is integrated into the SWX02. The SWX02 has a dedicated interface to the wave ROM. The S650 has only 25% of the S750’s physical wave ROM.

Keyboard Main CPU Sub CPU Tone gen Prog/Wave ROM
PSR-E213 128MHz SWL01 None CPU 1x32Mbit
PSR-VN300 128MHz SWL01 None CPU 1x64Mbit
PSR-E403 128MHz SWL01 None CPU 1x64Mbit

The entry level keyboards are, of course, the most cost and price sensitive. The entry level keyboards can also run on battery power thereby imposing further power and performance limitations. Entry level keyboards do not provide much in the way of voice-level effects. All three of the example keyboards have a single SWL01 CPU and are all clocked at 128MHz. The ROM contains both the program and waveform data. Thus, waveform data is read across the CPU memory bus along with all of the usual program/data traffic. Physical ROM size is very much smaller then even the S550/S650. The component count is very low and the circuit boards are quite simple.

A follow-up on the Yamaha SWP51

Here’s a follow-up on the Yamaha SWP51 tone generator.

Sound On Sound (SOS) mentioned that the SWP51 tone generator was first used in the Yamaha Motif XS family. The Motif XS has two SWP51 ICs with a master/slave relationship. Each SWP51 has 8MBytes of dedicated DSP SDRAM. The two SWP51s share wave ROM arranged in two banks (high and low) of 512Mbits each for a total physical capacity of 128MBytes. Each wave ROM device is a Spansion S29GL512N10TFI020 which is a 32M by 16-bit parallel NOR flash memory. (Yay, Spansion. I ate lunch in their cafeteria in Austin.)

SOS and others claim that the SWP51 performs sample compression. The Yamaha specifications state wave ROM capacity at “355MBytes when converted to 16-bit linear format,” meaning uncompressed size. The waveforms are compressed in order to fit into 128MBytes of physical memory.

There is only one thing that we can conclude for sure. The PSR-S750 and PSR-950 have twice the physical wave ROM space as the Motif XS and MOX (256MBytes vs. 128MBytes).

The Motif XS with two SWP51s has 128 voice polyphony while the MOX has 64 voice polyphony. Thus, the MOX most likely has only one SWP51. The PSRs have 128 voice polyphony. If the later version of the SWP (SWP51L) has the same number of tone generating and DSP elements as the first version, then the arranger keyboards are deploying the elements differently than the Motif family instruments. Without knowing the internals of the SWP51 and its variants, this is pure speculation.

By the way, the main processor in the Motif XS is the Toshiba TX4939 RISC CPU. The CPU is clocked at 400MHz. The TX4939 is a MIPS architecture processor with several integrated I/O controllers and interfaces. The TX4939 is capable of generating an audio sampling clock and supports PCM input/output. The processor runs Monta Vista Linux. Yamaha has an equity stake in Monta Vista and distributes the GPL’ed source code three years after initial product release. Yamaha have not released source for the arranger keyboards, so most probably, the arrangers use a different embedded operating system.

The MIPS instruction set and the Renesas SH-4 instruction sets are not compatible. If the arranger and workstation product lines share software-level functionality, it must be at the source code level.

Just in case you aren’t confused enough already. The Tyros 3 has two SWP51B ICs and two SH-series CPUs (Renesas SH7727 SH-3-DSP main, and SH7206 SH-2A sub). The sub CPU handles the SWP51Bs while the main handles the user interface, etc. The microphone input is routed to one of the SWP51B ICs. Playback/record audio is routed from the other SWP51B to a gate array that interfaces to the hard drive subsystem. Wave ROM consists of four 512MBit mask ROM devices arranged in two banks for 256MBytes of total physical ROM. Tyros 3, by the way, was the first Tyros with Super Articulation 2 (SA2) voices.

What’s inside of a Yamaha arranger?

Curiosity finally got the better of me and I decided to find out what’s inside of the Yamaha PSR-S750/S950 arranger keyboards. Fortunately, Yamaha provides service manuals for its products. The manuals have block diagrams and schematics as well as disassembly information, etc.

My first impression is that the S750 and S950 are quite different beasts inside even though a fair amount of user-level functionality is similar between the two products. However, some internal differences are pretty obvious and expected due to different features:

  • The S950 has a bigger set of voices and styles.
  • The S950 supports a wider range of effects on all four DSPs.
  • The S950 adds vocal harmony.
  • The S950 has a color display and can display lyrics and so forth through a video output.

Both products are relatively complex, multiprocessor systems, so the analysis below is greatly simplified.

As you might expect, both products have a main processor (CPU) to handle the user interface, the USB interface, and so forth. The S750 has an SWX08 CPU, which is most likely a Yamaha sourced SH3 or SH4 system-on-a-chip (SOC). The SWX08 has a Yamaha part code and is probably manufactured by Yamaha itself. The S950 has a Renesas SH7331 processor, which has an SH4AL-DSP CPU core. Yamaha has employed Hitachi/Renesas SH processors for many years. The SH4 is a reduced instruction set computer (RISC) that handles both general purpose computing and digital signal processing (DSP). The SH4AL-DSP can perform a multiply/add step in one clock cycle. Both machines are capable of handling some DSP duties on the main CPU. The SH7331 is clocked at 256MHz while the SWX08 is clocked at 135MHz.

The S750 program memory is 256Mbits. The S950 program memory is split between a 64MBit flash boot memory and a 4Gbit main program memory (Hynex HY27UF084G2M). The Hynex memory is 8-bit serial (512M x 8-bit) NAND flash memory. The address and data are clocked sequentially through an 8-bit port. Since this is a relatively low bandwidth interface, the program is loaded into SDRAM working memory first and then executed from there. The S950 working memory consists of four 128Mbit devices plus one 256 Mbit device for a total of 96MBytes ((4 * 16MByte) + 32MByte). I wouldn’t be surprised to find audio track data stored in the big NAND flash along with the program image. The S750 working memory is 64MBytes (2 * 256Mbit) of SDRAM.

Tone generation on both machines is performed by an SWP51L integrated circuit (IC). This is a custom Yamaha IC. The SWP51L has a 64Mbit by 16 bit SDRAM for DSP through a dedicated channel. The SWP51L is fed by wave ROM divided into HIGH and LOW banks. Each bank sends a 16-bit data stream to the SWP51L. Surprisingly, the wave ROM capacities are the same. The S750 and S950 have two banks of 1 Gbit NOR flash memory each (256MByte total).

Neither processor has a separate dedicated memory for downloadable expansion packs. The main CPU very likely reserves 64MBytes in the wave ROM for expansion pack samples. (“ROM” is a bit of a misnomer in this context.) Thus, one could expect to see larger expansion memory in future products when more wave memory is added.

The vocal harmony and display processing are handled by separate dedicated processors. The vocal harmony processor (SSP2) is connected to the output of the microphone analog-to-digital converter (ADC). SSP2 has its own dedicated DSP RAM and program memory. Each product has a display controller: the S1D13700 Embedded Memory Graphics LCD Controller on the S750 (black and white LCD) and the Yamaha Advanced Video Display Processor 7 (AVDP7) on the S950 (color LCD).

It’s interesting to look back at earlier Yamaha keyboards. The PSR-1500 and PSR-3000 were released in 2004. Here’s a table comparing past (2004) with present (2012).

PSR-3000 PSR-1500 PSR-S950 PSR-S750
SA 0 0 62 38
MegaVoice 10 0 23 18
Regular 261 273 571 523
Sweet 14 8 27 24
Cool 18 5 64 46
Live 19 1 39 29
Wave ROM 64MB 16MB 256MB 256MB

The Yamaha MOX and MOXF, for comparison, have 355MByte and 741MByte wave memory, respectively, when converted to 16-bit linear format.

The Super Articulation (SA), MegaVoice and Live voices are the most memory hungry. Both SA and MegaVoice voices need multiple articulations (multiple waveforms). The Live voices are sampled in stereo and require twice as much space as the equivalent mono (regular) voice. Of course, there are many other factors such as the number of multi-samples and loop length that affect memory usage and sound quality, so a grain of salt is needed when interpreting these numbers.

Music gallery

If you would like to hear some of my work, please head over to the new music gallery page. The music gallery has MP3 demos, MIDI files and Yamaha Mobile Music Sequence (MMS) project files. Feel free to download the MIDI files and MMS projects. I’ve also posted a few production notes for each track. The production notes describe problems, solutions and tweaks. This is the place to go if you would like to hear MMS applied to something other than EDM!

I just posted two songs — Memphis Underground and Comin’ Home Baby — two good old soul jazz tunes. Both tracks were initially composed using MMS and were exported as Standard MIDI Format (SMF) files. The SMF files were imported into Cakewalk Sonar. General MIDI (GM) instruments were assigned and levels were set in Sonar. I played the files back through a Roland Sound Canvas and then checked playback through Windows Media Player.

While going through this process, I discovered that MMS generates “stripped” SMF files. MMS exports initial program (patch) changes, but does not export channel volume, pan or effect levels. The program changes depend upon the hardware setting on the export page. The “SMF” option produces General MIDI-like program changes while the “MOX” option produces a weird mixture of GM and MOX voices. It looks like MMS tries to pick the MOX voice that most closely resembles the voice used in the MMS part. The MMS manual is not very specific about all of this and you should be prepared to modify patch changes and set levels when tweaking an MMS-generated MIDI file in your DAW/sequencer.

There were also a few fix-ups related to differences between the MMS XG-like sound generator, the Roland Sound Canvas and the General MIDI standard. GM defines only one drum kit with a limited selection of individual percussion instruments. For example, finger snap is not part of the GM standard. Both Yamaha XG and Roland GS (Sound Canvas) implement an extended GM kit. Of course, the extensions are different (!) and finger snap is assigned to different keys. So, you should expect to tweak the drum tracks in the MIDI files for your own sound generator. Roland and Yamaha also define their note numbers differently and bass instruments, in particular, may sound one octave higher or lower. Transpose away and have fun!

Mobile Music Sequencer is here

The Yamaha Mobile Music Sequencer (MMS) is a fun tool for roughing out arrangements. MMS is an iPad app that uses a phrase- and section-oriented approach to building up full arrangements. A lot of rock, pop and dance music is repetitive, so once you have the basic building blocks (phrases), you can create loop-like musical passages (sections) and then combine the sections into songs.

I’ve been working with MMS for a few months now. I’m trying to create jam tracks for some of my favorite old soul jazz tunes like “Memphis Underground” and “Comin’ Home Baby.” The overall work-flow seems to be one way: create a song on your iPad with MMS then export the song to a computer-based sequencer or keyboard workstation for polishing. You cannot directly import a MIDI file into MMS. I have “imported” MIDI tracks by recording them with MMS — not a procedure for the faint of heart or MIDI novice.

By and large, MMS is intuitive and easy to use. The manual covers most of what you need to know in order to create new songs. If you intend to drive an external synthesizer (like the Yamaha MOX or Tyros) with MMS or if you export your songs as a Standard MIDI File, the manual does not cover important features such as the MIDI messages sent by MMS, program change numbers, etc. I’ve posted a page with this kind of helpful information.

Even though Apple has taken great pains to hide iPad files and the file system, musicians like to share their work. At the very least, we need to export and transfer our work to other computer-based tools and keyboards. No way around it, we need files.

Mobile Music Sequencer manipulates and produces four different finds of files.

  1. Individual MMS projects are stored in project files with the .yms1 extension.
  2. Individual phrases are stored in phrase files with the .yms2 extension.
  3. Sections and songs are exported as standard MIDI files (SMF) with the .mid extension.
  4. Mixdowns are exported as WAV audio files with the .wav extension.

When you are working within MMS itself, project and phrase files are transparent; you don’t see them. When you want to share or transfer these things, you need to know about them.

Apple provides two standard means of getting files on and off of your iPad: iTunes File Sharing and iCloud. You can directly access project files, MIDI files and WAV files through iTunes File Sharing. If you want direct access to your phrase files, however, you must have an iCloud account and use iCloud. The MMS manual strongly promotes SoundCloud as the way to access and share your audio files. SoundCloud is purely optional since you can transfer your WAV files from the iPad to your computer through iTunes File Sharing. This is a great relief because a free SoundCloud account is only good for two upload hours and thereafter you need to subscribe. BTW, would someone please explain what an “upload minute” is? I tried SoundCloud and frankly, I don’t need it or want it!

So, how do you use iTunes File Sharing? First, I’m assuming that you have a Mac or PC which syncs with your iPad. I use both Mac and PC and the procedure is the same. Plug in your iPad and let it connect with iTunes. Click to select your iPad device and then click on the “Apps” (pseudo-)button in the button bar for the iPad device. This is the same page that you would use to manage your Apps and home screens. Scroll down to the section titled “File Sharing.” You see two panes: one pane showing Apps and a second pane showing Documents. Select the “Mobile Seq” app and iTunes displays the documents belonging to MMS. Now you can add and save files. As I mentioned before, you have direct access to project files (yms1), MIDI files (mid) and audio files (WAV). iTunes also displays a few internal MMS files with plist, json, etc. extensions. Leave these the heck alone!

Life gets interesting under iCloud. You can publish projects and phrases to iCloud. First off, you need to turn iCloud on using the MMS SETTINGS > SYSTEM > GENERAL tab. Projects and phrases are handled differently.

  • Projects are published through the SETTINGS > FILE page. When iCloud is enabled, a little cloud-like icon is displayed to the far right of each project name. The icon shows the published or not-published status of each project. If a project is unpublished, its icon is grey and shows an upload arrow. Touch the icon to publish the project. The outline of the icon turns bright white after upload, indicating that the project is now published.
  • Phrases are published by saving them with iCloud enabled. You can use either the PHRASE > EDIT > SAVE button or the Save option that appears in the contextual menu for a selected phrase.

Published projects and phrases are accessible to MMS on other mobile devices connected with the same iCloud account. Please note, however, that you cannot access published projects via iTunes File Sharing. That’s right, iTunes file sharing doesn’t even show published project files.

Let’s say that you want to back up your projects and phrases to your Mac or PC from iCloud? Currently, if you’re on a PC, you’re hosed even if you have the iCloud control panel installed on your PC. You cannot transfer files through the control panel; you can only delete them. There are HOW-TO’s on the Web for turning on the iCloud daemon, etc. under Windows, but these techniques involve messing with the registry among other advanced Windows thingies. I’ve done this sort of stuff professionally and don’t really have much appetite for it when I’m not getting paid to futz with Windows.

Fortunately, I have a MacBook Air. Mac OS X has a double-secret directory to hold iCloud documents. First, open the Finder to your user directory. Press and hold the option key and open the Go menu in the menu bar. You will see a menu item called “Library.” If you don’t see “Library,” then you probably aren’t holding down the option key; the user Library directory is normally hidden. Select the “Library” item and the Finder goes to your Library directory. Double click on the “Mobile Documents” directory. This is where OS X keeps your iCloud documents. Double click on the directory with the identifier “mobilemusicseq” in its name. Then double click on the “Documents” directory. Lo and behold, you should see the project (yms1) and phrase (yms2) files that were published to iCloud. You’re now free to make a copy of your files. Go ahead. You own them.

That complete directory path, by the way, is:

User/XXX/Library/Mobile Documents/YYY~yamahamusic~mobilemusicseq/Documents/

where XXX is your user name and YYY is some iPad/iCloud cruft.

I believe that you should be able to copy project and phrase files to this directory, too. I haven’t tried this as yet, but you should be able to share songs and phrases this way. I want to share some of my songs and phrases in the future, so please stay tuned.

Hey, that you should get you going with MMS and file transfers.

Finally, an editorial. Hey, Apple! This is where the whole hermetically sealed tablet environment of the iPad breaks down big time. I find using iTunes and iCloud in this way to be a total kludge. A complete sack. Applications that create and edit media — like MMS — need to manipulate and transfer arcane files. Please find a clean way to transfer and share media files! And, please give iCloud Dropbox-like features. It’s really kind of tacky to maintain a closed environment like this. We own our files, not you.

Arrangers need respect!

Sometimes I like to kick back and jam to a simple chord progression and a groove. It’s a lot more fun to play to a groove than it is to practice to a boring old metronome.

The Yamaha MOX workstation is full of delicious factory performances where you can play a progression with the left hand and let the right hand roam where it wants to. I’m always impressed by the creativity and talent of professional sound designers and programmers, especially those cats that have a deep understanding of the keyboard architecture and its “content” like samples and musical phrases. It was initially hard to imagine, as a new user, getting my mind around 6,720 phrases (arpeggios) in the MOX let alone making them work for me!

The MOX needs to appeal to a wide range of musical tastes in order to be a successful product. Thus, it has a wide range of factory performances for demo purposes and for getting people started with the ax. I really dig the rock, funk, soul and jazz performances, but I just don’t work in rap, hip-hop or EDM. (Although, chill is interesting…) So, I set out to program my own performances and to overwrite some of the factory performances that didn’t work for me.

I browsed through the list of arpeggios in the data list PDF just trying to find a place to start with 6,720 phrases! Even a casual reader would notice certain names like “Unplugged,” “Pop Shuffle,” or “Slow Blues” showing up again and again. Well, I quickly realized that there is a full back line (drum, bass, guitar) for “Unplugged” or whatever, and that several main, fill and break phrases are available for each instrument. The construction kit idea was born and I programmed 90+ new performances where each performance is based on a construction kit. I wrote about my experience here.

Hmmm, main, fill and break arpeggios look and sound like phrases that were lifted from an arranger like the old Yamaha QY-70. However, unlike the old QY from 1997, the MOX arpeggios sound good. Some of the improvement comes from the MOX samples and sound engine, but the phrases themselves had much better musical groove and style.

So, I took a little time to investigate and audition Yamaha’s current generation of arranger keyboards from the inexpensive PSR-E433 ($249 street) up to the Tyros 4 (now about $4,000 street). Yamaha has recently released the new top-of-the-line Tyros 5, but I haven’t had a chance to try one yet. Sure enough, many of the MOX arpeggios were lifted from Yamaha arranger keyboards circa 2006.

Are the arpeggios better than the old QY-70? You betcha! Even the PSR-E433 outshines the QY and for less than half of what I originally paid for the QY. I wouldn’t hesitate to use some of the sounds and styles in the PSR-E433 at a gig. The Tyros Super Articulation 2 (SA2) voices are amazingly playable. The Tyros tracks your playing in real time and drops in the little nuances which enhance a solo performance. You don’t need to consciously think about switching articulations — just play. The Tyros styles are very realistic and maybe sound too much like a studio recording, if one regards that as a criticism.

Best of all, playing these keyboards is terrific fun! BTW, Korg, Roland, and Ketron make pretty darned good arranger keyboards, too.

So, why did I feel guilty — almost dirty — auditioning arrangers in public, especially at the infamous store which shall not be mentioned? I think arranger keyboards still suffer from the stigma of the dreaded “home organ” with a cheesy rhythm box. These organs were designed for (gasp!) the home musician including the one finger wonder (usually dad) in the family.

First off, we run into the musical class system of professional vs. amateur. I respect the talent, training, practice and skill of the pros. However, since when should amateurs be reduced to the play button on an iPod in order to experience music? Bosh! An amateur is a person who pursues music for pleasure and is most likely to support the arts and artists.

Next, I think arrangers are misperceived as instruments for the home (or the nursing home) even when they have essentially the same sound set and effects as “professional” workstations. Tyros SA2 voices are still way ahead of professional workstations in out-of-the-box playability.

Finally, there is the lingering aftertaste of cheese from a 1960s fallout shelter. The QY and its home organ predecessors really did sound cheesy. This is where contemporary arranger keyboards unfairly take the bad rap. Get thee to a music store! Try one! Don’t forget to feel love, again, and have fun.

RPi MIDI bridge

[Update: See Send MIDI from USB-B to 5-pin.]

Here’s a vexing problem that many electronic musicians face.

Let’s say that you own a lot of gear, some of which uses the old school 5-pin DIN MIDI interface. For example, there are a ton of classic (and not so classic) tone modules and keyboards that have 5-pin MIDI IN and MIDI OUT ports.

Then, you buy a new mobile MIDI controller which only does MIDI over USB through a USB B device port. The M-Audio Keystation Mini 32 is an example. This design covers the most common case — hooking the controller to a computer having a USB A host port — but you can’t connect the controller directly to the 5-pin MIDI IN port on one of your old tone modules or keyboards. USB ain’t RS-232 and class-compliant MIDI over USB has its own protocols, too. So, you can’t just whip up a simple cross-over cable or signal converter.

There are two commercial solutions to this problem: the Kenton USB MIDI host and the iConnectivity iConnectMIDI4+. Neither of these solutions is cheap and they cost more than a lot of MIDI controllers themselves!

Some people on the web have suggested an Arduino-based solution. However, here’s an easy riddle. What super low cost single-board computer has two USB host ports? Answer: The Raspberry Pi Model B.

The RPi Model B seems like a natural for this problem. It’s inexpensive, it has the necessary ports, and there are plenty of rugged cases available. Musicians will want to use this solution at the gig, so a good case is essential. There are two issues. First, the RPi can source only a limited amount of power to a USB device. Some MIDI controllers may draw too much current. Second, musicians don’t like to haul extra gear to a gig, so they won’t want to take a display and keyboard to a gig just to boot the RPi and run the software needed to bridge the two USB A ports. The solution must be stand-alone, plug-and-play, and consist only of the RPi itself, a power source, and a few cables.

Here’s what I have in mind for the hardware. The MIDI controller is connected to the RPi using a standard USB A to USB B cable. The MIDI controller draws power from the RPi. Some MIDI controllers have a dedicated power supply jack and in that case, a separate power adapter for the MIDI controller seems prudent. The other USB host port on the RPi is connected to an inexpensive commercial USB to 5-pin MIDI interface — the kind used to connect 5-pin equipment to computers. The commercial interface should be MIDI class-compliant and should not require special drivers. Knowing the state of the world such as it is, you may not easily find proprietary Linux drivers for the interface. The commercial MIDI interface provides the connection to the 5-pin DIN MIDI ports on your old piece of gear.

Musicians usually have an old USB MIDI interface like the Edirol/Roland UM-2EX in the studio. These interfaces are readily available at very low cost on the web for not much more dosh than a cable. This approach doesn’t require custom hardware or shields like an Arduino-based solution.

Here’s what I have in mind for the software. Folks already bridge PC MIDI ports using MIDI-OX. Linux has the ALSA MIDI software. The amidi -l command displays the physical and virtual MIDI ports. The aconnect command connects MIDI ports. The trick will be discovering and connecting MIDI ports after boot without manual intervention, i.e., the RPi boots and builds the bridge without a keyboard, display, a log in, etc.

So, there it is! My hardware lab is currently in disarray so I can’t easily do a proof of concept implementation. However, if you have the RPi and the pieces/parts, please give this a try.

If you enjoyed reading this article, you may find these articles interesting, too: