A dynamic volume mixer with process icons that reflects the windows volume mixer. Control each independent process' volume as applications open and close. No need to statically assign a button to a single application, the application placeholder actions will update accordingly.
IMPORTANT: To have the plugin work best and provide as many process icons as possible, please ensure you are running your Stream Deck app as an administrator. See "Troubleshooting" for more details.
Tutorial Video: Click to watch
Have a small stream deck? Instead of dedicating buttons to volume controls, only show controls when you select an application you want to control.
Want an application to stay on the same key regardless if it's open or not? Make it static.
Have an application you know you will never want to control? Add it to your blacklist to prevent it from ever being displayed on your Stream Deck.
No need to head into Stream Deck and manually blacklist it. Hold down the key for 1.5 seconds and it will be auto-magically added to your blacklist.
At the moment for V1, processes do not move on to consequative pages once a page is full. This behaviour is something I would like to add, however it would be a user setting as this can also be seen as unintended behaviour.
You can have multiple static applications, just not the same application. This is a limitation of how the code was written. This shouldn't be an issue for most, let me know if it is.
This is due to the fact there is no way to discriminate between them during the applications lifecycle.
Icons flicker and jump around.
This occurs due to each action needing to check the state of others, along with the lack of tracking which would be resolved by forcing left to right. This should not occur frequently and lasts for only a second.
Application's not showing/disapearing when launched/closed.
While testing I noticed this occuring with some apps, notably Spotify. Some apps will only notify the OS of their audio intentions once they actually start playing, not on open. So keep this in mind. You can see this for yourself, if you open up the Windows Volume Mixer. A possible solution to this would require quite the re-write, of watching applications rather than just audio sessions.
Some applications show as default app icons
Either the audio session actually does not have an associated icon, or more likely, you are not running your Stream Deck as an administrator.
- Changing default output device.
- Add Application Whitelist (Application priority)
- Alighn applications left to right. (Note to Self: Currently not occuring as the application actions array index is not reflective of the key position)
To use:
- Right click the project and choose "Manage Nuget Packages"
- Choose the restore option in the Nuget screen (or just install the latest StreamDeck-Tools from Nuget)
- Ensure the DistributionTool.exe exists where specified in the
install.bat
- Update the manifest.json file with the correct details about your plugin
- Modify PluginAction.cs as needed (it holds the logic for your plugin)
- Modify the PropertyInspector\PluginActionPI.html and PropertyInspector\PluginActionPI.js as needed to show field in the Property Inspector
- Before releasing, change the Assembly Information (Right click the project -> Properties -> Application -> Assembly Information...)
For help with StreamDeck-Tools: Discord Server: http://discord.barraider.com
Resources:
- StreamDeck-Tools samples and tutorial: https://github.com/BarRaider/streamdeck-tools
- EasyPI library (for working with Property Inspector): https://github.com/BarRaider/streamdeck-easypi
- Stream Deck Distribution Tool: https://developer.elgato.com/documentation/stream-deck/sdk/packaging/
- Open an admin terminal.
- Navigate to repo directory.
- Ensure a build is created for your target (DEBUG|RELEASE)
- Run "./install.bat DEBUG com.javanpoirier.audiomixer"
There are a few ways to log...
1. StreamDeck Logger - Connection.LogSDMessage() will log to a file to AppData\Roaming\Elgato\StreamDeck\logs\com.javanpoirier.audiomixer0
with 0 being 0-9.
1. BarRaider Logger - Logger.Instance.LogMessage() will log to a file within the plugin install directory AppData\Roaming\Elgato\StreamDeck\Plugins\com.javanpoirier.audiomixer.sdPlugin\pluginLog.log
1. Sentry - Refer to Sentry documentation.
- Change AssemblyVersion in ./AssemblyInfo.cs
- Change manafest.json verison
- Change Sentry verison