MODX: Sampling Genos pipe organ

Sample Robot for Montage (SRM) is a very useful addition to the Yamaha MODX (Montage) product ecosystem. After my initial start-up experience:

I went on to produce two sampled pipe organ voices: Organ Prinzipal and Organ Pleno.

Prinzipal and Pleno

Anyone who sees a pipe organ — especially a cathedral-sized instrument — is immediately impressed by its large array of pipes. The open metal pipes are the principal pipes which give a pipe organ its distinctive sound. Pipes are arranged in ranks, kind of like the individual drawbars on a Hammond B3 organ (vice versa, really!) Hammond-ites know that the length of a pipe determines its pitch and that each rank has a reference pitch (measured in feet) that specifies the rank’s harmonic character when blended with other ranks.

I generally use pipe organ to lead congregational singing. Conventional wisdom for hymn accompaniment is simple: Use principal pipes with simple, foundational pitch: 8′, 4′ and 2′. Although this sounds plain vanilla, the sound is not cluttered by harmonics that may confuse the congregational ear. This kind of organ registration is often called a “principal chorus.” Due to the deep history of pipe organ in Western Europe, a French, German or Italian name may be used instead, e.g., “Prinzipal.”

Old school players understood the need to built energy and drama during a tune, too. Thus, an organist might add non-fundamental harmonics during the final verse and chorus. Think, Hammand organ “whistle”, 1 3/5′, 1 2/3′, etc. Often, a group of such ranks is brought in, a “mixture.” If the mixture consist of principal pipes, then the resulting registration is called a “full principal chorus.” This registration has many names, too, such as “Organo Pleno” or “Plein Jeu.”

In case you’re wondering, reed stops are rarely used for hymn accompaniment, if ever. Flute pipes are occasionally added for quiet meditative hymns. Principals are the real work horses.

Yamaha Musicsoft offers a terrific PSR expansion pack: Church Organ. Someone put a lot of love and care into this pack! I bought a PSR-S950 based upon the strength of the Church Organ pack. Fortunately, the PSR-S970 version of the pack also loads on Yamaha Genos™ and I’ve been able to take advantage of its sounds for practice and live play.

My goal here is to sample the Organ Prinzipal and Organ Pleno voices on Genos and to use those voices on MODX.

Sample, test, repeat

Sampling with SRM is reasonably straightforward. If you read my previous blog posts, then you already have the general drift. I recommend reading the SRM manual, too.

I liked the sampling strategy and key layout used in the Apple Symphony Orchestra pipe organs and arrived at a planned layout of keybanks:

KB#  Low  High  Center
---  ---  ----  ------
 1    C-2  C#0      C0
 2    D0    E0     D#0
 3    F0    G0     F#0
 4   G#0   A#0      A0
 5    B0   C#1      C1
 6    D1    E1     D#1
 7    F1    G1     F#1
 8   G#1   A#1      A1
 9    B1   C#2      C2
10    D2    E2     D#2
11    F2    G2     F#2
12   G#2   A#2      A2
13    B2   C#3      C3
14    D3    E3     D#3
15    F3    G3     F#3
16   G#3   A#3      A3
17    B3   C#4      C4
18    D4    E4     D#4
19    F4    G4     F#4
20   G#4   A#4      A4
21    B4   C#5      C5
22    D5    E5     D#5
23    F5    G8     F#5

In Sample Robot concepts, this means starting at C0 (MIDI note number 24) and sampling every three semi-tone steps up to C5 (MIDI note number 84). With the exception of the lowest and highest note, a sample is never transposed (pitch shifted) more than a single semi-tone. I also liked the long sample time in the Apple approach and settled on a 12 second capture time plus 0.5 seconds release (12.5 seconds total of capture). I didn’t use the release samples, but I wanted to see and hear them as a learning experience.

If you change the MIDI note range or step number in SRM, be sure to click the Step button! I got hung up and couldn’t figure out why SRM didn’t “see” new note range limits. This really should be mentioned prominently in the SRM manual. I assumed that SRM would simply take what it was given…

These basic sampling parameters can be set using the SRM project wizard. Or, you can set them individually on the various property tabs. I went through the wizard first, then fine tuned individual parameters later.

The virtual keyboard at the bottom of the screen shows the notes to be sampled (black and white) and the notes for which samples have been taken (notes with a blue square). The dark grey notes are not sampled. [Click on images to enlarge.]

Before going further, I must state that I made several attempts at sampling each voice. I decided to retain the volume differences (level nuances) across the multisample. I turned Auto-gain OFF and set the audio input level manually. Thanks to the waveform display, I could find any obviously clipped sample. I also did a spot check of questionable samples in Sound Forge Studio. I eventually arrived at a set of samples for each voice in which one (or a few samples) were max’ed and the rest of the samples in the set fell in line as synthesized by Genos. I believe this strategy preserved the natural levels across the pipe organ key range.

Loop quality

I let SRM do the looping. I know from experience that looping pipe organ samples is not easy and is very time consuming. Plus, I wanted to see how well SRM would do.

The Display buttons below the waveform pane control waveform annotations. Enable the Loop button and SRM shows the loop in (start) and loop out (end) points for a sample. I used the default cross-fade loop settings as shown in the screenshot.

SRM’s loops sound decent. There are a few samples where a bit of a surge could be heard, but no obvious bumps or clicks. SRM’s loops are shorter than the Apple loops and that is a little disappointing. However, there aren’t any short cycle loops that lose the dynamic timbral quality of a pipe organ. I think they are all useable as they are without any manual tweaking. My opinion is based upon what I auditioned in SRM and what I heard at the MODX keyboard itself.

Normalization and gain change

Really good thinking went into this part of SRM. SRM gives you several options for normalizing or applying a gain factor across one or all of the samples in a project. (Please see the manual for details.)

Normalization works as expected. It applies a gain factor that brings up the an entire sample such that the peak is 0dB or a custom peak level which you set.

Gain change is just what I needed for this project. I wanted to maintain the relative difference in level between samples — just make everything uniformly louder without introducing clipping distortion. In order to do this, I needed to know the highest dB level for a group of samples then apply a gain factor everywhere to pull all samples up. SRM provides a few different options for finding the overall peak level, e.g., “Find highest dB Level in selected Project”. Suggested improvement to SRM: After analyzing the samples, SRM should display the peak level for each sample in the property pane along with the sample’s other properties.

I like the option “Warn if clipping will occur.” Features like normalization and gain change would make SRM quite useful and necessary even when starting out with old samples borrowed from a VST software instrument. 🙂

Export and import

I exported each voice as a Montage LIBRARY file (X7L) and loaded each LIBRARY file into MODX. One nice MODX feature is the ability to audition Performances in a Library. This is a quick way to sanity check new waveforms (and underlying samples) on MODX.

