PSR-EW410: Tour of its electronics

Last August, I took an in-depth look at the internal design of Yamaha’s entry-level, low-cost keyboards.

Up until the last few years, Yamaha’s low-end keyboards were based around its proprietary SWL01 processor. The SWL01 is a high volume LSI part which combines a microprocessor, tone generation and DSP resources into a single integrated circuit. The embedded software program and sound waveform data (AKA “the samples”) are stored together in a single flash memory device. Polyphony is limited to 32 voices due to the relatively low memory transfer bandwidth between the SWL01 and flash memory.

Newer entry-level keyboards, such as the Piaggero NP-32 and the PSR-EW410, have received a boost in polyphony (and DSP effects) over their respective predecessors. This boost in spec is due to a new central processor, the SWX03:

  • SH RISC instruction set architecture (ISA)
  • Internal clock: 135.4752MHz (external 16.9344MHz crystal)
  • System/CPU bus interface
    • Bus clock: 67.7MHz
    • 24-bit address bus
    • 16-bit data bus
  • Parallel digital inputs and outputs
  • USB to Host interface (USB1.1 full speed)
  • USB to Device interface
  • Low resolution analog-to-digital conversion (ADC)
  • Serial I2S interface for incoming and outgoing digital audio

The digital I/O pins sense the key and front panel switches and encoders. They also send data to the LCD panel via an LCD driver. Yamaha designs typically sense the presence of AUX IN and PHONE connections, too. The ADC pins sense the front panel knobs, pitch bend wheel, master volume and battery condition. The SWX03 microarchitecture is shown in the block diagram below. [Click image to enlarge.]

The internal clock and bus clock are derived from an external 16.9344MHz crystal. 16.9344MHz is a multiple (384) of the sample word clock (44,100Hz). Digital audio is transfered serially in I2S format (24-bits per sample word). Thus, the CPU operates in lock step with the serial audio input and output interfaces.

The earlier generation SWL01U typically has a 33.8688MHz internal clock. Thus, the SWX03 is quite a bit faster. Yamaha must be taking advantage of fabrication process improvements that allow a higher clock speed while keeping power low enough for battery operation. The higher clock speed of the SWX03 supports greater voice polyphony and the addition of new features such as Quick Sampling and audio playback/record over USB (See the Yamaha PSR-EW410 site for details).

The USB interfaces are clocked by an external 48MHz crystal resonator. The USB interfaces operate at full USB 1.1 speed. The SWL01 required an external USB interface component. The SWX03 integrates the USB interfaces on chip and eliminates the external USB component. This change reduces cost, board real estate and wiring.

The I2S digital audio converters are external. Entry-level products typically use the Asahi Kasei AK4430ET 24-bit DAC followed by an RC filter.

The NP-32 and PSR-EW410 implement audio conversion and amplification differently. The NP-32 sends serial audio data to an AK4430 DAC. The analog signal is then sent to a TDA7266 analog power amplifier (2 x 6Watt). The PSR-EW410 sends serial audio data to a Yamaha YDA176 digital power amplifier, which handles conversion as well as amplification. The EW410’s AK4430 produces an analog signal for both the PHONES output and the stereo line out (OUT L/L+R, OUT R).

While on the subject of audio, the PSR-EW410 has, in addition, a PCD1803A 24-bit stereo ADC which converts the buffered, analog AUX IN signal.

Both the NP-32 and PSR-EW410 store the embedded software and waveform data in a single flash ROM device. The flash ROM device communicates with the SWX03 CPU on the system bus provided by the SWX03. Physical storage devices are quite small by today’s mega standard:

  • NP-32: 8M x 16-bit words (64Mbits)
  • PSR-EW410: 16M x 16-bit words (256Mbits)

The CPU runs code and fetches waveform sample data from the same flash storage device. Thus, code and samples share the available transfer bandwidth. The EW410’s PROG/WAVE memory is twice as large as the earlier PSR-E443 (128Mbits). Hopefully, Yamaha are using the extra space for better instrument samples.

The NP-32 is dirt simple. The only memory attached to its SWX03 is the PROG/WAVE ROM. The EW410 is more sophisticated having an 8MByte SDRAM and a 16MByte flash ROM.

I’d love to take a look inside the SWX03 and see how it ticks. The internal design of the Yamaha NSX-1 may have some clues and I need to revisit the NSX-1 documentation.

Copyright © 2019 Paul J. Drongowski

The PSR-EW410 block diagram — in all its glory — appears below. Click the image to enlarge it.

Yamaha piano voice programming

Most of my live playing adds orchestral instruments or B-3 organ to our liturgical church group (synth plus 12-string guitar plus grand piano). Thus, I don’t dip into either acoustic piano or electric piano too often.

Recently, we prepared a number of gospel tunes in honor of Dr. Martin Luther King. Rather than jump to B-3, I decided to practice a few songs on electric piano. The release of the new Yamaha CP73/CP88 was nearly coincident, and naturally, I became curious about the implementation of acoustic and electric piano on MODX, the closest cousin to the CP73/CP88. It also gave me a chance to explore EP on Genos™ and to try using Genos as a controller for MODX.

MODX acoustic pianos

First, a dive into MODX acoustic pianos. Montage and MODX essentially have the same sound engine, modulo differences in polyphony and a few other details that aren’t relevant to this discussion. Therefore, anything I say about MODX should apply to Montage, too.

The basic voice programming unit in MODX is a Performance. A Performance is a versatile “container” for up to 16 Parts. Parts can be split, layered, mixed and so forth. Each Part is itself a powerful programming unit consisting of up to eight Elements, where each Element is a mini, sample-playback synthesizer. (Yeah, yeah, or it could be FM.) That, in a nutshell, is the hierarchical programming breakdown. In Yamaha-speak, each Element plays back a Waveform.

The deal is, contemporary high-quality piano voices need several levels of velocity switching in order to generate the wide dynamic range and timbre of an acoustic or electric piano. These voices are sometimes called “multi-strike” because each note is struck and sampled at several, carefully controlled velocities.

In the Yamaha voice architecture, each strike level is encoded in a Waveform. One Waveform (i.e., the samples associated with a single strike level) is assigned to an Element.

Let’s say that you want to create a highly detailed acoustic piano (e.g., Yamaha CFX) with nine strike levels and key-off sounds. Right away, you need more Elements than a single Part can provide! Thus, Yamaha implement the piano as a Performance consisting of multiple Parts.

Take the Montage/MODX CFX Concert Performance, for example. This Performance consists of four Parts:

Part 1 (six elements)

    El#  Waveform       VLo  VHi  NLo  NHi
    ---  -------------  ---  ---  ---  ---
     1   CFX ppp St       2   25  C-2   G8
     2   CFX pp St       20   35
     3   CFX p St        36   45
     4   CFX mp St       46   59
     5   CFX mf St       60   74
     6   CFX f St        75   92

Part 2  (three elements)

    El#  Waveform       VLo  VHi  NLo  NHi
    ---  -------------  ---  ---  ---  ---
     1   CFX ff St       93  110  C-2   G8
     2   CFX fff St     111  125
     3   CFX ffff St    126  127

