MIDI SysEx Implementation and Assignment to External MIDI Devices

Tell me please:
how to perform the action to start MIDI Sysex? or how to assign a MIDI note on/off to a specific address/MIDIdevice or Virtual MIDI port of an external midi hardware, not rotation inside MacOS?

1 Like

I don't know about Sysex but here's a way to send midi packets to external devices:

1 Like

thanks for the feedback.
I have seen this macro but don't quite understand the KM syntax.
I already started the conversation in another thread. where i hi example "send raw packet"...there is a problem related either to my misunderstanding of the KM syntax or the strange behavior of KM when sending a raw massage:

Have a read of the Examples section here.

Ok! Thanks :wink:
last question:
is it somehow implemented / integrated with KM? or other app? like hammerspoon?

SendMidi is a command line utility that you can control with KM via the Execute a Shell Script action.

1 Like

last question:
how is the own body of the message stored in sendMIDI? separate file? and how is the file called? by what processing or signs is it broadcast from KM to sendMIDI? since there can be a lot of patterns (a nice library)

I'm afraid I don't understand the question. Download SendMidi and try it. Using the example I gave above, it would look like this:

I'm using a lot of MIDI commands, being sent from KM. I even trigger the MIDI commands from a MIDI foot pedal and it allows me to do basically everything hands free if needed.

A pretty simple yet flexible and reliable tool to route the MIDI data is …


It's free but since I am using it more or less on a daily basis I donated to support the developer.

In example for live streams I can change an OBS scene, a Keynote page for my notes and send a command to an instrument to call up a patch or something else simultaneously with just a simple press on the Live Logic foot controller.


Thanks again for your help, I appreciate it!
But I was interested in the reverse direction system:
from a app event trigger via KM to a MIDI controller that receives exclusive MIDI messages to create user feedback. and for this KM and Sysex message generation in particular are expected to work correctly. and not vice versa...

Thanks for the clarification. Unfortunately I wasn't able to understand that from your first post.

SendMidi does what you want. Have you tried it?

Yes, I investigate it app. but too slowly

Hi @noisneil,

I tried to send my command with any variations but didn't succeed! where is the syntax error?

Note: smidi - added alias "sendmidi"

Try starting the command with /usr/local/bin/. For example:

/usr/local/bin/sendmidi dev "ipMIDI Port 1" hex syx 00 00 66 10 12 90 64 7F

1 Like

Isn't result! :frowning_face:

Maybe due to virtual ports "ipMIDI" - unrecognized ?

I'm not going to be able to offer much more help with this, I'm afraid, as I'm just another guy who read up a bit and managed to get it working; I'm not an expert on command line stuff.

I suggest you read the instructions on Github and try and understand SendMidi for yourself. All I can tell you is that it works great for me when sending program changes to an external device.

Good luck.

1 Like

Anyway - thanks for your tips.

Have you read the instructions on Github? It says right at the top of the Usage section to use virt instead of dev for virtual ports. So in your case:

/usr/local/bin/sendmidi virt "ipMIDI Port 1" hex syx 00 00 66 10 12 90 64 7F

i did it,,, when showed above few messages: