Montage: New waveforms

Well, well. Interesting times, again. Yamaha have now released the Montage Reference Manual and the Data List Manual. Download them from your local support site.

At the same time, the Motif XF is being blown out. Not only have retailers dropped prices, Yamaha itself is saying “Sayonara” with a promotional rebate of its own. If you want a Motif XF, now is a terrific time to buy!

I started the decision making process last weekend by comparing the MOX waveforms against the Motif XF waveforms. To me, new waveforms represent true value — true sonic potential — over a keyboard’s predecessor. Unless MOXF owners want all of the bells and whistles of the Motif XF (e.g., big color display, on-borad sampling, sliders, version 1.5 Real Distortion effects, etc.), they already have the XF waveforms. MOX owners have the older Motif XS factory set, so they might be interested in upgrading to Motif XF. Here is a list of Motif XF waveforms that are not in the MOX:

    CF3 4 layer (vs. MOX 3 layer)
    Farfisa (Fr)
    Vox (Vx)
    Tango Accordian2
    Mussete Accordion
    Steirisch Accordion
    Jazz Guitar
    Pick Rndwound2
    Pick FlatWound
    Finger Rndwound
    Sect Strngs
    Tremolo Strings
    Live Pizzct
    Soft Trumpet
    Trumpet Vib
    Trumpet Shake
    French Horn Sft
    French Horn Med
    Soprano Sax3
    Alto Sax3
    Tenor Sax2 Soft
    Tenor Sax2 Falls
    Sax Breath

After looking over the list, frankly, I’m not motivated (bad pun) to buy an XF. My PSR-S950 does a great job covering these sounds. Plus, at 33.3 pounds (XF) vs. 15.4 pounds (MOX), a Motif XF is likely to remain in the studio, not at the gig.

The Yamaha Montage offers a bigger upgrade thanks to the large built-in waveform memory. Here is my first pass list of new Montage waveforms. I’ll leave it to you to comb through synth and percussion waveforms.

    CFX 9 layer
    S700 3 layer
    EP4 5 layer
    Rd Soft 5 layer
    Rd Hard 4 layer
    Rd73 5 layer
    Rd78 5 layer
    Rd KeyNoise
    Wr1 3 layer
    Wr2 4 layer
    Wr3 5 layer
    Wr KeyNoise
    Clav5 3 layer
    Clav KeyNoise
    CP80 5 layer
    CP80 KeyOff
    Motor Vibes
    Tonewheel1 Fast/Slow
    Tonewheel2 Fast/Slow
    Tonewheel3 Fast/Slow St
    Tonewheel4 Fast
    Tonewheel5 Fast
    Tonewheel6 Fast
    SctAcc Mussete
    Acc Key On/Off
    TC Cln Pick
    TC Cln Fing
    Acoustic2 (bass)
    Violin2 1st St
    Violin2 2nd St
    Viola2 St
    Cello2 St
    Celtic Violin
    US Strings
    Violins 1st
    Violins 2nd
    Trumpet 3
    Piccolo Tp
    Trombone 3
    Bass Trombone
    French Horn2
    BrassSect3 Acc/Doits/Shake/Falls
    Oboe4 NV/Stac
    Flute4 NV/Stac/Flutter
    Piccolo4 NV/Stac
    Low Whistle
    High Whistle
    Boys Choir
    Gospel Choir

Yamaha really upped the ante with new acoustic and electric piano samples. Yamaha have been promoting these improvements and rightfully so. I can’t wait to try these out. Jazzers will be glad to see the new vibraphone samples, too.

Tonewheel organ got a modest upgrade. I’ll reserve judgement until I can hear and play the Montage. The tonewheel samples have fast and slow variants, so the Leslie is probably sampled in. Not always a good sign, but, hey, I’m listening. A couple of more accordions round out the keyboard additions.

Guitars also got a modest upgrade. There are a few more acoustic guitars and two Telecaster variants (pick and finger). At this point, I must mention that all of the new waveforms have 3, 4, 5 or more layers and many articulations. So, even if the list looks short, the new voices should be quite rich and appealing.

Orchestral instruments got a major, major upgrade. As a liturgical musician who relies on these voices heavily, I’m excited. I called out only a few of the available articulations. Musicians who mock up orchestral scores or cover orchestral parts live should definitely take note of the Montage! Surprisingly, there aren’t new pipe organ waveforms. (Is an expansion pack in the works?)

Finally, there are a slew of choir and vocal samples from the Tyros 5. “Syllables” in the list above are all of the zillion duhs, doos, etc. ScatCycle includes the (infamous) scat syllables, but cycles through the syllables for variety. This is already a feature of the Tyros 5.

Given the boost in the orchestra department, I’m interested. I just wish that the Montage weighed about 20 pounds or less. Perhaps I need to wait for the MOXF follow-on in the light weight, mid-price category.