Part 3 (eight elements)

    El#  Waveform       VLo  VHi  NLo  NHi
    ---  -------------  ---  ---  ---  ---
     1   CFX pp St        2   35  C-2   G8
     2   CFX p St        36   45
     3   CFX mp St       46   59
     4   CFX mf St       60   74
     5   CFX f St        75   92
     6   CFX ff St       93  110
     7   CFX fff St     111  125
     8   CFX ffff St    126  127

Part 4 (one element, XA control: Key Off)

    El#  Waveform       VLo  VHi  NLo  NHi
    ---  -------------  ---  ---  ---  ---
     1   CFX KeyOff St    1  127  C-2   G5

That’s 18 Elements total. The Elements in Part 3 are a layer on top of the Elements in Parts 1 and 2. The Elements in Part 3 have different filter programming (and maybe something I haven’t discovered yet…)

Perhaps the voice programmer could have squeezed everything into three Parts, but in for a penny, in for a pound. In terms of versatility and re-usability, it makes sense to split the Elements (and their Waveforms) into four Parts.

By the way, the Montage/MODX CFX Concert Performance employes the Damper Resonance DSP effect, which is the same algorithm (effect type) as Genos. Damper Resonance is [u]not[/u] the same as Clavinova’s Virtual Resonance Modeling (VRM). VRM is a step up. This is another topic which comes up frequently in forums.

On the other hand, the single part MODX CFX Stage Performance consists of eight elements:

    El#  Waveform       VLo  VHi  NLo  NHi
    ---  -------------  ---  ---  ---  ---
     1   CFX pp St        2   35  C-2   G5
     2   CFX mp St       36   59  C-2   G5
     3   CFX f St        60   92  C-2   G5
     4   CFX fff St      93  125  C-2   G5
     5   CFX ffff St    126  127  C-2   G5
     6   CFX mf St        2   59  G#5   G8
     7   CFX fff St      60  127  G#5   G8
     8   CFX KeyOff St    1  127  C-2   G5

Please take note of the key ranges. Up to G5, the CFX Stage has five strike levels. Above G5, the CFX Stage is a two strike piano. Good enough for rock and roll.

The Genos voice programming structure is more restricted than MODX. Each Genos voice has eight Elements. Thus, there is a fundamental limit to the number of strikes in a single Genos voice. I wouldn’t be surprised if the Genos CFX Concert Grand voice has similar programming. Proving this hypothesis would require carefully controlled experimentation and A/B listening.

Using Genos as a controller

Genos has a rather nice FSX action keybed which is better suited for acoustic and electric piano than MODX6 or MODX7. A weighted action is even better, of course. [I did rather enjoy playing the MODX8.] I don’t play piano often enough to deal with the extra physical weight of a hammer action keybed. You make your own bed and have to lay it in! With Genos on hand, it’s worth exploiting its FSX action as a controller.

MODX assigns a MIDI channel to each Part. The CFX Concert Performance has four Parts on MIDI channels 1, 2, 3 and 4. [This assignment is sometimes a source of frustration when sequencing with multi-Part Performances, but that’s a topic for another day.]

If we want to use Genos as a controller, we need to know the MIDI transmit channel assignments. By default, the Genos sends RIGHT1, RIGHT2, RIGHT3 and LEFT on MIDI channels 1, 2, 3, and 4 respectively, all on Port1 (AKA “MIDI A”).

First, connect the Genos MIDI A OUT to the MODX MIDI IN using a standard 5-pin DIN MIDI cable. Select the MODX Performance. Next, turn on the Genos Parts (RIGHT1, etc.) which will send MIDI data to the MODX, using the PART ON/OFF buttons in the left right corner of the Genos front panel. Finally, play.

If you get surprised by what you hear, i.e., sounds are missing, then check the Genos MIDI transmit settings and the MODX MIDI receive settings. Use the Transmit Monitor on the Genos side to make sure that you are transmitting on the correct channels via MIDI A (Port 1).

When I connect Genos to MODX, I can the first three MODX Parts in the CFX Grand Performance by sending RIGHT1, RIGHT2 and RIGHT3 on MIDI channels 1, 2 and 3. You get a pretty decent concert grand. You won’t hear any of the key-off sounds because the Genos is not transmitting on channel 4.

MODX electric piano

Let’s take a brief look at one of my favorite MODX Rhodes piano Performances: Case 73 Soft. The Case 73 Soft Performance has two Parts:

Part 1 (eight elements)

    El#  Waveform       VLo  VHi  NLo  NHi
    ---  -------------  ---  ---  ---  ---
     1   Rd73 p           1   49  C-2   G8
     2   Rd73 mp         50   85  C-2   G8
     3   Rd73 mf         86  108  C-2   G8
     4   Rd73 f         109  119  C-2   G8
     5   Rd73 ff        120  127  C-2   G8
     6   Rd73 KeyOff      1  127  C-2   E3
     7   Rd73 KeyOff      1  127   F3   C7
     8   EP2 Hard1+     107  127  C-2   G8

Part 2 (five elements)

    El#  Waveform       VLo  VHi  NLo  NHi
    ---  -------------  ---  ---  ---  ---
     1   Rd KeyNoise p    1   84  C-2   G8
     2   Rd KeyNoise mf  85  116  C-2   G8
     3   Rd KeyNoise f  117  127  C-2   G8
     4   Rd KeyOff mf    86  116  C-2   G8
     5   Rd KeyOff f    117  127  C-2   G8

Part 1 produces the main Rhodes sound while Part 2 adds the key noises. Part 1 is probably good enough by itself for sequencing. Performance Rd73 has similar programming, but adds bark when struck hard.

In order to play this two part MODX Performance from Genos, turn on RIGHT1 and RIGHT2 in order to send MIDI data on Port 1 channels 1 and 2.

Just for grins, here’s the basic programming for the Neo R&B Clean Performance — another favorite.

Part 1 (five elements)

    El#  Waveform       VLo  VHi  NLo  NHi
    ---  -------------  ---  ---  ---  ---
     1   EP3 Soft1        2   80  C-2   G8
     2   EP3 Soft2       81  101  C-2   G8
     3   EP1 Med        102  127   F2   G8
     4   EP3 Hard1      102  127  C-2   E2
     5   EP Key Off       2  127  C-2   G8

Part 2 (five elements)

    El#  Waveform       VLo  VHi  NLo  NHi
    ---  -------------  ---  ---  ---  ---
     1   Rd KeyNoise f  119  127  C-2   G8
     2   Rd KeyNoise mf  76  118  C-2   G8
     3   Rd KeyNoise p    1   75  C-2   G8
     4   Rd KeyOff f    119  127  C-2   G8
     5   Rd KeyOff mf     1  118  C-2   G8

You can see that Part 2 is essentially a ready-made patch for dropping in key noises. I love the shimmering auto-pan coupled with the ensemble detune effect.

Genos commentary

These experiments invite comparison between Genos and MODX, of course.

