Synth Forum

Notifications
Clear all

Control Code for Midi to transpose MODX

6 Posts
3 Users
2 Reactions
35 Views
Posts: 3
Active Member
Topic starter
 

Our band uses a MODX.  On occasion we have the need to step a song down a half step or whole step to help out the singer.  Of course, this happens after the keyboard player has learned it in the original key.  We use a program called BandHelper to manage our setlist.  The other thing is does for us is load the song patches via midi.  It can also send control codes with their values to tweak a patch if necessary for the song.

On the Roland FA-07 we use, we can send over some data in Hex Code to tune the keyboard up or down as many half steps as needed.  I can't find anything for this for the MODX though.  Is this possible?

 
Posted : 16/04/2025 1:40 am
Jason
Posts: 8396
Illustrious Member
 

Source: https://www.zubersoft.com/mobilesheets/forum/thread-12730.html

(MobileSheets forum). Showing SysEx messages.

steps : transpose

-11 : F043107F1C0700000735F7

-10 : F043107F1C0700000736F7

-9 : F043107F1C0700000737F7

-8 : F043107F1C0700000738F7

-7 : F043107F1C0700000739F7

-6 : F043107F1C070000073AF7

-5 : F043107F1C070000073BF7

-4 : F043107F1C070000073CF7

-3 : F043107F1C070000073DF7

-2 : F043107F1C070000073EF7

-1 : F043107F1C070000073FF7

+1 : F043107F1C0700000741F7

+2 : F043107F1C0700000742F7

+3 : F043107F1C0700000743F7

+4 : F043107F1C0700000744F7

+5 : F043107F1C0700000745F7

+6 : F043107F1C0700000746F7

+7 : F043107F1C0700000747F7

+8 : F043107F1C0700000748F7

+9 : F043107F1C0700000749F7

+10 : F043107F1C070000074AF7

+11 : F043107F1C070000074BF7

 

for reset: no-transpose : F043107F1C0700000740F7

Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R

 
Posted : 17/04/2025 8:00 pm
Jason
Posts: 8396
Illustrious Member
 

Note that this command (00, 00, 07) is for the SYSTEM level keyboard transpose.  Depending on how you have splits set up, you may not prefer this.  Usually when folks want to transpose they want to note shift which would replace the last "07" in the sequence with a "01"

 

Example (for last line of pitch reset):

 

F043107F1C0700000740F7

 

Becomes ...

F043107F1C0700000140F7

 

Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R

 
Posted : 17/04/2025 8:06 pm
Posts: 3
Active Member
Topic starter
 

Another note for anyone else that comes across this post.  When I send the string, it has to be spaced out in this format or it is ignored...

"F0 43 10 7F 1C 07 00 00 07 3F F7" (this is the -1 half step down)

 
Posted : 17/04/2025 8:32 pm
Posts: 3
Active Member
Topic starter
 

Posted by: Jason

Note that this command (00, 00, 07) is for the SYSTEM level keyboard transpose.  Depending on how you have splits set up, you may not prefer this.  Usually when folks want to transpose they want to note shift which would replace the last "07" in the sequence with a "01"

 

Example (for last line of pitch reset):

 

F043107F1C0700000740F7

 

Becomes ...

F043107F1C0700000140F7

 

 

So for clarification, if I want the pitch changed everywhere (including the splits) I'd use the system level transpose?

 

 
Posted : 17/04/2025 8:43 pm
 Toby
Posts: 512
Honorable Member
 

Yes - it is possible and documented in the Data List Manual - see pages 188 and 194 

p.188

(3-5-3) PARAMETER CHANGE
(3-5-3-1) NATIVE PARAMETER CHANGE, MODE CHANGE
11110000 F0 Exclusive Status
01000011 43 YAMAHA ID
0001nnnn 1n Device Number
01111111 7F Group ID High
00011100 1C Group ID Low
00000010 07 Model ID
0aaaaaaa aaaaaaa Address High
0aaaaaaa aaaaaaa Address Mid
0aaaaaaa aaaaaaa Address Low
0ddddddd ddddddd Data
| |
11110111 F7 End of Exclusive
For parameters with data size of 2 or more, the appropriate number of data bytes will be transmitted.
See the following MIDI Data Table for Address.

