
Elgato StreamDeck [Mac Plugin] Feature Request for additional audio and show/hide.
Hello!
I have recently switched back to a Mac for using Wirecast as I was having audio driver issues causing latency. On windows the audio plugins for the stream deck were quite helpful (specifically the ability to mute the specific audio sources).
Upon switching to Mac I saw the stream deck Mac app does not have these plugins supported due to the way Mac handles audio differently than windows with coreaudio API.
Thus is it possible to add the feature to mute audio sources or hide/unhide sources of the currently live / selected scene in the Wirecast Mac stream deck plugin instead?
I am not a software dev so I am unsure of how hard this would be to integrate but I know even on windows I thought it would be helpful to have the ability in the Wirecast plugin to hide/un hide specific sources in Wirecast on the stream deck.
Overall it is a very helpful device and has made life easier. So thank you either way for making this stream deck plugin available in the first place.
Happy Holidays!
-Rob
-
Robob said:
Upon switching to Mac I saw the stream deck Mac app does not have these plugins supported due to the way Mac handles audio differently than windows with coreaudio API.Did you see these on Wirecast StreamDeck Plugin for Windows but not Mac?
Wirecast StreamDeck plugin 1.1?
Can you post screenshots of the difference between Windows and Mac? -
It is simply a windows only plugin I was using to mute my mic on windows seen here: (https://github.com/fredemmott/StreamDeck-AudioMute) or search mic mute on windows stream deck software seen on list here: https://help.elgato.com/hc/en-us/articles/360028232451-Elgato-Stream-Deck-Plugins
However from what I see from the developer responses, he cannot port it easily over to Mac. Because core audio doesn’t maintain a list of inactive input devices. So once you unplug or lost an input source the plugin would crash during use on Mac when he tested. That is why there aren’t any audio related plugins shown on that list for Mac, but windows has a few more available (too bad for the horrid DPC driver latency)
This is why I was wondering if it could be implemented in the Wirecast side of things by controlling the actual muting and visibility of layers of the shots in the Mac stream deck plugin directly to the wirecast app.
That way I can mute the source in wirecast without having to actually mute it on the system side and having to have an actual core audio implementation.
It would just be the plugin controlling the UI of wirecast. It could be implemented in the wirecast stream deck plugin as a toggle by source or index # in the list (on/off) if it’s audio it would mute and video it could show/hide.Also I assume it could be both Mac/windows compatible this way as it’s just the stream deck plugin directly controlling the Wirecast UI.
-
Robob said:
However from what I see from the developer responses, he cannot port it easily over to Mac. Because core audio doesn’t maintain a list of inactive input devices. So once you unplug or lost an input source the plugin would crash during use on Mac when he tested. That is why there aren’t any audio related plugins shown on that list for Mac, but windows has a few more available (too bad for the horrid DPC driver latency)Can you please link to the developer's response?
If they can't do it than it's doubtful Telestream would be able to either.
Robob said:
This is why I was wondering if it could be implemented in the Wirecast side of things by controlling the actual muting and visibility of layers of the shots in the Mac stream deck plugin directly to the wirecast app.Perhaps first we need to develop the ability to have a command (rather than just a mouse click) to enable/disable shot layer visibility/audibility. We are considering that. One that happens perhaps applying that to StreamDeck would be easier on our end.
-
The response I found was here (https://github.com/fredemmott/StreamDeck-AudioMute/issues/1)
I saw there is a preview Mac version he uploaded but it has issues with Bluetooth and other devices crashing the plugin once unplugged. In my workflow I use AirPods Pro on and off throughout my stream so as soon as I removed one it crashed the stream deck plugin.
Is clicking the mute on an input source in Wirecast side bar actually muting it on the system side? Or is it just muting audio or hiding video output to the encoder in the Wirecast software itself?
That is why I didn’t know if it was easier to implement in the Mac Wirecast plugin as a input source control on the Wirecast software side. That way you would be hiding or muting the source itself in wirecast and not having to worry about controlling the mic with another plugin. Also it wouldn’t matter if a device drops or is unplugged as Wirecast is outputting to the default audio device anyway.
So it would be a matter of having the stream deck plugin interact with the Wirecast software by turning input layers on/off like you were clicking to hide or mute them in the sidebar of a selected scene in Wirecast.
If you were also able to add the ability to have a keybind mute an audio layer or hide a video layer, that in turn could be bound to a hot key in the stream deck.
However in my testing stream deck hot keys with Mac if the software is not in focus or the app isn’t “on top” with its menu bar shown in the top bar, then the hot key will not be activated in Wirecast.
Even if the keybind is marked as global in Wirecast, the Mac OS security and access must not let the keybind work globally from the stream deck to the software. You can however use the keyboard and the shortcut will work, but for some reason having the input come in from the stream deck doesn’t allow the keybind to activate in the OS. -
Robob said:
In my workflow I use AirPods Pro on and off throughout my stream so as soon as I removed one it crashed the stream deck plugin.In my experience, you should set up all monitoring before starting Wirecast. Once Wirecast is open, changing the audio monitor path might result in issues.
Robob said:
Is clicking the mute on an input source in Wirecast side bar actually muting it on the system side? Or is it just muting audio or hiding video output to the encoder in the Wirecast software itself?I'm not sure what you mean by "Wirecats side bar." Audio can be in shot layers, Audio Properties, System Device Properties, Preview, Live Out (which has monitor and live outputs).
-
Regarding audio output I have been changing output source for monitoring during streaming output in all my years of using Wirecast with no issues on Mac or Windows (even using AirPods on windows). As long as the default device is changed and Wirecast is set to output on default device, it has always followed suit in my experience. However it may not be recommended for mission critical streams, I haven’t had a crash from it ever.
I meant the “shot layers” which contain the separate audio and video inputs. The part of the UI with sources on left side of the selected shot and live preview of the wirecast UI that allow you to click and mute or hide sources.
Sorry for not using the correct terminology, thanks for the consideration of the feature!
-
Robob said:
I haven’t had a crash from it ever.until
Robob said:
In my workflow I use AirPods Pro on and off throughout my stream so as soon as I removed one it crashed the stream deck plugin.The risk may be small but still a possibility. Bluetooth may be a bit more finicky. Interesting that it impacted the Stream Deck plugin though which is through USB. Perhaps it was impacted by the change from AirPods Pro.
Robob said:
I meant the “shot layers” which contain the separate audio and video inputs.Disabling the audio icon turns it completely off in the Preview shot such that when you take it live, that audio will not be streamed or recorded. It does not affect the currently live shot though.
In other words, you set the audio state in Preview and then you take it live in order to make it change.If you want an immediate impact you can disable it in the Wirecast Audio Mixer as those faders/channels are live.
-
Oh yes I know how they are implemented in the software, I just was mentioning it as reference to how the Mac stream deck Wirecast plugin could achieve the use case of controlling input sources in the shot layer list. Rather than a separate audio device control plugin that is bound by OS restrictions.
The plugin on stream deck probably crashed because it was a preview build the dev posted in comments, plus BT and usb devices disconnecting was in his list of fixes for the plugin due to the core audio limits he was working around. But I just stream games, tech, and 3d printing stuff for hobby. So if I crash it isn’t a big deal since only tens of people are watching if I am lucky, no 100s-1000s missing the show haha.
I hope the shot layer control is able to be implemented easily in the future, for now I just created extra shots, with and without mic input source, and use more buttons on the stream deck to cycle between them as needed.
-
Robob said:
The plugin on stream deck probably crashed because it was a preview build the dev posted in comments, plus BT and usb devices disconnecting was in his list of fixesGood to hear he's fixed that.
Robob said:
I hope the shot layer control is able to be implemented easily in the future,I can see the convenience in that for sure.
We would do this cross-platform though with the Elegato Plugin. Our Reference for the feature request is WIRE-18334