The featured Genos electric piano is a Rhodes Suitcase. You get the same Rhodes in darker and brighter timbres, and processed by a variety of effects (tremolo, phaser, etc.) You need to dig back into the Legacy EPs to find other Rhodes-like variations. The MODX effects give it the edge over Genos; Montage/MODX allow a longer effects chain. The Genos Suitcase EP is good, but sounds like a one-trick pony after a while. The MODX offers a broader range of Rhodes sounds immediately.

Piano aficionados on the PSR Tutorial Forum sometimes complain about a “lack of depth” in the Genos CFX grand voices. Their complaints may be grounded in fact. A Genos voice is equivalent to an eight Element MODX Part. (Warning, the mix of product terminology may becoming confusing here.) Thus, Genos is limited to the complexity of the single-Part CFX Stage Performance, lacking the “beauty layer” (Part 3) of the CFX Concert Performance. This layer would add depth to the sound as it unrolls dynamically.

Given what we know about the CFX Concert programming, Yamaha could release a full CFX expansion pack for Genos. The full CFX voice would need RIGHT1, RIGHT2 and RIGHT3 to handle all of the extra elements and their layering. Only three parts are needed if the CFX key off waveform is moved to the second part which currently has only three active elements. The Genos player would need to enable RIGHT1, RIGHT2 and RIGHT3 to make all parts active, but this is a small price to pay and could be easily configured into a registration.

Summary

Well, there you have it. I hope that my analysis will help you to understand and better appreciate both MODX and Genos piano voices. The MODX waveform set is quite rich in EP sounds, so get cracking!

Copyright © 2019 Paul J. Drongowski

MODX: Quick thoughts

The Yamaha synth folks recently posted an IdeaScale appeal for people willing to participate in a phone interview concerning Montage and synths. Fortunately, I was able to snag an interview slot.

Here’s just a few thoughts that are on my mind. I’m quite happy with both the MODX sound and user interface (UI) although I think there are a few ideas that they could take from the Yamaha Genos™ workstation.

First biggie. Both the Montage/MODX and Genos/PSR instruments would benefit from tighter integration and better direct support from Cubase, and especially, Cubasis. Quite a few users were upset when Yamaha dropped the relatively full featured Motif/MODX sequencer in favor of the Performance Recorder. The likely presumption is that most musicians will use a DAW instead of a built-in sequencer. Well, maybe Yamaha went to far for some users.

I’m not quite so bummed out about the Performance Recorder. But, I often get the impression that Steinberg and Cubase are marching in their own direction. When I spoke with Nithin Cherian at Music Expo Boston, he explained how Yamaha product groups need to come to Steinberg with requests in order to create the overall customer experience with a product. Perhaps it’s a matter of making requests to Steinberg? Yamaha have quite a good asset in Cubase and I’m surprised that it isn’t exploited more strategically across product lines.

Seems like Cubasis (yes, Cubasis) could be an important part of the solution for both synths and arrangers. [The arranger sequencer is showing its age and is sometimes difficult to work with.] Tight coupling with Montage/MODX could eliminate the need for a full-featured built-in sequencer. At the very least, users should be able to select Performances easily and to configure effects from Cubasis. It should be special to use a Yamaha synth or arranger via Cubasis (or Cubase, for that matter). The existing Montage/MODX UI covers much of the same territory as the old Motif/MOX iPad apps and that functionality doesn’t need to be duplicated.

Speaking of iPad (tablet-based) apps, Yamaha app development seems to be stalled. This is just a personal, subjective impression, of course. Mobile Music Sequencer has not been updated for Montage/MODX or Genos, for example. I understand that development resources (e.g., engineers) are limited, so maybe Cubasis is the right platform to invest in going forward?

BTW, when it comes to apps, I feel like there are too many islands and not enough bridges between islands. For example, I should be able to transfer a MIDI file developed in Cubasis to some other app without making a trip through iTunes or Dropbox.

Second biggie. The Montage/MODX Live Set concept, Scenes and Motion Control are wonderful tools for live performance. In a few cases, however, the flow on Genos is smoother than the synths. Here’s an example. Many musicians play in a single or duo with backing tracks. Currently, it takes several steps to select a Performance, load a WAV file, set the audio volume level, and start play back. This is a very streamlined flow on an arranger thanks to the arranger registration concept. I’d love to see Live Set buttons be extended in a similar way. [Arranger registrations get to be a dumping ground for parameters that rightfully belong in a Performance, so a careful separation of concerns/features is appropriate here.] Perhaps Live Set buttons can be extended to remember the path to an audio file on a USB flash drive and the initial volume setting? Then, a user can select a Performance and load an audio file in one button touch.

I prefer WAV audio for backing tracks. For the past 3 to 4 years, I produce the backing track on an arranger and then record (freeze) the track to WAV. It simply is soooooo much easier to massage commercial tracks on an XG-based arranger. Yamaha Musicsoft is my favorite source for commercial tracks.

Here are several smaller suggestions.

  1. The MODX doesn’t have the big bank of front panel selection buttons like Montage. The Live Set buttons are too small and sometimes the touch screen isn’t responsive enough during live performance. I’ve got to switch Performances in a hurry when I play. (Please don’t suggest a foot switch. 🙂 )
  2. The front panel buttons have a nice positive feel. I may experient with Live Set button layout such that I can use cursor buttons to change Performance on the fly.
  3. I compensate for the loss of selection buttons (somewhat) by using Scenes. The sound cuts out when switching scenes. [Maybe this is something I need to fix in my Scene programming.] I would love to have Scene titles (i.e., a text name in a 24-point font) that is displayed on the screen — positive visual feedback that I’ve selected the correct Scene.
  4. The placement of some fields on control assignment pages is confusing. Usually I think of source first sending to a destination. Plus, I always mistake the control filter fields for actual parameter fields.
  5. Control Assign makes it very easy to set up new control relationships. However, it takes a lot of effort to deconstruct (reverse engineer) existing control relationships and edit them.
  6. In Live Set, SHIFT+INC and SHIFT+DEC change the Live Set page. This is a little awkward when making fast changes. Perhaps a way to change the page which doesn’t require SHIFT?

Third biggie. Sound.

Montage/MODX sound quality is excellent. What can be done to make it better?

It would be great if the Montage/MODX adopted Articulation Element Modeling (AKA Super Articulation 2). I realize that it may be difficult to fully edit AEM through the synth UI. Maybe a computer-based application? I love AEM/SArt2 on Genos.

With respect to articulations (and control), here’s two wild ideas:

  1. In addition to assignable buttons for articulation control, add key switching similar to what’s found in VST-land.
  2. Allow user scripting. What else is a synth, but a MIDI controller and a tone generator. Why not make MIDI control programmable through user scripts?

To my ears, Yamaha have clearly invested effort in B-3 organ and rotary speaker emulation. However, musicians on both synth and arranger forums still regard the Neo Instruments Vent II as the “gold standard” for rotary speaker emulation. If the next Montage is to be a clone-killer, it needs to beat the Vent II. [Will Yamaha exploit U.S. Patent 9,899,016?]

I would love to take a MODX Performance and automatically turn it into a Genos voice. Yeah, probably isn’t a problem for the synth people to solve. However, the voice editing in Yamaha Expansion Manager (YEM) really, really lags.

