The future looks bright

After reading the owner’s manual and watching the first demonstrations, it’s clear that the Yamaha Genos™ is a beautiful face-lift over the Tyros series, but where is the sonic breakthrough?

As usual, the answer was right in front of my face all along. First, a few facts and figures:

    Feature                        Tyros 5    Genos
    ---------------------------    -------    -----
    Mega Voices                       54        82
    Super Articulation voices        288       390
    Super Articulation 2 voices       44        75
    Live voices                      138       160
    Articulation buttons               2         3

Back before the specifications were officially announced, I saw a leaked version of these specs. Given the big leap in Mega Voice (MV), Super Articulation (SA) and Super Articulation 2 (SA2) voices, I didn’t think the leaked specifications were credible. Now, I believe.

In short, the new tone generation hardware in Genos enables a very large SSD-sized waveform memory capable of holding all of the waveforms needs for the boost in MV, SA and SA2 voices. The end result is greater musical expression, detail and realism for both the Genos player and audiences.

This blog takes a focused look at Mega Voice, Super Articulation (1 and 2), and why the “great leap forward” is possible in Genos. For PSR/Tyros purists, I hope that you don’t mind my shortened abbreviations for Mega Voice, etc. The short abbreviations are much easier to type without extra punctuation marks.

Background information

MV, SA and SA2 are the trinity of highly detailed, expressive Yamaha voices. All three kinds of voices are based on Yamaha’s sample playback technology AWM2 (Advanced Wave Memory). Super Articulation 2 is based on Articulation Element Modeling (AEM). Both AWM2 and AEM are covered by many Yamaha patents.

Yamaha did not introduce these voices in one fell swoop. Mega Voices were the first to appear. A Mega Voice divides a voice into two or more velocity ranges and assigns a different waveform to each range. A trumpet voice, for example, is divided into:

    Velocity range    Waveform
    --------------    ----------------------
         1 - 20       mf trumpet
        21 - 40       f trumpet
        41 - 60       ff trumpet
        61 - 90       Legato
        81 - 100      Straight
       101 - 110      Shake
       111 - 120      Falls
       121 - 127      Glissando up

MIDI notes above C6 and above C8 are mapped to valve noise and breath noise, respectively. For other examples of Mega Voices, see the Mega Voice mapping table in the Tyros 5 Data List file for details. (Also, learn how to create a Mega Voice using Yamaha Expansion Manager.)

The first three ranges and waveforms correspond to velocity switching as we know it. The second five ranges correspond to articulations as we know and love them in software instruments. The articulations and noises are the sonic sweeteners that make sequenced music sound more human and natural.

Mega Voices are intended for sequencing. They are used in arranger keyboard styles to make them sound less MIDI-ish. Unless you have the finger control of a god, you cannot reasonably play a Mega Voice through the keyboard.

But, wait a minute! What if you put some smart software between the keyboard and the tone generator? The smart software watches and analyzes your gestures (i.e., key presses, releases, button pushes, etc.), and plays either a regular note or an articulated note. This is the basic idea behind Super Articulation.

In the case of the trumpet, for example, the SA software watches the notes that you play and if you push the right articulation button while playing a note, the software selects and plays a shake instead of a regular trumpet sound. The SA software also analyzes note timing and plays a legato waveform when you strike a second key while holding the first key. SA software even responds to note intervals such as playing a glissando when the interval between two notes is big enough.

In the end, Super Articulation makes Mega Voice articulations intuitively playable. I thoroughly enjoy playing the SA voices on my PSR-S950. I don’t have too think to hard at all — just let it rip as I hear it in my head.

Montage and late model Motif- and MOX-series synthesizers implement Expanded Articulation (XA). Take a look at my deconstruction of the Tenor To The Max voice.

Super Articulation 2 takes SA up another notch. Real musical tones are not discrete sonic events. Tones tend to blend together due to the characteristics of the musical instrument itself and/or playing technique (e.g., legato). SA2 performs a digital blending between notes by analyzing gestures and selecting the appropriate waveform from a very large database of waveform segments. Broadly speaking, these segments belong to three categories:

  1. Head: Attack portion of the sound
  2. Body: Main body of the sound
  3. Tail: Release portion of the sound

Consider two notes where the first note is detached and the second note is legato. SA2 plays the head segment for the first note, sounding the attack. This is followed by the body of the first note. SA2 does not play a head for the second note. It blends the body of the first note into the body of the second note. When the second note is released, SA2 selects and plays a tail for the second note.

All of this blending is computation heavy and is very sensitive to timing and latency. The technology behind SA2 is Articulation Element Modeling (AEM). AEM is actually a deep subject and is patented. (See my related post about Real Acoustic Sound.)

Technical breakthrough, sonic breakthrough

Folks who are familiar with software instruments and sound libraries know that all of this comes with a cost. Sample libraries for orchestral instruments are enormous because there are so many different ways to bow, pluck, strike and generally mess with acoustic instruments. Tens and even hundreds of gigabytes are needed to store the highest quality sample libraries. Then, one needs to have a fast streaming device like an SSD and a computationally husky CPU to play the samples without a glitch or hiccup.

Before Montage and Genos, Yamaha’s mainstay tone generator (TG) integrated circuit (IC) was the SWP51L. This venerable chip carried the load in Motif, MOX, CP, Clavinova, and other mid- to high-end Yamaha products.

Like all things electronic, the SWP51L’s time eventually came and went. The SWP51L communicates to waveform memory over a CPU-like bus with a fixed width address. The SWP51L is limited in three ways. First, the fixed width address is not big enough to address the very large sample library needed to support today’s articulation-heavy voices. Second, the address bus cannot be (easily) made wider. Third, the bus protocol is not directly compatible with relatively inexpensive commodity NAND flash memory. Conclusion, the SWP51L does not scale to a big waveform memory.

The Montage and the Genos deploy the new generation SWP70 tone generator. Unlike the SWP51L, the SWP70 is compatible with commodity NAND flash memory — the same kind of memory used in solid state drives (SSD). The Open NAND Flash Interface (ONFI) bus protocol — and the Genos — is scalable.

Thus, Yamaha is finally free to expand waveform memory to sample library scale.

People make much of “SSD, SSD, SSD!” SSDs use a SATA bus for communication, a bus that can become a bottleneck in itself. Yamaha have found a way to integrate SSD functionality into the SWP70 without the need for a SATA bus. The integration promises greater speed (i.e., memory bandwidth) without the cost and latency of a SATA bus. This design approach is patented. Please read one of my earlier posts about the SWP70 for the gory technical details. Hope you know a bit about computer architecture before diving in!

