Mimic Radio Button type Behavior on Stream Deck

I use a Stream Deck XL for switching between various aspects of my guitar rig in my studio. In the rig are 8 guitar amp heads and 4 speaker cabinets. These are connected using an Amp/Cab selector, which is also controllable via MIDI, which I have set up in Stream Deck & it works great!.

I also have a loop switcher, which is also MIDI controllable, in the mix but this question isn't really applicable to that.

With the speaker cabinets and amps ,it's easy enough to have a selection trigger a 2nd icon image to display which button is active. What I would like, however, is when I select a different amplifier, for the 'active' icon on the 1st selection (and/or all amplifiers) to return to its normal icon. Same with the speaker cabinets (independent of amplifier selection).

In a tutorial here I read about a similar type thing - [Keyboard Maestro's Native Stream Deck Plugin Versus Kmlink Plugin] - (Keyboard Maestro's Native Stream Deck Plugin Versus Kmlink Plugin), in it the author states that the user cannot change the icon of the button from the 'default' icon provided by the Stream Deck action. Does this mean I cannot have a custom icon or title on that button prior to pressing it - say when the system is on a fresh boot?

I can provide a photo of my Stream Deck screen but I'm new here and can't seem to find an image link in order to insert one.

Also, for the amplifier heads, these are multi actions becaise when I select an amp I'm also selecting a saved session file in Console, which is the app used to control my UAD Apollo interfaces.

Sooooo, I guess my questions are 1) Can I do this, and 2) HOW can I do this? Thank you in advance for any help you can provide!

The rule of thumb is:

Use KM Link at all times, unless you need to change the button icon dynamically.

If you need to change the icon using KM, you must use the standard KM SD plugin.

Here is a very nicely written explanation of the differences between these two plugins by @cdthomer:

I did read that tutorial earlier but was unable to make it happen. I guess my understanding of the KM software is still pretty low as I just can’t seem to figure out how to make this work. As I am trying to change the button image, I have been trying using the KM Native method.

I happen to also have UA amps on my SD but my methods are quite particular to my setup, so sharing them might be more confusing than helpful.

In your case, I would suggest perhaps setting up a submacro whose sole purpose is to set the image of every button in the profile, each dependent on the state of a global variable. You can then change any number of button images by calling this submacro after having set the variables accordingly.


This is what I’m controlling with the SD. I use a KHE Amp/Cab selector. Works great.


That's one heck of an amp wall! :heart_eyes:

1 Like

Thank you! I'm actually currently in the middle of making a video walkthrough of that whole setup - I want to shoot a demonstration of it, featuring the integration of Stream Deck into changing everything, but for the life of me, I cannot figure out how to do what I described in the OP. Some questions I have:

First, some info on the buttons: Each amp button, in SD config, calls a multi action switch with 2 actions. The first sends a MIDI CC to UAD Console to call up the appropriate saved Session file for that amp (I have different mic blends for each amp). The seconds sends a MIDI CC wirelessly, using WIDI Jack, to my Amp/Cab switcher for whichever amp I'm choosing.

In the article you linked me to, it says that I cannot have an image/icon assigned to the button in the Stream Deck configuration. Does this mean the button will be blank (or will have the default icon) until I trigger an action via KM?

How do I write a Macro that will reset all of the buttons to the default "off" image/icon when I select a different amp/button? For example, say I have the amp assigned to button R2C1 currently active, but want to select the amp associated with button R2C8. What I'd like is for the image icon on R2C8 to change to reflect that one is active, and at the same time return the image icon on R2C1 to its default 'off' image icon. Then if I select another amp/button, to change that one to 'on' and the previous selection to 'off'.

Is this even a possibility?

Since these buttons are all sending a unique MIDI CC message, is it possible to use this as a MIDI trigger for the submacro you suggested? If so, ummmmm, how? LOL!

I started with this approach, but I found loading Console sessions a bit sluggish and switched to loading multiple channel strip presets at once instead. I assume you're using UA Midi Control for all this.

Ooh fancy!

Can you be a bit more specific? What kind of button are you talking about? If it's a multi-action, then you can't control its icon from KM. If you want to do that, you should create KM macros that perform both actions and trigger these from a standard KM SD plugin button.

There are a few ways to do this. Here's one approach...

Save your on/off icons to a folder like this one:

SD Test Icons.zip (20.3 KB)

Here is a submacro that will set each button's icon to inactive and then set a single button to active. The activated button will be determined by the parameter sent when calling the submacro:

Set SD Amp Icons (Submacro).kmmacros (45 KB)

Macro screenshot

Here's an example calling action:

These are, indeed, multi action switches.
Can macros be created in KM to send MIDI CC's out as I have them in SD? I did a little research on that but what I found was that KM won't actually send the CC's to a specific destination.

BTW - I'm using two different MIDI plugins (MIDI and MIDI Button) in Stream Deck, one sends to the WIDI Jack, the other to UA MIDI Control (yes, I am using that LOL). I've found that if I try to use just obe of them I can't set different destinations or MIDI ports for separate functions. For instance, if I change the port on the action to change amp channels, it also changes in the action to switch the UA Session file.

BTW - if I just bring up multiple channel strip presets in Console, would that also change fader positions and Send levels?

And finally - your understanding of KM is incredible. My head's swimming with all this new information LOL! Thank you so much for your help!

1 Like

Not natively, but...

Possibly not, but you can also set them explicitly via UA Midi Conrol... Of course if you don't mind the sluggishness, you can stick with loading Console sessions instead. It's certainly simpler to set up!

I really appreciate your helping me as you’ve been doing. Studying the screenshots you’ve sent has really helped acquaint me with some of the intricacies of KM as I just downloaded it today and am totally green with it.

I too have noticed the sluggishness of loading session files into Console. Thankfully, though, I don’t use it in a performance type situation, it’s strictly for changing presets between tracking. Heck, I don’t use any of this stuff in a live setting, I play for a living and have found that my Kempers are a much easier solution for that and they sound great.

It’s about 5am here on the East Coast so I need to grab. A couple hours shut eye. I’ve gotta get this video finished tomorrow & have gigs all weekend so it’ll probably be a day or two before I can dive back into this but I appreciate all the help you’ve given me. Would you possibly have any links to resources where I can learn more about the details of putting together these types of Macros in KM? I’d definitely appreciate it. I’ve just scratched the edge of the surface of what KM is capable of & I wanna learn more. You’re definitely a guru at this stuff, no question!

Thanks again!

Honestly, it's different for everyone because we all have different areas of interest. The forum is really the best resource as so many things have been covered. I started with KM about three years ago, and the forum taught me everything I know.