Fourth biggie. Sequencing multi-part Performances via MIDI.

I’m sure you’ve heard this one before. 🙂 I haven’t deep dived MODX sequencing (yet), but I understand there is an issue with sequencing multi-part Performances from a DAW. Perhaps the solution is a map from MIDI channel to one-or-more Parts? This solution breaks the hard binding between MIDI channel and Part.

Final Biggie. People love getting updates! Updates are truly a hit with the user base — including me. 🙂 Social media forums always chatter about the next update and updates are a great way to create continuing interest in Montage/MODX. Please keep the updates coming!

Whew! A longer and discussion than I thought! None-the-less, I really enjoy the MODX. It’s light weight and sound make it a terrific gig machine.

P.S. The last time I participated in an interview, I wrote an MOX retrospective. It describes some of my use cases, flow and general concerns.

MULTI FX: It’s for organ, too!

Every now and again, a question pops up on a forum that is worth reposting here. A member of the YamahaSynth.com MODX forum inquired about distortion effects for drawbar organ.

Yamaha has introduced new DSP effects with every generation of synth and arranger. Unless you don’t have a life (and I resemble that remark), you’re probably not steeped in the history of Yamaha effect algorithms (AKA “effect types”.) Some of the amp simulations (e.g., AMP SIM 1) have been around a loooooong time.

When it comes to distortion or overdrive, I start with the effects added with the Motif XF version 1.5 update:

    US COMBO
    JAZZ COMBO
    US HIGH GAIN
    BRITISH LEAD
    MULTI FX
    SMALL STEREO
    BRITISH COMBO
    BRITISH LEGEND

Of course, you’ll find these effects on Montage and MODX, too. BTW, These same effect types (algorithms) are available on Genos, Tyros 5 and a few other Yamaha arrangers. On arrangers, they are called “Real Distortion.” The arranger presets are voiced differently to fit the needs of arranger styles.

The “All 9 Bars!” Performance insert effects perform distortion and rotary speaker emulation. The effect routing is:

    Insert B --> Insert A

where Insert B is MULTI FX and Insert A is Rotary Speaker 1.

MULTI FX is effectively a chain of guitar pedal effects and is quite versatile. The effect parameters for “All 9 Bars!” are:

    1  Comp. Sustain   2.0
    2  Wah SW          Off
    3  Wah Pedal       0
    4  Dist SW         Clean
    5  Dist Drive      1.8
    6  Dist EQ         Hi Boost
    7  Dist Tone       1.5
    8  Dist Presence   5.0
    9  Output Level    100
   10  --
   11  Speaker Type    Twin
   12  LFO Speed       7.738Hz
   13  Phaser SW       Off
   14  Delay SW        Echo 1 St
   15  Delay Ctrl      40
   16  Delay Time      48

The Compressor Sustain stage is always on. Here, the Wah and Phaser are turned off. So, after the compressor, the rest of the chain applies distortion, amp simulation (Twin) and delay. Arranger people might want to try the MULTI FX with these parameter settings in order to spice up the rather polite drawbar organ voices. Then, crank the parameters!

There’s plenty to tweak here. I recommend reading Phil’s blog covering the new effects in Motif XF version 1.5:

https://yamahasynth.com/blog/exploringmotifxf15guitareffects

If MULTI FX doesn’t get the sound that your looking for, then maybe one of the other “Real Distortion” effects will get the job done.

Copyright © 2018 Paul J. Drongowski

MODX Theatre Orchestra

Today’s project is reconstructing one of my favorite voices stolen from Genos/PSR: TheatreOrchestra. This voice first appeared in Tyros 3, using waveforms that are roughly contemporaneous with Motif XS (MOX).

The following table summarizes the eight voice elements in TheatreOrchestra. The voice parameters are pulled from the Genos UVF file for the voice.

Element  Low  High Low  High    Vol  Shift  Waveform
-------  ---  ---- ---  ----  -----  -----  -----------------------
   0      C3   G8    1   127   -7.9      0  Flute2 Soft St L (5623)
   1      C3   G8    1   127   -9.8     12  Flute2 Soft St L (5623)
   2      C3   G8    1   127  -12.0      0  [Flute] (4951)
   3     C-2  F#3    1   127   -3.0    -12  Bassoon Hard (5626)
   4      E3   G8    1   127   -6.0    -12  Oboe2 Med V3 (5627)
   5      C5   G8    1   127  -21.4     24  [Glocken] (5124)
   6     C-2   G8    1    68   -9.0      0  p (5248)
   7     C-2   G8   69   127   -9.0      0  f (5249)

The volume (element levels) look a little bit curious and I conjecture that element levels are set relative to 0dB. We’ll need to convert these levels to the range [0:127] with 127 corresponding to 0dB. Naturally, we’ll let our ears be the ultimate judge.

The overall sound is dominated by the woodwinds: 3 flute elements, bassoon and oboe. The bassoon and oboe are transposed down one octave. This imparts a unique reedy character to the sound. However, the lower notes (left hand) get somewhat murky, so in the final voice, I leave the bassoon and oboe in their natural ranges to either side of middle C (approximately).

The string component is not strongly stated. Any old string ensemble would do. The waveform names in the UVF files are not super informative although I suspect use of the OrchStrgs waveforms which were introduced in Tyros 3 and Motif XS.

The glockenspiel adds a nice chime to the high end. The glock always sounds in the original Genos/PSR voice, becoming rather tiresome after a while. I prefer to switch the glock in and out. Also, piccolo is a good alternative, again, being switched in and out.

The next table summarized the eight voice elements in Theatre, a similar voice that I constructed for the MOX6.

Element   Low  High Low  High  Level  Shift  Waveform
-------  ----  ---- ---  ----  -----  -----  ----------------
   1       C2   G8    1   127     90      0  Flute2 Soft St
   2       C2   G8    1   127     80     12  Flute2 Med St
   3       C3   G8    1   127     40    -12  Flute Non-Vib Of
   4      C-2   B2    1   127    100      0  Contrabass R
   5       C3   G8    1   127     50      0  Solo Combi St
   6       C3   G8    1   127     80     24  Glockenspiel  AF2
   7       B2   G8    1   127     65     24  Piccolo       AF1
   8      A#2   G8    1   127    100      0  Oboe 1

The piccolo and glockenspiel are controlled by the Assignable Function buttons AF1 and AF2, respectively. The corresponding element sounds when an AF1 and/or AF2 button is enabled (turned on).

Contrabass and the Motif XS/MOX string Solo Combi replace the string ensemble. The contrabass lends a nice bottom to hold down the bass. It should be played sparsely in the left hand (i.e., no close clusters).

Finally, here is the TheatreOrch voice for MODX. On MOX, I tended to work exclusively in voice mode. MODX is modeless and all programming is made in a Performance. Thus, on MODX, I comp’ed several Performances into a single TheatreOrch Performance, then tweaked the individual Parts. [Click images to enlarge.]

Although Performances are the first class citizens, I still dove into the Parts to make changes at the element level. The string Part is based on the Almighty Performance; I changed the waveforms to OrchStrgs Soft St and OrchStrgs Med St, splitting the patch into two velocity ranges: 1 to 68 and 69 to 127.