I’ve also speculated about the role of the SWP70 in the implementation of the Genos file system. This post is highly speculative and has not been verified by reading the Genos service manual.

What does this mean for the player?

The bottom line for the player and audiences is rich sound filled with detail and realism, thanks to big waveform memory, AWM2/AEM synthesis and Yamaha’s sound development expertise. Big waveform capacity and the new mono/stereo tone generation channels in the SWP70 also mean greater use of stereo samples (“Live voices” in PSR/Tyros-speak.)

Please look at the chart at the beginning of this article. No previous generation-to-generation Tyros upgrade has had such a big jump in the number of Mega Voice, Super Articulation and Super Articulation 2 voices. It can only get better from here as the SWP70 is the Yamaha platform for the next 8 to 10 years.

The Genos promises to be an expressive instrument which will be fun to play. The knobs, sliders and articulation buttons afford a great deal of real time control. I can’t wait to play one of these!

Longer term, what do the technical breakthroughs hold for the Montage series? You ain’t seen or heard nothin’ yet.

Copyright © 2017 Paul J. Drongowski

Genos internal memory: A speculation

Update: 23 December 2017

The article below illustrates the danger of speculation based on a few specifications. It is so easy to convince oneself that “This must be the way they did it!”

Thank goodness for service manuals.

I will eventually write a longer description of the Genos™ compute complex. Here’s a few facts to tide you over:

  • The main CPU is a 1GHz TI AM4376 Sitara Cortex-A9 ARM processor (AM4376BZDN100).
  • There are two SWP70 tone generator (TG) integrated circuits.
  • The master TG has 2GBytes (physical) of wave memory (Winbond W29N08GVSIAA).
  • The slave TG has 4GBytes (physical) of wave memory.
  • The internal memory is a Toshiba 64GByte eMMC device (THGBMGG9T4LBAIR).

The eMMC device is where you’ll find the “58GByte internal memory.” The eMMC is connected to one of the ARM’s two MMC interfaces.

The Montage’s main CPU is an 800MHz TI AM3352 Sitara Cortex-A8 ARM processor (AM3352BZCZ80). Whose the big brother and the little tag-along? 🙂

Everything about the following speculation (below) is utterly wrong. That’s why I try to explicitly label speculation and fact when writing.

A (Discredited) speculation

First, you have to get the mule’s attention.

Yamaha Genos™ hasn’t hit the streets yet and here is a speculative article about its hardware design…

I’d like to thank Kari V., Mihai and Joe H. on the PSR Tutorial Forum for getting this mule’s attention. They deserve the credit.


Here are a few Genos specifications that drew curious looks:

  • Polyphony: 256 (max.) (128 for Preset Voice + 128 for Expansion Voice)
  • Voice expansion memory: Approximately 1.8GBytes
  • Internal memory: Approximately 58GBytes

Normally, a Tyros has a large hard disk inside for bulk storage. The hard drive contains a file system to hold style files, song files, text files and a whole lot more. The Tyros 5 shipped with a 500GB hard disk drive. Tyros 5 internal memory — some form of non-volatile flash — is spec’ed at approximately 6.7MBytes. Yes, megabytes.

Word from the demonstrations is that the Genos has neither a hard disk drive nor a solid state drive (SSD). Thus, “Internal memory” is not directly user expandable or upgradeable. Eliminating the hard disk drive, the bracket and access door makes good sense because it reduces weight and chassis complexity. SSDs are still a little pricey for a cost-sensitive manufacturer like Yamaha. If it’s not a hard drive and if it’s not an SSD, then what is it?

Next, what’s up with that polyphony spec? 128 voice polyphony when you play preset voices only and 128 voice polyphony when you play a voice from user voice expansion memory? That’s rather unorthodox.

The high-level view

This is where the Yamaha SWP70 tone generator (TG) integrated circuit (IC) comes into the story.

The SWP70 uses ONFI-compatible NAND flash as its waveform memory. “ONFI” is the industry standard Open NAND Flash Interface. ONFI-compatible chips are the same NAND flash used in SSDs. The SWP70 caches the waveform data in a fast SDRAM just like an SSD in order to have fast, random access to samples.

Yamaha have created a tone generator IC that integrates an SSD-like flash and cache controller. This design eliminates the cost and latency of the SATA bus which normally connects an SSD within a PC or Mac.

For the hardware inclined, here’s a short speculative answer. There are two tone generator ICs each having their own ONFI flash memory. One TG and flash memory (call this one “TG A”) handles factory presets. The other TG and flash memory (call this “TG B”) handles user expansion voices.

The “TG B” flash memory is 64GBytes of ONFI NAND flash. Through software, it is partitioned into a file system partition (62GB?) and a user expansion voice partition (2GB).

The file system partition contains the initial factory content (4GB). The remaining space (58GB) is the “Internal memory” quoted in the Genos specifications.

So, Yamaha engineering decided to use space in one of the ONFI flash memories for bulk storage in order to cut the weight and expense of a magnetic hard drive (heavy) or an SSD (lighter than a hard drive, but not cheap).

If this is true — if — then there are some positive implications for the future of Genos. More at another time.

Ingenious, yes. User expandable, no.

Do I know this for sure? Oh, hell no. We need a service manual. Even a visual inspection of the digital logic board (DM) might not be conclusive.

The low-level view

The notional diagram below shows some of the major interfaces to the SWP70. [Click on images to enlarge.]

  • The CPU bus connects the SWP70 to the main control CPU and other major subsystems that require CPU-based data and control.
  • The ABUS allows SWP70s to communicate with each other when more than one SWP70 is in a system.
  • The waveform memory (NAND flash) communicates with the SWP70 over a Open NAND Flash Interface (ONFI) bus. This open industry standard lets Yamaha use commodity flash memory for waveform ROM. Waveform memory is split into upper and lower bytes with shared control signals. This arrangement instantly doubles bus bandwidth versus a single ONFI data channel.
  • The Serial audio bus brings audio data into the SWP70 (e.g., from the ADC) and sends audio data to the DACs and other subsystems.

