When you want to change to a given performance, you must use the multi set of commands - msb 64/lsb nn where “nn” is dependent on whether you are using the preset list or user presets. Once you have called up the performance you can now use the single msb 63 to change just the patch on the channel of your choice. The price we pay for power is the increased learning curve when documentation is not explicit enough. It would be great if the actual number of a performance was visible on the screen. My eyes are bad and the typein the manual is too small. The manual might not need to be so big if the screen was more explicit!
Montage itself already documents each Performance's MSB/LSB/PC.
First, load any random preset Performance. For me, I pressed [PERFORMANCE] (HOME), then [CATEGORY SEARCH], then touched the magnifying glass to search by name, typed in "V" to search for everything with a "V" in the name, selected the 1st Performance returned which, for me, was "Velo EP FX". I have no idea what the MSB/LSB/PC is for this and I'm not going to reference documentation - because I don't have to. Next, use the touchscreen to touch the performance name from the [PERFORMANCE] (HOME) screen "Velo EP FX". A menu pops up on the left-hand side. Pick the bottom option which is "Property". This shows (among other things) the Bank Select MSB/LSB and the Program Change Number for this preset Performance.
Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R
Why so deeply imbedded? I use OnSong for my lyrics and it gives me the ability to send program changes. It is very time consuming if i have to rely on my synth to get answers. I now use John Melas’s app coupled with a prgram i wrote to simplify the process. When i callup a song on my iPad, the Montage performance is automatically called up. In my opinion, deveopers today take the path of least resistance and lack vision. It’s not just programming, but also the physical. Try seeing theMontage screen when performing outdoors.
The information is only one level deep. MSB/LSB/PC is not something I want as information on the home screen - but I can respect we have differences in usage.
Use the data list then. Performances are listed by number.
There's a formula (which you've probably already worked out in your helper app)
https://www.yamahasynth.com/forum/trying-to-send-bank-program-changes-to-montage-over-midi
Since v2.0 changed the values for MSB/LSB, this needs to be adjusted for Multi-PART (meaning change out the entire Performance) Presets. Use the same LSB and PC as single-part and just change out the MSB to 64.
You can use an online calculator if you want which is still valid since it shows single-part and only goes up to PRE16 (preset 16) while v2.0 has added more pages for presets.
Here's the new rundown:
Page 184 of the data list has the targets.
Single Part Preset, MSB is always 63 (decimal). LSB should be 0 for the 1st 128 performances, LSB is 1 for the 2nd set of 128 performance -- and so on. the PC is 0-127.
SINGLE-PART Preset (numbers 1-2143):
MSB=63 (decimal)
LSB=(Preset Number-1)/128
Meaning: subtract one from the preset number you've picked, then divide by 128 and IGNORE the remainder. For example: preset #128 ("DX Chill" ), you would subtract one. 128-1=127. Then do what's referred to as "integer division" on 127. 127/128 equals 0 remainder 127. We ignore the remainder, so LSB is set to 0.
PC=(Preset Number-1) % 128
Meaning: The percent sign here is to indicate "modulus" - which is a function that returns the remainder of dividing by the number after the percent sign. In the above example for "DX Chill", which is Preset Number 128: (128-1) % 128 = 127 % 128 = 127 (the remainder of dividing 127 by 128 is 127.
This math works for all preset banks 1-16.
MULTI-PART Presets (numbers 1-2143):
MSB=64 (decimal)
LSB and PC should follow single-part math. Same values as multi-part (only MSB is different).
Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R
Here's a cheat sheet.
I used something called "tabula" to extract the data from the Montage Data List, exported to a CSV, then created the formulas in a spreadsheet to convert the performance number to MSB/LSB/PC in decimal and hex for Single and Multi Performance.
I haven't proof-read the result for "tabula" extracting the data correctly or for the formulas outputting the right values. Hope it's right.
Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R