That’s it for now. I might have missed something during the first pass and will correct the list as I learn more about the Montage. At some point, I’ll take a look at Montage effects, too.

Read my initial review of the Montage8. Update: May 10, 2016.

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

We need “code-able” MIDI controllers!

All MIDI controllers for sale are rubbish!


OK, here comes a rant. I’ve been working on two Arduino-based MIDI controllers in order to try out a few ideas for real time control. I’m using homebrew microcontrollers because I need the flexibility offered by code in order to prototype these ideas.

None of the commercial available MIDI controllers from Novation, Korg, AKAI, Alesis and the rest of the usual suspects support user coding or true executable scripts. Nada. I would love it if one of these vendors made a MIDI controller with an Arduino-compatible development interface. Connect the MIDI controller to a Mac or PC running the Arduino IDE, write your code, download it, and use it in real time control heaven! Fatal coding mistakes are inevitable, so provide an “Oops” button that automatically resets program memory and returns the unit to its factory-fresh state.

Commercial MIDI controllers have a few substantial advantages over home-brew. Commercial controllers are nicely packaged, are physically robust and do a good job of integrating keyboard, knob, slider, LED, display, etc. hardware resources into a compact space. Do I need to mention that they look good? Your average punter (like me) stinks at hole drilling and chassis building.

Commercial controllers, on the other hand, stink at flexibility and extensibility. Sure, the current crop of controllers support easy assignment of standard MIDI messages — usually control change (CC), program change (PC), and note ON/OFF. Maybe (non-)registered parameter number messages (RPN or NRPN messages) are supported. System exclusive (SysEx) most certainly is not supported other than maybe a fixed string of HEX — if you’re incredibly fortunate to have it.

The old JL Cooper FaderMaster knew how to insert control values into simple SysEx messages. This is now lost art.

Here are a few use cases for a fully user-programmable MIDI controller.

The first use case is drawbar control. Most tone-wheel clones use MIDI CC messages for drawbar control, but not all. The Yamaha Tyros/PSR “Organ Flutes” are controlled by a single SysEx message. That SysEx message sets everything at once: all the drawbar levels, percussion parameters and vibrato. Drawbar control requires sensing and sending all of the controller’s knob and switch settings in one fell swoop. None of the commercially available MIDI controllers can handle this.

If you’re interested in this project, check out these links: Dangershield Drawbars, design and code.

The second use case is to fix what shouldn’t have been broken in the first place. The Korg Triton Taktile is a good MIDI controller. I like it and enjoy playing it. However, it’s brain-damaged in crazy ways. The function buttons cannot send program change messages! Even worse, the Taktile cannot send a full program change: bank select MSB followed by bank select LSB followed by program change. This makes the Taktile useless as a stage instrument in control of a modern, multi-bank synthesizer or tone module. If the Taktile allowed user scripting, I would have fixed this nonsense in a minute.

The third use case is sending a pre-determined sequence of pitch bend messages to a tone generator. Yes, for example, you can twiddle a controller’s pitch bender wheel (or whatever) to send pitch bend. However, you cannot hit a button and send a long sequence of pitch bend messages to automatically bend a virtual guitar string or to play a convincing guitar vibrato. Punters (like me) have trouble playing good guitar articulations, but we do know how to hit buttons at the right time. Why not store and send decent sounding pitch bend and controller values in real time as the result of a simple button press?

The fourth use case is an example of the “heavy lifting” potential of user code. Many sample players and libraries (like the Vienna Symphonic Library) assign a range of keys to articulations or other methods of dynamically altering the sound of a notes played elsewhere on the keyboard (i.e., the actual melody or chord). I claim that it’s a more natural gesture to control articulations through the keyboard than to reach for a special function button on the front panel. User coding would allow the redefinition of key presses to articulations — possibly playing a different sample or sending a sequence of controller messages.

Let me give you a more specific example, which is an experiment that I have in progress. Yamaha instruments have Megavoices. A Megavoice is selected as a single patch. However, different samples are mapped to different velocity ranges and different key ranges. As such, Megavoices are nearly impossible to play through the keyboard. Nobody can be that precise consistently in their playing.

I’m prototyping a MIDI controller that implements articulation keys to control the mapping of melody notes to the individual Megavoice samples. This involves mapping MIDI notes and velocities according to a somewhat complicated set of rules. Code and scripting is made for this kind of work!

Finally, the Yamaha Montage demonstrates how today’s MIDI controllers are functionally limited. Yamaha have created excitement promoting the “Superknob” macro control. Basically, the Superknob is a single knob that — among other things — spins the parameters which have been assigned to individual small knobs. Please note “parameters” is plural in that last sentence.