Then, the fun begins. The SWP70 has three parallel SDRAM memory channels for wave and DSP working memory.

  • The DSP working memory is a large, scratch-pad memory for effect computation. I believe this memory is also the working memory for Montage FM-X.
  • The Wave working memory is a fast, read/write data cache which holds samples after they are read from the waveform memory. Remember, NAND flash favors sequential block mode read access, transferring data on the nibble-serial ONFI bus. The wave working memory plays the same role as the data cache in an SSD storage unit.

Memory capacities vary across products depending upon target polyphony, effect workload and, of course, the sample set.

Here are capacities for the PSR-S770, PSR-S970 and Montage. All capacities are physical (i.e., raw physical storage space).

             AWM     Waveform    Wave     DSP
          Polyphony   Memory   Working  Working
          ---------  --------  -------  -------
PSR-S770     128      512MB      32MB     8MB
PSR-S970     128       2GB       32MB     8MB
Montage      128*      4GB       32MB    16MB
          * Stereo/mono

The Montage DSP working memory is twice as large as the PSR-S970 reflecting the larger number of supported effect units.

The ONFI standard is the same standard used in solid state drives (SSD). Thus, Yamaha can reap the benefit of lower cost commodity flash. The wave working memory caches data just like an SSD. The SWP70 design yields maximum bandwidth to and from NAND flash without the expense or latency of a SATA bus. Thanks to ONFI, Yamaha can increase waveform memory size by dropping in higher capacity ONFI-compatible devices. User waveform (voice) expansion memory resides in these same memory components, so one should expect bigger user expansion memory in the future as well as bigger factory sample sets.

The SWP70 reads and writes two flash memories in tandem effectively sending a 16-bit word on each ONFI bus cycle. (See diagram below.) One memory provides the HIGH byte and the other memory provides the LOW byte. The same ONFI control signals are sent to both. For people who like to trash Yamaha for not using SSD, please note that tandem access doubles the transfer bandwidth over a single ONFI data path solution. (Of course, an SSD could do the same thing.)

I’ll bet that using the ONFI waveform memory for file system access made the tone generation guys nervous. Would file system traffic rob memory bandwidth from the tone generators?

Yamaha know latency. They spend a lot of time, money and intellectual effort understanding latency and conquering it. That’s where the second waveform working memory comes into play. Samples heading to the tone generators could be held in one waveform working memory while file system data could be held in the second, separate working memory. This organization separates the memory traffic and prevents file access from disturbing the critical, must-be-predictible sample stream. When the two channels arbitrate for the ONFI bus, the sample stream feeding tone generation could be given priority.

Copyright © 2017 Paul J. Drongowski

Montage: The hardware platform

The Yamaha Montage is one heck of a fine keyboard! Let’s take a quick look inside.

The Montage hardware is a new platform. Sure, there are a few things borrowed from older products, but that’s like blaming Apple for reusing a USB controller. The digital and analog electronics are all new.

There are several printed circuit boards and I will only cover the main PCBs.

  • PNL/PNR: Handles the front panel buttons, knobs, sliders, master volume and gain.
  • LCD: Bridge between the LCD controller in the main CPU and the 7inch TFT WVGA LCD touch panel.
  • DJK: Digital jacks (foot controllers, foot switch, sustain, MIDI)
  • AJK: Analog electronics and jacks (DACs, ADC, balanced/unbalanced outputs, analog input, phones).
  • DM: Digital electronics (main CPU, tone generators, external USB and Ethernet interfaces).

A few ports and connections are “Debug only” and are not populated or used in normal operation. The Ethernet port to the main CPU is debug only, for example.

The separation of the digital and analog electronics and jacks is significant. When the Montage was first introduced, I mentioned that “Pure Analog Circuit (PAC)” appeared to be an exercise in old school engineering that pays careful attention to board layout, component selection and clean power. The AJK board bears this out. The AJK board contains the stereo DAC and ADC components:

  • Audio ADC: Asahi Kasei AK5381VT-E2 24-bit ADC (96KHz max)
  • Audio DAC assignable output: Asahi Kasei AK4393VM-E2 24-bit DAC (96KHz max)
  • Audio DAC main output and phones: Asahi Kasei AK4393VM-E2 24-bit DAC

The ADC and DACs communicate with the DM board over an audio backbone. Physical separation keeps digital circuits (with fast rise/fall times) away from analog signal paths. The AJK board also has its own voltage regulators. They ain’t kiddin’ about PAC!

Yamaha adopted ARM architecture processors for the first time in the Reface series. (See my article about the Reface CS and Reface DX internals). Montage continues this trend.

  • The PNL board contains an MB9AF141NA ARM microcontroller with a 40MHz internal clock. The ARM microcontroller is assisted by a Toshiba TMP89FW24AFG microcontroller (SOC) operating at 10MHz. In Yamaha’s terminology, this ARM is a “sub CPU.”
  • The main CPU is an AM3352BZCZ80 ARM microprocessor with an 800MHz CPU clock. It is a Texas Instruments Sitara ARM Cortex-A8 single core MPU.

The ARM Cortex-A8 is a major departure from the Motif line which employed MIPS architecture microprocessors (such as the Toshiba TX4939C) as the main CPU.

We first saw the new SWP70 tone generator in the Yamaha PSR-S970 arranger workstation. The SWP70 replaces the SWP51L which has been the mainstay in mid- to upper-tier Yamaha products for several years. Top-tier products (e.g., Motif XF and Tyros 5) have two SWP51L tone generator chips which together share a common wave memory. The two SWP51Ls split AWM2 voice and DSP duties.

So, it isn’t any surprise to see two SWP70s in the Montage. What is suprising, however, is how the Montage’s two SWP70s are deployed. The two SWP70s are not connected in the “classic” structure. Instead, the microarchitecture is assymetric.

  • TG Master: The TG Master is connected to wave ROM (flash), wave RAM (SDRAM), and DSP RAM (SDRAM).
  • TG Slave: The TG Slave is connected to DSP RAM (SDRAM) and an SSP2 processor (through an ASIC gate array bridge).

I’ll have more to say about the SSP2 in a moment. The bridge connects the TG Slave’s serial audio interface to the SSP2 and the bridge carries several channels of digital audio (I2S format) to/from the TG Slave and the SSP2.

Of course, one’s first thought is to presume that the TG Master handles AWM2 voices and the TG Slave handles FM-X voices. There’s a lot of generation and DSP resources within an SWP70, so I doubt if they are left idle in the TG Slave even though the TG Slave does not have memory memory! There is a sixteen bit wide bus between the TG Master and Slave — not really sufficient to carry the sample bandwidth needed for AWM2 tone generation, however.

