Arpeggio to style conversion

Let’s get one out of the vault… 🙂

The Motif XS/XF (MOX/MOXF) and Montage (MODX) arpeggios and performances are a great source of inspiration. Unlike Yamaha’s arranger series, the built-in phrase library is rich in urban and chill patterns. For some odd reason, one of the classic XS/MOX performances — “Dresden At Night” — never made the leap to Motif XF. And, it’s missing from Montage/MODX, too.

A PSR Tutorial forum member sought help resurrecting Dresden At Night, albeit a recreation for the PSR-SX700 arranger. I thought I would help out since I wrote a series of articles about MOX performance to style conversion:

The end result of that work is a small collection of PSR (Tyros, Genos) styles based on MOX (Motif XS) performances.

If you would like to try Dresden At Night or experiment with a conversion of your own, download the free ZIP file.

MOX performances have four parts (voices). Each part has up to six musical phrases (arpeggios) associated with it. Six front-panel buttons select the currently playing set of arpeggios, i.e., button one selects the first arpeggio for each set and so forth. To get the basic MIDI data, I played each arpeggio (group) for four measures while recording in MOX performance quick record mode. I wrote out the MIDI data as a Standard MIDI File (SMF), transfered the SMF to PC, and imported the SMF into a DAW (Sonar).

Dresden At Night is a downtempo (91 BPM), urban-ish chill performance. It has four parts:

Part# Voice    Name              NoteLo NoteHi VelLo VelHi Level Pan
----- -------- ---------------- ------ ------ ----- ----- ----- ---
1 PRE8:070 8Z Heavy Hearts C-2 G8 1 127 81 C
2 PRE3:053 Dark Bass C-2 G8 1 127 51 C
3 PRE7:110 Ibiza Groove C-2 G8 1 127 127 C
4 PRE5:121 Smooth BPF Sweep C-2 G8 1 127 73 C

The first part is the rhythm voice and the second part is the bass voice. As we’ll see below, arpegiation is turned for these two parts. The third and fourth voices are a play-along pad layer and arpeggiation is disabled. Thus, the rhythm and bass parts provide a looped backing while the pad voices provide an atmospheric you-steer-it, right hand part.

Here are the arpeggio assignments:

Arp#1 Tempo:91              Arp#2 
----- -----
1 MA_8Z HeavyHrt1 1 MA_8Z HeavyHrt3 ON
2 MB_WestCoastPop _XS 2 MA_WestCoastPop _XS ON
3 MA_Space Arp 3 MA_Space Arp OFF
4 MA_Up Oct1 4 MA_Up Oct2 OFF
Arp#3 Arp#4
----- -----
1 MA_8Z HeavyHrt4 1 MA_8Z GatedBt3 ON
2 BA_Jazz Pop _XS 2 FB_WestCoastPop _XS ON
3 MA_Space Arp 3 MA_Space Arp OFF
4 MA_Up Oct4 4 MA_Down Oct1 OFF
Arp#5 Arp#6
----- -----
1 MA_8Z ChillBrk4 1 BA_Sp SFX ON
2 MB_WestCoastPop _XS 2 MA_WestCoastPop _XS ON
3 MA_Space Arp 3 Off OFF
4 MA_Down Oct2 4 Off OFF

The Arpeggiator is turned ON for Parts 1 and 2 only.

A big factor is the “8Z Heavy Hearts” drum kit. The “8Z” in its name means “eight zone”. Eight zone (8Z) voices are a Motif innovation beginning with the XS (MOX) family. If you would like more information, check out these earlier posts about eight zone voices:

8Z voices aren’t drum kits. They are implemented as synth voices and are just a clever way of using the eight elements which make up a voice. The eight zones (8Z) are divided across specific note ranges. 8Z Heavy Hearts assigns waveforms (zone sounds) in the following way:

Element#  Note Low  Note High  Waveform 
-------- -------- --------- --------------
1 C0 F#0 Bd T9-1
2 G0 C1 Bd Hard Long
3 C#1 D1 Sd Elec12
4 D#1 F1 Sd HipHop6
5 F#1 A1 HH Closed D&B
6 A#1 C2 HH Open T9
7 C#2 C4 Clap AnSm
8 C#4 C6 Shaker Hip2

Yamaha messes with each of the zones in crazy ways and ties keyboard notes to voice parameters (AKA “key follow”). For 8Z Heavy Hearts, the most notable effect is how the Clap AnSm pitch follows the keyboard.

Arrangers (even Genos!) don’t have 8Z voices. They have standard drum kits where each MIDI note is a separate drum instrument. In order to make a PSR style using a DAW, one must translate the 8Z MIDI notes to standard drum kit notes. You need to assign appropriate drum kits (e.g., DrumMachine, Analog T9, House, Break or HipHop) to style parts 9 and 10 (MIDI channels 9 and 10) and copy the Heavy Hearts MIDI data to both Parts. Then, delete the notes that aren’t needed in a style part, compress each zone into a single drum instrument, and map the resulting “compressed” notes to the appropriate drum instrument(s). So, for example, all of the notes in C0 to F#0 might be compressed into the Kick T9 1 instrument (B0) in the Analog T9 Kit, which is one of the target drum kits.