Today’s MIDI controllers and their limited configuration paradigm typically allow only one MIDI message to be assigned to a knob at a time. The target VST or whatever must route that incoming MIDI value to one or more parameters. (The controllers’ engineers have shifted the mapping problem to the software developers at the other end.) Wouldn’t it be cool if you could configure a controller knob to send multiple MIDI messages at once from the source? Then, wouldn’t it be cool if you could yoke two or more knobs together into a single macro knob?

If you had user coding, you would be there already.

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

Inside the DGX digital pianos

Thanks to SeaGtGruff in the PSR Tutorial Forum, I took a chance to deep dive a few members of the Yamaha DGX portable grand family. The DGX is a “value” line of electronic keyboards offering a digital piano experience at affordable prices.

Polyphony depends on the available processing power and memory bandwidth (i.e., the ability to transfer samples from wave memory to the processing elements).

Here is a small table for some models in the DGX product line. I took a look at the service manual for models with distinctive features, e.g., DSP effects or no DSP effects. The analysis came out rather nice, so I decided to post it here, too.

           Poly Panel XGlite Kits REV CHO DSP IntMem  Processor
           ---- ----- ------ ---- --- --- --- ------  ------------------
DGX-200     32   108   480    12    8   4   0  352KB
DGX-300     32   122   480    12    8   4  38
DGX-500     32   122   480    12    8   4  38         HG73C205AFD SWX00B
DGX-520     32   127   361    12    9   4   0  875KB
DGX-530     32   127   361    12    9   4   0  875KB  YMW767-VTZ  SWL01T
DGX-620     32   127   361    12    9   4   0  875KB
DGX-630     64   130   361    12   29  24 182 1895KB
DGX-640     64   142   381    12   35  44 238 1895KB  R8A02032BG  SWX02
DGX-650    128   147   381    15   35  44 237  1.7MB  R8A02042BG  SWX08
DGX-660    192   151   388    15   41  44 237  1.7MB

Yamaha has several proprietary processors. The least powerful are the SWLs, which are normally used in the entry-level portables. The SWL does not have DSP support for variation/insert effects. Samples are transfered on the same bus as CPU instructions — low bandwidth. SWLs make for inexpensive products, but no DSP effects and relatively low polyphony.

The PSR E-series typically uses SWL01 variants such as the SWL01U in the PSR-E443. It’s interesting that the DGX members using the same SWL01 processor do not have DSP effects. The SWX processors have integrated DSP capability; the SWLs do not.

The SWX family of processors have dedicated buses/memories and a hardware digital signal processor for effects. (I deliberately avoided the acronym “DSP” here to avoid confusion with the way “DSP” is used in arranger terminology.) The SWX08 has three dedicated buses and memories:

  • SHA2 CPU bus and memory (CPU program and data)
  • Wave ROM bus and memory (voice samples)
  • DSP RAM bus and memory (working memory for digital signal processing)

The extra memory and external connections increase cost. However, this is a lot more processing power and memory bandwidth than the lowly SWL!

The SWX00 and SWX02 are earlier members of the family and aren’t used in new designs anymore. It’s too soon to see a service manual for the DGX-660, so any further comment is an educated guess. I suspect an SWX08 operating at a higher clock rate.

The SWX08 is used in the PSR-S750 and the SWX02 is used in the MOX. In both of these cases, the SWX is the main CPU and tone generation is handled by a single SWP51L tone generator chip, not the SWX. Because Yamaha had its own internal IC fab then these products were designed, Yamaha incorporated its own proprietary processor instead of an off-the-shelf Renesas R8. This is an effort to increase Yamaha’s own fab volume. Yamaha may even be using SWX chips in which the processor is good and the DSP is faulty and fused out!

Analysis isn’t complete without looking at wave memory size:

Model   Wave memory                Size         Description
------- -------------------------- ------------ ------------------------
DGX-500 K3N7V402GB-DC10            64Mbit  8MB  Mask ROM 64Mbit (wave)
DGX-530 Lapis Semi MR27V12852L     128Mbit 16MB 8Mx16b P2ROM (prog+wave)
DGX-640 Lapis Semi MR27V12852L     128Mbit 16MB 8Mx16b P2ROM (wave)
DGX-650 Spansion S29GL256S90TFI020 256Mbit 32MB 16Mx16b NOR flash (wave)

Memory size affects the number and quality of the voices. More memory allows more voices, more samples per voice, longer samples per voice, etc. Pianos are especially memory hungry. So, improvements in piano voices usually require significantly more wave memory. SWX wave memory is 16-bits, data parallel.

Now that Yamaha have sold off their IC fabrication capability, they aren’t under the same pressure to use proprietary processors. It’ll be interesting to see if Yamaha adopt ARM for tone generation and/or effects in value product lines. In the Reface line, they have adopted ARM for user interface and control. Yamaha’s Mobile Music Sequencer on iPad has a fairly completely XG engine, so Yamaha certainly aren’t strangers to tone generation on ARM!

If you enjoyed this article, you might also like this overview of the Tyros/PSR arranger family architecture.