The new glockenspiel and piccolo waveforms are much better than Motif XS (MOX). The old glock sounded like a not very well cared for, used instrument bought in a pawn shop. The new glock rings nicely. A sweet alternative is the FM Glockenspiel. If I wasn’t such a traditionalist (!), I would have used it. Maybe in a future variation?

The flute Part (Part 1) is based on the 2 Flutes Performance. I employed older Performances for the oboe and bassoon, too. Since this voice is a blend, detailed isn’t too important and older, simpler voice programming doesn’t cut into polyphony as much as the newer detailed Performance. I prefer the new Performance for exposed solos when high quality is needed and polyphony is not likely to be an issue.

Instead of AF1 and AF2, I created four scenes. Scene 1 mutes both the glock and piccolo, Scene 2 enables the piccolo, Scene 3 enables the glock, and Scene 4 enables both the piccolo and glock. The MODX Scene buttons are close at hand and are an easy gesture away when making changes. The MODX assignable buttons, A.SW1 and A.SW2, are a longer reach.

As I work with MODX, I realize that I need to think more about building block Performances which can be combined (comp’ed) into bigger Performances. For example, it might have been better to start with 2 Oboes & Bassoon in one Part instead of separate oboe and bassoon in two Parts. Similarly, it might have been better to start with Wood Winds + Strings, which combines flutes and strings. By cutting two parts, I could have implemented the voice in four Parts, thereby making Seamless Sound Switching (SSS) possible. I may try this approach as a learning exercise.

Hope you enjoyed this brief dive into MODX Performance programming.

Copyright © 2018 Paul J. Drongowski

Bonus voice: Tutti

Let’s take a quick look at another interesting voice from arranger-land: Tutti. Tutti is a string and horn layer with Timpani in the left hand. High velocity left hand notes trigger a crash cymbal, too.

The following table summarizes the Genos voice programming.

El#  Low  High Low  High    Vol  Pan  Waveform
---  ---  ---- ---  ----  -----  ---  ------------------------
 0   C-2    G8   1   127  -25.9   -1  (4081)  Allegro Strings
 1   C-2    G8   1   127  -25.9    1  (4082)  Allegro Strings
 2   C-2    G8   1   127  -22.9    0  (4102)  French Horn
 3   C-2    F1   1   127  -14.6    0  (4222)  Timpani
 4   C-2    F1 106   127  -20.6    0  (4223)  Crash cymbal

I constructed a similar voice for MOX:

El#  Low  High Low  High    Vol  Pan  Waveform
---  ---  ---- ---  ----  -----  ---  -----------------------
 1   C-2   G8    1   127    105  L63  508  OrchStrgs Soft L
 2   C-2   G8    1   127    105  R63  511  OrchStrgs Soft R
 3   C-2   G8    1   127     90    0  621  French Horn St
 4   C-2   B1    1   127    127    0  137  Timpani Sw St        AF1 ON
 5   C-2   B1  106   127     85    0  2479 Hand Cymbal Open St  AF1 ON
 6   C-2   B2    1   127    101    0       Snare Drum           AF2 ON

     AF1 ON: Enable element 4 Timpani and element 5 Hand Cymbal
     AF2 ON: Enable element 6 Snare Drum

The timpani and hand cymbal are enabled when Assignable Function button 1 (AF1) is on. I added a snare drum hit which is enabled by AF2.

The screenshots below are a quick attempt to implement Tutti on MODX. I haven’t quite figured out the snare drum yet. First world problem: I love the Highland Snares kit and would like to use all of them!

And we’re off!

The exploration begins!

Starting in with a new keyboard is like landing on the Moon. What should I explore first?

First stop: Reverb

Effects are critical to good sound. I’ve fallen in love with the Genos™ “Real Small Hall+” effect preset. It just sounds nice to my ears and I want to incorporate it into Performances as I port my MOX voices to MODX. The “Real Small Hall+” preset has a mid-range bump around 700Hz to 800Hz which adds presence.

First off, what the heck is the equivalent effect algorithm on MODX? The Genos “Real Small Hall+” uses the Genos “REAL REVERB” algorithm. Quick comparison between the Genos Reference Manual (RM) and the MODX RM reveals that “HD Hall” is the same as “REAL REVERB”. Frankly, I don’t know why Yamaha names effects differently on different product lines. Slightly bonkers.

MODX provides three presets for “HD Hall”:

  • Large Hall
  • Medium Hall
  • Bright Hall

The “Medium Hall” preset is the closest to “Real Small Hall+”. It’s not the same, so there will be some extra editing ahead. In case you’re wondering, here are the parameter settings for “Real Small Hall+”:

Number Parameter Value
1 Reverb Time 1.3s
3 Initial Delay Time 22.1ms
4 High Damp Frequency 8.0kHz
6 High Ratio 0.8
13 EQ Low Frequency 700Hz
14 EQ Low Gain +6dB
15 EQ High Frequency 800Hz
16 EQ High Gain +4dB
Return Level 64

I would love to make a MODX user effect preset with these specific parameter values. Would sure save a lot of editing…

Of course, I tried these settings and so forth. In the course of investigation, I found it easier to navigate with the MODX cursor keys instead of poking the touch screen. As I mentioned in my last post, the small size of the MODX widgets requires care and precision when tapping the screen. I also noticed that more finger pressure is required than the Genos touch screen. Widgets along the edge of the screen are the most troublesome and maybe I’ll need to re-calibrate the touch panel.

Next step: Rotary speaker effects

One big, lingering question in arranger-land is how to make the PSR/Genos drawbar organ more realistic.

I need to port my B-3 patches, so it made sense to drop into the “All 9 Bars!” Performance. “All 9 Bars!” is a 2-part Performance which marshalls 14 voice elements into a pretty decent B-3 plus Leslie emulation. Part 1 implements the first eight drawbars and part 2 implements the 1′ bar plus some other goodies.

I’ll have more to say about the part programming in another post. In the meantime, here is a screen shot showing the insert effects routing for “All 9 Bars!”. [Click images to enlarge.]

The MODX “Rotary Speaker 1” algorithm is what we could call “the old algorithm.” “Rotary Speaker 2” is the “new algorithm” debuted in Montage. The rotary speaker effect (Insert A) drives the Multi FX (Insert B) algorithm before everything hits the 2-band EQ (flat).

The following screen shot shows the parameters for the “Rotary Speaker 1” effect.

The “Rotary Speaker 1” algorithm includes its own 2-band EQ which gives a kick at 200Hz and 4.5kHz. Thus, the 2-band EQ at the end of the Insert A to Insert B chain is flat.

The next screen shot summarizes the parameter settings for the “Multi FX” effect.

BTW, both the Multi FX and HD Hall reverb were introduced in the Motif XF version 1.50 update. Multi FX is supported in the PSR-S950 (and later) mid-range arrangers, Tyros 5 and, of course, Genos.