I found two PSR drum parts to be enough. However, styles are flexible and you could assign a third (fourth, …) drum kit to one of the other style parts. There’s nothing in Yamaha styles that prevents this. It’s just that parts 9 and 10 (MIDI channels 9 and 10) are conventionally assigned to drum parts in a style.

I went with two PSR drum kits: Analog T9 kit and Drum Machine kit. Here is one possible assignment:

Note Low Note High Waveform       Instrument        Note#   Kit 
-------- --------- ------------- ---------------- ------ -----------
C0 24 F#0 30 Bd T9-1 Kick T9 1 35 B0 AnalogT9Kit
G0 31 C1 36 Bd Hard Long BD Hard Long 24 C0 DrumMachine
C#1 37 D1 38 Sd Elec12 Snare Analog CR 63 D#3 DrumMachine
D#1 39 F1 41 Sd HipHop6 Snare Hip 1 86 F#3 DrumMachine
F#1 42 A1 45 HH Closed D&B Hi-Hat Closed Syn 91 A4 DrumMachine
A#1 46 C2 48 HH Open T9 Hi-Hat Open T9 46 A#1 AnalogT9Kit
C#2 49 C4 72 Clap AnSm Clap Analog Sm 27 D#0 AnalogT9Kit
C#4 73 C6 96 Shaker Hip2 Analog Shaker 57 A2 DrumMachine

A lot of detail, huh? Nobody said style conversion was easy. 🙂 In the end, I spread each zone across multiple drum instruments of the same type, i.e., assigning the Shaker Hip2 zone to a few different Analog Shaker sounds in the Drum Machine kit. Part of 8Z Heavy Hearts’ charm is the subtle sonic variation provided by each zone.

Trying to keep this all straight in the DAW piano roll is cognitively challenging. Did I say, style conversion isn’t easy? 🙂

Fortunately, one can loop four bar sections and play the MIDI through the arranger (Genos, in this case) just like a MIDI song. Then, it’s the usual tweak, listen, rinse, repeat edit process. When the MIDI is tweezed to your liking, you need to add MIDI markers to delimit the style sections. (BTW, leave a one bar MIDI set-up measure at the beginning.) Style section markers are:

    Set-up measure 1: SFF1 
Set-up measure 1: SInt
Main sections: Main A, ...
Fill sections: Fill In AA, ...
Break section: Fill In BA, ...
Introduction: Intro A, ...
Ending: Ending A, ...

At a minimum, you need a few MIDI set-up System Exclusive (SysEx) messages at the beginning of the SMF (measure 1, beat 1):

    F0 7E 7F 09 01 F7                 GM Reset 
F0 43 10 4C 00 00 7E 00 F7 XG System ON
F0 43 10 4C 02 01 00 01 16 F7 Reverb type
F0 43 10 4C 02 01 20 16 00 F7 Chorus type

Reverb is the “Light Hall” preset and chorus is the “Tempo Cross 1” preset. The tempo cross delay is an 8-beat echo.

Which brings me to a necessary ingredient: crunch. 8Z Heavy Hearts gets a lot of its appeal from the Lo-Fi effect:

#  Parameter                   Val  Hex   Meaning 
-- -------------------------- --- ---- --------
1 Sampling Frequency Control 4 0x04 8.82kHz
2 Word Length 98 0x62
3 Output Gain 7 0x07 0dB
4 LPF Cutoff Frequency 56 0x38 12kHz
5 Filter Type 1 0x01 PowerBass
6 LPF Resonance 63 0x3F 6.3
7 Bit Assign 4 0x04
8 Emphasis 1 0x01 On
10 Dry/Wet 88 0x58 D<W24
15 Input Mode 1 0x01 Stereo