Each SWP70 has 16MBytes of SDRAM for DSP working memory. The TG Master has 32MB of Wave RAM. The Wave RAM is a cache for samples that are read from wave flash. (See my earlier article about the SWP70 and U.S. Patent 9,040,800.) Commodity NAND flash (as one would find in an SSD) favors sequential access; random access is horribly slow. The Wave RAM caches samples that are read from NAND flash.

Now, the big question: How much wave memory? The Montage wave memory consists of four Spansion (Cypress) S34ML08G101TFI000 8Gbit, ONFI-compliant devices with a total physical capacity of 4GBytes. In classic fashion, the memory is separated into upper and lower bytes. The Yamaha specifications state wave size as, “Preset: 5.67 GB (when converted to 16 bit linear format), User: 1.75 GB.” Assuming a 2.52 aggregate compression factor, the arithmetic works out in the following way:

    4GB physical = (5.67GB / 2.52) preset + 1.75GB user

The Motif series has an aggregate compression factor in this ballpark.

The Montage has a common multi-channel serial audio bus (I2S format) that interconnects the main CPU, TG Master, TG Slave, SSP2, ADC and audio DACs. This is the digital audio backbone. The bus conveys digital audio from the generators and effects on the DM board to (from) the converters on the AJK board.

The SSP2 is a Yamaha proprietary processor which is used in many products: Reface CS, Reface DX, PSR-S950 workstation, etc. The SSP2 integrates signal processing, USB, serial audio, and more. It is the “designated hitter” for Yamaha designs. When Yamaha needs a flexible chip with DSP and interfacing skills, it calls on the SSP2. (Roland have a similar jack of all trades called the “ESC2.”)

The Montage’s SSP2 has only 2MBytes of NOR flash memory on its CPU bus. That’s not a lot of program space! The SSP2’s USB port is connected to the external “USB TO HOST” interface. The SSP’s other interfaces convey digital audio to/from the digital audio backbone and the TG Slave. Thus, the SSP2’s main role is to route digital audio. The Montage can send 16 channels and receive 3 channels of stereo 24 bit/44.1 kHz digital audio to/from an external computer or iOS device

Commentary and opinion

I hope you find this quick overview to be informative and helpful. I try to present the system structure objectively without too much speculation.

Please discuss the Montage responsibly! Yamaha have a definite design style which exploits their expertise in very large scale integration (VLSI) as a strategic advantage. When Yamaha specify maximum polyphony as “128 AWM2 and 128 FM-X”, that’s 128 each all day long without any dependencies on the number of effects in use, etc. Some people lament this approach and wish that Yamaha would base their systems on x86 even though x86 is not always the best choice for embedded systems. Yamaha are no strangers to x86 having obtained many patents covering x86-based tone generation back in the 1990s and early 2000s.

Before anyone carries on about SSDs and SATA, please study the design of the SWP70. The SWP70 memory interface has all of the power, flexibility and Open NAND Flash Interface (ONFI) compatibility as an SSD without the need for SATA bus protocol.

Users may rightfully be disappointed at the lack of user-installable expansion memory. Yamaha are not evil; they simply do not have a convenient way to provide user-installable memory at the chip level. I think users should lobby for more built-in expansion memory, but they shouldn’t delve into conspiracy theories about Yamaha’s engineering or managerial practice.

Some wag will undoubtably complain about “memory parts cost only $10,” “my jump drive is 32GBytes,” “the need to stream 100s of gigabytes,” etc. Fine. But, an instrument design is a just one design. It is what it is is. One should listen to the Montage with their ears, then question whether gobs of samples would improve the playability, sound or expression of the Montage. Also, if you really believe that you can build a better instrument at the same price point, by all means, line up the VCs and engineers, go to work, and compete.

The final result is what we hear with our ears. The hardware is important, but it is simply a platform for the “soft content” — the algorithms, code, waveforms and sound design. In the long run, the soft content is the biggest development expense and is the most important element in a successful digital musical instrument product.

Perspective. Chill. Peace.

Here are links to related articles on this site:

All site content is Copyright © Paul J. Drongowski

littleBits Arduino tone sequencer

The littleBits Arduino module has the potential to be a MIDI-driven tone generator for a mono or paraphonic synthesizer. After getting the module, I was anxious to try it out even though I haven’t built a MIDI interface for it (yet).

Here is a picture of the littleBits hardware. (Click the image to get full resolution.) The Arduino module is in the middle between the controls at the left (button and dimmers) and the synth speaker at the right. The controls on the left hand side don’t do anything at the moment. I put a dimmer between the output pin (D5) and the synth speaker in order to control audio volume. It’s just more convenient to control the volume with a dimmer than the tiny trim pot on the synth speaker module. The knobs on the dimmers are my own touch; they aren’t standard-issue with the littleBits dimmers.


To keep things simple, I wrote a sketch that implements a basic note sequencer. Each note has a pitch (frequency) and a duration (milliseconds). The notes are stored in an array. The Arduino loop() function steps through the array of notes and plays one note at a time. After the loop plays the last note in the array, it goes back to the beginning of the array. The loop has a delay() in it and the loop keeps track of the remaining duration of the currently playing note. The sketch calls the Arduino tone() function to play notes by sending a square wave at the desired frequency to output pin D5.

If you would like to learn more about this project, then read about the design of this simple Arduino-based sequencer and tone generator. Here are links to the source code:

ToneTest.ino: Main sketch
ToneFreq.h: Note frequencies
ToneNote.h: Note durations

The D5 and D9 output pins on the littleBits Arduino module have a switch that enables or disables low pass filtering. The “analog” switch position turns on the filtering. The “pwm” position turns filtering off. Should you build this project yourself, try both switch positions. The “pwm” position doesn’t filter the square wave and you will hear it loud and nasty. The “analog” position produces a quieter, mellower timbre thanks to the low pass filter. Be sure to try the littleBits synth filter, envelope and delay modules, too.

One more tidbit. Pictures of the littleBits envelope, filter and delay modules usually show the top-view. The picture below flips the modules over and shows the bottom-view.


From left to right, the modules are the envelope, filter and delay, respectively. There is some serious electronics on these boards! (Click the image for full resolution.) I hope to use these modules to mangle audio, not just synthesis.

All the best.

Update: 28 June 2016. If you enjoyed this project and have the littleBits Synth Kit, then check out an expanded version of the tone sequencer which drives the filter and envelope modules.

The SWP70 tone generator

