KM & Stream Deck - two way communication?

The Stream Deck is great for triggering KM macros, but is it also possible for Keyboard Maestro to virtually 'press' a Stream Deck button?

The reason I ask: I currently have two macros, which switch my audio routing between two different states. These can be toggled by the Stream Deck (as a multi-action switch, using KMLink) and also by hitting the record button in Logic Pro. When triggered by Logic Pro, the Stream Deck is unaware and the incorrect state icon persists, which can be confusing. One solution I can envisage would be for the Stream Deck button to be 'pressed' when I hit the record shortcut in Logic.

Any help very much appreciated!


I assume by “audio routing” you either mean “switching between two different speakers” or “switching between two different microphones”.

If that is the case, I recommend that you look at the “Audio Switcher” plugin for Stream Deck. It can do what you want, and the button will be updated. It can be installed via the Stream Deck app itself on the Mac.

(Aside: if you are using an M1 Mac, be sure you have version 4.9.3 of the Stream Deck software which works much better on M1 Macs.)

Thanks for confirmation about virtual presses. It's odd that you don't even seem to be able to sync button states between profiles. So if I have the same button and switch it 'on' in one profile, it'll still show as 'off' in another. Unless of course I'm missing something, which isn't unlikely! I've heard talk of people setting up transport control buttons for Logic that change visually from a "stop" to a "play" icon to reflect Logic's state. I can't see how to do that, because if I hit the space bar in Logic, the Stream Deck has no idea and still thinks it's stopped.

Thanks for the audio switcher suggestion, but it's a little more complex than would be possible. My macro selects low latency mode in logic, then mouses over and switches some buttons inside the UA Console app which changes my headphone monitor routing and finally disables Audio Hijack, which runs my speaker/headphone correction plugins.