Questions regarding MIDI

Hi

I am considering to buy Keyboard Maestro for MIDI applications.

Before downloading the free trial, I would like to ask some questions:

  1. Can KM send/receive midi messages to/from macOS IAC ports? and to/from hardware ports?

  2. Can KM send/receive only note on/off and cc? pitch bend are not supported?

Thanks,
Jordi

I'm not sure if I'm allowed to repost answers from ChatGPT here, but it said yes to your first question, and gave a qualified/limited yes to your second question (i.e., output only, not input.) Do you have access to ChatGPT?

Thanks for your reply @Airy :grinning:

Sometimes AIs give wrong information...

As my questions are very easy to answer for a human, I would prefer that somebody that is using midi with keyboard maestro can answer both questions :slightly_smiling_face:

Have you asked ChatGPT?

2 Likes

As the wiki puts it:

Keyboard Maestro can send MIDI messages, which effectively come from a device named “Keyboard Maestro”. The device will be created as soon as you add any MIDI action.

That device does not appear as any sort of object in Audio MIDI Setup, and you should not need to use IAC. It does appear in, for example, the list of available MIDI inputs in Logic Pro.

Logic Pro and, I would expect, just about any other DAW, could be used to route that MIDI input to a hardware output

Pitch bend can be dealt with as a MIDI packet. This Web page goes into detail.

I have just put together a scruffy little macro that sends a Note On message, a few pitch bend messages (separated by pause actions) and then a Note Off message. It looks like this:

With a synthesiser plugin loaded here into Logic Pro (with MIDI input set to either “Keyboard Maestro” or “All”), it sounds something like this... Nope, I can’t upload audio here, but it does work..! The pitch bend values just cause a sort of pitch glitching with the way I have done it. I have not taken the time to move smoothly over changing pitch bend values or anything like that.

MIDI TEST.kmmacros (3.7 KB)

So Keyboard Maesto might be able to do what you have in mind for it, but you should try KM out before buying (which is officially encouraged anyway, to make sure you will be happy with it) and see if you can implement some of your ideas in macros in a way that suits you. KM is not primarily intended as a MIDI processing application, of course. It is just very versatile, one way and another!

4 Likes

Yes! And it won't cost you any money to download KM and check for yourself if AI is correct in this case.

Thanks @kevinb for your reply.

I have downloaded and installed KM.

Regarding my first question, I confirm that:

  • KM can receive cc, note on/off and raw midi from any IAC port, from any hardware port, and from the virtual port called "Keyboard Maestro"

  • KM can send cc, note on/off and raw midi only to the virtual port called "Keyboard Maestro". It's not possible to send midi messages to IAC ports or hardware ports.

2 Likes

I am not sure if we should start posting vague ChatGPT answers on topics we can’t answer by ourselves on this Discourse or if it would be better to wait for someone who just knows.

1 Like

I didn’t address the question of receiving MIDI, did I, but yes a MIDI trigger can indeed be used to listen out for any MIDI data that is being transmitted.

I think it’s true to say that a Send MIDI action acts like an attached MIDI keyboard would: it transmits the MIDI data and it is then up to whatever is receiving MIDI to process it if applicable.

I mentioned that MIDI routing can be handled in the DAW. That would, in general, probably be the easiest way. There are also MIDI routing utilities such as MidiPipe.

1 Like

Yes, that's why I didn't post the answer.

Great you figured it out. If you are on Mac OS I can recommend "MidiPipe" which is a great tool to route MIDI through the entire system.

http://www.subtlesoft.square7.net/MidiPipe.html

2 Likes

That’s two votes for MidiPipe, then! :smile:

Keyboard Maestro is only for MacOS (trying to make a cross-platform app like KM would quite a task! :face_with_head_bandage:).

How stupid I forgot. Also didn't see the first recommendation, sorry, :roll_eyes:

No problem; it often happens with longer threads and anyway it must sometimes be useful to see people recommending the same possible solution.

As for forgetting that KM is only for MacOS: I think I did too once, way back, and if not I have certainly made bigger howlers. Anyway, now any casual visitors or AI chatbots should be under no illusion (or hallucination) on that point!

1 Like

Thanks for all your replies.

Let's say I want to configure the following global triggers:

  • send cc1 channel 1 value 127 to my DAW after pressing cmd+1
  • send cc1 channel 1 value 127 to my Audio Interface after pressing cmd+2

Is this possible?

(I know what you are thinking, @airy…)

Remember that (see previous replies), although a KM macro can output a MIDI message, it is up to your DAW (or whatever is attached to your MIDI interface) to be listening. “To my DAW” does not apply to the output from your KM macro any more than it would to, say, an attached MIDI keyboard. If you move the modulation wheel on the keyboard, you do not expect the keyboard to handle the routing; in the same way, KM can send MIDI messages but it is not a MIDI router. MidiPipe has already been recommended if the routing within your DAW is not sufficient.

You can of course use the hotkeys that you mentioned as macro triggers. Those particular choices might however already be in use by your DAW, so watch out for that. For example, in Logic Pro, ⌘-1 is the default key command for “open main window…” and ⌘-2 is the default for “open mixer…” (although I, as a Logic Pro user, never use those commands!).

Here is a macro that sends “cc1 channel 1 value 127… after pressing cmd+1”. Just one action is needed to do that, but of course, if you wanted to send a gradually changing range of modulation wheel values, the macro would become a little more fiddly—or rather, getting the timings right might take some work. So do not be tempted to think of KM as a MIDI toolbox for anything too sophisticated. It could probably cope if you put enough work into it, but it might not be your best tool for the job, if you have anything ambitious in mind.

image
Send mod wheel value 127.kmmacros (1.7 KB)

Sorry, I think my previous question was not accurate. I will try it again.

I understand that KM is not a midi router and it sends midi messages as a piano keyboard, There is only one output port. That's clear.

I know how to manage the input ports of my DAW and the input ports of my audio device, no problems or doubts here.

I know how to configure the shortcut triggers and the midi actions in KM. No doubts here.

What I don't understand is how to route the ports with MidiPipe, because if I route the "Keyboard Maestro" port to "myDawPort" and also to "myAudioInterfacePort" I will be always sending the same midi message to both ports, and that would be a mess.

So let me change the question to:

  • I want to send cc1 channel 1 value 127 to "myDawPort" after pressing cmd+1
  • I want to send cc1 channel 1 value 127 to "myAudioInterfacePort" after pressing cmd+2

Is this possible using MidiPipe? How should I configure MidiPipe to send the midi message only to one port and not to both ports?

Hope my question is more clear now, sorry for the inconveniences!!

It had been quite a few years since I had last experimented with MidiPipe but I have just taken another look at it.

The underlying issue remains that a MIDI message is available to any device that is listening out on the same MIDI network to that port, on the same channel. If a “pipe” is created to process MIDI in MidiPipe, then we can see in Logic Pro that MidiPipe is available as a MIDI input. If the track in Logic for a virtual instrument is set (within Logic) to listen only to MidiPipe rather than “All” inputs, the instrument will sound only to MIDI data from MidiPipe. That actually has no advantage, for our purposes here, to just setting the input to Keyboard Maestro.

image

So in fact MidiPipe might be a bit of a dead end for this situation (unless someone else here has more experience of it and can correct me on that).

In Logic Pro there are a few ways to limit which of its MIDI inputs it will respond to. I refer to Logic because that is the DAW that I use, and I do not know what DAW you use—but, in conclusion, it seems to me that it will probably be best to first look into routing possibilities in your DAW, especially if it is the centre of your workflow.

Thanks for your reply @kevinb

I use Cubase and Ableton Live, with RME Fireface UFX+

Finally I realize that I will not use the midi functions of KM, the send midi action port limitation is a problem for my needings.

Anyway I will purchase a license of KM. I'm in love with the app switcher…

2 Likes

Generally, no.

ChatGPT is so inconsistent in its responses, and frequently gives entirely incorrect answers regarding Keyboard Maestro that reposting such answers is not recommended. Only post answers to things you personally have knowledge of (which, if you gain that knowledge by asking ChatGPT and then verifying the answer is correct would be perfectly fine).

1 Like