Synth Forum

Notifications
Clear all

Montage or Motif

19 Posts
9 Users
0 Likes
7,151 Views
Bad Mister
Posts: 12304
 

I finally have the answer as to why it's been such a problem with MIDI files. The answer is "Yamaha changed the MIDI standard for program changes".

No such thing.... we’ve been doing something like this for years.

You have a set of MSB/LSB Bank Select and Program Changes that (as you are obviously familiar with) that allow you to recall individual Parts on specific channels, but another set of MSB/LSB Bank Select and Program Changes that can change the entire Performance (all 16 Parts as a group).

Use the former to change one instrument within the band... the trumpet to trumpet w/mute on a single channel.
Use the latter to change the entire band.

We did not change the MIDI spec, we’ve been doing this with synths and modules for more than a couple decades now.

Give me a chance to get over NAMM-Thrax... (the energy sap of four days of endless Q&A) we’ll post a short thing on how to go about selecting Single Parts on any channel, and how to select Multi Performances (where all 16 Parts change as one.) Trust me, it’s not new... perhaps just new to you πŸ™‚

 
Posted : 29/01/2018 5:14 pm
Posts: 0
Eminent Member
 

I believe you and will wait to hear from you. My observations have been as I stated. That is, when I’ve missed deleting a program change, the performance changes. I’ve even deleted sysex messages. Thanks again. I owe you dinner when you’re in town again.

 
Posted : 29/01/2018 5:33 pm
Jason
Posts: 7912
Illustrious Member
 

Source: Page 181 of "montage_en_dl_e0.pdf" contained within Montage v1.60 firmware ZIP file

The lower-left area of the page has a chart with MSB, LSB, and Program Number (zero-based like in MIDI data, and ones-based in parenthesis like how the Yamaha GUI expects this value).

Since there are more than 128 "sounds" (or in the case of Multi-Part "sound collections" i.e. performances), Yamaha uses MSB and LSB as a way to offer multiple "pages" (or "banks") of "sounds". I expect as more "sounds" are added to Montage over the years - this chart may change with new firmware versions to add space for the new content (that is, if the existing amount of "slots" run out of space).

Ignore "GM Voice" and "GM Drum Voice". These two, conforming with the General MIDI conventions, only have at maximum 128 "sounds" - so there is no need for a "Single" or "Multi" concept. This space conforms with what it sounds like you're accustomed to. Moving down the chart ...

You see "Performance (Single Part) Preset 1. The key here is "Single Part" and this "Single Part" designation applies to the next 8 rows (and including the "Single Part" flagged row makes 9 total rows). This includes Preset 1 - Preset 16, User 1 - User 5, and Library 1 - 40.

The "Single Part" portion of the chart is what you want to use to change just a single PART within a performance. Say you have PART1 as a piano sound and PART2 as a trumpet sound. If you want to change only PART2 (your trumpet) to a saxophone, then you would need to use the appropriate "Single Part" MSB, LSB, and PC (Program Number) for your desired target sound. "Preset" pulls from the internal sounds in Montage and these are listed in each Firmware release's data list. In the case of "Single Part" - this means the sound that is PART1 of each Performance in the Montage (preset/internal) Performance listing. For "User" these are your user performances - again the 1st PART in each user Performance. And for Library - these pull from your library slots and use the 1st PART of your target library slot.

You'll notice that different areas (like "preset", "user", and "library") have multiple ranges. Preset is 1-16, User is 1-5, Library is 1-40. For preset, the 1st 128 presets are in "Preset 1", the next 128 are in "Preset 2". So in a list that goes from 0-several thousand, in order to convert to the correct MSB/LSB+PC you need to do some math. (Performance Number (zero based) divided by 128) + 1 = the Preset page number (1-16). The remainder of (Performance Number (zero based) divided by 128) is the PC. Depending on the Preset page number (1-16) you would select MSB=63, LSB=0 (for Preset page 1) through MSB=63, LSB=15 (for Preset page 16). That gets you to "saxophone" if you look up the "saxophone" sound out of the performance list you want. There is a second part of using "Single Part" -- and that is how to tell Montage you want PART1 or PART2 to change. The answer is you do this by sending the MIDI message to the correct MIDI channel. Each PART corresponds to a different MIDI channel. PART1 is MIDI channel 1, PART2 is MIDI channel 2, ... through PART 16 which is MIDI channel 16. If you want to change the trumpet (PART2) - then you send the correct saxophone MSB/LSB+PC message to MIDI channel 2. If you sent to MIDI channel 1 then the piano sound would change to saxophone and the trumpet sound would stay the same (untouched).

I think you can figure out "User" from the description of presets. One comment on libraries. You notice you have 40 pages of Library slots. There are 8 libraries in Montage. Notice how the "User" area is 5 "pages" long (User 1-5). One entire user area fits into one Library. Do the math - 5 User pages times (*) 8 library slots equals 40. So it makes sense that Libraries in total would take up 40 pages. Library 1 = Library page 1-5, Library 2 = Library page 6-10. Library 3 = Library page 11-15, Library 4 = Library page 16-20 ... keep going through Library 8 = Library page 36-40.

The next portion of the chart is Performance (Multi Part). For this half of the chart - these MSB/LSB+PC combinations are going to switch out the entire performance - not just a single part. They work the same as Single-Part in logic (how the page numbers relate to target content) but now instead of only PART1 from the new performance only affecting a single PART (according to MIDI channel) - this area will swap out the entire performance with the performance sourced from the MSB/LSB+PC target performance. Therefore all parts from the MSB/LSB+PC performance will replace your current "edit buffer" PARTs.

The chart shows values in decimal. If using a MIDI tool which often expects hex - you may need to do the base conversion (decimal base 10 to hex base 16).

The Program No. (PC) also can trip you up. You may be one off if you use the wrong range 1-128 vs. 0-128. In software like MIDI-OX where you are dealing directly with the low-level MIDI transmission - you use 0-127 (hex 0-7F). In the Yamaha GUI (touchscreen) the values expected are 1-128 and often here you will not be dealing in hex but in decimal.

If you do not know which to use - you can pick a performance that is obvious if you are one off that the sound is incorrect. Alternatively (and here you're relying on robust software error checking - which may not be the case) - you can try "0". If the software complains - but "1" is OK, then the range used should be 1-128 vs 0-127.

This may be of use - a calculator for MSB/LSB+PC for Montage:

http://keyboardwaves.com/montage-yamaha-msb-lsb-calculator/

You'll notice other manufacturers have such a calculator and use the same concept. Where Montage differs slightly is they not only give you a way to change single PARTs - but also a way to swap out the entire Performance. This is not a violation of specification nor is it handling MIDI differently than any other manufacturer. It is providing even more functionality allowing for even more efficient ways to change your sounds on top of the more generic way.

 
Posted : 29/01/2018 6:59 pm
Stefan
Posts: 0
Active Member
 

To add to what was said: I have and had several synths which allow to switch either the whole performance (or what it is called in that instrument) through program changes or alternatively the individual sounds (...) on the different channels. For example the Roland Integra 7. This is quite common.

 
Posted : 29/01/2018 8:05 pm
Page 2 / 2
Share:

Β© 2024 Yamaha Corporation of America and Yamaha Corporation. All rights reserved. Β Β  Terms of UseΒ |Β Privacy PolicyΒ |Β Contact Us