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.