The effect routing diagram illustrates one immediate advantage of the Yamaha synth effect architecture over the Genos effect architecture. It is possible to chain two insert effects on Genos, but you need to stand on your head to do it. Also, it’s not easy to chain a distortion effect into the PSR/Tyros “Organ Flutes” mode. These limitations are due to legacy software and the XG voice/effect architecture — and they stick in everyone’s craw like a bad burrito. Yamaha, please?

MODX screen capture

About those screen shots!

Like Montage, the MODX has a double-secret Easter egg for capturing screen shots.

  1. Insert a USB flash drive into the USB TO DEVICE port.
  2. Press and hold the A/D INPUT ON/OFF button.
  3. Press and release the AUDITION button.
  4. Release the A/D INPUT ON/OFF button.

The MODX writes screen shots to the USB flash drive with names such as “DSNAP_0.png”. I don’t know why Yamaha hides this capability. We live in a modern, visual age, after all, and people need to share screen shots through (anti-)social media.

Here’s two tips. 1. To save wear and tear on the USB TO DEVICE port, I plug a short extender cable into the port and then plug the USB flash drive into the extender cable. The cable brings the port to a place where I can easily reach it and it reduces wear on the port connector. 2. The screen capture procedure doesn’t provide any visual indication that the capture was successful or complete. Use a USB flash drive with an activity LED (e.g., the Kingston Data Traveler Elite G2). You should see the drive’s LED flash when the PNG file is written. Naturally, do not remove the drive when it is active!

Copyright © 2018 Paul J. Drongowski

Mobile Music Sequencer mixer

In recent posts, I mentioned that Yamaha Mobile Music Sequencer (MMS) sends MIDI messages which conform to the XG voice and effects standard. Here’s a few screen shots to illustrate my observation.

The first thing everyone sees is the MMS Phrase Viewer. This is where you assemble phrases into sections. (It’s kind of like the Ableton Live Session View turned on its side.) Each section is a group of phrases which fit together musically and can be triggered together. [Click images to enlarge.] The song shown here is a rough attempt at Dub Reggae.

Each horizontal lane is a musical part. There are eight parts and they correspond to MIDI channels one to eight. Voice Link is enabled, so the voice for each part is determined by the pre-assigned voice for each phrase. MMS sends MIDI Bank Select MSB, Bank Select LSB and Program Change messages for each part. (See the Mobile Music Sequencer Reference page for more details including a list of voices.)

For this song, I used only six voices; that’s why there are two empty lanes. I intend to convert the song to a PSR/Tyros style. Thinking ahead, the parts 1 to 8 correspond to the Rhythm 1, Rhythm 2, Bass, Chord 1, Chord 2, Pad, Phrase 1 and Phrase 2 channels in a PSR/Tyros style. Enough about styles and style conversion for the moment.

When you tap the MIXER button, MMS displays its mixer view. From here, you can control the volume, pan, variation effect send, chorus effect send, and reverb send levels for each part.

These knobs are live. Each knob transmits its corresponding MIDI message as defined in the Yamaha XG architecture. The knobs transmit CC#7 volume, CC#10 pan, CC#94 variation send level, CC#92 chorus send level and CC#91 reverb send level. Thus, MMS does double-duty as a MIDI controller!

Tap the EEFECT button and MMS displays the effect connection view. This view shows the signal routing through the variation, chorus and reverb effect units. These knobs are live, too, and send XG MIDI messages to tweak the internal signal levels. This display is very handy if you’re an XG guy trying to spiff up a song.

The blue boxes with the left and right arrows select the effect algorithm assigned to the unit. (See the MMS Reference for details.) These buttons let you scoot quickly through different effects until you find the effect that strikes your fancy. MMS transmits the XG MIDI message to select the effect and it sends sixteen additional messages to set the effect parameters.

Speaking of effect parameters, tap the VAR button. (Tap CHO or REV.)

MMS displays sliders allowing you to tweeze the effect parameters. The screen shot (above) shows the parameters for the TEMPO DELAY effect algorithm.

Well, there you go. MMS is not only a sequencer, but it doubles as a MIDI controller. If you would like to know more, please read my earlier article Make music with MMS on PSR/TYROS.

Copyright © 2018 Paul J. Drongowski

Getting started with style files

The question of getting started with the creation and editing of PSR/Tyros/Genos style files arose on the PSR Tutorial Forum. I’m re-posting my reply here.

The best suggestion that I can make is reading Jørgen’s style creation course:

If folks don’t like PDF, there are on-line versions of the same articles:

Honest to goodness, Jørgen has done a super job!

Another excellent resource is “Style Files – Introduction and Details” by Peter Wierzba and Michael Bedesem:

This document and other very useful information are published on Peter’s site:

Anyone who is interested in creating new styles really needs to know what is inside of a style file — not just hand-waving, but to know in enough depth to start editing.

Another alternative is the high-level tool MidiSoft Style Magic:

Even then, a modest amount of background information is needed.

Once someone has the background, I encourage them to read a few existing articles at my site. Parts 2 and 3 of the series:

describe translation of a Standard Midi File to a style. Another potentially useful article is about converting the Yamaha DJX II patterns to styles:

So, there are already quite a few resources available. Jørgen, Michael and Peter have really shown the way!

One more suggestion.

Crack open a style file with a DAW and look inside. First, change the file name extension to “.mid” by renaming the file. Then, open the file in a DAW like Sonar or Cubase. Poke around.

A Yamaha style file consists of “chunks.” A style file must have a MIDI chunk and may contain a CASM chunk and an OTS chunk. The CASM chunk holds the NTR/NTT information that you can see and edit in PSR Style Creator. The OTS chunk holds the OTS information.

DAWs ignore the Yamaha chunks, so if you change the MIDI file, it won’t have the original CASM and/or OTS chunks. That’s where Jørgen’s style split/splice tool comes into play. The tool splits a style file into MIDI and non-MIDI parts. After editing, the tool splices the MIDI and non-MIDI parts back together again to make a complete style file.

If someone gets this far, they can move mountains. 🙂

Copyright © 2018 Paul J. Drongowski

Mobile Music Sequencer revisited

Yamaha Mobile Music Sequencer (MMS) is an app that doesn’t seem to get as much love as it deserves. MMS is a rather complete MIDI sequencing tool to create new songs using a phrase-based approach. (Cost: $15.99USD) The MMS user interface has a superficial resemblance to Ableton Live. It has a phrase screen which lets you assemble preset or user phrases into song sections, e.g., phrases that play as a group. Once you have one or more song sections, you then assemble the sections in the linear song screen. You may also create new phrases of your own in a piano roll editor/recorder and you may record solos and such directly into a song track.

MMS includes an XG-architecture sound engine although the voice set is limited to a General MIDI (GM) subset and a collection of MMS-only voices. Voice quality is “just OK” and may be why MMS adoption is slow. However, as I’ve recently discovered, there are a few hidden gems like a Mega Voice clean electric guitar! DSP effects are basic and follow the XG effects architecture. I have summarized the sound set, DSP effects, etc. on my Mobile Music Sequencer Reference page.

Of course, you can mixdown and export full audio songs from MMS. MMS supports SoundCloud, Dropbox, and iTunes file transfer. You can also export a song to a Standard MIDI File (SMF). The SMF has eight parts — one part for each of MMS’s eight song tracks. If you choose one of the supported targets (Tyros 5, Motif XF, MOX, etc.), MMS inserts bank select and program change MIDI events to select an appropriate voice for each track. Unfortunately, MMS doesn’t export volume, pan or effect data, so the resulting SMF is quite naked. Ooops! This is one area where MMS could be and should be drastically improved.

MMS’s voicing for Tyros is not very adventurous. On the up side, SMFs targeted for Tyros should work quite well on other PSRs, too. There is one voicing issue which should be fixed. The MMS clean electric Mega Voice (“Clean Guitar 2”) should be mapped to the good old PSR/Tyros clean guitar mega voice. Right now, it’s mapped to the regular clean guitar voice and the guitar FX sounds are whack.

Yamaha have rather quietly enhanced MMS’s capabilities. MMS is now up to version 3, including chord templates, extraction of chord progressions a la Chord Tracker, and more. The last minor update made MMS compatibile with Apple iOS 11. I hope Yamaha add Genos and Montage support because MMS can communicate directly (via wired MIDI, Bluetooth MIDI or wireless LAN) to its supported synths and arrangers.

Given the amount of kvetching about the shortcomings of the Montage sequencer, I’m surprised that more Montage people haven’t picked up MMS. Same for Genos or PSR, for that matter. Maybe its the lack of direct Montage or Genos support?

Where you from, boy?

Recently, I got the itch to create a few new PSR-compatible styles. I’ve always felt that MMS would make a good base for a style editor. You can quickly slam together phrases into a song section and see if they play well together. (Same as Ableton Live, I might say.) I mix and match phrases into song sections then export the sections to an SMF. Each MMS song section is a PSR style section (MAIN A, MAIN B, etc.) I load the SMF into a DAW where I add style section markers, SysEx set-up data, volume, pan, etc. When satisfied, I add a style CASM section using Jørgen Sørensen’s CASM editor. [Be sure to check out all of Jørgen’s excellent tools.]

Given the content, I can just about do this in my sleep. It’s a fairly mechanical process once you understand it and do it, say, fifty times. 🙂

About that content…

MMS comes with ten styles (i.e., groups of phrases) in the initial download. Please see the table at the end of this article. The ten styles are rock and pop. If you’re looking for R&B, dance, jazz, electronic or hip-hop, you’ll want to buy one of the content packs offered as an in-app purchase. I’ve include a table for these packs, too, at the end of the article. The genre packs are $3.99USD each. Yamaha also offer the multi-genre QY pack ($7.99USD) with phrases taken from the Yamaha QY-70 (QY-100) handheld sequencer. I did a little QY-70 mining myself.

Now for the usual Yamaha archeology…

The “MM” in “MMS” is a little bit ironic. The MMS phrases are lifted from the (infamous) “Mini Mo” mm6 and mm8 keyboards. The Mini Mo touted voices taken from the Motif series, but the mm6 and mm8 didn’t really know if they wanted to be an arranger or a synthesizer. In that regard, the Mini Mo is a unique functional hybrid in Yamaha’s bipolar world. (“You’re either a synth or you’re an arranger.” Digital pianos excepted, of course.)

So, yep, MMS offers almost all of that old (ca. 2006) Mini Mo goodness. You don’t get the fun ethnic patterns (Turkish, African, Indian), tho’.

If you break into your rich neighbor’s house to steal his stereo, you might as well take the TV set, too. The Mini Mo arpeggios are incorporated into the the Yamaha Synth Arp & Drum Pad app. If you still can get the Synth Arp & Drum Pad app, snag it right away. It’s being discontinued.

How does it sound on Genos?

Not bad. Even though the target voices are rather vanilla, an MMS-derived style on Genos sounds pretty darned good.

List of MMS drum kits

Bank MSB Bank LSB Prog# PC# Drum kit
7FH 00H 1 00H Standard Kit
7FH 00H 26 19H Analog T8 Kit
7FH 00H 27 1AH Analog T9 Kit
7FH 00H 28 1BH Dance Kit
7FH 00H 41 28H Brush Kit
7FH 00H 84 53H Break Kit
7FH 00H 85 54H Hip Hop Kit 1
7FH 00H XX xxH Hip Hop Kit 2 (Hip Hop)
7FH 00H XX xxH Hip Hop Kit 3 (Hip Hop)
7FH 00H 88 57H R&B Kit 1 (R&B)
7FH 00H 89 58H R&B Kit 2 (R&B)
3FH 20H 1 00H SFX Kit
3FH 20H 2 01H Percussion Kit
7FH 00H XX xxH Dubstep Kit (Electronic)
7FH 00H XX xxH Elct.Dub Kit 1 (Electronic)
7FH 00H XX xxH Elct.Dub Kit 2 (Dance)
7FH 00H XX xxH Epic FX (Electronic)
7FH 00H XX xxH Gate Drum Kit (Electronic)
7FH 00H XX xxH Short FX (Electronic)
7FH 00H XX xxH New Pop Kit (Dance)
7FH 00H XX xxH Trance FX Menu (Dance)
7FH 00H XX xxH Trance Power Kit (Dance)

List of styles

The following preset styles are installed with Yamaha Mobile Music Sequencer when you buy MMS.

Category: Rock/Pop Jazz/World
BluesRck Funky Jaz
ChartPop JzGroove
ChartRck Reggae
FunkPpRk
HardRock
PianoBld
PowerRck
RkShffle
RockPop
RootRock

Here are the styles included in each optional, in-app purchase pack:

R&B Electronic Dance HipHop
IzzleRB Ambient Dncehall AcidJazz
JazzyRnB Analog Dncfloor Amb Rap
RB Chrt1 Chillout E-Disco ButiqHH
RB Chrt2 Dubstep E-DubPop EastRap
RnB Bld1 ElctDub EleDance HipHopPp
RnB Bld2 Electron ElktPop1 JazRemix
RnB Pop1 Minimal ElktPop2 SouthRap
RnB Pop2 Techno FunkyHse WestRap
RnB Soul Undrgrnd LatinJaz
M-Trance

Copyright © 2018 Paul J. Drongowski

All is swell (SWL)

Yamaha develop a wide range of keyboard products from low-cost entry-level ‘boards to high-end synthesizers and digital workstations (AKA “arrangers”).

Within a market segment, the engineering challenge is to develop, manufacture and test a product with the desired feature set at the target selling price. I won’t discuss profit margin here since no one really knows, but Yamaha. We do know, however, that amortized non-recurring and recurring costs must be low enough to produce a significant return. Cost sensitivity is simply a day-to-day reality.

The entry-level segment is the most cost-sensitive segment because most customers in this segment are looking for an inexpensive keyboard with basic functionality. Think “Parents buying a first keyboard for a kid who may walk away from the whole thing in a week or two.” The entry-level segment outsells the mid- and high-end portable keyboard segment by nearly 2 to 1:

    Category                       Units            Retail value
    -----------------------------  ---------------  -------------
    Acoustic guitars               1,499,000 units  $678,000,000
    Electric guitars               1,132,000 units  $506,000,000
    Digital pianos                   135,000 units  $165,000,000
    Keyboard synthesizers             81,000 units  $104,000,000
    Controller keyboards             160,000 units  $ 32,000,000
    Portable keyboards under $199    656,000 units  $ 64,000,000
    Portable keyboards over $199     350,000 units  $123,000,000
    Total portable keyboards       1,006,000 units  $187,000,000

    Sales Statistics for 2014, USA market