There were several iterations at this stage, too. It took a few iterations to get the desired key range for sampling. The initial key range was one octave too high. I like to have three octaves in the left hand and two octaves in the right hand for hymn accompaniment as I’m faking organ pedals in the left hand. I used MIDI OX to check the high and low MIDI note numbers, then I reset the lower and upper note sampling limits in SRM.

Thankfully, any and all iterations are fast. SRM can sample the entire key range in about 5 to 6 minutes with the chosen capture time for each sample (12.5 seconds). This is welcome and needed time to get a cup and give my ears a rest!

Finishing and sanding

The new waveform needs to be incorporated into a finished MODX Performance because the SRM-generated Performance in the Library file is very, very basic. (Actually basic is a good thing for quality assurance and auditioning.)

In one of my earlier experiments, I had fashioned a pipe organ Performance (Plein Jeu). I repurposed the Performance even though I had long since blown away the Plein Jeu waveform.

My process has (roughly) the following steps:

  1. Load the LIBRARY file generated by SRM.
  2. Audition the generated Performance in the Library.
  3. Import the generated Performance and its waveform into USER memory.
  4. Select and edit an existing Performance, hopefully one which is close to the desired result.
  5. Save the new Performance under a new name.
  6. Edit the effects or any other Performance Common parameters.
  7. Edit the Part information within the Performance.
  8. Edit the elements in the new Performance to use the new waveform.
  9. Edit the new waveform to change its name (category and subcategory), to extend the lower note limit of the lowest key bank, and to extend the upper note limit of the highest key bank.
  10. Make any other necessary tweaks to the new waveform.
  11. Make tweaks to the Element programming or effects.
  12. Save the new Performance.

Clearly, prior experience with Performance and Part editing is a real plus at this stage. Ramp up slowly! Gain experience. Rome wasn’t built in a day.

OK, get ready for TMI. When you load a library, MODX seems to load incoming waveforms into wave memory on a contingency basis. This is why you can audition new Performance waveforms in a library. You can even make a contingent waveform part of a USER Performance. If you haven’t explicitly imported the Library Performance and its (contingent) waveform from the Library and you delete the Library, kiss the waveform good-bye; it’s deleted, too.

When you’re ready to commit to a new waveform, you must explicitly import the parent Performance and the new waveform within to USER Memory via the Data Utility.

A few comments for the developers

Nice work! Here are a few refinements.

Please add the ability to directly monitor the incoming sample stream. It would greatly aid set up and we can listen for audible clipping distortion when setting levels.

Display the peak level in sample properties. This will make it easy to find samples which are (potentially) clipped.

The Project Datapath in the Preferences dialog does not seem to apply everywhere and it isn’t persistent i.e., it is reset to the path “C\Users\xxx\Documents\SKYLIFE\SampleRobot6\Data.” This file path should be used consistently.

A native English speaker should take a quick pass through the manual, which is already pretty darned good. There are occasional spelling and simple grammatical errors (e.g., possessive versus plural). The same reviewer should check the application for spelling errors; there are misspelled words.

The manual should inform the user to press the Step button after changing the MIDI note limits for sampling.

What’s next?

When I A/B’ed the expansion pack organs against the Apple Symphony Orchestra pipe organ, I had to give the quality edge to Apple. I’ve already snagged another voice from the Symphony Orchestra Jam Pack. At the very least, I’ll use Sample Robot for Montage to change gain, to layout the key banks and to generate a Montage LIBRARY file. It shines at these operations and really speeds up the work.

Copyright © 2018 Paul J. Drongowski

MODX: Going to the library

After resolving yesterday’s Sample Robot teething issues, I pulled together two new sampled pipe organ voices. Each voice is stored into its own MODX Library file as exported by Sample Robot for Montage (SRM).

At this point, I realized that libraries and voices are going to stack up quickly. So, I dipped into a few on-line resources:

Essentially, a MODX (or Montage) Library is a way to bundle up related Performances, waveforms, arpeggios and other data into a single package. Bundling makes it easy to save, distribute, and load Performance-related data.

Page 23 of the MODX Reference Manual contains a diagram depicting the contents of USER Memory and the relationship of USER Memory to USB flash drive file types like USER files and LIBRARY files. This diagram and its accompanying text is meaningful to engineers, but is somewhat confusing to a regular user who wants to get a job done! Diagram aside, it’s worth noting that there are two main file types that are important to our data management: USER files and LIBRARY files. Each file type has its own file name extension:

                  Montage  MODX
                  -------  ----
    USER file        .X7U  .X8U
    LIBRARY file     .X7L  .X8L

Yamaha have continued their practice of bumping the file format version number with each new generation of synth. Thus, the MODX USER file extension is “.X8U” versus Montage’s “.X7U”. I won’t distract you with compatibility details except to note that MODX can load Montage USER and LIBRARY files. Good thing since Sample Robot exports Montage USER and LIBRARY files (.X7U and .X7L).

There are two primary file operations:

    LOAD: [UTILITY] → [Contents] → [Load]
    STORE/SAVE: Press [STORE] button, or 
                [UTILITY] → [Contents] → [Store/Save]

I think of USER Memory as working storage that holds my most frequently used Performances (and other stuff). It’s important to stay backed up, especially when working with a new keyboard. I back up daily, writing USER memory to a USER file. It’s not that the data is so important — I can’t afford lost time. Lost data is lost time.

A USER file contains:

    User Performance (640 max)
    User Arpeggio (256 max)
    User Motion Sequence
    User Curve
    User Live Set
    User Micro Tuning
    User Waveform
    Utility Settings
    Quick Setup
    User Audition Phrase

That’s pretty much the whole ball of wax from USER Memory — a complete snapshot.

A LIBRARY file is similar to a USER file. A LIBRARY file contains:

    Performance (640 max)
    Arpeggio (256 max)
    Motion Sequence
    Curve
    Live Set
    Micro Tuning
    Waveform
    Audition Phrase

A Library doesn’t contain Utility Settings or Quick Setup data. You wouldn’t want a Library to disturb these settings when it’s loaded.

What’s a little confusing about the USER Memory diagram is that it shows (eight) Libraries as part of USER Memory. Maybe it’s better to think of USER Memory as “Internal Memory”. By the way, some writers refer to this memory as “read only,” kind of, sort of. The correct term is “non-volatile,” i.e., memory contents aren’t lost when power is turned off. This terminology gets around writer-ly semantic problems. Internal memory can be read and written. It just doesn’t lose its mind when power is removed.

A LIBRARY file, since it’s a file, can be loaded and saved. During a load operation, the contents of a library is written (stored) into one of the eight available library slots in USER Memory. The contents of the USER Performances, etc. in USER Memory are not over-written. From my point of view, this is great because I don’t want anything messing with my work! We can, however, save User data to a LIBRARY file.