Since we need Lo-Fi on both style parts 9 and 10, I configured the variation effect as an XG SYSTEM effect. Parts 9 and 10 also require variation send (MIDI CC#94) set to 127. Add a CC#94 message to parts 9 and 10 in the set-up measure. Here are the MIDI System Exclusive messages to add to the set-up measure:

F0 43 10 4C 02 01 40 5E 13 F7       Variation type 
F0 43 10 4C 02 01 5A 01 F7 Variation SYSTEM
F0 43 10 4C 02 01 56 40 F7 Variation return
F0 43 10 4C 02 01 58 10 F7 Variation send to reverb
F0 43 10 4C 02 01 59 10 F7 Variation send to chorus
F0 43 10 4C 02 01 42 00 04 F7 Variation parameter 1
F0 43 10 4C 02 01 44 00 62 F7 Variation parameter 2
F0 43 10 4C 02 01 46 00 07 F7 Variation parameter 3
F0 43 10 4C 02 01 48 00 38 F7 Variation parameter 4
F0 43 10 4C 02 01 4A 00 01 F7 Variation parameter 5
F0 43 10 4C 02 01 4C 00 3F F7 Variation parameter 6
F0 43 10 4C 02 01 4E 00 04 F7 Variation parameter 7
F0 43 10 4C 02 01 50 00 01 F7 Variation parameter 8
F0 43 10 4C 02 01 54 00 58 F7 Variation parameter 10
F0 43 10 4C 02 01 75 01 F7 Variation parameter 15

At this point, you could save the MIDI to “DresdenAtNight.sty” and load it into your arranger as an SFF1 format style. The arranger should create the style CASM segment. As an alternative, you can add a CASM segment to the SMF with Jørgen Sørensen’s CASM editor. You might as well download his OTS editor, too, and use it to add OTS voice settings to the new style as well. Or, you can do this sort of work on your arranger itself. Mid- and high-end Yamaha arrangers save styles as SFF2 format, which is one way to convert from SFF1 to SFF2. I highly recommend Jørgen’s site, tools and style creation tutorial.

BTW, you can recreate Dresden At Night on MODX (Montage). Create a new MODX performance with 8Z Heavy Hearts and Dark Bass. 8Z Heavy Hearts has the appropriate arpeggios by default. You’ll need to assign different arpeggios to the Dark Bass part. Modify effects as needed. Choose and add pad or lead voices to give your right hand something to do. Done! Use the Scene buttons to switch arpeggio groups.

Copyright © 2021 Paul J. Drongowski


Combo organ: Montage, MODX, Genos

Contemporary workstation instruments offer several options for combo organ emulation. Every workstation has at least a few internal combo organ waveforms. Korg Kronos, for example, has two Vox organ waves built in. Even the lowly Korg microKorg XL+ has two Vox waveforms (DWGS single cycle).

Yamaha MODX and Montage — my focus in this article — have a good variety of Vox and Farfisa waveforms. Yamaha Genos has a lesser endowment as we’ll see. Yamaha Reface YC shares sonic DNA (AWM2 and effects) with the Motif XF and will be the subject of a future post.

Motif, Motif ES and Motif XS

Models in the early Motif series primarily base combo organ patches on two waveforms:

  • Portable Electronic: Vox-y tone
  • Compact Electronic: Farf-y tone

You can hear these waveforms at work in the Tiny Combo Bars 1 performance and the Tiny Combo Bar 2 performance. The patches layer three are more elements playing Portable Electronic or Compact Electronic (respectively). Each element is filtered differently: low pass, band pass and high pass. The net effect is like several distinctive tab stops or drawbars pulled at once.

These waveforms are very old, going back to the original Motif (maybe S80) in the early 2000s. I’ll bet dollars to donuts that the Portable Electronic waveform is the basis for the 60’sOrgan voice (MSB: 0, LSB: 116, PC: 18) in PSR and Tyros keyboards. The 60’sOrgan voice was the sole combo organ mainstay in the arranger line for a loooong time.

Motif XF, Montage, MODX

Motif XF got a big shot of combo juice. Motif XF added several combo organ waveforms:

  • Fr All Tabs
  • Fr Bright Boost
  • Fr Flute
  • Fr String Lo
  • Fr String Hi
  • Fr Trumpet
  • Fr Piccolo
  • Fr Pedal
  • Fr KeyOff
  • Vx Drawbar1-3
  • Vx DrawbarIV
  • Vx KeyOff

The Farfisa (Fr) waveforms support emulation of specific Farfisa features: individual voice tabs (flute, string, trumpet and piccolo), the wicked Bright Boost knee lever, bass keys (pedal), and key off sound. The Fr All Tabs waveform covers one of the most common use cases — all of the tab stops turned on. Subtlety was not a hallmark of sixties combo organ music. 🙂

The Vox (Vx) Vx Drawbar1-3 waveform covers the three Continentel footage drawbars while the mixture drawbar is handled by the Vx DrawbarIV waveform. The Vox waveforms include a Vox key-off noise.

In terms of voice programming, one uses note shift to achieve different footage ranks. Passive filtering is emulated through filter type (low pass, band pass, high pass) and cutoff frequency. Of course, everything can be routed into insert effects for distortion, amp simulation, and other grunge.

Since Montage and MODX inherit all things Motif, these waveforms and the Motif performances are there for you. The Montage and MODX sliders allow control over individual voice elements. For example, choose the Raspy Tabs performance and assign slider control to element level. The Fr Raspy Tabs waveform-to-element assignment is:

El# Waveform     KeyLo KeyHi VelLo VelHi Coarse Level Cutoff XA Ctrl 
--- ------------ ----- ----- ----- ----- ------ ----- ------ -------
1 Fr String Lo C2 G8 1 127 0 97 255 Normal
2 Fr Trumpet C2 G8 1 127 0 82 255 Normal
3 Fr Flute C2 G8 1 127 24 120 236 Normal
4 Fr Pedal C-2 B1 1 127 0 127 160 Normal
5 Fr String Hi C2 G8 1 127 19 24 236 A.SW2 On
6 Fr KeyOff C2 G8 1 127 6 87 80 Key Off

Different tabs are brought in and out by moving the corresponding slider. Assignable switch 2 turns on additional brightness. The low keyboard octaves play the bass (pedal) tones. Overall, this is a fairly controllable representation of a wheezy Farfisa Compact.

Because the sliders are not discrete, you can probably make up Farfisa tones which aren’t entirely authentic. But, really, should one care? 😉

Vox performances have similar control-ability. Here is the waveform-to-element assignment in the Vx Full Bars performance:

El# Waveform      KeyLo KeyHi VelLo VelHi Coarse Level Cutoff XA Ctrl 
--- ------------- ----- ----- ----- ----- ------ ----- ------ -------
1 Vx Drawbar1-3 C-2 G8 1 127 0 75 255 Normal
2 Vx Drawbar1-3 C-2 G8 1 127 12 77 255 Normal
3 Vx Drawbar1-3 C-2 G8 1 127 24 91 255 Normal
4 Vx DrawbarIV C-2 G8 1 127 0 127 250 Normal
5 Vx KeyOff C-2 G8 1 127 4 68 85 Key Off

The first three sliders control the 16′, 8′ and 4′ Vox drawbar settings and the fourth drawbar controls the Mixture (IV) tone. Go ahead, just everything to eleven. 🙂

Montage and MODX FM

But, wait, there’s more! Montage and MODX have two FM combo voices: BOX FM Combo Organ and FM YC Combo Organ. Although these performances don’t sound authentic to my ears, they provide starting points for further programming. I haven’t heard the YC61 as yet, but I wonder if the YC61 combo emulations can be ported to Montage and MODX?

Genos

As I mentioned earlier, the arranger series has been historically short on combo organ sounds, relying on the old 60’sOrgan voice. Wheezy, raspy Farfisa tones are noticably absent. The 60’sOrgan voice sounds like the Portable Electronic waveform on which the Motif 1967 Keys performance is based.

Tyros 4 and Motif XF were introduced at approximately the same time. They certainly were together in the development lab during late 2009. Tyros 4 added four combo organ voices:

  1. 60sComboOrgan1: VoxContiComb1_Full_NoVib waveform
  2. 60sComboOrgan2: VoxContiComb1_Full_VibOn waveform
  3. 60sComboOrgan3: VoxCombi4NoVib waveform
  4. 60sComboOrgan4: VoxCombi4NoVib091117 waveform

Voices 1 and 2 capture one Vox Continental drawbar combination (Comb1) and voices 3 and 4 capture a second combination (Combi4).

Voices 1 and 3 are without vibrato. Voices 2 and 4, unfortunately, have an excessive amount of vibrato — almost painfully so. When I use voices 2 and 4 in a MIDI sequence, I dial down the vibrato depth using MIDI CC#77 messages. Vibrato frequency is about 5Hz. I also remove touch sensitivity by setting:

  • Velocity sensitivity depth to zero, and
  • Velocity sensitivity offset to 114.

An organ voice should not respond to touch (key velocity) — ever.

PSR, Tyros and Genos players shouldn’t forget the “hidden” Italian 60s organ voice (It60’sOrgan) in the GM2 sound set. On PSR and Tyros, you’ll find It60’sOrgan within the Legacy voices Organ subfolder. On Genos, you need to download GM2 and XG user voices to the USER voice folder. (See this thread in the PSR Tutorial Forum.) Of course, you can select
It60’sOrgan from a DAW (MSB: 121, LSB: 2, PC: 17) .

All-in-all, you can get a nice Vox tone out of Genos. Farfisa is still missing in action, tho’. Kind of an odd shortcoming of a keyboard with styles and a user base that want to play popular hits from days past.

In the next post, I’ll compare Reface YC combo organs against Montage/MODX (Motif XF). The result may surprise you.

Copyright © 2021 Paul J. Drongowski

What did you do in self-isolation?

Yes, this site still does music! 🙂

Several weeks ago, I decided to record the church tunes that I enjoy playing. It’s best to start with favorites, as most of you know how you come to detest a track after playing it over, and over, and over again during production. Energy quickly dissipates when micro-editing MIDI events or digital audio…

Before getting into production notes, here are links to the final tracks (all MP3). The goal was to crank out a new tune each week and send it to the folks in our music ministry. Some tunes are a little more polished than others. Please consider them “demo quality.”

Without going too far into the technical weeds, the primary sound source is Yamaha Genos™ and the primary vocalist is my spouse Fran. With the Mill Creek Chorale on hiatus — aren’t we all? — I was happy that she could contribute and have fun, too.

Production notes

So, how did all of this go down?

These demoes show off the Yamaha Genos as a sound source and production tool. I had two main subgoals:

  1. Learn how to record a demo with Genos in either audio or MIDI format.
  2. Learn how to mix down with Steinberg Cubase Artist and try out a few of the freebie plug-ins that I’ve collected.

By and large, Genos and Cubase were the main production tools although I back-slid into SONAR on a few occasions for MIDI editing. Old habits die hard. Workflow was not strictly linear from Genos to Cubase. In a few cases. MIDI and/or audio (stereo 16-bit 44,100 WAV) were slung back and forth between tools.

Yamaha Genos

Genos is the sound source with one big exception: drawbar organ. When you hear B-3, you’re hearing Yamaha MODX through an Electro-Harmonix Lester K. I wanted to hear Lester K in musical context. It sits in a song pretty well and has more guts than the Yamaha MODX Leslie simulator. By itself, though, Lester K has some high-end swirliness in the upper drawbars, but in a track, it seems to mesh. You be the judge.

Emphasis was on speed. Get the tracks down quickly and finish a song each week ASAP. The Beatles used to call this recording “on heat.” Even so, it’s amazing how modern technology will drag you into the dank chasm of production minutiae. Don’t you just love hearing the same three measures fifty times while tweaking and tweezing. Not.

All vocals were recorded directly to Genos using its microphone input. Full backing and raw vocal tracks were exported to Cubase via WAV. Everything was processed and mixed in Cubase. The final mix was exported from Cubase as WAV, and then trimmed and converted to MP3 using Sound Forge Audio Studio.

Our God Is Here This was the first demo in the series and the process doesn’t get any simpler than this. All was recorded into Genos Audio Multi Recording. Find a beat, turn it on, lay down the organ part. Unfortunately, I didn’t plan for the ending, which is quite ragged. The organ is Genos in this case (not MODX). Kinda plain, huh? The bass is an overdub.

Audio Multi Recording is a nicely done sound-on-sound recorder a la Les Paul, minus tape hiss. There are two stereo tracks: main and sub. You can record directly to either main or sub, and bounce (sub+main) to main. There are options for punch in and overdub. Audio Multi Recording provides WAV import and export, functionality which eventually got a true work-out.

Audio Multi Recording keeps digital audio in a persistent project. A project resides in the internal Genos 60GB user solid-state drive and is always ready. The project remembers audio and mix settings without requiring explicit save and load user operations. That makes for a clean workflow. Export is the way to get digital audio into a WAV file and it mixes the main and sub on the way to WAV. In order to export a solo vocal track from sub, one needs to dial down the main and then wait while Genos writes the WAV file in real time. I wish there was a simple, direct fast export to WAV supporting both main to WAV and sub to WAV.

In The Day Of The Lord I quickly realized that I do need to think ahead and assemble a basic skeleton on which I could build a tune. (Duh!) In this case, Toontrack EZDrummer provided the drum patterns which I pulled together in Cubase. Genos played the MIDI drum track while I recorded the flute as a melodic guide and layered in the bass and organ — all recorded as audio. We then did a few vocal takes to Genos. I transferred all of the Genos audio as WAV into Cubase for the final mix. Vocal processing typically was light: a little pitch correction, EQ, and maybe double tracking. A touch of reverb (Cubase Revelation) blends everything together here.

Stop By, Lord This tune makes use of the Genos rhythm accompaniment consisting of main patterns and one-bar fills. I recorded a basic guide track in MIDI using the “BigBandBallad” style as the drummer. This meant switching the main and fill patterns with my left hand while playing the melody with my right hand. I layered in the piano, bass and horns, discarding the guide melody along the way. I added the B-3 organ (MODX through Lester K) in an audio pass. Everything was recorded and produced on Genos since we didn’t record vocals.

Psalm 95 If Today “If Today” makes full use of the Genos arranger features. I played the basic accompaniment track using the “Sunny Reggae” style. Whoever built that style, it must have been a labor of love and it fits this song quite well. I vocoded my voice. Both the accompaniment and vocal tracks where exported to Cubase for final assembly and mix down. I had a lot of fun adding dub effects and tons of reverb, Long live King Tubby!

Rise Up With Him “Rise Up” was recorded to MIDI, again using the Genos rhythm accompaniment as the drummer. The electric piano went down first followed by the bass. The B-3 organ is MODX through Lester K. Backing and vocal audio were exported to Cubase for final mix down. Overall, a pretty simple demo to pull together.

O Sacred Head I recorded the MIDI for this tune a long time ago — in the early 2000s on a Roland XP-60. The guitar picking was carefully edited and assembled (years ago!) from Twiddly Bits. I imported the XP-60 MIDI into Cakewalk, choosing Genos voices and effects. The Genos result versus the original XP-60 is amazing. Fran encouraged me to leave it as an instrumental.

This Is The Day This psalm is long out-of-print. A few years agao, I transfered a scruffy copy of the piano score into Sibelius. So, to kickstart this tune, I exported MIDI from Sibelius, restructured the sections, and humanized the piano as much as possible. I tried to keep the accompaniment simple adding just bass and horns. Once again, the backing and vocal tracks were mixed in Cubase. This demo is a good example of Arturia’s Plate-140 reverb — a freebie that Arturia gave away during the Christmas holiday. I love it.

Lead Me, Lord Another simple turn-on-the-beat-box, sound-on-sound production. Everything was recorded to Genos with the backing and vocal tracks exported to Cubase. (Another example of Plate-140, BTW.) The vocal harmony was generated by a TC Helicon Play Electric added in real time. Recording and production was dirt simple although it took a while to get the TC Helicon configured.

Alleluia! Love Is Alive This was the penultimate demo in the series. The basic track is a stripped down Genos “6-8PopBallad” style. Yamaha tends to over-orchestrate styles, so I kept drum, bass and guitars, tossing the rest. Instead of playing the basic track, I created the accompaniment using chord step-record. This MIDI Multi Recording feature lets a musician enter chords and sections from a lead sheet, quickly creating the song skeleton. You can even try different styles if you haven’t chosen one already. Once the skeleton is set, you expand the chord track into MIDI events, thereby obtaining the full backing track in a Standard MIDI File (SMF).

I added the Celtic violin by playing it into a free MIDI track. Using Sonar, I tweaked the tempo in the full MIDI song in order to add energy as the song progressively builds to the end. Finally, with the MIDI finished, I froze the backing tracking to WAV audio. The backing and vocal tracks were mixed down in Cubase with a little automation here and there to add vocal depth and double tracking.

Conclusions?

The preceding discussion is already a lot to absorb and to process. I’ll take a step back in a future post and try to summarize. All the best to ya.

Copyright © 2020 Paul J. Drongowski

SHS-500: Snap review

After analyzing the Yamaha SHS-500 Sonogenic from every possible angle (even the service manual!), I finally got one. On-line retailers are currently flooded with post-Christmas returns and bargains can be had. And so it was.

First, I must compliment Sweetwater for their prompt service and excellent packing. The SHS-500 was double-boxed. (The inner box was Yamaha’s original packing carton.) The unit is in excellent condition, matching Sweetwater’s assessment of its condition. Even though the inner carton has a big “DEMO” sticker on it, the Sonogenic is “like new.” Money saved and well-spent.

Since the Sonogenic was a demo, the initial settings are probably not factory. Thus, your out-of-the-box experience may be a little different than mine. I loaded the battery compartment with six AA batteries and turned it on.

Yamaha SHS-500 Sonogenic in fire-engine red

The internal speaker is not going to impress anyone. Sound quality is at roughly the same level as Reface and I never warmed to that. I’ll be playing the Sonogenic through either headphones, my trusty, portable JBL Charge 2 or a powered monitor. Sonogenic has a master EQ and it’s important to set it appropriately. My unit was set to “Line Out” and the sound through the speaker was weak. Changing to the “Speaker” EQ setting was much better. Be sure to change back to “Line Out” when connecting to an external powered monitor. (Or “Boost,” or “Mild”.)

The SHS-500 is quite solid in the hands — much better build quality than the new PSS series or the SHS-300. Key feel is comparable to Reface. After playing the Sonogenic, the PSS keys have a cheaper feel. Yes, you get what you pay for. The SHS-500 is like a Reface keytar.

Natch, the first thing was quick tour of the sounds. Every panel voice has a DSP effect. (See the table below for default assignments.) Sound quality is on-par with good PSR E-series voices and in a few cases, S-series. The SHS-500 is not a Genos. 🙂 However, the SHS-500 is better than PSS by far.

 SHS-500            Bank  Bank
Voice MSB LSB PC# Default effect
----------------- ---- ---- --- --------------
Saw Lead 1 104 20 91 LPF
Saw Lead 2 0 104 82 Flanger
Quack Lead 0 112 85 DSP Chrs
Bright Decay 104 21 85 Phaser
Square Lead 0 112 81 Phaser
Under Heim 104 51 88 DSP Chrs
Analogon 104 52 82 Flanger
Synth Brass 0 113 64 DSP Chrs
Electric Piano 104 28 5 Phaser
DX Electric Piano 0 112 6 DSP Chrs
Electric Guitar 104 3 31 Dist.2
Jazz Guitar 104 0 27 DSP Chrs
Acoustic Guitar 0 117 26 LPF
Electric Bass 104 6 34 LPF
Slap Bass 0 112 37 DSP Chrs
Synth Bass 0 112 39 Phaser
DX Bass 0 118 40 LPF
Piano 0 112 2 DSP Chrs
Piano & Strings 104 39 1 DSP Chrs
Piano & Pad 104 40 1 DSP Chrs
Air Choir 0 112 55 LPF
Strings 0 116 49 DSP Chrs
Brass 0 117 63 DSP Chrs
Trumpet 0 115 57 HPF
Flute 0 115 74 LPF
Alto Sax 104 2 66 LPF
Tenor Sax 104 3 67 LPF
Harmonica 0 112 23 Tremolo
House Kit 127 0 65 LPF
Power Kit 127 0 88 LPF

The House Kit has the same program selection numbers as the House Kit in the PSR-E463 and PSR-EW410. These instruments and the SHS-500 are the only ones with this “House Kit.” Go figure.

My favorite voices are the Electric Piano, Jazz Guitar, Electric Bass, Synth Bass, Piano & Pad, Strings, Flute, Tenor Sax and Harmonica. Electric Piano with the Tremolo DSP effect is nice. Can’t wait to try these out with my backing tracks. Here’s a few more snap opinions.

  • I’ve never been that excited by the PSR synth voices although Quack Lead, Under Heim and Analogon can be fun. Drop Quack Lead down an octave or two for an alternative synth bass.
  • The electric guitar is OK and the DSP distortion effect is welcome versus a static sampled overdriven guitar. However, the DSP effect is not up to the PSR S-series, Genos or MODX, that’s for sure. It’s an early Yamaha algorithm.
  • The main piano is bright — think “house.” The piano in the layered voices is warmer.
  • The tenor sax needs to be played stylistically. The low end gets into baritone territory — a plus.
  • The harmonica is decent enough to go a little Jon Batiste or Stevie with the thing.
  • A few of the voices (e.g., flute, tenor sax) have vibrato sampled in. If you’re a PSR-type person, you’ll recognize these as “Sweet!”
  • The LPF is a bit of a let-down. One can hear changes due to cut-off, but a certain dynamic aspect is missing.

The DSP effects sound a little over-done. It’s easy enough to strip the effect off by dialing it out with the Effect Control knob. One might get tired of doing this after every voice change, which is why I want to experiment with MIDI Designer as a graphical front end for the Sonogenic.

In addition to the default DSP effect, the Sonogenic sets the octave which is appropriate (in some sound designer’s view) for the instrument. Change the voice and you change the octave, too. Depending upon the scenario, this could be a drag. There isn’t a way to go directly to a voice; you need to spin the Select knob and step through the voices — another motivation for a MIDI Designer front-end.

Jack positions all seem well thought out. The USB and MIDI DIN connector are hidden behind a rubbery cover. The MIDI DIN connector is the same as the Reface connector and takes the same breakout adapter to produce 5-pin IN and OUT.

The audio Line Out is mono. (Yes, mono, according to the Service Manual.) The headphone output is stereo. If you need stereo, give the headphone output a try. Dunno if the waveforms or effects are stereo, but the stereo signals are sent to the headphone jack. (The DAC is an AK4430ET, BTW.)

The SHS-500 includes a PA-130 power adapter. I have a PA-150 plugged in at all times and it works just fine with the SHS. The PA-150 supplies the same voltage and has a higher amp rating. All good.

Overall, the Sonogenic SHS-500 is worth the (reduced) price. Will I take it to rehearsals? Heck, yeah! It’s a shame that Yamaha left at least one organ patch out of the voice set. There is enough here for those weeks when organ is not in the church gig spotlight. Almost wish the SHS-500 and Reface YC were combined into the same ax…

Copyright © 2020 Paul J. Drongowski

Early wave table and FM synthesis

Discussions about Yamaha Montage/MODX AWM2 and FM-X sent me digging into the past to unearth early AWM and FM implementations in order to get insight into today’s tone generation hardware. Although Yamaha do not publish design information about their proprietary SWP, SWX, SWL, etc. processors, they have published datasheets for their merchant line of LSI products. Yamaha were very active in the mid- to late-1990s when desktop music (Soundblaster, XG, Sondius, etc.) was king.

The Yamaha YMF278B OPL4 was one such LSI component. The OPL4 combines a 2-/4-op FM synthesizer and a wave table synthesizer on a single 80-pin quad flat pack (QFP). The FM synthesizer can:

  • Generate 18 voices in 2-op modes or 15 2-op voices plus five rhythm sounds.
  • Generate 6 voices in 4-op mode with an additional 6 voices in 2-op mode, or 6 voices in 4-op mode with an additional 3 voices in 2-op mode and five rhythm sounds.

The FM synthesizer has eight selectable waveforms and generates a stereo output. The wave table synthesizer can generate 24 voices simultaneously (i.e., 24 voice polyphony) producing stereo output at a 44.1kHz sampling rate with bit depths of 8-, 12- and 16-bits. Wave ROMs up to 32Mbits are supported with up to 512 wave tables.

The OPL4 has six sound channels which can be sent to an external DAC (YAC513) or a digital effects processor (YSS225). Sadly, documentation for the YSS225 cannot be found on-line. The YSS225 is said to perform reverberation, echo, flange and other effects.

The FM and wave table synthesizers are two separate hardware units. I wouldn’t be surprised if this is still the case in the modern day SWP70 Standard Wave Processor. Separation lets the engineers optimize the synthesis hardware for a particular synthesis type.

Wave table synthesis

The OPL4 does not implement AWM2 synthesis. The synthesizer does not have the AWM2 filter hardware. This is not too surprising because in that era, Yamaha regarded AWM2 and its analog-like filter as a special competitive advantage. Why would they give that same advantage to other sound card vendors? It’s a safe bet, however, that the XG-compliant variants are full AWM2.

Nonetheless, a peak inside gives us a look at Yamaha’s wave table machinery. The synthesizer consists of a synthesis core that fetches waveform samples and waveform meta-data from external wave memory.

YMF278B block diagram

Quoting the OPL4 data sheet:

The wave table synthesizer can generate up to 24 sounds simultaneously. Each sound is referred to as a “channel”. The channels are numbered from 1 to 24. These numbers are called “channel numbers”.

Wave table synthesis is controlled by a few hundred registers. The main control CPU writes common and channel-specific synthesis parameters into the registers. The synthesizer reads the registers during each synthesis macro-cycle and produces a new sound sample for each channel. The channel-specific control registers are organized into register groups. Each group consist of 24 registers, i.e., 24 values of a specific synthesis parameter type, one value per channel. A quick glance at the table below clarifies the register organization and the wave table synthesis parameters. Parameters for envelope generation, pan, LFO control, etc. are easily identifiable. (The YMF278B data sheet has the details).

YMF278 wave table synthesis control registers

I conjecture that today’s SWP70 is organized in a similar way. The CPU-SWP70 communication bus is a memory bus that gives the CPU direct access to the SWP70 synthesis control registers. Think about it. With 128 stereo AWM2 channels, there are several hundred (thousand!) synthesis values which must be configured at the hardware level. Software’s job is easier and fast by making the synthesis registers (channel-specific parameter value) directly accessible.

Wave table in external memory

The waveform data and meta-information in external memory cosnsist of two parts: Up to 384 waveform headers and the waveform sample data. Each waveform header is 12 bytes containing:

  • Wave data start address
  • Loop address
  • End address
  • Voice parameters: LFO, VIB, ADSR, etc.

Today’s wave table is probably similar albeit much bigger. Explore Yamaha’s Universal Voice Format (UVF) and you’ll see what I mean.

FM synthesis

The OPL4 supports 2- and 4-op frequency modulation (FM) synthesis. Quoting the data sheet:

The part that generates one sine wave is called an “operator”. A combination of these operators is called an “algorithm”. The first stage operator (see diegram below) is called the “modulator” and the second stage operator is called the “carrier”. The frequency and envelope can be set for each operator. “Feedback FM” is available to generate a wider range of sounds.

Basic FM system
Feedback FM system

Like the wave table synthesizer, the FM synthesizer has a large table of common and channel-specific synthesis parameters. The register table organization is a little more complicated. Quoting:

The OPL4 has 36 circuits that generate a sine wave. A circuit which generates a sine wave is called a “slot”. A sound unit which is generated by combining two or four operators is called a “channel”. There are two kinds of sound generation control registers: registers settable in slot units and registers set in channel units.

In 2-op mode, two slots are used to generate on FM sound. With 36 available slots, 18 channels of sound can be generated. In 4-op mode, four slots are used to generate one FM sound. Six channels are generated using 24 slots.

YMF278 FM synthesis control registers

Whew! Given the two dimensional nature of register organization, addressing a specific parameter value for a specific operator is a complicated matter. (See the data sheet for details.) Without going a deep dive into register addressing, here is an image showing common and channel-specific synthesis parameters.

YMF278 4-op algorithms

Summary

I would say that the overall architecture today (SWPxx) is not unlike the architecture of yesteryear. The number of synthesis parameters, of course, has exploded with new features in the wave table synthesis hardware (filtering!) and FM synthesis hardware. Modern FM can route FM output samples to AWM2 wave table filters, adding many wrinkles to datapath and control design.

The main CPU is responsible for channel allocation as notes are played and for channel deallocation as notes are released and completed. Once a channel is allocated, the main CPU must write the appropriate voice parameters into the channel registers. Then, it’s up to the synthesizer hardware to crank out a new sound sample at a 44.1kHz rate. Of course, the per-channel sound samples must be mixed and routed to the DSP effects processors. I would love to get a look at the mixing and DSP processing.

I hope this trip into the past gives you some insight into present-day AWM2 and FM-X hardware and an appreciation for the complexity and sheer number of details at the 10,000 foot level of digital synthesizer design.

Copyright © 2019 Paul J. Drongowski

Yamaha hold many patents on wave table and FM synthesis techniques. I recommend U.S. Patent 5,250,748 (1993) which describes the digital filter in AWM. For the modern era, I suggest U.S. Patents 8,779,267 (2014), 8,957,295 (2015) and 9,040,800 (2015).

Remie: A Christmas Story

My Yamaha PSS-E30 Remie review promised updates about how Remie works out in the real world with a two year old. Here’s a the first update (and why we moved out west to be with our grandson).

Background: Our grandson attended Kindermusik classes while he was an infant and, man, we can see the effects already. He also hangs with older kids and his big-kid grandfather (me) who all play keys, so playing keys already seems like an every-day activity.

When he comes over to our house, we put on music, or he and I sit down at the Yamaha MODX or Genos, depending on what’s set up and handy. He is in love with the MODX Superknob and the built-in beats, now referring to beat music as “orange music.” Orange is his favorite color and he will literally ask us to play “orange music”. One wonders if he has synesthesia or if he just likes the occasional warm orange glow from the MODX Superknob.

Yamaha PSS-E30 Remie

Well, come Christmas day, he unwrapped Remie and broke into a joyful smile. He quickly started pushing the start/stop button; Do kids understand icons that early? We dropped a few beats and he literally was dancing along. So, I would say the first encounter with Remie was quite successful!

A few minutes later, we caught his mom (a former wind player) trying different features and taking a quiz. Couldn’t have been better. We’ll see how Remie works out in the long run.

Hey, Yamaha! You missed an opportunity, tho’. Kids love the Superknob. Your next keyboard for kids should have a Superknob on it!

Merry Christmas and Happy New Year! (And support art/music education).

Copyright © 2019 Paul J. Drongowski

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