As I mentioned in an earlier post, the Yamaha PSR-S770 and PSR-S970 arranger workstations have a new tone generator (TG) integrated circuit (IC) — the SWP70. (“SWP” stands for “Standard Wave Processor.”) The SWP70 is a new TG family in a long line of Yamaha tone generators. The SWP70 replaces the SWP51L, which has been the mainstay in recent generations of Tyros, upper range PSR, Motif, and MOX series workstations.

The SWP70 has much in common with the SWP51L, but also some very significant differences. The SWP70’s external clock crystal frequency is 22.5792 MHz versus 11.2896 MHz for the SWP51L. This funky looking clock rate is a multiple of 44,100 Hz:

    22.5792MHz = 44,100Hz * 512

Samples are transferred to the DAC, etc. at a multiple of 44,100 Hz (Fs). Thus, it makes sense to derive Fs and its multiples from the chip-level master clock. The higher crystal frequency and faster memory read clocks lead me to believe that the SWP70 is clocked twice as fast as the SWP51L.

I am comparing SWP characteristics as deployed in the S970 (SWP70) and the S950 (SWP51L) workstations. This keeps the basis of comparison even although many characteristics (clock rates, DSP RAM size) are the same in higher end models like Tyros 5 or Motif. Higher end models employ two SWPs in master/slave relationship and both SWPs share the same wave memory. For more information about the PSR-S970 internal design, look here.

Five interfaces are essentially the same as the SWP51L:

  1. CPU interface: Communicate with the Main CPU (e.g., Renesas SH7731) via the parallel CPU bus.
  2. Serial audio: Send/receive audio data to/from the DAC, audio ADCs, and main CPU.
  3. Clock interface: Synchronize serial audio data transfers (generate multiples of Fs).
  4. DSP SDRAM interface: Store working data for effect processing.
  5. EBUS interface: Receive controller data messages (e.g., pedal input, keyboard input, pitch bend, modulation, live knobs, etc.) from front panel processors.

The DSP SDRAM is the same size: 4Mx16bits (8MBytes). The SWP70 read clock is 95.9616 MHz, while the SWP51L read clock is 45.1584 MHz. This is more evidence for a higher internal clock frequency.

The Tyros 4, Tyros 5 and S950 have an auxiliary DSP processor for vocal harmony. The microphone analog-to-digital (ADC) converter is routed directly to the auxiliary processor. Prior to these models, the microphone ADC is connected to the tone generator. With the SWP70, the S970’s microphone ADC is once again routed to the SWP70 and the auxiliary processor disappears from the design. Thus, vocal harmony processing (fully or partially) is located in the SWP70. See my post about SSP1 and SSP2 for further details.

The biggest change is the wave memory interface.

A little history is in order. The SWP51L (and its ancestors) were designed in the era of mask programmable ROM. I contend that tone generation is memory bandwidth limited and the earlier interface design is driven by the need for speed. The SWP51L (due to its evolved history) has two independent wave memory channels (HIGH and LOW). Each channel has a parallel address bus (32 bits) and a parallel data bus (16 bits). The two channels account for over 100 pins. (System cost is proportional to pin count.) The user-installed, 512/1024MB flash DIMMs plug directly onto the two channels.

The SWP70 wave memory interface takes advantage of new NAND flash memory technology. The interface is described in US patent application 2014/0123835 and is covered by Japanese patent 2012-244002. I analyzed the US patent application in an earlier post.

The SWP70 retains the HIGH port and LOW port structure. Each port communicates with an 8Gbit Spansion S34ML08G101TFI000 NAND flash device. Address and data are both communicated over an 8-bit serialized bus. This technique substantially decreases pin count and the resulting board-/system-level costs. Smart work.

I did not anticipate, however, the introduction of a new parallel memory interface called “wave-work”. The wave work interface communicates with a 16Mx16bit (32MBytes) Winbond W9825G6JH-6 SDRAM. The read clock is 95.9616 MHz.

The purpose of the wave work SDRAM is revealed by US Patent 9,040,800. This patent discloses a compression algorithm that is compatible with serialized access to the wave memory. The wave work SDRAM is a cache for compressed samples. The characteristics of the Spansion memory device give us a clue as to why a cache is required:

    Block erase time               3.5ms    Horrible (relative to SDRAM)
    Write time                     200us    Terrible
    Random access read time         30us    Bad
    Sequential access read time     25ns    Very good

As the patent explains, two (or more) samples are required to perform the interpolation while pitch-shifting. If there is only one tone generation channel, access is paged sequential. However, random access is required when there are multiple tone generation channels. (The patent mentions 256 channels.) Each channel may be playing a different voice or a different multi-sample within the same voice. One simply cannot sustain high polyphony through random access alone. The cache speeds up access to recently used pages of uncompressed samples.

The wave work interface takes additional pins, thus adding to board- and system-level costs. The overall pin count is still lower when compared to SWP51L. The penalty must be paid in order to use contemporary NAND flash devices with a serialized bus. This is the price for catching the current (and future) memory technology curve.

A few SWP70-related printed circuit board (PCB) positions are unpopulated (i.e., IC not installed) in the PSR-S970. There is an unpopulated position for a second Winbond W9825G6JH-6 wave work SDRAM which would expand the wave work memory to 32Mx16bit (64MBytes). A larger cache would be needed to support additional tone generation channels. Perhaps only half of the tone generation channels are enabled in the mid-grade PSR-S970 workstation.

There is what appears to a second separate wave work interface that is completely unpopulated. The intended memory device is a Winbond W9825G6JH-6, which is consistent with the existing wave work interface.

The PSR-S970 also has a stubbed out interface that is similar to the DSP SDRAM interface. The existing DSP SDRAM signals are labeled “H” for HIGH while the unused interface is labeled “L” for LOW. Perhaps only half of the hardware DSP processors are enabled for the mid-grade S970, waiting to be activated in future high-end Tyros and Motif products.

I refer to future high end products by the names of the current product lines. Yamaha may choose to rebrand future products (e.g., the much-rumored “Montage” trademark).

The Spansion S34ML08G2 8-Gb NAND device is Open NAND Flash Interface (ONFI) 1.0 compliant. The S34ML08G2 device is a dual-die stack of two S34ML04G2 die. The 8-bit I/O bus is tri-state allowing expansion e.g., multiple memory devices sharing the same I/O bus and control signals with at most device enabled at any time. The SWP70 has additional chip select pins that would support this kind of expansion. The current expansion flash DIMMs will no longer be needed or used.

