About pj

Now (mostly) retired, I'm pursing electronics and computing just for the fun of it! I'm a computer scientist and engineer who has worked for AMD, Hewlett Packard and Siemens. I also taught hardware and software development at Case Western Reserve University, Tufts University and Princeton. Hopefully, you will find the information on this site to be helpful. Educators and students are particularly welcome!

Inside Yamaha PSS-E30 Remie

Now let’s take a first look at Yamaha PSS-E30 Remie inside.

My Remie is a seasoned world traveller. It was designed in Japan, made in India, distributed by Rellingen, Germany, sold by Amazon UK and played in Washington state, USA. Physics and electrons are indeed universal.

The PSS-E30, PSS-F30 and PSS-A50 are essentially the same physical product. They are part of a family like Reface. The Reface family, BTW, is two pairs of fraternal twins: YC/CP and CS/DX. The PSS family are fraternal triplets and share the same printed circuit board (PCB). In fact, the PCB has three little check boxes. A mark in a check box denotes the specific product personality.

Yamaha PSS-E30 Remie digital logic board (DM)

Product personality is determined by four things: front panel graphics, software, content (voices, styles, etc.) and USB interface.

Line up the three PSS keyboards and you see that they all have the same panel layout. The buttons are all in the same physical place. Everything else that is external is just skin (case color and stick on panel graphics). The panel connections to the digital logic board (DM) are the same in all three products.

Next up, each member of the family has different code and content. The software and content are stored in a Winbond 2MByte serial ROM. The main CPU (SWLL) reads the binary code and waveforms from ROM at boot time. The ROM components are stamped with a product specific code: “2H” for Remie and “2I” for the PSS-A50.

The 2MByte ROM holds both code and waveforms. The small ROM harkens back to the day of the Yamaha QY-70 when XG voices and drum kits fit into 4MBytes. Given the small ROM, one shouldn’t expect super high voice quality in any of the models.

The SWLL is reminiscent of the YMW-820 NSX-1 integrated circuit. The NSX-1 is the engine behind Pocket Miku and eVocaloid.

Finally, the PSS-A50 is the only sibling with an active USB interface. Remie has an unpopulated IC site as you can see in the upper left corner of its PCB. This site is populated with a USB chip in the A50. Without the chip, Yamaha can build and sell Remie at a lower cost than the A50. Even if one carefully soldered the correct USB IC into the unpopulated site in Remie, I doubt if Remie’s software has the code to recognize it.

The PSS-F30 is a shrunken PSR-F50. For the rest of this discussion, I’m using the Yamaha PSR-F50 Service Manual as my guide to the electronics. As to the keybed, I’m using the Reface YC Service Manual.

Remie circuit boards and ribbon cables

Inside, each member of the PSS family consists of three circuit boards: the main logic board (DM), the front panel board and the keybed. The front panel board and keybed are each a switch matrix. The CPU scans both the front panel and keybed separately. It scans each board by asserting a switch group select signal and then reading the current state of each switch in the group.

There are twelve switches in a keybed group, two switches per key. The switch contacts are at two different heights and close at two different times when struck. The CPU measures the closure time between the first contact and the second conent in order to sense key velocity.

The panel PCB and the keybed PCB are each joined to the digital logic board by short ribbon cables. The loudspeaker signals hitch a ride through the front panel ribbon cable.

The main CPU and tone generator is a Yamaha proprietary integrated circuit — the YMW830-V or “SWLL”. The SWLL is the ultra-small brother to the SWL01. The chip is housed in an 80 pin surface mount quad pack which is only 1.3cm on a side. That’s tiny. The entire PCB is a tidy 13.5cm by 4.5cm.

The SWLL is a true system on a chip (SOC) containing the CPU, RAM, tone generation circuitry, UART, ADCs and DACs. Amazing. The chip inside is small, too, and Yamaha can print these like postage stamps in large volume. Everything about the SWLL screams “low cost”.

Using the PSR-F50 Service Manual, here is the SWLL pin-out:

     1   DACLPP    Left channel DAC output (positive)
2 DACLMM Left channel DAC output (minus)
3 DAC_VDD DAC Vdd
4 DAC_VSS DAC Vss
5 DACRMM Right channel DAC output (minus)
6 DACRPP Right channel DAC output (positive)
7 VSS Vss
8 KYN11 Key sense (input)
9 KYN12 Key sense
10 KYN13 Key sense
11 KYN14 Key sense
12 KYN15 Key sense
13 KYN16 Key sense
14 KYB1 Keyboard key group select (output)
15 KYB2 Keyboard key group select
16 KYB3 Keyboard key group select
17 KYB4 Keyboard key group select
18 KYB5 Keyboard key group select
19 KYB6 Keyboard key group select
20 KYB7 Keyboard key group select

21 KYB8 Keyboard key group select
22 KYB9 Keyboard key group select
23 KYB10 Keyboard key group select
24 KYB11 Keyboard key group select
25 IOVDD
26 VSS
27 LDOTSTO
28 KYN21 Key sense (input)
29 KYN22 Key sense
30 KYN23 Key sense
31 KYN24 Key sense
32 KYN25 Key sense
33 KYN26 Key sense
34 SWIN0 Panel scan input
35 SWIN1 Panel scan input
36 SWIN2 Panel scan input
37 SWIN3 Panel scan input
38 VSS
39 SDQ2 Serial ROM WP# (DQ2)
40 SDO Serial ROM DO (DQ1)

