I guess that I need to be pointed in the right direction in order to get started. I have been looking through a lot of information but havent found any answers that apply to my need.
I am using my MODX along with a Hammond SK2. The live sets, performances, and scenes on the MODX are great for my purposes. Now, I would like to send MIDI commands to the SK2 to change the patch to fit the live set selection or performance.
Below are 3 examples of operations needed to change the SK2's patches. How do I set these operations up on the MODX and trigger them?
Thanks, Glenn
Example of Patch operation
ex: select Patch U016
Bx 00 00 20 00 Cx 0F (x=Upper Channel)
ex: select Patch P100
Bx 00 01 20 00 Cx 63 (x=Upper Channel)
ex: select [Manual]
Bx 00 00 20 00 Cx 7F (x=Upper Channel)
Where do I setup MIDI commands from MODX to another Synth?
The answer is, you do so within each MODX Performance that you want to use to control your external device. The setup commands are stored with and are send to your external device when you recall that Performance... be it in a Live Set or just free standing.
Here’s how to get started:
Press [UTILITY]
Touch “Setting” > “MIDI I/O” > make sure MIDI I/O = MIDI (green) green means active. A bright blue 5-pin icon appears on the top line when you are connected.
Touch “Settings” > “Advanced”
Turn the “Zone Master” switch = On
This adds two screens to each Performance: “Zone Settings” and “Zone Transmit”
It is on these two screens where you can customize, and STORE your Performance with all the setup information for your external MIDI device.
Within your Performance, from HOME
Select a Part — you can tap the Part in the screen to *select* it.
Press [EDIT]
Touch “Part Settings” > “Zone Settings”
To activate the Zone options with the Performance turn the Zone Switch = On
The MODX can transmit, simultaneously, to eight Part/Zone slots per Performance. These slots can be to Internal MODX Parts or to External Device.
Any combination that adds up to eight.
In other words, the Performance can be used to combine both Internal and External devices, just Internal Parts, just External Parts.
Each slot designated for External device control must be activated (press “+” on the HOME screen to add an active Part slot.
Select a MODX item to occupy the slot, then under the PART EDIT, touch “Part Settings” > “Zone Settings” you can set the INT SW = OFF (this makes the slot exclusively available to Transmit Out to you external device... set the Transmit Channel, to the channel you desire.
When you setup the Performance and Zone Settings... press [STORE]
Give you new Performance a new Name (one that indicates to you what it is used for) and store it to the User Bank.
If you then want to additional place it in a Live Set... hold [SHIFT] + [LIVE SET] then tap the box in which you want to place the Live Set link.
Please see the following article concerning the most often asked questions about using the Zone Settings and Zone Transmit functions:
Extra Credit:
__ The MODX can transmit on as many as 8 channels simultaneously, Channel 1-8, each Internal activate Part occupies a correspondingly numbered channel.
__ A Part slot designated to control your external device can be set to any channel you desire. Recommended you use a channel that does not conflict with the internal MODX Parts.
__ Any of the 16 Part slots can be setup to be used as a Zone.
__ A Part/Zone must be actively *selected* for it to be communicating with its assigned device be it Internal or External
__ All Parts with KBD CTRL are actively *selected* when you are HOME, or you have *selected* any of the sounds linked by the green KBD CTRL icon.
The Zone Master setups use MSB, LSB, and MIDI Program Change #
These Bank Select and Program Change options will appear when you turn the Transmit Ch is turned On
ex: select Patch U016
Bx 00 00 20 00 Cx 0F (x=Upper Channel)
The following is how to translate your device’s MIDI messages into the MSB/LSB/PC format used by your MODX:
“Bx” translates as follows: the “B” = a Control Change message, the “x” = the Transmit Channel
00 00 translates as follows: the first 00 is MSB, the second 00 is the value, therefore, MSB = 000
20 00 translates as follows: the 20 is LSB, the 00 is the value, therefore, LSB = 000
“Cx” translates as follows: the “C” = a Program Change message, the “x” = the chosen Transmit Channel
“0F” translates to the sixteenth Program (count starts with 00)
So to enter this in a MODX ZONE designated to control your external device:
Set the “Int Sw” = OFF
Set the “Transmit Ch” = to the channel you wish to use, 1-16
Set MSB = 000
Set LSB = 000
Set MIDI PROGRAM CHANGE = 016
You can additionally, preset a Volume and a Pan position if you like.
The corresponding Slider will Control the Volume of the external device.
Tap the “Zone Transmit” box and here you can activate and deactivate the various controllers for the Zone slot. Example, you’ll likely want to set Pitch Bend and Sustain = Off for an organ... your choice.
Hope that helps. See the article for all the “What if...” or post back here with other questions.
Thanks again for your help. Just so everyone knows, Hammond support didn't even respond to my communication. 😀
Hello Bad Mister,
Your instructions to my post “Where do I setup MIDI commands from MODX to another Synth?” worked great. Thank you. I have two follow up questions:
1. You explained the translation of the SK2’s syntax “Bx 00 00 20 00 Cx 0F (x=Upper Channel)” as:
Set the “Int Sw” = OFF
Set the “Transmit Ch” = to the channel you wish to use, 1-16
Set MSB = 000
Set LSB = 000
Set MIDI PROGRAM CHANGE = 016
And that worked fine.
So, now I need to translate: Example Set Transpose at 0 via NRPN ....Bx 62 01 63 00 06 40 (x = Upper channel) to the MODX form. This one is transposition in semi tones. When I tried to extrapolate the first example, it changed the patch again. I did not have a place to enter the value. I also tried the Transpose button but no joy.
2. The settings that I made to select the patch on the SK2 also was transferring the keyboard info, causing a layering affect. What is the best practice to turn off all MINI communication EXCEPT for the patch (program) selection and the transposition?
Thanks Glenn
So, now I need to translate: Example Set Transpose at 0 via NRPN ....Bx 62 01 63 00 06 40 (x = Upper channel) to the MODX form. This one is transposition in semi tones. When I tried to extrapolate the first example, it changed the patch again. I did not have a place to enter the value. I also tried the Transpose button but no joy.
The reason it doesn’t work and changed Programs is because you misinterpreted the message and because the last command received was a Program Change.. (It persists, or remains ‘active’). so it probably changed the Program. NRPN = Non-Registered Parameter Number.
NRPNs are not used by the MODX (Typically, these are used in modules that do not have the ability to Store parameters per program (like many GM/XG tone engines) — I’m not sure how Hammond Suzuki uses them but the typically, there are two cc Numbers that activate (alert the receiving device) that what follows is a kind of value change. Here is an educated guess...
Bx = again a CC (control change) message, where ‘x’ is the channel
62 = hexadecimal for the NRPN LSB (cc98), 01 is the value
63 = hexadecimal for the NRPN MSB (cc99), 00 is the value
06 = DATA ENTRY command
40 = is the mid-point value between the lowest tuning and the highest values possible (in hex). The range for MIDI in hex, is 00 thru 7F. 40 in hex is the middle. In regular Decimal numbers this would be 0 through 127 with 64 being in the middle.
Therefore, if Hammond Suzuki is using NRPNs 98 01 and 99 00 to do Coarse tuning (?), a Data Entry of, ‘40’ in hex, would be no transposition up or down. (I question that this tuning by semitones - the rest of the MIDI world would use this as Fine Tuning by cents, which is like Detuning, not Coarse Tuning)... But either way, the value 40(Hex) is No Change in tuning, period.
Data Entry (cc06) of 40 is normal tuning
Data Entry (cc06) of 41 would be tuning the receiving channel up (sharp)
Data Entry (cc06) of 3F would be tuning the receiving channel down (flat)
So “Bx 62 01 63 00 06 40” is simply saying normal tuning/transposition.
Now, in order to use NRPNs properly, there is typically a another message to deactivate the NRPN (They typically remain active ... you’ll hear it said that it “persists”... what this means and allows is: once the receiving device is alerted that a NRPN for Coarse or Fine Tuning has been activated, you can simply enter a value for Data Entry (06) at the moment you wish to transpose, without having to repeat the entire Bx 62 01 63 00 portion everytime... you can simply put cc06 xx, where ‘xx’ is the value for transpose by semitone or as I recall, fine tuning by cents. The message to deactivate NRPNs, would end this.
Your MODX does not use NRPNs because it can actually save the coarse or fine tuning in a Part‘s NOTE SHIFT, or DETUNE settings. Each Part can store its own setting.
The settings that I made to select the patch on the SK2 also was transferring the keyboard info, causing a layering affect. What is the best practice to turn off all MINI communication EXCEPT for the patch (program) selection and the transposition?
As mentioned that could have been the PC Command persisting...
To “turn off” or deactivate a recent NPRN (or RPN) setting, (also called “Null” )... you would send MSB 127 value 00, LSB 127 value of 00.
in hex: MSB 7F 00, LSB 7F 00.
Are you sure that Hammond Suzuki is using that message for Transposing by semitone or is that guess on your part? The rest of the MIDI world would interpret the message as “fine tuning“, not semitone (coarse tuning).
Hope that helps... thanks for taking me back to my days of XG File creation... where this kind of stuff was standard operating procedure... I felt the cobwebs clear away. Again, that’s a guess, an educated guess, but I do not know the SK2, sorry.