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.

arduino_dimmer_speaker

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.

envelope_filter_delay

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.

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.