The final piece of the puzzle is how to bring selected pieces of a memory-resident Library into USER Memory. That’s where Library import comes into play:

    [UTILITY] → [Contents] → [Library Import]

The Import to User Bank operation:

Copies the selected Performance in the User Bank. User Waveforms and User Arpeggio which are used in the selected Performance are copied to the User Bank as well. This button is displayed only when any of the Performances is selected.

Reading this last sentence from the MODX Reference Manual rang a bell in my head.

When I auditioned my first attempt at a pipe organ voice, I loaded the library generated by Sample Robot, but did not import the Performance. I even created a User Performance that referred to the new waveform and it played perfectly. However, was the new waveform really in USER Memory? No. I deleted the Library from USER Memory and the waveform disappeared, too. The User Performance which once referred to the waveform did not sound anymore. Edit revealed an empty space in the voice Element which once referred to the new waveform.

Actually, this is quite good behavior. In order to quickly audition new waveforms produced by Sample Robot, I just need to load the Library file with the new waveform. If I don’t like the sound, I can easily destroy the evidence by deleting the library from its slot in USER Memory. If I like the sound, then I can import the performance from the library to the USER Bank and build on top of the new waveform.

I’m glad that I undertook this experiment before going further. I want to keep the Principal 8′, 4′, 2′ waveform and Performance, and I want to audition any new waveforms without disturbing my earlier work. With load, save and import in mind, I think I see the way forward.

Copyright © 2018 Paul J. Drongowski

Here are a few helpful notes from the YamahaSynth.com site. Special thanks for to Phil Clendeninn and Jason!

A Library file can be loaded without overwriting your USER AREA. A Library file can install data into one of eight LIBRARY locations in your Montage/MODX.

When you place something in a Library location it’s there with everything it needs to be played (just like your Preset data always has everything it needs). But, you can rewrite this, later, if you change your mind or wish to add to it!

To create a LIBRARY you must assemble what you wish to place in that Library into your USER area. From the USER area you can SAVE as a “Library File” — this creates a .X7L file on your USB stick. Once you have that file, you can then install it to one of 8 Library locations.

You can then audition the sounds, decide which ones you think are “keepers”. The ones you want to keep you can IMPORT to USER. Why would you want to import them into USER? Because you assemble the data that you want to keep and then create your own custom library.

You can delete unwanted Libraries by entering the Library folder, select an item, tap “Delete”.

You can assemble data from a Library by using the “Import Library” function (Montage version 1.10 and later): UTILITY → Contents → Library Import

Each library can only be changed in its entirety. You cannot delete individual performances within a library – you can only delete the
entire library. You cannot add one Performance to an existing library. Libraries can only be installed, deleted, or created. Libraries cannot be edited on MODX.

The Library Banks contain the Performances you have added as Libraries. The Library Banks are initially empty. (A Library can be added by importing a library file.)

  1. Install library to a library slot (the one you want to add to)
  2. Backup then clear the user area so it is empty
  3. Create the one user Performance you want to add to the library (eventually) in the user area. The user area now has one Performance you want to add to the installed library.
  4. Import the entire Library you installed in step 1 to the user area. The act of “import” does not overwrite the user area. It will make sure all necessary content in the library, including custom waveforms, are copied (imported) into the user area.
  5. Create a new library from the user area. This new library will be the original one plus the one (in this example) user Performance you wanted to add.
  6. Delete the previous library
  7. Install the new library

MODX: Get started with Sample Robot

In my last post, I created a new Yamaha MODX Performance from a handful of WAV files. The new Performance had shortcomings, mainly due to short loops in the samples themselves. I tossed the first one away. What the heck — it’s only bits. 🙂

Last time, I did all of the work on the MODX itself through its user interface (UI). My experience was generally good, but I had to enter a lot of detail directly into the UI. Today, I’m moving on to Sample Robot for Montage with hopes of making the job easier.

Sample Robot by SKYLIFE is a spiffy tool for copping sounds from old keyboards or any other sound source. Yamaha formed a parnership with SKYLIFE resulting in Sample Robot for Montage, a version of Sample Robot that is tailor-made for Montage (and MODX).

Even though Sample Robot for Montage — which I will refer to as “SRM” — has the ability to capture multisamples automatically from MIDI keyboards, it has two other capabilities of immediate interest and purpose:

  1. SRM can import WAV/AIFF files into a multisample.
  2. SRM exports the finished result as a Montage User file (X7U) or a Montage Library file (X7L). MODX loads both of these file types.

Thus, SRM looks to be and is a promising path for creating new MODX Performances from existing WAV/AIFF files.

At this point, I must admit that I’m still getting my head around the Montage/MODX library concept. [This subject receives scant space in the documentation, unfortunately.] Thanks to Phil’s tutorials on YamahaSynth.com, I grok their basic purpose — to bundle related Performances, waveforms, arpeggios, etc. into an easily distributed and imported package. I have much to learn about this subject especially how to exploit Montage/MODX libraries for data management during sound development. More about this some day.

Sample Robot for Montage: Set-up

I downloaded SRM from the Yamaha Musicsoft site. SRM is free to Montage (and, apparently, MODX owners) until March 2019. I can’t argue with the price!

The download is a ZIP file containing both the Windows and Macintosh versions of SRM. The Musicsoft site provides a Yamaha code number and a serial number, both of which are required for activation. Rikki don’t lose that number. 🙂

Install is easy — just click through the installation wizard. The Windows installer is about 200MBytes, the bulk of which are example projects.

You will be asked to activate after launching SRM for the first time. Enter all of the magic numbers. SRM starts up with a preloaded example. I peeked and poked at the example for a little while and quickly discovered that an audio device wasn’t assigned. I eventually settled on “Microsoft Sound Mapper – Output”. Unfortunately, Windows 7 ran that damnable audiodg (Audio Device Graph Isolation) process, taking a long time to complete. Further, I had to restart SRM before getting audio through the monitors. I can’t fault SRM for this. Microsoft? Hello, it’s 2018?

Upon start-up, SRM displays a wizard leading you through the task of setting essential project characteristics like sample rate and such. In a moment of hubris, I cancelled the wizard the first time through and found the app to be somewhat inert. Me-thinks SRM needs to initialize its environment and clicking through the start-up wizard at least once does the trick.

SRM: The warm-up

I strongly recommend a quick read through the SRM manual for no other reason than to become familiar with its concepts and terminology. The terminology is fairly standard, but it differs a bit from Montage/MODX terminology. For example, it appears that your SRM “multisamples” will become Yamaha waveforms and inherit multisample names. This is where familiarity will breed expertise, I expect.