In this note, I concentrated on observations and fact, not speculation about future products. I’ll leave that fun for another day!

All site content is Copyright © Paul J. Drongowski unless indicated otherwise.

SSP1 and SSP2: Designated hitter

One notable absence from the Yamaha PSR-S970 design is the “SSP2” integrated circuit (IC) which handles vocal harmony processing. The SSP1 and SSP2 appeared in the Tyros series and PSR series coincident with Vocal Harmony 2.

For you signal sleuths, the PSR-S950 and Tyros 5 microphone input is routed to an analog-to-digital converter (ADC) where the analog signal is sampled and digitized. The digital sample stream is sent to the SSP2 IC. The firmware munges on the samples and voila, the SSP2 produces a vocal harmony signal that is mixed with samples from the tone generator, etc. The SSP2 sends its results to the TG where effects and mixing are performed. The TG sends its output to the digital-to-analog converters (DAC) and digital amplifiers. The Tyros 4 has the same signal flow using an earlier model “SSP1” processor instead.

Previous machines with vocal harmony (e.g., Tyros 3 and earlier, PSR-S910 and earlier), routed the digitized microphone stream to a tone generator (TG) IC such as the SWP51L. Presumably, vocal harmony processing was performed in the TG IC. With the brand new SWP70 tone generator in the S970, the digitized microphone stream is sent to the SWP70. Looks like vocal harmony processing is folded into the SWP70 TG.

I didn’t give the SSP2 much thought or investigation, and just assumed that it was a gate array or something. On inspection, the pin-out resembles a Renesas embedded DSP processor with analog inputs and outputs, digital I/O, USB and all of the usual suspects. The SSP2 in the S950 has 2MBytes of NOR flash program ROM (organized 1Mx16bits) and 2MBytes of SDRAM (organized 1Mx16bits). The clock crystal is a leisurely 12.2884MHz although the SDRAM read clock is 84.7872MHz.

Mysteriously, a web search on the part numbers doesn’t turn up much information. The part numbers are:

    Schematic ID  Manufacturer?       Yamaha
    ------------  ------------------  --------
    SSP1          MB87S1280YHE        X6363A00
    SSP2          UPD800500F1-011-KN  YC706A0

The PSR-S950 parts list does not give a Yamaha order number for the SSP2. If the SSP2 fails, you’ll need to call Yamaha 24×7 directly.

A web search does turn up a few of the interesting places where the SSP has been seen. In addition to Tyros 4, Tyros 5 and S950, the SSP and SSP2 are featured in:

    PSR-S500 arranger (probable role: effects processor)
    EMX5016CF mixer (role: SPX effects and user interface)
    Steinberg UR22 audio interface
    Steinberg MR816 Firewire audio interface
    Yamaha THR modeling guitar amplifier

The SSP is Yamaha’s designated hitter when they need an odd bit of DSP work done.

PSR-S770 and S970 internal architecture

Yamaha just recently introduced the new PSR-S770 and PSR-S970 arranger workstations. As usual, I’m always anxious to dive into the service manual and see what’s up.

First, I’d like to thank Uli and capriz68 on the PSR Tutorial Forum for their help. Uli made a very nice table from my ramblings, so be sure to check it out there.

Without further introduction, here is a table comparing previous generation models (PSR-S750 and PSR-S950) against the new models.

                    PSR-S750  PSR-S950   PSR-S770  PSR-S970
                    --------  ---------  --------  ---------
Main CPU            SWX08     SH7731     SH7731    SH7731
Clock rate (MHz)    135.4752  256        320       320
Tone generator      SWP51L    SWP51L     SWP70     SWP70
Ext clock (MHz)     11.2896   11.2896    22.5792   22.5792
DSP SDRAM (MBytes)  8         8          8         8
DSP RCLK (MHz)      45.1584   45.1584    95.9616   95.9616
Mic ADC                       AK5381     PCM1803   AK5357
AUX IN ADC          AK5357    AK5381     AK5357    AK5381
DAC                 AK4396    AK4396     AK4396    AK4396
Digital amp         YDA164C   2*YDA164C  YDA164C   2*YDA164C
Wave ROM (MBytes)   256       256        512       2048
Wave SDRAM          N/A       N/A        32MBytes  32MBytes
SSP2 chip           No        Yes        No        No

The main CPU remains a Renasas SH4AL-DSP CPU. The clock speed is increased from 256MHz to the 320MHz, which is just shy of the rated maximum for the SH7731.

Wave memory is increased from 256MBytes (S950) to 512MBytes (S770) and 2GBytes (S970). Part of the S770 and S970 wave memory is reserved for expansion pack voices: 160 MBytes (S770) and 512 MBytes (S950). How Yamaha uses the rest of the memory is up to Yamaha. However, we are now in an era when we cannot compare products solely on the basis of physical wave memory size. Our ears and performance experience are more important than mere byte counts!

The S970 has two NAND flash memory devices labelled “audio style.” The devices are:

    4Gbit NAND flash = 512MBytes
    2GBit NAND flash = 256MBytes
    Total audio style  768MBytes

Yamaha specifies memory size in bits, so one must be careful to convert during analysis. The PSR-S950 has a NAND flash device labelled “Program ROM,” which presumably served the same purpose as well as holding the operating system image that is loaded at boot time. The S950 device capacity is 512MBytes (4Gbits). The S970 reserves 128MBytes for audio style expansion.

The upper mid-range model, i.e., the S970, is biamplified with two digital power amps. The older S950 is also biamplified. Not much change here.

The big news is that Yamaha have a new tone generator integrated circuit (IC), the SWP70. The SWP70 uses the serialized wave memory interface that I described in an earlier post. The SWP70 appears to operate at twice the speed of the older SWP51L. The SWP70 has implications for other future products, so I will analyze it in a separate post.

With respect to the PSR-S970, however, there is another evolutionary step. With the appearance of the new SWP70, there is also the disappearance of the SSP2 IC. The introduction of the SSP2 IC coincided with the introduction of Vocal Harmony 2 in both the Tyros line and the PSR-S950. It is reasonable to infer, then, that vocal harmony is implemented on board SSP2. With the PSR-S970, there are two possibilites.

  1. Vocal harmony is assigned to the now faster main CPU, or
  2. SSP2 functionality is integrated into the new SWP70.

The SWP70 is beefed up in other ways including a new wave working memory.

The future looks interesting as always!