The previous response showed this command for a transpose down of 1 half step

-1 : F043107F1C070000073FF7

Use the doc spec to understand the 'bytes' of the above:

F0 -> Exclusive status - use F0

43 -> YAMAHA ID - use 43

1n -> Device Number - the example replaces 'n' with '0' - that works unless you have manually changed the Modx Device Number as documented on p.194 of the Modx Reference manual:

Device Number
Determines the MIDI Device Number. This number must match the Device Number of the external MIDI
device when transmitting/receiving bulk data, parameter changes or other System Exclusive messages.
Settings: 1–16, All, Off

7F -> Group ID High - use 7F

1C -> Group ID Low - use 1C

07 -> Model ID - use 07 since that is the model ID for the Modx

00 00 -> Address High and Addaress Mid - this is the address of the 'MIDI PARAMETER CHANGE TABLE (SYSTEM) table on p.194 of the data list doc

07 -> Address Low - look in the table and you will see that the 5th parameter down is 'Keyboard Transpose'

3F -> Data - this represents a -1 (one half step down) transpose - the table shows a default value of 40 (in hex)

                   that '40' represents a ZERO transpose - the 3F hex value is ONE LESS than 40 hex.

F7 End of Exclusive - use F7 to indicate the end of the SysEx Message

Our band uses a MODX.  On occasion we have the need to step a song down a half step or whole step to help out the singer.  Of course, this happens after the keyboard player has learned it in the original key.

Changing the 'key' CAN BE as simple as using one of the sample commands. But depending on your actual use case there can be one, or more rather significant 'GOTCHAs!' to be aware of.
 
1. The 'Transpose' (parameter 5 in the table on p.194) actually changes the MIDI note generated when you press a key on the Modx.
The key representing Middle C normally produces MIDI note 60 but if you 'TRANSPOSE' -1 it will instead produce MIDI note 59.
 
2. If you are sending MIDI to the Modx those MIDI notes will NOT be changed by using 'Transpose' since Transpose only changes the assignment of keys on the Modx itself.
 
3. The 'Note Shift' (parameter 2 in the table on p.194) does NOT change the MIDI note generated but instead causes the tone generator to produce a different note. So pressing Middle C will still produce MIDI note 60 but the tone generator will actually produce note 59.
 
4. So if your Modx is sending MIDI to other external devices that MIDI will be different when using 'Transpose' than when using 'Note Shift'.
 
5. Also, as previously mentioned, keyboard splits are based on MIDI notes. So if you use splits AND use 'Transpose' it can affect your splits and cause side effects.
 
6. Any change to 'Transpose' or 'Note Shift' will be in effect until you either send a command to reset the value to a zero offset (using 40 hex) or until you turn the Modx off and then back on. This means that you typically need to send a command before ALL program changes even if only one performance actually needs to be changed.
 
7. The caveat mentioned in #6 above is particularly appropriate if you may be using a Modx that isn't your own and may not be in a know configuration. A common recommendation is to create your own process to deal with that:
A. backup the foreign Modx
B. load your own backup that contains all of the libraries, performances and other objects you need for your performance
C. after the gig reload the backup you made in step A to restore the foreign Modx to the state you found it. 

So for a simple case of a band member playing the Modx and NOT using splits the sample commands shown can be used. But if you are using splits, sending MIDI to other devices, or sending MIDI to the Modx to be played the choice of 'Transpose' versus 'Note Shift' is more complicated.

No matter which path you choose it is important to TEST, TEST, TEST to make sure things work the way you expect.

 
Posted : 17/04/2025 11:52 pm
Share:

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