I also suggest taking a tour around the SRM user interface. The “Info and Settings” pane is a property inspector that shows important properties for the selected project, multisample or sample. Then, check out the virtual keyboard. With a two button mouse, left clicking/holding a key plays the sample associated with the note. (Notes with a blue box marker have a sample assigned.) Right clicking a key selects the sample associated with the key.

The Osc, Wav, MIDI and Panic radio buttons seem to choose what the virtual keyboard sends and does. Try Osc and you’ll hear a pure reference tone at the selected pitch — a good feature when working with pitched multisamples. I don’t know about you, but my sense of pitch goes all whack after 30 minutes or so of intense work.

Today’s protein on the plate

I dug another old chestnut out of my hoard of pipe organ samples. Apple’s Symphony Orchestra Jam Pack (a blast from the past, eh?) has several mighty fine church organ patches. Even though it’s Garageband, the church organ is an EXS24 virtual instrument. If you know where to look, you can find the samples and you can play/inspect the virtual instrument in Logic via EXS24.

Apple licensed pretty decent samples. I once tried to determine their original source and vaguely remember Sonic Reality. Others thought VSL lite (circa 2003). Association with Garageband unfairly cheapened their reputation.

The samples are taken from three principal ranks (8′, 4′ and 2′) in unison. Without deep diving organ registration, a voice consisting of principals is good for hymn accompaniment. [Principals, BTW, are the metal pipes that give a pipe organ its distinctive timbre.] Thanks to the even footages, there aren’t a lot of weird harmonics to clutter up the sound.

A Dave Stewart moment. Many synthesizer pipe organ patches are reedy. They want to impress the buyer with bombast (i.e., “Phantom of the Opera” AKA Bach’s Toccata and Fugue in D minor). Reeds and strings are inappropriate for hymn accompaniment. Flutes, sometimes. Pure tones, pure tones.

Here is a table summarizing the sample files:

KB#  Low  High  Center  File
---  ---  ----  ------  -----------------------
 1   C-2   C#1      C1  Prin_842_kb1_c1.aif
 2    D1    E1     D#1  Prin_842_kb2_d#1.aif
 3    F1    G1     F#1  Prin_842_kb3_f#1.aif
 4   G#1   A#1      A1  Prin_842_kb4_a1.aif
 5    B1   C#2      C2  Prin_842_kb5_c2.aif
 6    D2    E2     D#2  Prin_842_kb6_d#2.aif
 7    F2    G2     F#2  Prin_842_kb7_f#2.aif
 8   G#2   A#2      A2  Prin_842_kb8_a2.aif
 9    B2   C#3      C3  Prin_842_kb9_c3.aif
10    D3    E3     D#3  Prin_842_kb10_d#3.aif
11    F3    G3     F#3  Prin_842_kb11_f#3.aif
12   G#3   A#3      A3  Prin_842_kb12_a3.aif
13    B3   C#4      C4  Prin_842_kb13_c4.aif
14    D4    E4     D#4  Prin_842_kb14_d#4.aif
15    F4    G4     F#4  Prin_842_kb15_f#4.aif
16   G#4   A#4      A4  Prin_842_kb16_a4.aif
17    B4   C#5      C5  Prin_842_kb17_c5.aif
18    D5    E5     D#5  Prin_842_kb18_d#5.aif
19    F5    G8     F#5  Prin_842_kb19_f#5.aif

The note names (numbers) follow the Yamaha convention. This information was taken from Logic EXS24.

I did a little bit of prep work. I renamed the AIF files, putting the center note into standard form. I checked the samples in Yamaha Tiny Wave Editor (TWE) to see if they were looped. (They were.) I normalized the samples using TWE. Turns out, SRM can normalize and I could have accomplished this task in SRM instead.

The Apple samples are decent:

  • Stereo, 44100Hz, 16-bit
  • Nice long samples (12 to 19 seconds each)
  • Long loops, no audible bumps

This one has the potential to be a keeper.

SRM: Doing the business

Time to get down to business. I created a new project named “Principal842”. Please see the screenshot below. [Click images to enlarge.] I like SRM’s “Battle Zone” visual theme; it’s one of the few games that I still relate to.

Drop into the “Import/Export” menu, select the AIF files, click the Import button, and what the?

Admittedly, what came next were my most frustrating moments. I either imported one individual sample file or just the last sample file in the selected list. Arg! Long story short, it came down to finding the right combination of import settings.