Here are links to my articles on other members of the PSR and Tyros product families:
What’s inside of a Yamaha arranger?
A follow-up on the Yamaha SWP51
Yamaha arranger product family

All site content is Copyright © Paul J. Drongowski unless otherwise noted.

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!

A dive into some old Roland gear

I haven’t taken a deep dive into any gear lately and my ears need a break! So, here goes.

The Web is a wonderful source of distractions. After discovering the new Roland Sound Canvas app for iPad, I was searching for some information about the later model Sound Canvas modules and came across the Roland Service Notes for the XP-80 workstation, the XV-1010 module, and the SK-88Pro Sound Canvas. I still have these instruments in my sonic arsenal although they don’t see as much day-to-day use anymore. The orchestral sounds, in particular, hold their own today and I occasionally play the XP-60 at my church gig. Some of the sounds like the Voice expansion board (taken from Vocal Planet) are unique and stellar.

Roland have their “Service Notes” and Yamaha have their “Service Manuals.” To each his own name. However, keep these terms in mind when searching the Web for documentation on the innards.

As you might expect, there are similarities to Yamaha’s approach and some differences. These instruments are embedded computer systems for Pete’s sake — they just happen to make joyful noise. These instruments were developed in the late ’90s and early 2000s.

Roland — like Yamaha — drew from the Hitachi (now Renesas) processor families. The XP and XV use the more powerful SH-1 series CPUs while the SK uses the less powerful H8/510.

All of instruments have a custom tone generation chip. Roland’s naming convention for the tone generator ICs does not suggest how these chips fit into a family although the “XP” mnemonic is used throughout. The tone generators each have a dedicated RAM for effects processing similar to the Yamaha SWP51 series. The tone generators have a dedicated wave memory interface. The Yamaha SWP51 supports two 16-bit channels while the Roland tone generators have a single 16-bit data channel. I’m just know starting to appreciate how tone generation is a bandwidth-sensitive application and the single vs. double channel difference may be functionally significant. Certainly, the Yamaha approach requires many more pins, but it supports higher bandwidth. More polyphony? More voice elements? Hmmm.

Since these are older instruments, the wave memory size is not about to knock you out. However, this is an important reminder that wave memory size isn’t everything. Roland developed and programmed very good sound sets for these instruments. The wave memory may seem miniscule in the era of multi-gigabyte sample libraries, but it’s what hits the ears which matters the most.

Here are the details — straight, no chaser. Speaking of which, I’m knee deep in the development of a scat vocal voice for the PSR-S950. This project has taken a month so far and I’m only about 90% finished. Stay tuned.

Roland XP-80

Following is a list of the most relevant bits of sand in the Roland XP-80 workstation:

IC5     XP         Unidentified      Custom tone generator

IC12    SH CPU     HD6437034SC66F    Hitachi SH7034 Superh RISC engine
IC36    WAVEROM B  LHMN5PNA          4MByte WAVE ROM for tone generator
IC37    WAVEROM A  LHMN5PN9          4MByte WAVE ROM for tone generator
IC10    MASK ROM   TC5316200CF       MASK ROM on system bus (data+code)

IC17    SRAM       HM62864LFP-7SLZ   SRAM on CPU system bus
IC19    SRAM       HY6264ALJ-70TE2   DRAM for LCD controller
IC14,15 DRAM       LH64256BK-70      EFX DRAM for tone generator
IC21,22 DRAM       HM514800CJ-80     DRAM on CPU system bus

IC39,41 DAC        PCM69AU-1/T2      24-bit DAC

The SH7034 is a 32-bit RISC engine (SH-1 architecture) with peripheral interface logic integrated onto the chip. The SH7034 chip also has a 64KByte ROM/EPROM and a 4KByte RAM. The CPU has 32-bit datapaths, sixteen 32-bit general registers and a five stage pipeline. It has a multiply and accumulate (MAC) unit.

The XP tone generator (TG) is not explicitly identified in the parts list. It is merely labeled “XP” in the circuit schematic. The tone generator interface to the WAVE ROM has 23 address bits and is 16-bit data parallel. The WAVE ROMs provide data as 16-bit words. Each ROM has 21 address bits and the 16-bit data bus is shared between all ROMs. Each ROM is 4MBytes for 8MBytes total WAVE ROM. This checks with Roland marketing literature.

The Burr Brown PCM69AU is a dual 18-bit DAC capable of 16x oversampling. This part was also manufactured by Texas Instruments.

Roland XV-1010

The XV-1010 is a one expansion slot sound module in the JV/XV family. The XV-1010 has the basic XP sound set plus the “Session” expansion sounds — essentially a built-in SRJV expansion board. The XV-1010 does not have much of a user interface and not much is required in terms of processor power to support it.

Here is a table of the main ingredients in the XV-1010:

IC1    CPU            HD6437016F28
IC2    SRAM           TC551001CF-70L      RAM on CPU system bus
IC3    XP6            RA09-002            Custom tone generator
IC4    DRAM           MN414260DSJ-06T1    DRAM on CPU system bus
IC5    DRAM           MN414260DSJ-06T1    Tone generator effect DRAM
IC6    WAVE ROM A     LHMN0PVW            8MByte WAVE ROM
IC7    WAVE ROM B     LHMN0PU5            8MByte WAVE ROM
IC14   FLASH MEMORY   LH28F160S5T-L70     FLASH memory on CPU system bus
IC26   DAC            AK4324-VF-E2        DAC driven by tone generator

The Hitachi SH7016 is another member of the SH-1 RISC processor family. Peripheral interface logic is integrated onto the chip making it ideal for embedded applications (like a synthesizer). The CPU has 32-bit datapaths, sixteen 32-bit general registers, and a five stage pipeline. The CPU has a multiply-accumulate (MAC) unit. The SH7016 has 64 KBytes of mask ROM and 2 KBytes of RAM (when the 1KB cache is enabled).

The tone generator IC wave memory interface has 23 address bits and a 16-bit data bus. Each WAVE ROM has 22 address bits and they share the 16-bit data bus. The basic XP sound set is stored in an 8MByte ROM and the Session sound set is store in an 8MByte ROM for a total of 16MBytes of wave memory.

The EXP-B SLOT has 21 address bits and an 8-bit data bus. The narrow data bus is probably a legacy artifact from the earlier JV-series instruments.

The Asahi Kasei (AKM) AK4324 is a 1-bit, 128x oversampling stereo DAC with
a maximum 96KHz sample rate. It includes a 24-bit digital filter.

