[Feature Request] Add MIDI CC message

That’s great news Peter. Firing MIDI notes can inadvertently make for a “noisy” system. The MIDI CC option is much better. Thanks!

Would it be possible to send out transport messages, or machine control or whatever it is called?

To dream on even further; i would be totally awesome if KM can emulate the HUI protocol. So we can use our own buttons to control ProTools and Logic etc. Man, you would make me (and a lot others) happy!

1 Like

I suppose there is no particular reason I can’t allow sending out raw packets, then you could do whatever you wanted (including the HUI protocol).

1 Like

I moved your post over to this topic about MIDI (as opposed to DIY USB
controllers).

sorry P, too overloaded to nav the forums.

I don't have enough information on how PC or mono/poly aftertouch work
or how they would be used to implement these.

we need to team you briefly with a MIDI hacker. i don't think it's as
crazy as it sounds. MIDI was developed to be really simple.

I don't see what I would do with SysEx packets. I can't imagine any
useful UI for dealing with this that would not look like most Audio
controllers look - ie, insanely complicated.

MIDI geeks would giggle with glee if you could send out sysex packets,
it means you could build synth editors right within KM. that would be
really rare. more than this though, it means you could adjust synth
parameters at the base level without CC-wiring - this is really great.

in/out would mean you could use KM as a sysex librarian.

by parsing a sysex stream (perhaps MIDI Timecode?) it could wait to hear
certain semantics which would trigger macros - i can't think of a use
for this myself right now, but i know people would want it. It means
the non-continuous controller aspects of MIDI controllers (other knobs,
buttons, features) could be used.

finally, in N.I. Traktor, the wiring of connections is really fleshed
out. essentially if KM could match the implementation of Traktor -
you'd be golden for optimum/most users needs. That would be a good
litmus test of a full kit.

If you wanted to have a celebrity partner/testimonial - i'd talk
directly to Richie Hawtin, who could advise on this better than I could.
To have Traktor style integration merging with the massive power,
hooks and programming of KM, it would be a gamechanger for
audio/video/lighting/artist-related customers.

regular program changes PC and also the various banks -- i feel this is
really important because it would allow and and all patch-changing
devices to get onboard.

TouchOSC works fine with the existing MIDI note triggers via WiFi, and
in the new version works much better with the CC triggers. I don't
know if it sends any other kinds of MIDI messages - I didn't see any.

Interesting. I've avoided the TouchOSC can of worms for years now, but
people all around me are doing cool things with it. A friend was doing
lighting and video diffusion control using touchOSC on an ipad for a
Daniel Myer show.

The idea that KM could be an 'intelligent' / state-dependent go between
from controller to controllable is really exciting. you could have a
button on your MIDI controller light up when a drive comes online and
have turn off when an eject-press renders it ejected. state-feedback
buttons for anything. MIDI patch changes for totally changing your
working desktop environment while leaving the MIDI note keys/buttons to
remain wired for operational tasks, and switching kits based on the
environment.

the idea that you could use a MIDI pitch bend or mod wheel to move
cursor position or scroll a window = amazing

If the Keith McMillen 12-step outputs to coreMIDI and sends notes (or
in the next version, CC) messages, then it should trigger macros.

12step = class compliant √ and fully operational in this way. been
using since 2013. so convenient to use your feet, especially recording
but anything where hands need to focus and feet can just stomp
(deleting, chopping, back buttons, etc)

it's late - apologies if some of this is a little incoherent.

love your work as always
karl

Alright, the MIDI work is complete now.

  • MIDI
    • Added MIDI Control Change trigger.
    • Added MIDI raw packet trigger (SysEx, HUI protocol, etc).
    • Allow MIDI trigger recording when the text fields are focused in background.
    • Added Send MIDI raw packets so you can send any kind of MIDI packet.
    • Send MIDI action uses calculations so you can send varying notes and control changes.
    • Handle and split multiple MIDI packets received in a single system MIDI packet.

No OSC is planned, but that should hopefully add some useful features for MIDI control.

No ETA on release date yet, but it is getting closer.

2 Likes

wow! Looking forward!
For me, especially the HUI part. See if i can use KM to control ProTools through the HUI protocol!

2 Likes

any news on this update? I am so looking forward!

181012-1639- OK, I did some serious work in the MIDI triggers today - so grateful for this functionality. Extending beyond notes and CC (wow so many options!) to raw packets which are exciting but into the realm of Hex-MIDI hacking. A great companion to this module is: snoize: MIDI Monitor - a classic and required utility.

I couldn't get Program Changes going using raw packets - or, I should say I could get them going with the packet filters wide open but not with refining (I found that other CC triggers would understandably also be fired if packet trigger filters were wide open). I thought PC were just CC 00. Using packets, my understanding was a program change to 001 would just be a packet of "00 00". With enough research I'll figure this out.

I created a kit of foot controller triggers - I added it here:

2 Likes

I'm finding great use for this - Logic Pro has changed a lot about its handling of connected controllers in the last few revs, and KBM is now making it easy for me to breathe new (auto-mapping) life into an otherwise great keyboard/controller that had largely aged out of its original usefulness. There's a lot you can do with Logic's built-in automation mapping, but it's even better with KBM.

E.g. In Logic I've set up 8 different sets of uses so far for the 8 endless encoders on my keyboard, and I can switch between them from the keyboard itself – but it doesn't work consistently due to some other vagaries specific to the keyboard. But switching via keystroke and KBM does work consistently, so that's awesome. And I'm showing them in a Palette that only displays if this kybd is attached when I launch Logic, and that's helping me learn the mappings - bonus!

Another thing I'm working on is sending SysEx from KBM to my keyboard to set a particular parameter that doesn't save with the keyboard patch ("HyperControl Mode" = Transport rather than the default of Normal, which is necessary for all my new mappings). I'm a little stuck on that but not losing sleep. I've got the correct string but getting it to the keyboard is the hitch. I've got real producing work to do rather than tinker with this atm, but I'll post when I've got it sorted.

Keyboard Maestro can send MIDI CC messages.

Do you mean triggering on MIDI CC messages? That is possible via the raw packet trigger.

Similarly you can send SysEx packets with the raw packets as well I believe. I don't really have plans to try to support them directly.

Hi, @peternlewis!

Exactly as I wrote, I'm sending a SysEx message from KBM (using Send raw packet), and it works. The logic of my macro says, "When Logic launches, see if the Axiom keyboard is connected. If it is, show this palette and send this MIDI packet."

image

When I say "it works," I mean I can Try Action on the Send raw packet and the outgoing SysEx gets recorded by Logic (as a test, not what I ultimately want), and it's seen by MIDI Monitor of course. But the keyboard, the intended recipient, isn't responding to it, so that's what I need to figure out.

I could easily make a PureData patch that KBM could trigger; the PD patch would take care of sending exactly that message to exactly that destination. In fact, PD would be the easiest way to test that the message actually effects the change at the keyboard. Alternatively, within Logic I could use the Environment (a sort of background patching utility) to create the needed routing and then make that part of my project templates. I'll either figure it out or not; it's not a must.

Also, the thing about SysEx is that it's System Exclusive – the address, the intended recipient, is built into the message. You, @peternlewis, don't need to do anything else, here, I don't think – I think it's on me to figure out as a routing issue.

1 Like

Yes, Keyboard Maestro does not control where the message goes or to which application, it just sends them. After that what happens is beyond my control.

i want to receive my kenton killamix endless encoders' 7bit values for further processing. can i do that now?

Maybe, via the MIDI trigger, raw packets. If you have troubles, ask in a new topic with specific details.

I like it that you're housekeeping by only enabling macro groups when required. :+1:

In case that you, or others, don't know, Macro Groups can be set to automatically activate/deactivate based on a variety of criteria. For details see Macro Groups in the KM Wiki.

Thanks. I do use various hardware controllers in different setup modes, so I've considered doing this programmatically as you suggest. It usually ends up easier to a/d in the Editor.

Can anyone advise me on how to convert a PC to hex?

You've likely already solved this, but this might help

https://www.recordingblogs.com/wiki/midi-program-change-message

1 Like