Synth fanatics should note that although the average selling price (ASP) is higher for synths, the portable keyboard segment moves a much higher number of units. Fortunately, for manufacturers playing in the entry-level portable keyboard space, volume is relatively high and non-recurring cost can be laid off across a larger number of units than synths.

The entry-level segment has one other important driver — the desire for portable, battery operation. This design consideration limits the amount of electrical power available for computation and thus, limits the amount of computational capacity itself. Some dynamic power can be bought back through lower CPU clock speeds. Folks accustomed to giga-Hertz CPUs may be shocked to see such low clock speeds! Lower clock speeds simplify cooling and reduce overall weight by eliminating heat sinks and cooling fans.

LSI vs. commodity

Yamaha perceive their proprietary expertise in large scale integration (LSI) as a competitive advantage. Although Yamaha exploit commodity components where possible, tone generation and digital signal processing (DSP) are performed in proprietary hardware.

User interface and control (e.g., USB communications, MIDI, LCD, etc.) are a good fit with commodity CPU technology. Yamaha — and Roland — have a long history with H8 and SH architecture CPUs from Hitachi, now Renesas. Early products employed H8 microcontrollers for host CPU functions. Yamaha eventually migrated to the “Super H” reduced instruction set computer (RISC) family. (In 2011, Renesas announced the end of the H8 line.)

Yamaha have a considerable investment in software built and tuned for the SH family. Thus, migration to a new commodity architecture (ARM) is a pretty big deal with a high internal cost. Yamaha have adopted ARM for panel scanning/control in Reface and are using ARM processors for host computation in Montage and Genos. Time and experience will show if ARM is adopted in the entry- and mid-range segments, too.

Old faithful

Yamaha’s entry-level models rely on “old faithful,” the SWL family of proprietary Yamaha processors. The SWL is used in all entry-level models — a good way to drive volume manufacturing of a custom part. The SWL family has undergone several revisions over the years. I don’t intend to recount that history here.

The SWL01U was used in many products including the PSR-E443. The external clock crystal oscillates at 16.9344MHz yielding an internal clock speed of 33.8688MHz by scaling. The relatively low clock speed reduces heat and power consumption. The following diagram shows the typical “compute complex” in an entry-level keyboard. [Click to enlarge.]

The structure in the diagram is generic across Yamaha entry-level products. If you dive into the service manual for a specific entry-level keyboard, you’re likely to find a “compute complex” like this generic one although memory capacities and such are model specific.

The SWL01U provides a CPU bus to which a USB controller (optional), program/wave ROM, flash ROM and SDRAM are attached. The SWL01 has many on-board interfaces: keyboard scanning, LED/LCD interface, bit-serial audio (ADC, DAC), control knob sensing, etc. The SWL01U has an integrated USB controller which can be deployed in ultra low-cost, minimum component count designs.

The SDRAM is, of course, read/write working memory. The flash ROM retains user data when power is turned off.

The program and waveform data are stored in the same physical memory component. In the case of the PSR-E443, the prog/wave memory is a 16MByte parallel NOR flash memory. The factory sound set, therefore, is smaller than 16MBytes. Panel voices, the XGlite sound set, and drum kits are crammed into this small memory along with the E443’s software.

The SWL01U integrates 32 tone generation channels and relatively “lite” DSP effects (reverb, chorus and flanger). I have not had the chance to browse the service manual for the PSR-E453 (or E463). E453 polyphony increased to 48 voices and the DSP effect types got a modest bump. I expect to find a new, updated member of the SWL family in these newer keyboards.

Anyone modestly familiar with microcomputer systems will look at the diagram above and say, “It’s just a computer system,” and they would be right. The simplicity of the system — and its low cost — severely limit tone generation and effect processing, however. The bottleneck is the shared system bus. All traffic must cross this bus whether it is instructions for scanning the keyboard matrix, waveform samples for tone generation, or working data for DSP effects. There is only so much bus (memory) bandwidth and it must be split several ways.

We often think of tone generation as compute-limited. Tone generation may be memory (or bus) bandwidth limited, too. Each mono channel of tone generation must read 88,200 bytes per second:

    44,100Hz * 2bytes = 88,200 bytes per second

For 32 tone generation channels, total required bandwidth is :

    88,200 bytes per second * 32 channels = 2,822,400 bytes per second

This rate must be guaranteed in order to avoid audible artifacts. (Tone generation reads are probably given highest priority by the hardware.)

The system bus does not operate at the same speed as the CPU clock. Assuming 2 clocks per bus operation (conservative estimate), 2.8MBytes/second is a significant fraction of available system bus bandwidth (17 percent). The number of channels cannot be increased without affecting the latency of host operations such as key scanning and real-time player control (e.g., front panel knobs).

Who’s counting?

Entry-level products have a low component count thanks to all of the functionality integrated into the SWL. Low component count has many benefits including smaller printed circuit boards (PCB), lower power, fewer solder connections to go wrong during manufacturing, smaller chassis, etc.

The SWP01U has 176 pins around a modest-sized, quad flat surface mount package. By putting all memory traffic on the CPU bus, i.e., not using a dedicated memory channel for waveform samples, Yamaha have achieved a relatively low pin count. [I never thought I would ever refer to 176 pins as “relatively low.”] Other Yamaha solutions have a much greater pin count due to separate dedicated memory channels. Those solutions, however, deliver a much higher level of performance and polyphony. More about this in future posts.

What’s up, clock?

What’s up with those clock speeds? Why not something “even,” like 16MHz?

Turns out, 16.9344MHz is a multiple of the sample playback frequency:

    16,934,400Hz = 44,100Hz * 24bits * 16 

The SWL generates the sample clock for the ADC and the DAC.

The PSR-E443’s ADC is a Texas Instruments PCM1803ADBR 24-bit analog to digital converter. A note in the schematic states “MCLK=768fs, fs=44.1kHz, 24-bit left justified, HPF on, Slave Mode.” 768*fs is 33.8688MHz which is exactly the CPU clock frequency.

The PSR-E443’s DAC is a Cirrus Logic (Wolfson) WM8524CGEDT/R 24-bit digital to analog converter. A note in the schematic states “SYSCLK=33.8688MHz (768fs), BCLK=2.8224Mhz (64fs), WCLK=44.1kHz (1fs), 24-bit left justified.”

You can find the datasheets for the ADC and DAC by searching the Web.

The PCM803A and WM8524 support three audio formats: left justified, right justified and I2S. The formats and clock scheme are rather common and standard, and are supported by most commodity audio ADC and DAC components. The SWL processor, ADC and DAC remain in synch because the CPU clock and the sample clock are one and the same.

So long!

I hope this blog post has given some insight into the design of entry-level musical instrument keyboards.

Copyright © 2018 Paul J. Drongowski