Streamdeck Controlling the Outputs form ListenHub
Hey guys. New here. I'm wanting to build a button on my stream deck to change the output section of Listen Hub from Main to Alt. Is there a way to do that? I've never really done anything with StreamDeck other than some basic OSC commands to control a Digico Console, which was already a companion command that was drag and drop.
Chad Wahlbrink @Chad2025-07-02 15:33:25.463ZHi, @Chris_Leonard,
Is ListenHub a standalone application or a plugin?
Is this the one? https://sonnox.com/products/listenhub
I haven't worked with that plugin and don't own a license, but there may be some options available.
- CChris Leonard @Chris_Leonard
Thats it! I'm using it as my system audio device. it allows me to have my monitors as my main out and the headphones as my alt out. I'm using VSX, so they have to be a separate output.
Chad Wahlbrink @Chad2025-07-02 19:24:57.817ZOkay, thanks for the context - I'll give the trial a spin and see what is possible! I'll follow up later this week.
- In reply toChris_Leonard⬆:
Chad Wahlbrink @Chad2025-07-03 18:28:53.997ZHi, @Chris_Leonard,
I played around with this app a bit today. It is scriptable!
Here's a script to set output to "Main"
let menuBarItemName = 'Main' let app = sf.ui.app("com.sonnox.listenhub"); let menuBarItemElement = app.getElement("AXExtrasMenuBar").children[0].children[0].children.find(mi => mi.title.value.includes(menuBarItemName)) menuBarItemElement.elementClick();Another version to set the output to "Alt":
let menuBarItemName = 'Alt' let app = sf.ui.app("com.sonnox.listenhub"); let menuBarItemElement = app.getElement("AXExtrasMenuBar").children[0].children[0].children.find(mi => mi.title.value.includes(menuBarItemName)) menuBarItemElement.elementClick();And then yet another if you wanted to toggle:
let menuBarItemMain = ' Main' let menuBarItemAlt = ' Alt' let app = sf.ui.app("com.sonnox.listenhub"); // Need to do this to referesh the menu app.getElement("AXExtrasMenuBar").mouseClickElement({anchor:"MidCenter"}); if(app.getElement("AXExtrasMenuBar").children[0].children[0].getMenuItem(menuBarItemMain).isMenuChecked){ app.getElement("AXExtrasMenuBar").children[0].children[0].getMenuItem(menuBarItemAlt).elementClick(); } else { app.getElement("AXExtrasMenuBar").children[0].children[0].getMenuItem(menuBarItemMain).elementClick(); }Here's a quick video with some other ideas for controlling it with macros instead of scripts:
- CChris Leonard @Chris_Leonard
Huge thank you!!! Ended up running the script so I can stay in PT without it having to jump around. Do you have a YouTube page where you show content like this? Would love to learn more about how to be more efficient with PT and Soundflow.
Chad Wahlbrink @Chad2025-07-04 19:21:53.753ZHi, @Chris_Leonard,
Glad to hear it!
Yes, we have the Learning SoundFlow playlist on YouTube with more basic tutorials for using SoundFlow, and then we have the Live Coding Sessions Playlist on YouTube with more in-depth examples of coding and setting up different workflows.
As always, feel free to reach out on the "How To" section of the forum with any and all great questions like this one.