Synth Forum

Notifications
Clear all

Modx sysex performances

7 Posts
3 Users
0 Reactions
94 Views
Posts: 4
Active Member
Topic starter
 
[#63591]

Hi there, keyboard/sysex idiot here looking for some clarity.
I'm reasonably smart with a dj program [like saying I'm smartest on the short bus].

I'm helping a MODX8 user [I think it's an original, the PID is 0x172A, if it's not please say]
with connectivity... remotely... [fun]

Now he wants loading a track in the dj program to
1 change the user bank
2 change the live set page
2 select a slot from the live set page

limitation; the DJ software CAN NOT send Program Change midi
 it can however send sysex

Is it possible to do what I want on the midi side with just sysex? From what I read it would appear no.

The dj app side isn't a problem, the app sees the keyboard,
getting bankNum, pageNum, slotNum from a mp3/mp4 [whatever] is trivial for me
turning those variables into sysex calls is again trivial

I've see;
I can change user bank with 
OxF043107F1C07090000XXF7
that XX-byte before the closing F7-byte being bankNum

Live set page and page slot however seem to be requiring a PC command.

Unless I can have user manage their own ordering if I could call a performance directly with sysex [bypassing live set].

Please forgive if I sound dumb I've only the briefest understanding on what half of this stuff is and what the terms mean.
And I tying my best not to have to learn it...
I tried the LLM route and wish I hadn't, - lied to me for 3 straight days. 


 
Posted : 11/07/2026 3:51 am
Jason
Posts: 9166
Illustrious Member
 

You can't do it as far as I know.   You could have a library of SysEx commands for each Performance they want to load so you "clone" these Performances with a bunch of SysEx that sets up all of the parameters equivalent to the Performances.

 

That's likely not what you want.  Or you could task a second program to do the MSB LSB PC commands.  Maybe even sit in the background waiting for a specific SysEx trigger that would send the PC and bank MIDI.

 

 


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

 
Posted : 11/07/2026 6:27 am
Posts: 4
Active Member
Topic starter
 

Thank you for the fast reply and to the mod who reviewed my post quickly too.
I had a word with the devs over on the dj app

turns out their sysex command , is just a 'serving suggestion' on the sysex name, "yeah it can be used for sysex..."

BUT it can just dump raw bytes into the midi pipeline,
so it can practically do ANYTHING
<sysex value="B0003EB02000C000" name="001" default="param_equal `get_var $perfSysex` 1" />
live set page 1, slot 1 triggered from an in app variable == a value

kind of feels like cheating, but I should have known if they left what looks like a hole then it probably isn't a hole
[they like to (under)explain things "like so 1 + 1 = 2, therefore super computers" ]

So sorry for wasting your time but yeah man in the middle was going to be my back up plan.
Have a good one, enjoy the sun or avoid it if it's too much.


 
Posted : 11/07/2026 8:39 am
Posts: 4
Active Member
Topic starter
 

Oh just because other people might be wondering the dj app is virtualDJ, user now has backing track when loaded in VDJ tells keyboard what performances to load in, plus he's sending out to his DAW and midi mixer from his modx8


 
Posted : 11/07/2026 3:25 pm
 Pete
Posts: 1498
Noble Member
 

What OS are you using? On windows try using 'loopMIDI'. You need to create a config xml file that sends msb, lsb and pc messages in that order for the bank and slot.

So page 5 slot 14 would be 'B0 00 3E', 'B0 20 04', 'C0 0D' (B0/C0 -> MIDI channel 1)

Create a config file (e.g. MODX_Triggers.xml)

<?xml version="1.0" encoding="UTF-8"?>

<device name="MODX_Triggers" type="MIDI">

<!-- Macro for Page 1, Slot 1 -->

<element name="liveset_p1_s1" type="led"> <value sendsysex="B0003E B02000 C000"/> </element>

<!-- Macro for Page 5, Slot 14 -->

<element name="liveset_p5_s14" type="led"> <value sendsysex="B0003E B02004 C00D"/> </element>

</device>

In VirtualDJ->Settings->Controllers set it to point to your XML file

On the road so can't try this right now.


 
Posted : 11/07/2026 5:48 pm
Posts: 4
Active Member
Topic starter
 

@Pete windows But I defined the modx directly to get the results.
I have used loopmidi in the past haven't had chance to try the new native windows loopback.


 
Posted : 12/07/2026 1:29 am
Jason
Posts: 9166
Illustrious Member
 

They can do it directly with the software already.

 

I was wondering before my last post if you could terminate the SySex (even if the DJ software forced the SysEx) to do another form of cheating.   But if you're responsible for the SysEx framing bytes (F0, F7) then just using raw MIDI with no SysEx is the way to go.

 

Anyhow, glad the software has an undocumented "back door" avenue which gives it more flexibility.  Hopefully they won't design it out.  Or could just rename it to "raw MIDI" instead of SysEx and suggest SysEx could be one usage among other examples.


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

 
Posted : 13/07/2026 5:20 pm
Share:

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