Roland SK-88Pro

The SK-88Pro is an SC-88 Sound Canvas built into a 3 octave MIDI controller with the Roland two-way pitch bend/modulation stick. The SK has two MIDI IN ports with 16 channels each. The controller is built like a tank and is almost as rugged as made-of-metal Roland workstations. I would not trade this thing for any of the toy-like controllers on the market today!

Here is a table listing the important integrated circuits:

IC1     CPU              HD6415108F          H8/510 microcontroller
IC3     XP               RA01-005            Custom tone generator
IC4     CUSTOM DSP       MB87837PF-G-BND     Unique to the Sound Canvas?

IC8     PROGRAM ROM      LH538U29            Main program and data
IC17    WAVE ROM         UPD23C32000AGX-314  4MByte WAVE memory
IC13    WAVE MASK ROM    LHMN0PNM AB         4MByte WAVE memory
IC15    WAVE MASK ROM    LHMN0PNN CD         4MByte WAVE memory
IC12    DSP RAM          NN514260J-60        256K x 16-bit word memory

IC50,51 DAC              UPD63200GS-E2       DAC for each channel

IC5     SUB CPU          M38881M2-152GP      Handles MIDI input/output
IC7     SUB PROG ROM     LH5S4H0B            Program and data ROM

The Hitachi H8/510 microcontroller family uses a 16-bit CPU core. The H8 has 16-bit datapaths, eight 16-bit general registers and a maximum speed of 10MHz. The H8/510 has integrated peripheral logic and is designed for embedded applications.

The SUB CPU handles MIDI input and output nothing more, nothing less. This is different than Yamaha’s SUB CPU which does heavy lifting.

The custom DSP IC communicates with the XP tone generator. The custom DSP has a dedicated 256K x 16-bit word DRAM. The tone generator has a dedicated 256K x 16-bit word DRAM for effects processing.

The XP tone generator has three WAVE ROM ICs: IC13, IC15 and IC17. The three WAVE ROMs have 21 address bits each and share a 16-bit data bus. The tone generator drives 22 address bits; the least signficiant bit, WA0, is not connected. Address bits WA[1:22] are sent to the WAVE ROMs. The high order bit, WA22, appears to function as a (ROM) chip select. This implies 12MByte of WAVE ROM total.

MOX internal architecture

Curiosity finally overcame inertia and I ordered the service manual for the Yamaha MOX6 and MOX8 workstations. (The Yamaha 24×7 part number is “S M MOX6/MOX8”.)

If you remember from my previous discussion about workstation internal architecture, the Motif XS synthesizer is Linux-based and has a 400MHz Toshiba TX4939 RISC CPU as its main processor. The TX4939 uses the MIPS instruction set and controls two SWP51L tone generator integrated circuits. Since the MOX is advertised as descendent of the Motif XS, I fully expected a MIPS architecture processor with only one SWP51L.

Check out the Yamaha MOX block diagram.

Surprise! The main processor in the MOX is the Yamaha SWX02 with an internal clock speed of 135.4725MHz. The SWX02 has an SH-2A CPU core and probably does not run Linux. The SWX02 is also used in the Yamaha PSR-S650 arranger workstation where it is clocked at the same rate. This processor seems to be Yamaha’s choice for cost-sensitive, mid-range products.

The MOX has one SWP51L tone generator IC clocked at 90.3168MHz. The SWP51L is fed by two 64MByte wave ROM ICs. The wave ROM components are Lapis Semiconductor MR26V51252R 512Mbit P2ROM devices in 32Mx16-bit configuration. One device provides a 16-bit high (H) channel and the other device provides a 16-bit low (L) channel into the SWP51L. The high and low wave ROMs communicate with the SWP51L over a 32-bit wave memory bus. The SWP51L has a separate 16MByte SDRAM on a dedicated interface to support digital signal processing (DSP). The DAC and ADC are also connected directly to the SWP51L.

The SWX02 functions primarily as a control processor. This is quite different from the PSR-S650 where the SWX02 performs tone generation as well as performing control duties. The SWX02 has its own wave memory interface and this interface is not used in the MOX. The S650 has a separate LCD controller IC. The MOX does not have a separate LCD controller and the LCD is connected to the SWX02 through its parallel general purpose I/O (GPIO) pins.

The MOX specifications describe the wave capacity as “355MB (when converted to 16-bit linear format)”. The physical wave ROM is 128MBytes total. Thus, Yamaha achieve overall wave compression of 2.78 to 1, or better.

The most interesting thing about the MOX is what it does not have. The MOX main logic board (DM) has unpopulated positions for:

  • A second SWP51L tone generator IC
  • Two additional wave ROM ICs (size unspecified) on the wave memory bus
  • An interface for a flash expansion module
  • A second WM8740 digital-to-analog converter (DAC)

Yep, Yamaha laid the ground for the MOXF. These positions are labeled “For future model” in the detailed circuit diagrams. One way to feel about that is cheated. A more rational way to view this situation is that Yamaha tries to lower cost through volume production (eventually) giving us more product for less money.

The MOX polyphony is 64 notes. The MOXF polyphony is 128 notes due, presumably, to a second SWP51L. A Motif/MOX note may use up to eight voice elements. Therefore, I infer that an SWP51L has a total tone generation capacity of 512 voice elements. Switching context to workstation arrangers for a momemnt, both the PSR-S950 and Tyros3 have 128 note polyphony. The S950 has one SWP51L and the Tyros3 has two SWP51B integrated circuits. I now believe that the S950 is a four element per voice synthesizer while the Tyros3 is known to be an eight element per voice synthesizer. (The S950 is voice compatible with the A2000, which is known to be four elements per voice.) Thus, I don’t think Super Articulation 2 (SA2) voices based on Articulation Element Modeling (AEM) technology are coming to the S950 or a new mid-range arranger workstation. Not without a second SWP51L, anyway. I’m guessing that AEM requires an eight element per voice engine.

It’s interesting to see how and where Yamaha shaved cost in order to produce a value-oriented mid-range product. It also provides geater justification for the higher cost in the upper end Motif and Tyros products.

See this article for an architectural overview of the Yamaha arranger product families.

Finally, Yamaha releases the source code for GPL’ed parts of the Motif XS, Motif XF, and S90 XS/S70 XS. See the Yamaha source code page. The MOX and MOXF are not mentioned on this page, giving further evidence that these products are not Linux-based.