The default Copy setting is “Copy to filenames’s Root Key (if available), else to filename’s Root Key”. Grammar issue aside (“filenames'” is grammatically correct), I tried “Copy to filenames’s Root Key” with success.

The first screenshot shows the state of the project after a successful import. The samples are laid out correctly across the keyboard as derived from the sample file names. Further, SRM did a smashing job with the keybank ranges.

With everything in order, dive into import/export and select Montage Library (X7L) format for export. I went with X7L instead of X7U (User format) because I didn’t want to overwrite my User area. Yes, I’m thoroughly backed up, but why take a chance. I also wanted to get my feet wet with libraries.

I copied the X7L file to a USB flash drive, inserted the flash drive into MODX and loaded the library file. The X7L Library file is sizeable due to the waveform inside. The library file has the name “Principal842”, same as the SRM project. The Library appears in Category Search under that name. SRM generated a basic Performance, too.

I tried the basic Performance and was satisfied with the raw material. I then dove into the left-over husk of yesterday’s abandoned experiment. The husk (Performance) began life as the “Church Organ” preset voice. I changed its waveform to the new one and made a few tweaks here and there. Voila! A decent pipe organ voice suitable for hymn accompaniment.

Sometimes a new waveform requires polish. The sample levels may be uneven across the keyboard or a sample may be out of tune. The MODX UI is well up to the job allowing tweaks for level and fine pitch.

I wanted to post the finished project. However, given the commercial origin of the samples (Apple), I don’t want to violate intellectual property (IP) rights. Instead, here’s a quick MPEG-4 demo (m4a).

Copyright © 2018 Paul J. Drongowski

MODX: Creating a new waveform

Whether it’s scientific papers or Web how-to’s, you would think that no one ever made a mistake or tried something and failed. The path to success is really crooked.

So, here is a blog post about an experiment that almost worked out.

I’ve been hoarding pipe organ samples for decades (literally). For example, some of my collected samples are from the venerable Yamaha TX16W. The TX16W samples are small enough to fit into the 1MByte expansion waveform of my TG-500. Yes, 1MByte. The 1GByte MODX expansion waveform memory looks positively enormous in comparison.

The scenario that I describe here creates a new waveform using nothing more than the Yamaha MODX user interface (UI). Back in the day, I created voices through the TG-500’s 24×2 line character display. The MODX UI is heaven in comparison. Yeah, I’m going to give Sample Robot for Montage a spin eventually. Not today.

Where to start? I started with the free “CMS Classic Organ” samples distributed by CSM Sounddesign. Thank goodness I picked up a little German years ago because the English CMS pages are under construction…

The samples are part of the “CMS Classic Organ” expansion pack (PPF) for Yamaha Genos™ — not the typical place where one would start. The samples are relatively small, the demos sounded OK, and the price was right. Four steps are needed to extract the samples:

  1. Find the sample files and the UVF (XML) voice description files in the Yamaha Expansion Manager pack database.
  2. Extract keybank information from the UVF file.
  3. Rename the sample files to meaningful names, e.g., “Plein_kb0_C1.raw”.
  4. Convert the sample files to Microsoft WAV format.

Admittedly, this is more work than the average Jane or Joe would do. But, hey, this is a learning exercise, plus a chance to dink around with Genos stuff, too.

The next preparation step is important no matter how you obtain your sample files. Make a table summarizing the keybank information:

KB#  Low High  Center  Size  LoopStart LoopEnd  WAV file
---  --- ----  ------  ----- --------- ------- ------------------
 0   C-2  D#1    C1    27627     25594   27623 Plein_kb0_C1.wav
 1    E1   B1    E1    31332     29717   31328 Plein_kb1_E1.wav
 2    C2  D#2    C2    31816     31136   31812 Plein_kb2_C2.wav
 3    E2   G2    E2    25030     24757   25026 Plein_kb3_E2.wav
 4   G#2   B2   G#2    30869     30652   30865 Plein_kb4_G#2.wav
 5    C3  D#3    C3    30744     30571   30740 Plein_kb5_C3.wav
 6    E3   G3    E3    24084     23812   24080 Plein_kb6_E3.wav
 7   G#3   B3   G#3    17917     15783   17913 Plein_kb7_G#3.wav
 8    C4  D#4    C4    20514     20172   20510 Plein_kb8_C4.wav
 9    E4   G4    E4    22128     21655   22124 Plein_kb9_CE4.wav
10   G#4   B4   G#4    24853     24424   24849 Plein_kb10_G#4.wav
11    C5  D#5    C5    26788     26615   26784 Plein_kb11_C5.wav
12    E5   G8    E5    27574     27368   27570 Plein_kb12_E5.wav

You’re gonna need this. Trust me, once you get into the guts of waveform construction, you don’t want to be puzzling out the center note, etc. The CMS samples are 41000Hz, 16-bit, mono, LINEAR16.

MODX needs looped samples. I’ve run into this issue before when creating PSR/Genos voices via Yamaha Expansion Manager (YEM). You would think that loop point data is standard in WAV. It isn’t. Good old Yamaha Tiny Wave Editor (TWE) worked for PSR/Genos, so I reached for TWE. Fortunately, TWE let’s you enter loop points numerically and I entered the loop start and end points extracted from the UVF file. [Not so crazy as I may seem after all.]

I transfered the looped sample files to a USB flash drive and inserted the flash drive into the MODX. I brought up a simple existing pipe organ Performance, Church Organ, which has two voice elements. I silenced the second element since it won’t be needed. Select the first element. Take a deep breath and touch the New Waveform button.

MODX displays a screen allowing you to select and load the WAV file for the first keybank. As you can see in the screenshot, you can easily get into the weeds if you haven’t come prepared with a table like the one shown above. [Click images to enlarge.]

After loading the correct file, MODX displays the keybank editing screen. Now, it’s time to enter the key range and center note information from the first row in the table. Then, touch Add Keybank, rinse and repeat twelve more times. If you make a mistake, touch the Keybank number field and scroll the existing keybanks. When all looks correct, press the EXIT button.

When MODX creates the waveform, it gives the new waveform the same name as the first sample file. I recommend renaming the waveform and specifying the waveform Category and Subcategory using the appropriate fields. I named the waveform “Plein Jeu,” the French name for an organ registration consisting of principal pipes. Good naming and data management will eventually pay off.

OK, so what went wrong?

  1. In my quest for CMS samples, I extracted voice information for a few other voices. Then, stupidly, when entering keybank information, I started with the wrong freakin’ table. I quickly realized my mistake because the center note information and what I was hearing were whack. Thank goodness for the ability to scroll through keybanks.
  2. The CMS loops are très short. Short pipe organ loops lose all of the nice shifting harmonic stuff that we hear from the real deal.
  3. The split points between keybanks are sonically rocky. This may be due to the unorthodox key layout. The center note is supposed to be the middle of the key range, not the lowest note in a range. Layout can be fixed and uneven levels can be fixed. But, I hear differences in basic tonality, too. Not good, not fixable.
  4. The organ voice plays back too quietly even with all of the levels max’ed out. I forgot to normalize the samples.

Lack of normalization I can fix. TWE (or any other DAW) performs normalization. The short loops, however, are a deal breaker and further effort with the CMS pipe organ samples is not worth it. I’ve got better candidates in the treasure hoard.

Throw the first pancake away

When you flop on your kiester, what do you do next?

In this case, delete the waveform. Press the UTILITY front panel button and touch the Waveform folder.

MODX displays the waveforms that you’ve created. In this example, it shows the “Plein Jeu” waveform. Touch the on-screen Job button and select the waveform to be deleted. Then, touch the Delete button.

MODX display a dialog box requesting confirmation. Touch Delete and wait for the delete operation to complete.

When it’s gone, it’s gone. If you edit the parent Performance, the waveform field is empty.

Now, let’s try this again with feeling. Or at least, normalized waveforms. 🙂 Stay tuned.

Copyright © 2018 Paul J. Drongowski

Yamaha MODX: Creating a split

Yesterday, we learned how to make a two voice layer and how to control one of the Parts using the Super Knob.

Today, I go over the steps to create a two Part split:

1. Press the CATEGORY button and find the Performance that will be used as the left hand voice. For this example, I chose a single-Part Performance, Small Section, from the Strings category. Press PERFORMANCE (HOME).

2. Touch the on-screen plus box button to add the second Part which will be used as the right hand voice. I chose Oboe 3 from the Woodwind category. Press ENTER to confirm your selection.

3. Now it’s time to set the split point. Touch the upper note limit in Part 1. MODX displays a contextual menu on the left-hand side of the screen. Touch the Keyboard menu item, which turns green when selected. Now, play the keyboard key which is the top-most key in the desired left hand zone. If you make a mistake, toch a different key. Press EXIT when finished.

4. Notice that the upper note limit for Part 1 has been changed. The upper note limit in the example is A#2.

By the way, instead of touch the Keyboard menu item, you can set a note limit by spinning the data dial. It’s you choice.

5. Now touch the lower note limit for Part 2. MODX, again, displays a contextual menu with one menu item, Keyboard. Touch the Keyboard item, turning it green (highlighted). Play the keyboard key which is the bottom-most key in the right hand zone (B2 in this example). Press exit when finished.

Play the finished Performance. You should hear the instrument change from Part 1 to Part 2 (or vice verse) as you play across the split point.

If you like the result, press the STORE button and save your new Performance.

While we’re here, let’s change the reverb algorithm. The system-level reverb parameters belong to the Performance as a whole. Thus, we need to make changes in Performance edit mode.

1. Touch the Performance name to select the entire Performance. MODX highlights the box around the Performance name to indicate that the Performane is selected.

2. Press the EDIT front panel button. You should see “Edit – Common/Audio” in the upper left corner of the screen. When you see this, you’re in Performance edit mode.

3. MODX displays six tabs starting with “General,” “Audio In,” etc. Touch the Effect button. MODX displays the effect routing. The diagram is an overview of the system-level effects. If you start with the same example voices, the reverb algorithm is R3 Hall.

4. Touch the Reverb tab in the second column. MODX displays the chosen effect algorithm and the effect parameters.

5. Touch the effect type box. MODX displays a menu of reverb algorithms. Touch HD Hall (or one of the other reverb types) to change the effect algorithm. Press the EXIT button to dismiss the menu.

6. MODX updates the display with the newly selected reverb type and its associated effect parameters. Try a different effect preset just for fun.

7. Press the front panel EXIT button to return to Performance play mode.

If you’re really ambitious, add a layer behind the left and right hand parts. Follow my last step-by-step tutorial and control the background layer using the Super Knob.

One or two final tips. Rename your new performances. I suggest adding one or two characters that identify the performance as one of yours versus the zillions of preset performances. (I use my initials, “PJ”.) I also recommend trying the on-screen “Type” and “Name” buttons just to the left of the Parts. These buttons choose the legend displayed at the top of each Part:

  • Type (highlighted in blue): Performance type (e.g., “Str Ensemble”)
  • Name (highlighted in yellow): Performance name (e.g., “Small Section:

Identifying information should help you keep the Part information mentally sorted. It’s easy to get confused when building a multi-Part Performance where every part is a woodwind (i.e., the same type).

With splits and layers, you’re ready to move mountains. 🙂

ICYMI: MODX screen capture

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

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

The MODX writes screen shots to the USB flash drive with names such as “DSNAP_0.png”.

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

Copyright © 2018 Paul J. Drongowski

MODX Performance: Latin Flutist

To better understand voice programming, you’ll need to know a few of the abbreviations which appear in waveform names:

Abbreviation Meaning
Stac Staccato (detached)
Of Offset (start after attack)
St Stereo
L Left
R Right
Sw Velocity switched
NV No vibrato

Yamaha have never published an official key for their waveform naming convention, so this is my best educated guess. (Thanks to Phil at YamahaSynth.com for his insights.)

A MODX waveform contains one or more samples laid out in one or more keybanks. The keybanks specify basic trigger conditions for a sample: what range of notes (e.g., C-2 to G8) and what velocity range (e.g., 1 to 127). “Switched” waveforms implement two or more velocity ranges. The Flute4 family of waveforms, for example, offers four different levels: pp, mp, mf, and ff. The switched Flute4 Sw St waveform combines these individual variants into one velocity switched waveform.

Stereo waveforms are so marked (“St”); assume a mono waveform unless explicitly identified as stereo. The left (“L”) and right (“R”) waveforms are the left and right channels of a single sound. In old gear (pre-Montage and pre-Genos), tone generation (TG) channels are mono and two elements (TG channels) are needed to play back stereo. The new tone generator in Montage, MODX and Genos has stereo tone generation channels.

Acoustic instrument samples usually start with the attack portion of the sound followed by the body (and possibly, release). “Offset” means that playback is started at some offset from the beginning, usually after the attack portion. When a musician plays a legato line, the individual note attacks are de-emphasized. Offset waveforms are normally used to simulate legato.

Staccato (and pizzicato) are short samples with a strong attack. These waveforms sound like one-shots without much sustain (i.e., a long body).

Musicians playing real acoustic instruments often add vibrato in the same way that a vocalist adds vibrato. Waveforms for acoustic instruments often have the vibrato “sampled in,” i.e., the player added vibrato when the sound was digitally sampled. Non-vibrato waveforms are marked “NV.”

Finally, you’ll sometimes see “+” and “-” waveforms. These are variants which are slightly detuned sharp and flat, respectively.

Performance: Latin Flutist

All of this may seem like a lot to keep in mind, but in practice, it’s pretty simple. Let’s take a look at the voice programming for Latin Flutist. First, select Latin Flutist, tap the first Part (WW Flute) and hit the Edit button. You’ll see the Common voice parameters. Tap the “All” button in the lower right corner of the screen. MODX displays a table summarizes the active voice elements. (Don’t be a afraid to check out the “Balance” tab, too.)

The “Osc” tab provides much valuable information about the voice elements and how the voice behaves when it is played. The first four elements handle regular (non-legato) notes while the elements 5 through 7 handle the legato case. (Element 8 is not used and is turned off.)

Let’s take the regular (non-legato) case first. The first four elements depend upon the state of the assignable switches in addition to velocity and note range. Note range is not so important here because all elements respond across the full range of the keyboard (C-2 to G8). Elements 2 to 4 are potentially active when both assignable switches are off (A.SW Off). Element 3 triggers when the velocity of the incoming note is between 1 and 80, inclusively. Element 2 triggers when the velocity is between 81 and 127. Each element plays a different waveform giving the intended note a different character depending upon its velocity. Element 4 is a sweetener, triggering when a note is struck hard (velocity between 103 and 127, inclusively). Element 4 adds a stacatto “spit” to hard struck notes.

Whew, this is much harder to say than it is to actually understand or play. 🙂

Elements 5 to 7 handle legato notes. XA control is Legato. If you experiment with Latin Flutist, you’ll notice that the A.SW 1 On case (element 1) takes precedence over Element 7.

Legato notes with velocity 1 to 109 trigger element 7. Element 6 adds a staccato spit for hard struck legato notes. Element 5 is really fun because it adds a flutter tongue for hard struck legato notes. Try to trigger this case. You’ll notice that the second note in the legato sequence must be struck firmly in order to get the spit and flutter tongue. This last case is very similar to one of the Genos Jazz Flute articulations.

The Genos Jazz Flute is a Super Articulation 2 (SArt2) voice. In addition to legato and flutter, the Jazz Flute has wonderful scoop (bend up) and fall (bend down) articulations. One negative. The legato gesture needed to trigger the flutter articulation requires a firm, very deliberate strike on the second key in the legato sequence. I just about have to drill the key through the keybed when touch is set to NORMAL! On Genos, the only recourse is to set touch response to SOFT or EASY; you cannot reprogram the voice’s velocity threshold.

At this point, I hope you can see that the Osc table gives valuable clues about how the Performance can be played, i.e., how to invoke certain specific articulations. Also, if you have trouble hitting keys hard enough to trigger certain articulations, you could lower the velocity threshold for hard struck notes. (A quick fix, of course, is to use the “Soft” or “Wide” Velocity Curves — no edits required.)

Long-time readers know that I often create and post tables like:

El# Waveform          VLow VHigh  NLow NHigh  Level  XA
--- ----------------- ---- -----  ---- -----  -----  ---------
 1  Flute4 NV Sw St      1   127   C-2    G8    117  A.SW1 On
 2  Flute4 Sw St        81   127   C-2    G8    117  A.SW1 Off
 3  Flute3 Sw St         1    80   C-2    G8    127  A.SW1 Off
 4  Flute4 Stac Sw St  103   127   C-2    G8    124  A.SW1 Off
 5  Flute4 Flutter Sw  110   127   C-2    G8    120  Legato
 6  Flute4 Stac Sw St  102   127   C-2    G8    127  Legato
 7  Flute4 Sw St         1   109   C-2    G8    117  Legato

Usually I have to dig for this voice data. The MODX Osc and Balance tables put this critical information right up front. Thank you!

Performance: Concert Flute

Quickly, here is the basic programming information for the MODX Concert Flute Performance. [Click images to enlarge.]

Please note the element 5, 6 and 7 amplitude levels — zero! These element levels are under Super Knob control. Give this Performance a try and you’ll see and hear what I mean.

El# Waveform          VLow VHigh  NLow NHigh  Level Pan  XA
--- ----------------- ---- -----  ---- -----  ----- ---  ---------
 1  Flute4 NV Sw St      1   127   C-2    G8    103  C   A.SW Off
 2  Flute3 Sw St         1   127   C-2    G8      0  C   A.SW Off
 3  Flute4 Sw St         1   127   C-2    G8      0  C   A.SW Off
 4  Flute4 Stac Sw St    1   127   C-2    G8    111  C   A.SW1 On
 5  Flute4 Flutter Sw    1   127   C-2    G8    108  C   A.SW2 On
 6  Flute3 mp St         1   127   C-2    G8      0 L28  A.SW Off
 7  Flute3 mf St         1   127   C-2    G8      0 R28  A.SW Off
 8  Flute4 mp St         1   127   C-2    G8      0  C   A.SW Off

The Super Knob dials up the level for elements 6, 7, and 8 via assignable knobs 2, 3, and 4. The Super Knob also increases the reverb send level via assignable knob 1. Watch the on-screen assignable knobs while turning the Super Knob. You’ll see what it means when people call the Super Knob a “macro control knob.”

The assignable knob and Super Knob programming is a bit complicated and I’ll save further deconstruction of Concert Flute for a future blog post.

Copyright © 2018 Paul J. Drongowski

MODX Theatre Orchestra

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Hope you enjoyed this brief dive into MODX Performance programming.

Copyright © 2018 Paul J. Drongowski

Bonus voice: Tutti

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

The following table summarizes the Genos voice programming.

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

I constructed a similar voice for MOX:

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

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

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

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

Akai Professional MPK Mini Play

Compared to the Yamaha MODX, the Akai Professional MPK Mini Play is a piece of Halloween candy.

The MPK Mini Play is a tiny 2-octave keyboard with eight MPC drum pads, four knobs and a joystick. It’s battery powered (3 AA batteries). And get this, it has an internal sound engine (128 voices and 10 drum kits) and speaker. That smells like General MIDI and without further information, we’ll have to wait to hear what it’s got.

Digital connectivity is over USB and only audio headphone out (3.5mm jack) is provided. There is a 1/4″ sustain pedal jack, too.

$129 USD street (MAP).

This one is in “impulse buy” territory. Christmas stocking stuffer?

Kind of a shame that it doesn’t have an auxiliary audio input, too. It would make a nice companion for the Akai MPX8 Mobile SD Sample Player. Hmmm, I wonder how to MIDI this up?

Early information alleges Reason Lite in the bundle. Nothing official yet.

First demo video by GAK

Dream SAM2635 inside?

[Update] Two more unofficial videos popped up on Youtube. One video scrolls through the first several patches. Yep, the MPK Mini Play is the 128 sound General MIDI (GM) set.

The GM standard has only one drum set. The MPK Mini Play has ten sets. What’s up?

Well, the instrument abbreviations are the same as the Dream GMBK9764 sound set and drum kits. Many of you may not be familiar with Dream S.A.S France, but they are one of the few vendors (aside from Yamaha, Roland, Korg, etc.) who design and sell sample playback silicon. The GMBK9764 sound set has 128 GM sounds (plus variations), nine drum sets and one SFX set for a total of ten drum sets.

If we were to crack open the Akai MPK Mini Play, I expect we will find a Dream SAM2635 synthesizer (PDF) with the GMBK9764 CleanWave64® sound set (PDF) stored in a separate 8MByte ROM. If this is true, that’s good news for Akai MPK Mini Play users. They should be able to access the GM variation voices, alternative chorus/reverb effect types, and synthesis parameter control functions via MIDI (assuming that the Akai software isn’t stupidly filtering out certain MIDI messages).

The MIDIPLUS miniEngine is also Dream-based. If you own a miniEngine, you already know how the MPK Mini Play sounds.

Copyright © 2018 Paul J. Drongowski

MODX after the first gig

This weekend’s gig with MODX went reasonably well. Among the patches that I tried live, there were many hits and a few misses. Inevitably, there are misses. Some patches sound great at home, but just don’t quite cut it when playing with a painist and/or guitarist.

I’ve been editing and A/B testing my own patches, comparing MODX versions versus the MOX6 versions that are tried and tested. For example, I spent 3 hours tweaking my bread and butter B-3 patch, eventually ditching the “Multi FX” distortion and replacing it with the VCM EQ 501 multi-band equalizer. The “Multi FX” distortion has several EQ options of its own and I just couldn’t find the one to make me happy.

Plus, the “Multi FX” follows the rotary speaker effect. Who the heck puts the distortion after the rotary speaker? (Yamaha, I guess.) The distortion block makes more sense before the rotary speaker (tube overdrive), not after.

I am hooked on MODX Scenes. It was easy to switch B-3 registrations through scenes when playing live — kind of like touching a genuine Hammond registration key. (For the uninitiated, those are the reverse color keys at the left of the lower Hammond keybed.) I intend to make further use of Scenes in order to change up the color of woodwind and brass blends.

The on-screen Live Set buttons are a little thin for my big and busy fingers. Montage has that enormous bank of physical buttons for selection and so forth. Not so MODX and this is one compromise that I’m not too happy about. I’m thinking about doubling up Live Set buttons effectively creating two rows of four buttons. The following image is notional. I have tried this yet. [Click image to enlarge.]

The redundant buttons make each virtual button roughly squarish and bigger at the cost of halving the number of available presets. With the ability to select different solo voices or blends via Scene buttons, I might build eight Performances that each encapsulate several options, like a “Solo Voice” Performance with Scenes for individual solo flute, solo oboe, solo violin and solo cello.

BTW, what’s with all of the PJs in the Performance names? One of the tutorial articles at YamahaSynth.com recommends renaming when you save a Performance, making it easier to discern the original preset from a user Performance. I blew off this advice at first, and sure enough, I had trouble distinguishing between the factory presets and my own user Performances. I decided to add my initials to my user Performances even though you can filter for user Performances in Category Search.

It’s easy enough to comp presets into new Performances. I’m building woodwind and brass blends this way. If you need to delete a Part from a Performance, hold the SHIFT button and touch the Part to be removed. MODX pops up a contextual menu. You cannot delete Part 1 directly. If you need to delete Part 1, swap it with Part 2 first.

You can work quite fast this way. However, you might want to go back and edit the Insert A and Insert B effects for each part. This gotcha snuck by me at first. I found Parts with Tempo Delay and other effects that create sonic muck when playing in a large hall, e.g., the church that I play in. The hall adds its own muck, so I replaced Tempo Delay, etc. with something innocuous like VCM EQ 501 set flat or even THRU.

There’s plenty of discussion about the Montage/MODX “All 9 Bars!” performance on YamahaSynth.com, in case you didn’t get enough in my previous post.

Copyright © 2018 Paul J. Drongowski

Blazin’

Baby, I’m amazed at how fast I have pulled together enough MODX Performances to take MODX to my gig tomorrow. This is definitely a set up record and testimony to efficient workflow through the touch screen user interface. Of course, being familiar with the Yamaha AWM2 synthesis architecture (and its many parameters) is a big help.

There were only a few sticking points like how to delete a Part from an MODX Performance. It works like a right-click context menu — hold SHIFT and touch the Part that you want to delete, etc. The MODX pops a menu.

I did a little A/B testing between MODX and Genos™ as a sanity and ear check. I compared my MODX Performances against the Genos registration settings that I crafted for my church sounds (mainly orchestral instruments/layers and B3 organ).

I was surprised to hear the difference between the MODX and Genos drawbar organ. The MODX was grungier and I had to find out why.

All 9 Bars!

It’s worth unpacking the “All 9 Bars!” Performance simply to learn about MODX Performance (and voice) programming. Please remember that MODX (and Montage) Performance structure is relatively flat. A Performance consists of Performance Common data and one or more Parts. Look inside Performance Common for Variation, Reverb and Multi-effects (MFX) effect routing and parameters. These are the system-level effects that affect all Parts in the Performance.

Each Part contains Part Common data and one to eight voice elements. A voice element is either a mini AWM2 or FM-X synthesizer depending on voice type. Part Common is where the Insert A and Insert B effects are defined. They affect one or more voice elements depending upon insert effect switch status. In “All 9 Bars!” the Insert A and B effects are “Rotary Speaker 1” and “Multi FX”, respectively. Please see my last post for more details.

The MODX does not have an explicit Voice (capital “V”) object type; voice (lower case “v”) information is contained within a part. I will use “voice” (lower case “v”) at times in my writing. Please keep the distinction in mind.

“All 9 Bars!” consists of two parts. Part 1 handles the first eight drawbars:

Element# Waveform
1 Draw 16′
2 Draw 5 1/3
3 Draw 8′
4 Draw 4′
5 Draw 2 2/3′
6 Draw 2′
7 Draw 1 3/5
8 Draw 1 1/3

Expanded Articulation (XA) is “Normal” meaning that all of the elements trigger with a key press. This chews up polyphony pretty quick. Good thing the MODX has 128 AMW2 voice polyphony.

Part 2 has the ninth drawbar (1′) and special effects goodies. Think of “All 9 Bars!” in the same way as a multi-part piano voice with key noises, etc.

Element# Waveform Purpose
1 Draw 1′ 1′ drawbar
2 Percussion Percussion
3 Rotor Grit Rotor noise
4 Rotor More rotor noise
5 Draw 8′ Key click
6 Draw 8′ Key click

If you want to clean up the sound or turn off key click, look into Part 2.

The SuperKnob is programmed to control the amount of distortion drive in the Insert B “Multi FX” effect. The MOD wheel and Assignable Function button 1 (AF1) controls the rotary speaker speed.

Why the Genos B3 is soooo polite

The Genos B3 is too polite and clean, especially for rock and grungier forms of jazz, funk and gospel. Both the MODX and Genos have the same rotary speaker effect. The MODX, however, has a longer effects chain and includes a “Multi FX” distortion with top boost effect. After shutting down “Multi FX,” the MODX is still grungier. That’s why I decided to deconstruct “All 9 Bars!”.

The Genos does not have the rotor noise or key click components. Each of Genos’ RIGHT1, RIGHT2, RIGHT3 and LEFT parts are what MODX folks would call single Part Performance. RIGHT1, etc. each implement a single voice consisting of one to eight elements. Even though an “Organ Flutes” voice behaves like a multi-Part Performance, you cannot extend it or reprogram it. “Organ Flutes” is a closed black box.

One could, however, construct a Genos organ FX voice with percussion, rotor and key click elements and then layer the organ FX voice with an Organ Flutes voice, i.e., assign an Organ Flutes voice to RIGHT1 and assign the organ FX voice to RIGHT2. One would have to build the organ FX voice in (Yamaha Expansion Manager) YEM — totally do-able. I wish Yamaha published a waveform list as the necessary samples may already be hiding in the Genos waveform ROM.

Seen it, done that

Here’s a peek at the Live Set for Sunday. This is an experimental layout. I hope that I can poke the buttons on the fly. [Click images to enlarge.]

I took what I learned about the “All 9 Bars!” Performance and build a new Performance called “B3 Church Scene PJ”. The Performance uses scenes to switch in additional drawbars. I have three signature settings that I use every Sunday. I start out with a basic church sound and then add drawbars to it as the hymn (or whatever) progresses.

BTW, I have the EQ low dialed way down. Too much bass gets in the way of our pianist. Also, thankfully, Performances remember the state of the selected knob parameters. I make occasional EQ changes on the fly.

The MODX Scene mechanism seems to be built for this kind of voice switching. Plus, the Scene buttons are so close at hand. I successfully put the AF1 and AF2 buttons to work this way on the MOX6. Building a new MODX Performance from “All 9 Bars!” was a good learning experience and it got me ready for Sunday. Maybe I can make orchestral combinations with Scenes and maybe, gasp, put the SuperKnob to work? Stay tuned.

Copyright © 2018 Paul J. Drongowski