41 SCSN Serial ROM chip select (CS#)
42 IOVDD
43 SDQ3 Serial ROM NC (DQ3)
44 SCLK Serial ROM clock (CLK)
45 SDI Serial ROM DI (DQ0)
46 VSS
47 PORTB0 PSW0
48 PORTB1 (7seg_e0)
49 PORTB2 (7seg_e1)
50 PORTB3 (7seg_e2)
51 PORTB4 (7seg_lat)
52 PORTE0 /PSWI
53 PORTC0 (Sustain input)
54 TXD UART transmit data (output)
55 RXD UART receive data (input)
56 PLLBP
57 TEST
58 LDOTST
59 IC_ (Voltage detector)
60 VSS

61 ADC_VDD (+3.3V)
62 ADC_VSS (Ground)
63 AN0 Analog input
64 AN1 Analog input (battery check)
65 VSS
66 PLLVSS
67 PLLVDD
68 LDOC
69 LDOVDD
70 LDOVSS
71 VSS
72 XI Crystal input
73 XO Crystal output
74 VSS
75 IOVDD
76 TDO Test data out
77 TCK Test clock
78 TMS
79 TDI Test data in
80 TRST_ Test reset

I determined pin function by tracing signals in the PSR-F50 Service Manual. Yamaha may have changed things a bit in Remie and A50. I have not determined how the USB interface is connected to SWLL in the A50 nor have I even identified the component.

Yamaha PSS-E30 Remie LSI components

For the PSR-F50, the SWLL internal clock is 33.8688MHz and the master clock is 67.7376MHz. The clocks are generated from a 16.9344MHz crystal. All clocks are a multiple of 44,100Hz, the sample frequency. I can’t read the marking on Remie’s crystal, but there isn’t any reason to believe that it differs from F50.

The three digit LED display is both retro and cheap. Remie has the same eleven transistors driving the time-multiplexed seven segment display.

  • Under software control, transistors Q301 to Q303 (7seg_e0 to 7seg_e2) select one of the three digits.
  • Transistors Q304 to Q311 drive the individual segments.

Segment status is latched into an eight flip-flop SN74LV273 from the SWL KYB1 to KYB8 pins. The latch clock is produced by SWLL pin PORTB4 (7seg_lat). Note that the KYB pins do double duty as inputs from the keybed.

Whew! That leaves us deep in the weeds! Next time, I’ll outline a few ways to mod the new PSS keyboards.

Update: Compare Remie against my Yamaha PSS-A50 teardown.

Copyright © 2019 Paul J. Drongowski

Review: Yamaha PSS-E30 Remie

One of the big benefits of moving out west is time with our grandson. The lad went to Kindermusik as a pre-toddler and already has a good sense of rhythm and an appreciation for music. I dropped a few quick beats with the MODX and he started dancing with a big smile on his face! Editorial: Folks, arts are an essential part of a child’s education.

Last Fall, Yamaha announced a trio of mini-sized PSS keyboards: PSS-E30 (Remie), PSS-F30, PSS-A50. The three products have distinct product markets: young kids, older kids, teens and young adults, respectively. Of course, those are mere marketing constructs since one or more of these ‘boards might appeal to jaded musicians and other folks, too.

Yamaha PSS-E30 Remie

There is another market segment which, perhaps, Yamaha did not explicitly intend — modders, AKA “hacks”. This article will focus on Remie (PSS-E30) as an instrument. I’ve already taken a screwdriver to Remie and will eventually post an article about Remie internals and other topics of interest to hacks.

“Keen On Keys” posted a nicely produced PSS-A50 demo on YouTube. The A50 appeals to musicians who want to put together simple tracks from arpeggios (musical phrases). Looks like fun! The A50 is the only member of the family which can record songs and, most importantly, the only member which sends/receives MIDI over USB. Neither Remie nor the PSS-F30 have a USB interface although they use a micro-B connector for power.

The PSS-F30 is the “Honey I Shrunk the PSR-F50” arranger keyboard. The F30 essentially has the same sounds, styles and songs as the F50/F51. The F30 could be the mini-keyboard for arranger enthusiasts on the go. That said, after taking a peak inside the A50 (see the YouTube demo) and the Remie, the program and waveform memory is quite small and the sound is not up to the same quality level of the current E-series arranger keyboards. Something had to be sacrificed to achieve such a small size, low cost and longer battery life (1.5 Watts versus 6 Watts). YMMV.

Yamaha PSS-E30 Remie

Circling back to Remie… I had to have one, er, buy one for our grandson. Naturally, I needed to check out Remie to make sure that it works on Christmas morning. 🙂 Oh, that includes a peak inside to make sure everything is in its place.

I wish that I could review Remie from a two year-old’s point of view. That review will wait for Christmas day. In the meantime, here’s my take from a musician’s perspective.

The keybed

Remie has 37 mini keys. To my touch, they are indeed the same as the Yamaha Reface series keyboards. I play the Yamaha Reface YC (drawbar and combo organs) at weekly choir rehearsal. I must say, Remie’s keybed feels better than the YC! Maybe I have worn in the YC’s keys or maybe manufacturing quality is better now. Bottom-line, the mini-keys are pretty darned good.

I think the keybed will hold up when kids go to work on it. Our grandson has watched older kids play piano, and he presses keys instead of whacking on them like most kids. [I trust him enough that we play side-by-side on MODX and Genos.] I haven’t been very gentle with the Reface YC and yet, the keys hold up. Parents shouldn’t worry about key quality. The mini-size should be good for kids, too; most adults find these mini-keys cramped.

I have one main complaint with 37 keys: the note range is sometimes too small for some songs. I wish the keybed was 49 keys with middle C in its rightful place. I like to play the left hand part in the two octaves below middle C. With 37 keys, that leaves only one octave above middle C for the melody and I often run out of keys in the right hand.

Remie is no different. Further, Remie does not have octave shift buttons which would alleviate the short range issue somewhat.

Sound

As I mentioned above, voice quality is comparable to early Yamaha portable keyboards, back in the day when waveform (sound) memory was tight. I’m sure Remie is using recycled sounds; that’s why it’s inexpensive.

The voices do not respond to touch. Thus, when you play the keys soft or hard, you get the same volume and timbre. One can make the overall volume louder and softer using front panel buttons. That’s it for dynamics.

So far, I’ve tested Remie through its built-in speaker, headphones (3.5mm stereo) jack and studio monitors. Of course, an 8cm speaker is not going to produce earth-shaking bass. It is adequate for the family room and reproduces the built-in voices surprisingly well. I think Yamaha learned a lesson with Reface and its disappointing built-in stereo speakers. As a result, I always play the YC through JBL Charge 2 speakers, not the YC’s built-in speakers. Unlike Reface, I could actually see myself using Remie’s speaker. BTW, the sound does not distort when pushed to the MAX.

Plugging into the headphone jack turns off the internal speaker. As expected, sound quality improves dramatically through decent headphones or external speakers. Parents should be careful when kids use headphones. Remie can drive headphones painfully loud. Fortunately, there is a “Volume Limit” function that sets the maximum Master Volume level. Parents should definitely set the “Volume Limit” before letting kids use headphones.

Sound quality through studio monitors is quite good! The sound is clear and is comparable to other entry- and mid-range arranger keyboards.

Overall, I’m tempted to take Remie to rehearsal to see if either the F30 or A50 might make a good ultra-portable rehearsal keyboard. I wouldn’t consider playing one of these keyboards in front of a congregation (audience), however. No such quality qualms about the YC which carried me through a few gigs during the move.

Styles and songs

The styles and songs are what we expect from a low-end Yamaha keyboard. The styles are pleasant enough. However, this isn’t a $5,000 Genos. 🙂 The styles do not have A and B sections or auto-fill. I wouldn’t expect kids to be arranging songs unless they are Mozart reincarnated.

The only concerns that I have in this area are operational. Can a young kid figure out how to play a song? Can a youngster play along with a style? I think adult supervision is needed here. I recommend that adults read the manual since operation is not intuitive, especially if you don’t have experience with Yamaha arranger keyboards.

The sound effects (SFX) shouldn’t be too hard to figure out. There are two dedicated front panel buttons to select either the blue kit or the pink kit. Kids shouldn’t have trouble with that.

Remie has a number of deep features controlled by the “FUNCTION” button. This is definitely beyond young kids. Parents should read the manual for more information. Functions include tuning, transpose, metronome, etc.

Yamaha arrangers usually apply effects like reverberation, chorusing, (guitar) distortion and so forth. Musos often complain about too much reverb. I’m happy to report that Yamaha has set the reverb to a pleasant level — a good thing because there isn’t any way to change the amount of reverb. Reverberation appears to be the only effect on Remie.

Musical scales and smart chords

Remie has a Smart Chord feature which is enabled right out of the box. Smart Chord is designed to keep chords within a chosen musical scale, i.e., the C scale AKA “all of the white keys.” Smart Chord lets a kid play one note chords.

If you’re a musician, however, the result may surprise you. Playing a I-IV-V (C-F-G in the C scale) progression sounds right, but hit that VII (B) and uh-oh. The VII chord plays Bm-flat5, the diminished chord. Play with Remie and you may raise a kid with an ear for “interesting” harmonies. Hope you like dissonance. 🙂

BTW, one of the functions sets the Smart Chord key in case you want to play with Smart Chords in some other key than C.

Summary

Well, Remie is a pretty good — although basic — keyboard instrument. It will be interesting to see what young, two year-old hands will do! It’s well-made and is a worthy impulse purchase.

If Remie isn’t what you’re looking for, maybe take a look at my review of the Yamaha PSS-A50? You might also want to take a peek inside of Remie, too.

Copyright © 2019 Paul J. Drongowski

Yamaha Genos V2.0 Update

The Yamaha Genos™ V2.0 update is available for download from your regional Yamaha musical instrument site.

Reading through the list of changes, the Yamaha engineers have changed many of the internal data structures and file formats in order to support new features. Thus, like the MODX update, you will need to save your user data before you install the update. Pay careful attention to these cautionary statements from Yamaha:

“After you’ve updated the firmware to this version, the System, MIDI, User Effect, and Registration data are initialized the first time you start up again.

  • Save the MIDI Setup File and User Effect Setup file before updating, and load after updating.
  • Save Registrations to a file before updating.
  • Even if you save the System Setup file before updating, it cannot be loaded after updating.
  • If you save the Backup data before updating and restore it after updating, the System, MIDI, User Effect and Registration data will not be restored.

Before executing the update, we recommend that you back up important data to an external drive using the backup function or data copy function, in case some trouble occurs.”

The list of changes and fixes is quite long and extensive. This is clearly a major update, if not an upgrade!

I keep everything backed up as I work. I put a lot of time and effort into voice and style programming, and just cannot bear the thought of doing it all over again. I honestly don’t mind making another back-up just in case.

While you’re at the download page, be sure to snag new copies of the Genos Owner’s Manual, Genos Reference Manual and Genos Data List. Also, grab the new version of Yamaha Expansion Manager (YEM) V2.6.0. You must use YEM V2.6.0 with Genos V2.0 firmware. Under the “Other Downloads” section, you’ll find a bonus playlist and documentation for the Genos V2.0 Superior Pack: Bonus Playlist for Genos V2.0 Superior Pack and GENOS V2.0 SUPERIOR PACK List.

A quick glance at the V2.0 Superior Pack List reveals the new EDM and bass voices from the PSR-SX900, the (expected) Super Articulation 2 (SA2) female voices, SA2 soft trombone, SA2 panflute, and a raft of “Alpen” voices. There are six new Mega Voices which signal new samples, too: Klarinette Mega, Trompete Mega, BariHorn Mega, Kontra Tuba Mega, Bass Tuba Mega and OberGtr Mega.

At the time that I’m writing this post (10AM PST), Yamaha have not updated the Genos pages to promote the V2.0 update. The European pages have info about V2.0 including a link to the V2.0 Superior Pack. If you can wait (!), here is a direct link to the V2.0 Superior Pack.

This is a lot to install and mentally unpack. Thank you, Yamaha!

Backed up, installed and running

It took a short while to fully understand Yamaha’s cautionary note. I decided to make a complete back-up file even though the System, MIDI and User Effect set-ups inside would not be reloaded by Genos V2.0. To fill the gap, I saved the MIDI Set-up and User Effect Set-up to files on a USB flash drive. Just to be ultra-safe, I copied my Registrations from the Genos internal USER area to the USB flash drive. I have a lot of time and effort invested in my Registrations and did not want to lose any recent edits. [I keep successive back-ups, so I can roll back to a previous, known-good state, if necessary.]

The System Settings are more of a problem. Genos V1.4 has a way to save the System Settings to a file, but V2.0 will not load pre-V2.0 save files. I followed Yamaha’s advice and studied the Parameter Chart in the Genos Data List PDF. The data stored with a System Set-up are clearly identified. I wrote down a short list of the parameters which I most likely had changed:

  • Compressor
  • EQ
  • Score, Text, etc.
  • Arpeggio
  • Registration Sequence
  • Metronome
  • Live Control
  • Assignable (Home shortcuts, Foot pedal, assignable buttons)

Your list might be different, so I recommend scanning the System Set-up column in the Parameter Chart. I wrote down the current settings in a text file using a personal computer.

After all of this prep, I was ready for the actual installation. I started with a blank USB flash drive and copied the Genos V2.0 update file (GENOSSETUP.PRG) to the USB drive. I plugged the USB drive into the rear HOST TO DEVICE port, held down the Style Control [START/STOP] button, and powered up. Genos found the update file and kicked into the installation process. Several minutes later, the installer said it was OK to power down and I did so.

On power up the first time, I saw a message like “Improper shutdown. Back up data … have been lost.” Gulp! That’s the Genos start-up code checking the consistency of the set-up data. As we were warned by Yamaha, the set-up data was initialized by the installer. After that, load the saved set-up files from the USB flash drive and ran through the System Settings, and started playing. Oddly, my assignable buttons were preserved, but I wouldn’t count on that happening to you. Back up before installing!

All appears to be good. I have music to rehearse, etc., and will eventually post about the Genos V2.0 Superior Pack, the Chord Looper and other new Genos features. I also need to install YEM V2.6.0, a prerequisite for the Superior Pack. Busy, busy.

Don’t forget auto power shutdown. I just heard Genos turn itself off…

Copyright © 2019 Paul J. Drongowski

Yamaha MODX: Inside stuff

Time for a quick look at the MODX internal hardware. I’m going to be brief, so please read my Yamaha Genos articles (main CPU and tone generation) and my Montage internals article for more details and background information.

The MODX main CPU subsystem should look familiar. It is essentially the same as the Montage main CPU subsystem. Again, the Texas Instruments AM3352 Sitara ARM microprocessor is the star, providing many of the important internal device interfaces. The eMMC bulk storage device is still 4GBytes although the MODX eMMC data clock is slightly slower than Montage (48MHz instead of 52MHz). Deja vu all over again.

MODX Main CPU (Click to enlarge)

The MODX is a reduced-spec Montage. Although the MODX has the same waveforms and Performances as Montage, its polyphony is less:

  • AWM2: 128 (maximum; stereo/mono waveforms)
  • FM-X: 64 (maximum)

The keybed is lower quality (semi-weighted vs. FSX) and the MODX front panel is greatly simplified.

Both products employ an MB9AF141NA ARM microcontroller for user interface scanning assisted by an 89FM42AUG logic device (E-GKS) for keybed scanning. User input (e.g., controller messages) are sent to the Master SWP70 tone generator over the EBUS. The EBUS is a low-latency path for controller input and commands, making for a responsive instrument with excellent hand-to-sound connection.

MODX Tone Generation (Click to enlarge)

When we look at the MODX tone generation subsystem, we immediately see why the FM-X spec is lower. The MODX has only one SWP70 tone generator integrated circuit (IC). The Master SWP70 performs both AWM2 and FM-X synthesis. The MODX printed circuit board (PCB) has space and connections for a second SWP70 (in Slave mode), but the real estate is unpopulated (“No Mount”). Yamaha have planned ahead for a future model. They did the same thing with the MOX, BTW, leaving space and connections that were filled in the MOXF.

The extra computational capacity within a single SWP70 is surprising! The Master SWP70 provides 128 channels of AWM2 polyphony and 64 channels of FM-X polyphony. In order to pull off this trick, Yamaha utilize a second dedicated DSP RAM channel and SDRAM. Montage, on the other hand, utilizes only one DSP RAM channel on each SWP70.

Thus, the SWP70 can expand in two different dimensions:

  • DSP RAM (two dedicated channels max) with a corresponding boost in DSP computation, and
  • Wave RAM (two dedicated channels max) with an as-yet unexploited boost in AWM2 synthesis.

MODX illustrates the first case while Montage has an unpopulated position and connections for a second WAVE working memory channel. Your guess is as good as mine as to how Yamaha will expand and exploit these channels in future products.

The MODX serial digital audio bus is a subset of Montage. An SSP2 processor supports audio-over-USB through the USB TO HOST interface, just like Montage. However, the overall spec is substantially reduced. A single DAC drives the MAIN and PHONE outputs. A single ADC encodes incoming stereo audio from the A/D input. The SSP2 does not have a direct channel to an SSP2; the needed logic device is missing from MODX.

In case you’re wondering about serial audio bus clocking, the bus clock is 11.2896MHz. The clock speed is 256 * Fs, where Fs is 44.1kHz. In MODX and Montage engineering-land, this signal is known as M_SYSCLK. Genos engineers refer to this signal as mcasp-256fs. The different terminology doesn’t help comparison across product lines! Bottom line, the master clock is fast enough to support 32-bit 44.1kHz stereo audio. Currently, only the Genos has a 32-bit DAC for its MAIN out, BTW.

Our look inside MODX shows how Yamaha can manufacture the MODX at a lower price point. More significantly, perhaps, is the cost leverage gained by reusing the Montage software and sound content. I think sometimes arguments on the Web play up component cost while neglecting manufacturing, software and sound development costs. I suspect that software and sound development (waveforms, voices, arpeggios, styles, etc.) are a very large fraction of unit cost.

We also caught a glimpse of what’s in store for the future. SWP70 is in early childhood and Yamaha have left room to grow in both the MODX and Montage. In addition to unpopulated PCB sites, Yamaha can build out by using higher capacity NAND flash devices for waveform memory. I’ve said it before — the real limiting factor is Yamaha’s capacity to produce high-quality content — a labor intensive job. Ultimately, the payroll is more important than the cost of commodity NAND flash!

Montage digital audio clocking

I’m still thinking this through…

The Montage USB audio interface supports 44.1kHz, 48kHz and 96kHz sampling frequencies. The number of supported audio channels depends upon the chosen sampling frequency as defined in the specs:

“[Sampling Frequency = 44.1kHz] Input: 6 channels (3 stereo channels), Output: 32 channels (16 stereo channels)

[Sampling Frequency = 44.1kHz – 96kHz] Input: 6 channels (3 stereo channels), Output: 8 channels (4 stereo channels) “

The MODX USB audio interface is strictly 44.1kHz supporting:

“Input: 4 channels (2 stereo channels), Output: 10 channels (5 stereo channels)”

The digital audio bus master clock is a multiple of 44.1kHz, so how does Montage handle 48kHz and 96kHz?

The Montage SSP2 processor handles 44.1kHz, 48kHz, and 96kHz internally. The tone generators, however, are 44.1kHz only. A-ha! That explains the function of Montage’s SRC16 gate array. The gate array is clocked at 49.152MHz, which is a multiple of 48kHz. It converts the sample rates and samples between 48/96kHz and 44.1kHz in DAC-A format (2 channels per line).

The schematic notations on SRC16 match the Montage 48/96kHz spec:

Output: SWP->SRC->SSP2 8 channels (stereo 4 channels)
Input: :SSP2->SRC->SWP 6 channels (stereo 3 channels)

Someday I will explore the Montage/MODX subsystems in more depth.

Copyright © 2019 Paul J. Drongowski
Diagrams are from the MODX Service Manual (copyright Yamaha) .

Just like starting over

I’m playing with a new group of liturgical musicians and am having great fun.

The two biggest challenges when playing with a new group are 1. listening and 2. picking up new music. Both challenges are opportunities for growth.

Listening is always key. As a synth player, I’m a bit of a frustrated orchestrator. Instruments like the Yamaha MODX and Genos offer a wide palette of acoustic and electronic sounds. The challenge is to listen carefully and find the right sound and part in the musical context. The context, of course, is the song and the other players — what the song needs, the instrumentation, what instrumentalists are playing, what singers are singing, dynamics and so forth. My goal is to select an instrument and improvise a part to complement the other instrumentalists while making the song stronger.

My last group was small: piano, acoustic guitar, sometimes drum, and me. That left a lot of musical space including exposed solos, fills, left-hand bass (as long as it didn’t interfere with the pianist) and foundation (e.g., pads, B-3 organ, etc.)

The new group is much larger: piano, guitar, drums, two flutes, viola, trumpet and trombone. There’s a lot going on! I’ve played with woodwinds and strings before; full-on brass is a new situation for me. There is still space, but careful listening is needed in order to find it. Obvious ideas include double reeds (oboe), French horn, woodwind ensemble, ensemble strings, cello, contrabass, pipe organ and B-3 organ (when the music calls for it).

With all of that going on already, it’s important to be part of the blend and to not overemphasize existing parts. Nor do I want to step on anyone’s part! For example, the flutists and viola contribute introductions and musical interludes such as an instrumental verse of a hymn. It’s going to take listening, time and experience to find the find complementary part(s). Conventional wisdom in scoring claims that acoustic instruments make it easier to fool the ear with electronic emulations. Thus, it makes sense to keep the real-deal acoustic instruments front and center.

Last Sunday, we did a rendition of “When the Saints Go Marching In” in remembrance of All Souls Day. Playing with the brass was a genuine kick. Challenge #2 — new music — I’ve never played New Orleans-style traditional jazz before. Although there are a lot of blue notes, the phrasing is unlike the gospel or Chicago-style blues that I’m used to playing.

So, hey, what to play? Clarinet and euphonium. New Orleans jazz is “lead and fill” or “call and response.” I downloaded a MIDI file to study and cop a few clarinet licks. I wrote out a simple clarinet part with a few fills and lines to harmonize what I thought the brass would play, assuming that the trumpet would take the lead. Euphonium-wise, an oom-pah alternating root (1 and 3) and fifth (2 and 3) was good enough to get started.

Try as I might, I just couldn’t get the two parts and hands going at the same time and settled for the clarinet line alone at the gig. Maybe next time… I think I may ditch the harmonization idea and play (around) the melody, too.

Patch-wise, you can’t always get what you want. I practiced the clarinet part on Genos using its Super Articulation 2 (SA2) clarinet which is darned sweet. I programmed a clarinet/eupohonium split on Yamaha MODX, but the MODX clarinet is not in the same league as the SA2. Compared to Genos, it sounds cheap. MODX (Montage) does have a decent euphonium, however, and maybe it’s better to go low than go high next time!

Yamaha, how ’bout a euphonium on Genos and SA2 on MODX?

That won’t stand in the way of the fun. In the meantime, there’s more than enough to keep me busy.

Copyright © 2019 Paul J. Drongowski

Update about the updates

Yamaha Genos V2.0 is on the way

Yamaha have updated their short video about the Genos V2.0 update. The release date is now specific: 15 November 2019. There was considerable squabbling on the forums as to what “Winter 2019” meant. I’m glad that Yamaha has put the question to rest.

The other big tidbit from the new video as to do with the “Genos V2.0 Superior Pack.” The new content will include 50 new styles and 68 voices including Super Articulation 2 voices. I’m not a big style hound, but new voices are always welcome! I’ve still got plenty of room in expansion memory and can’t wait for the new content. I’m looking forward to the Chord Looper, too.

[Update] The Yamaha Europe site has further details. The Genos Version 2.0 Superior Pack includes SArt2 Premium voices such as “Pan Flutes,” “Female Vocals,” and “Trombone.” The page shows thumbnails for the Yamaha Musicsoft Premium Expansion Packs of the same name. This might be a little disappointing to users who already own these packs. I have “Female Vocals” already. Of course, that’s just icing and we still need to taste the whole cake.

Improvements have been made to expansion pack installation (Yamaha Expansion Manager). Yamaha have also improved Genos Style Creator, which was looking rather long in the tooth. Other improvements include new portamento functionality, sorting playlists alphabetically, and an increase in the number of USER effects which can be stored.

Additional improvements flash by near the end of the video. (Look for the flying boxes!) Unfortunately, the English is a little rocky and its hard to tell what some of them actually mean! One useful improvement is the addition of USER voices to FAVORITES. (?) I hope they allow USER styles in chord step record because I didn’t see this mentioned.

Yamaha are listening. They cite user feedback as the source for many of these enhancements.

BTW, some folks have noted an increase in the USA Minimum Advertised Price (MAP). Please remember that all dealers cannot publicly advertise below MAP as part of their dealership agreement with Yamaha. That doesn’t mean selling at MAP because that would be illegal price fixing in the USA. If you want a good deal, be sure to call around, especially smaller focused dealerships like Audioworks CT. The large on-line retailers don’t have as much incentive to negotiate or to offer a better price below MAP. Smaller dealerships are often more flexible.

Yamaha MODX update V2.0 is here

Yay! The MODX V2.0 update has dropped! I’m downloading now and will be installing shortly.

Yamaha have posted a new MODX Supplementary Manual and a new MODX Data List PDF in the downloads section of the MODX Web pages. You’ve probably already seen the list of new features as implemented in the most recent Montage update:

  • New effect types have been added: VCM Midi Filter, VCM Mini Booster, Wave Folder.
  • 52 new Performances have been added.
  • The Pattern Sequencer function has been added.
  • You can now play songs, patterns and audio files from the Live Set display.
  • Super Knob Link has been added to the data that is recorded in the Scene function.
  • Keyboard Control has been added to the data that is recorded in the Scene function.
  • Increased the range of the LFO Speed parameter.
  • You can now connect MIDI equipment via the USB TO DEVICE terminal.
  • The Global Micro Tuning settings have been added.
  • The Audition Loop setting has been added.
  • Improvements have been made to the user interface.
  • The sequencer storage capacity (total User Memory) has been increased from about 130,000 to about 520,000 (for Songs) and about 520,000 (for Patterns).

The new Performances are listed on page 17 of the new Data List PDF (version c0). The new Performances are numbered from 2144 to 2195. Laser Trumpet?

Not going to the gym today… 🙂

Installing the MODX V2.0 update

The first thing to note: This is a major update.

I don’t just mean that as a compliment to Yamaha. The software engineers had to touch many, if not all, of the major internal data structures. You must perform a complete back-up before attempting installation as you will need to initialize all data and then reload your back-up file.

Please read the installation directions before starting. The directions clear state that all of User Memory (Library Data, User Data, etc.) will be initialized. Be sure to do a complete back-up following the directions on pages 60-61 of the Owner’s Manual and pages 201-202 of the Reference Manual. You want to write a back-up file, also known as an “ALL file” or “X8A” file by its extension. A back-up file saves the whole shee-bang including your libraries.

Follow the steps in the installation guide. The installation process takes about 4 to 5 minutes. If everything is successful, you will see messages like:

Searching for the updater ... OK

MODX updater 2.00.1

Preparing ... OK (current version 1.10.0)
Updating ... OK
Verifying ... OK
Finish.
Please turn off.

Turn MODX off, remove the USB drive with the updater, and turn MODX on again. Navigate to the System Settings by pressing [UTILITY] > [Settings] > [System]. I pressed the “Initialize All Settings” screen button first and then pressed the “Initialize All Data” button. (Deep breath.) Yamaha’s installation directions should be a little more specific here as to which buttons to press.

The initialization steps will, of course, wipe everything clean. Next, insert the USB drive with your back-up file. Navigate to the load contents page, i.e., [UTILITY] > [Contents] > [Load] and select the “Backup File” content type. Find your back-up file on the USB drive and re-load your content. If all goes well (modulo power failure, cosmic debris, pulsars, etc.), you should be good to go again.

Copyright © 2019 Paul J. Drongowski (excluding excerpts from Yamaha’s announcements)

Yamaha Montage: Internals revisited

I liked the Genos block diagrams which I posted the other day. The diagrams summarize the Genos main CPU and tone generation subsystems in a compact form.

So, let’s move on to Montage. The diagrams below are taken from the Yamaha Montage Service Manual. I scrubbed non-essential detail (e.g., power rails) in order to focus on the overall digital system organization.

The internal design of mid- and high-end synths and arrangers separates neatly into a main CPU subsystem (running Linux) and a tone generation/digital audio subsystem. Genos, Montage and MODX fit this design pattern.

[Click images to enlarge.]

The Montage main CPU is a Texas Instruments AM3352. Montage has a slightly lower clock rate: 800MHz vs. 1.0GHz (Genos). I don’t think the difference in clock speed is significant because the main CPU generally doesn’t perform compute intensive tasks. (The tone generator circuits and the audio DSP do the heavy lifting.) The main CPU handles sequencing, user interface, the file system, etc.

The AM3352 is an ARM Sitara Cortex-A8 32-bit “system on a chip.” The AM3352 is designed for embedded applications and as such, it has many integrated input/output (I/O) interfaces. The main interfaces are:

  • Primary working memory (EMIF)
  • Touch panel and display (LCD)
  • Bulk memory (MMC0)
  • USB to device interface (USB1)
  • MIDI I/O (UART1)
  • Serial digital audio bus (McASP0)
  • CPU-SWP70 bus (GPMC)
  • Power management (I2C0)
  • General purpose I/O (GPIO)

Having so many interfaces in one integrated circuit (IC) package lowers cost signficantly.

Memory resources are modest. Primary memory is only 256MBytes. Bulk storage is provided by a 4GByte eMMC embedded memory device. Linux and user data (performances, songs, arpeggios, etc.) reside in the eMMC device. Please note that the bulk memory bus (MMC0) has a relatively slow clock speed (52MHz) and width (4 bits). Simply put, this bus cannot support real-time sample streaming for synthesis. [Please stop ranting about this on the Web.] Instead, waveform samples are stored in NAND flash connected to the Master SWP70 tone generator.

Speaking of tone generation, the main CPU is connected to two SWP70 tone generation ICs by the CPU-SWP70 bus. The bus is mediated by a programmable logic device (CPLD). The bus clock is 100MHz. The bus has 19 address bits and the data path is 16 bits wide. The CPU sends control data to the SWP70s through this bus. Also, the main CPU loads samples into NAND flash using this bus. I doubt if this bus could sustain high volume sample streaming in real time.

The CPU-SWP70 bus is organized as an addressable memory bus. (The ARM acronym “GPMC” means “General Purpose Memory Controller.”) Instead of ordinary memory, I believe that the CPU-SWP70 bus provides direct access to thousands of synthesis control registers for AWM2 and FM-X. Check out the huge list of synthesis parameters in the MIDI section of the Montage/MODX Data List PDF. Each parameter controls some aspect of AWM2 or FM-X synthesis. These parameters need to be loaded quickly into the the SWP70 tone generation blocks. Addressable control registers provide the appropriate mechanism.

There are two other major busses in Montage: the EBUS and the serial digital audio bus. (More about the digital audio bus in a second.) The EBUS is driven by an ARM architecture microcontroller (MB9AF141NBPQC) which scans knobs, sliders and switches. The EBUS sends user input to other components, most notably the SWP70s. Thanks to the EBUS, user inputs are quickly acquired and sent to the tone generation process, thereby minimizing latency. This fast path is an important aspect of Yamaha’s design.

On to tone generation and digital audio!

High-end Yamaha synths and arrangers have two SWP70 (“Standard Wave Processor”) tone generation chips. One SWP70 is the Master and the other SWP70 is the Slave. “Master” and “Slave” refer to the communication relationship between the two components. The Master generates the reference clocks for both the Master and Slave, and it generates the clock for the serial audio bus.

In Montage, the Master SWP70 performs AWM2 synthesis and the Slave performs FM-X synthesis. The Master has waveform memory; the Slave does not. Waveform memory isn’t required for FM-X synthesis, apparently.

Both the Master and Slave SWP70s have 16MBytes of DSP RAM apiece. The DSP RAM provides big, fast random access storage for effects processing. Time-based effect algorithms like reverb and delay need a large amount of memory space. The DSP RAM does the job.

The Master SWP70 has two additional kinds of memory: Wave ROM (4GBytes physical capacity) and Wave RAM (32MBytes). [The Genos designers use slightly different terminology for these units, but the functionality is the same.)

Wave ROM is Open NAND Flash Interface (ONFI) compliant. This is the same commodity NAND flash built into PC solid state drives. Instead of using a solid state drive and a SATA bus, Yamaha have built the controller and data cache into the SWP70. This design eliminates the cost, power consumption and delay of a PC solid state drive controller. The Wave RAM is the data cache, holding the currently used samples needed for AWM2 synthesis.

Why a data cache? NAND flash has two major drawbacks. First, writing to NAND flash is slow. Second, random read access to NAND flash is much slower than sequential block access. In fact, random access is too slow for direct streaming into synthesis. The SWP70 pre-fetches blocks of samples into fast Wave RAM which, in turn, provides fast random access to samples. This two-level storage organization supports the high read bandwidth required for 128 lanes of stereo AWM2 synthesis.

The SWP70 has two independent Wave RAM channels. Only one of these channels is populated in Montage. The second Wave RAM unit is not installed and is reserved for a future model. We haven’t seen the full power of the SWP70 generation — yet.

Montage has a power digital audio subsystem which is interconnected by the serial digital audio bus. The CPU, SWP70s and SSP2 chips transfer digital audio on the serial audio bus. These units send audio to the digital-to-analog converters (DACs) and receive audio from the analog-to-digital converters over the bus. The main audio streams are:

  • The main CPU receives audio from the AD INPUT ADC and the Master SWP70.
  • The Master SWP70 receives audio from the main CPU and the AD INPUT ADC.
  • The Slave SWP70 receives audio from the SSP2.
  • The SSP2 receives audio from the Master SWP70 and the Slave SWP70.

The Master SWP70 sends digital audio to the two DACs (assignable output and main output, respectively). The DACs and the ADCs are on a separate circuit board away from the digital electronics (Pure Analog Circuit).

Montage has an SSP2 processor dedicated to USB2.0 audio I/O. It’s like having a mini Steinberg UR interface inside. The SSP2 is the source of Montage’s audio prowess. The SSP2 is a fairly beefy computational engine having an SH-2 CPU core (135.4752MHz internal clock). It is the computational engine in the high-end Steinberg UR series, the Reface DX and the Reface CS. Its role in Montage is like a UR — high speed, multi-channel USB audio. This is why the SSP2 supplies the Montage USB TO HOST interface. Digital USB audio has a direct path to the USB HOST.

The SSP2 gets commands and transfers data with the main CPU over the CPU-SWP70 bus.

I hope you have found this quick tour to be informative and helpful. Yamaha had a few other tricks up its sleeve as we shall see when I discuss MODX specifically. Take care and stay tuned for the MODX update which is about to drop.

Copyright © 2019 Paul J. Drongowski

Diagrams are Copyright Yamaha

Yamaha Genos, Montage, sample compression

Sample compression is a bit of a hot topic among tech heads on the PSR Tutorial Forum and the YamahaSynth.com Forum.

Yamaha recently pre-announced the Yamaha Genos V2.0 update. Features will include:

  • Increased expansion memory from 1.8GBytes to 3.0GBytes
  • Genos V2.0 Superior Pack (50 styles, more than 25 voices including SuperArticulation 2)
  • Chord Looper
  • Style Section Reset
  • Scale Tune Separation

The update will be available during Winter 2019. The scope of the update has caused much excitement as well as a lot of good feeling because Yamaha views Genos as an update-able platform, not a one off. I’m looking forward to the Genos update and the upcoming MODX update, too.

The Superior Pack likely will be an expansion pack containing new styles and voices. Putting the new content in an expansion pack is the easiest way to distribute the content. A user simply puts the expansion pack installation file on a USB drive, inserts the drive into Genos, and runs the on-board Genos installation procedure. The installation process is tried, true and mature.

Of course, this raises the question of expansion memory space and how to make best use of it. Would or should someone install the Superior Pack and always keep it around? Will there be enough space for other packs? Some people are pack rats (pun intended) and want to keep everything loaded. Increasing the expansion memory from 1.8GBytes to 3.0GBytes takes a little pressure off the pack rats.

Naturally, the increase in expansion memory piques the tech heads. How did Yamaha increase the expansion memory space? One cannot snap fingers and add physical memory to Genos. This is a software update, after all.

One theory has to do with sample compression. Yamaha’s expansion packs typically use two sample formats: LINEAR16_FRAME and WXC. WXC is Yamaha’s proprietary sample compression format. WXC is treated like a closely guarded secret. WXC is the way to pack voice waveforms as tightly as possible within the limited physical capacity of wave memory. It’s part of Yamaha’s secret AWM2 sauce.

User samples, on the other hand, are not compressed and are stored in LINEAR16 format. Currently, when Yamaha specifies the size of Genos expansion memory, they mean the ability to store approximately 1.8GBytes of uncompressed user samples in expansion memory. Since users can’t compress their samples via YEM (or whatever), Yamaha doesn’t want to disappoint them by overstating expansion memory capacity and then underdeliver on their spec.

So, is the increase achieved through sample compression, i.e., restating the capacity as 3.0GBytes using the well-known qualifier “when converted to 16 bit linear format?” WXC compression can easily squish 3.0GBytes of samples into 1.8GBytes. Or, have Yamaha found and allocated extra space to user samples? In the latter case, the extra space must be in the NAND flash memory which holds the factory waveforms. This is left-over space and assumes that Yamaha left quite a bit of slack in the 4GBytes holding the factory waveforms.

Now we get to the point of contention among Montage/MODX tech heads. If Yamaha have found a way to support compressed user samples on Genos, can the same technology be ported to Montage and MODX?

The answer partly depends upon the means by which Yamaha provide sample compression itself. (Remember, sample decompression is built into the SWP70 AWM2 hardware.) YEM is an established application in the Genos software eco-system. Yamaha could add the compression algorithm to YEM. In the case of Genos, a user would compress user samples into WXC format when creating a new voice in YEM. The WXC format samples within Yamaha expansion packs would remain untouched by YEM in WXC format and users wouldn’t see any benefits there.

The closest thing to YEM in the Montage (MODX) eco-system is the John Melas tool suite. Perhaps Yamaha will partner with John Melas, who will add sample compression to the tool suite. That’s one possibility. Another possibility is to add WXC compression to SKYLIFE SampleRobot.

If Yamaha wants to protect its secret sauce, they could provide a Web-based service to compress user samples into WXC format. In that case, Yamaha could keep the WXC algorithm hidden from prying eyes (i.e., reverse engineering). The compression service could compress samples for both Genos and Montage voice developers.

A third alternative approach adds the compression capability into the Montage/MODX keyboard firmware. Embedding the algorithm would provide the best security although Linux experts have already plumbed the depths of Montage/MODX update files. Further, Yamaha has shown a reluctance to add low-want or esoteric features to firmware.

Well, this is all quite interesting and highly speculative. We’ll know more when the Genos 2.0 update is released. In the meantime, wadda think?

Copyright © 2019 Paul J. Drongowski

Yamaha Genos: Tone generation

After visiting the Genos CPU complex yesterday, let’s take a look at the two Yamaha SWP70 tone generators in Genos.

The SWP70 is the latest generation, top-of-the-line Yamaha tone generator. We know that the SWP70 is capable of both sample-playback AWM2 synthesis and FM-X synthesis as demonstrated by the Yamaha Montage and MODX.

[Click image to enlarge.]

The two SWP70s are organized as a master and slave pair, each with different connections and dedicated memory units. The SWP70s communicate with the TI AM4376 processor over the CPU-SWP70 bus. The bus is arbitrated by a programmable logic device (CPLD). The data path is 16 bits and there are 19 address bits. Bus clock speed is 100MHz.

The main CPU sends control messages, etc. to the SWP70s through this bus. The main CPU also uses this bus to write waveforms (“samples”) in the SWP70 wave memory. Please note that the 100MHz bus isn’t fast enough to sustain so-called sample streaming from bulk storage. As mentioned in my previous article about the main CPU, the embedded bulk memory devices (eMMC) would not be able to supply samples fast enough for streaming either. Plus, write time to NAND flash is quite slow — another strike against streaming.

The Master SWP70 has extensive connections to the serial digital audio bus that interconnects the main CPU, tone generation, analog to digital converstion (ADC) and digital to analog conversion (DAC). Here’s a few notable connections:

  • The main CPU sends five digital audio streams to the Master SWP70.
  • The Master SWP70 sends one digital audio stream to the main CPU.
  • The Master SWP70 sends the MAIN OUT, SUB 12 and SUB34 streams to their respective DACs.
  • The Master SWP70 receives the AUX IN and MIC IN streams from their respective ADCs.
  • The AUDIO-LOOP stream is a loop-back from the Master SWP70 to the Master SWP70.

Genos serial digital audio resources and capabilities are substantially less than Montage. In short, Montage has a Yamaha SSP2 processor dedicated to digital audio much like a Steinberg UR interface. This version of the Genos hardware will never have the extensive digital audio capabilities of Montage.

Another important interface is the Yamaha EBUS. Genos has an ARM M3 microcontrollers that scan the knobs, sliders, buttons and keys. The microcontroller sends these inputs on the EBUS. The EBUS is a slow-speed, serial I2C bus. User inputs are quickly encoded and are sent directly to tone generation. Nifty. The direct connection decreases latency by keeping the main CPU out of the message path. Montage and MODX have an EBUS, too. It’s an essential feature of Yamaha high-end design.

As Gandolf would say, “On to the Forest of Memories!”

Each SWP70 has two working memories:

  • WAVE SDRAM (light blue)
  • DSP SDRAM (orange)

Both working memories have dedicated address and data paths. The data paths are sixteen bits wide. The required memory capacity is too large to integrate on the SWP70 integrated circuit (IC), so separate commodity memory devices are used instead.

The DSP SDRAM is working memory for DSP computations. Certain kinds of effects are memory intensive — reverb and delay effects, in particular. The DSP SDRAM is a fast read/write working memory for effects processing.

The WAVE SDRAM is the working memory which holds the most recently streamed and used waveform samples. Random access to data in NAND flash is relatively slow. The WAVE SDRAM is a fast random access cache for samples in current use. The SWP70 behaves like the controller and cache within a commodity solid state drive. It streams waveform samples into cache as fast as possible via sequential reads to the WAVE NAND. The incoming samples are stored in the WAVE SDRAM and are played back from WAVE SDRAM.

Yamaha’s architecture is often (unfairly) slagged on two points:

  • Why doesn’t Yamaha stream from a commodity SSD?
  • Why doesn’t Yamaha use a commodity x86 motherboard for tone generation?

Yamaha combined the best parts of a commodity SSD and hardware tone generation in one component (the SWP70). This is a strategic low-latency advantage. The SSD SATA bus is quite unnecessary. The Yamaha architecture lowers power consumption, component count and most importantly, latency.

As to commodity motherboard, see Korg Kronos (big, heavy and hot).

WAVE NAND memory (light green) is implemented using commodity Open NAND Flash Interface (ONFI) devices. This is the same NAND flash employed in commodity, SATA-based SSDs. The Slave SWP70 has four gigabytes (4GBytes) of waveform memory while the Master SWP70 has two gigabytes (2GBytes). Storage is split into upper and lower bytes for a total data path width of 16 bits. The SWP70 accesses the upper and lower bytes in parallel. (Each ONFI channel is 8 bits wide.) Thus, Yamaha double the transfer bandwidth from NAND flash.

Presumably, the Slave WAVE NAND contains the Genos factory preset waveforms and the Master WAVE NAND contains user expansion waveforms. The Genos specifications split polyphony between preset and user voices. Expansion memory is limited to something just shy of 2GBytes. So, this inference is reasonable.

Now that you’ve read this far, you should have solid footing in Yamaha synth and arranger hardware architecture. Of course, there are many additional details about clock speeds, displays, touch panel, etc. However, you should have a better appreciation for and understanding of the basic data flows and storage units.

Copyright © 2019 Paul J. Drongowski

Source: Yamaha Genos Service Manual (Copyright Yamaha)

[Update: 18 October 2019]

Just a quick addendum about the SSP2 chip and the Steinberg URs. The SSP2 is built into the UR242, UR44, UR28M and UR824. Steinberg have a spiffy iOS app, dspMixFx, which exposes the SSP2’s functionality. Quoting Steinberg:

dspMixFx brings the flexibility and sound of Yamaha’s SSP2 DSP chip to your iOS device. Built in Steinberg’s UR824, UR28M, UR44 and UR242 interfaces, this custom-designed DSP chip runs the acclaimed REV-X reverb, Sweet Spot Morphing Channel Strip and Guitar Amp Classics effects. The free dspMixFx app allows you to control all DSP features and create your own latency-free mixes on your iPad and iPhone with effects, ideal for live recording sessions where getting exactly the right sound for performers is paramount. dspMixFx is also compatible with other iOS audio apps, offering full operation when using third-party apps with the DSP-powered interfaces in Steinberg’s UR range.

The REV-X reverb built into the UR824, UR28M, UR44 and UR242 is a complex reverb algorithm developed by Yamaha. Renowned for its high density, richly reverberant sound quality, with smooth attenuation, spread and depth that work together to enhance the original sound, the REV-X features three types of reverb effects: Hall, Room and Plate simulations with reverb time and level control.

Thanks to its SSP2 chip, the Montage provides conversion to and from a DAW roughly on par with a Steinberg UR interface.

Yamaha Genos: Main CPU

After a long move and a hiatus from writing, it’s time to dig into digital design.

I get a little anxious when I see people speculating about the internal operation of synthesizers and arrangers. They often assume that:

  • A keyboard instrument is organized just like a PC.
  • Samples are streamed from some kind of magnetic or solid-state disk.
  • The main CPU runs the tone generation software.
  • Samples are held in the main CPU’s memory during tone generation.

These assumptions are not true for Yamaha Genos, Montage or MODX.

These musical instruments are organized internally like an embedded hardware device. Sure, there is a main computer inside, but it is an embedded processor with many input/output (I/O) interfaces integrated onto the same integrated circuit (IC). This kind of organization is often called an “SOC,” or “System on a chip.”

[Click on image to enlarge.]

The diagram (above) shows the main CPU in Yamaha Genos. It is a Texas Instruments AM4376 embedded ARM processor. You can see that it has many integrated I/O ports: two USB ports, three serial interface ports (UART), parallel digital pins (GPIO), serial audio (McASP), real-time clock (RTC), and display and touch panel ports. Of course, there are also RAM (EMIF) and bulk storage (MMC) interfaces, too. Finally, there is a 16-bit bus connecting the main CPU to the two Yamaha SWP70 tone generator chips.

Before moving into important details, here’s a few quick observations:

  • The USB1 port connects to an internal 4-port USB hub. The hub provides external interfaces: TO DEVICE (front), TO DEVICE (bottom), USB TO DEVICE, and an internal wireless LAN module (UD-WL01).
  • The USB0 port provides the external USB TO HOST interface.
  • UART1 provides the 5-pin MIDI A data signals and and UART2 provides the 5-pin MIDI B data signals.
  • Digital audio is transferred on an internal serial audio bus using time division multiplexing (TDM). Serial digital audio is 2 channel, 24-bit I2S compatible, allowing direct communication with the audio converters (ADCs and DACs)

Montage has a more extensive digital audio subsystem — one of the reasons why Montage supports studio-level audio conversion.

RAM capacity is modest: 512MBytes. The Linux operating system and Genos control software reside in this memory during operation. Suffice it to say, this is no where near enough to store samples for tone generation. Tone generation is handled by the SWP70 integrated circuits.

There are two embedded bulk storage memories: 4GBytes and 64GBytes. Linux boots from the 4GByte device. The 64GByte device provides the user expansion memory. Please note the data clock speed (52MHz) and data bus width (4 bits), which adhere to the eMMC protocol. There is enough bandwidth to support a single digital audio stream, but not near enough bandwidth for tone generation. I might add that the 100MHz 16-bit bus to the SWP70s is not enough bandiwdth either.

I hope this short article provides a bit of insight about the modest computational and memory resources of the Genos main CPU. When I get a chance, I’ll give a short tour of Genos’s tone generation section.

Source: Yamaha Genos Service Manual (Copyright Yamaha)

Copyright © 2019 Paul J. Drongowski