With the release of OBS Studio 32.1 and the newly rewritten Audio Mixer, users can now "Pin" audio sources to keep them anchored and permanently controllable in the mixer UI, even when they are inactive or not present in the current program scene. This is a massive feature for professional broadcast workflows and middleware automation (similar to audio matrixing in vMix).
However, there is currently no way to programmatically check if a source is pinned, nor a way to pin/unpin a source via the obs-websocket API. For developers building custom broadcast UIs, automation servers, or hardware controller profiles (like Bitfocus Companion or MIDI surfaces), missing this capability splits the state of the software UI from the remote control interface.
Describe the solution you'd likeWe need requests and events added to the obs-websocket protocol to handle the pinning state of input audio sources. Ideally, this would include:
Additional contextThis addition is crucial for low-cost broadcast automation systems and remote production dashboards that rely on OBS acting as a predictable, headless A/V matrix engine.
However, there is currently no way to programmatically check if a source is pinned, nor a way to pin/unpin a source via the obs-websocket API. For developers building custom broadcast UIs, automation servers, or hardware controller profiles (like Bitfocus Companion or MIDI surfaces), missing this capability splits the state of the software UI from the remote control interface.
Describe the solution you'd likeWe need requests and events added to the obs-websocket protocol to handle the pinning state of input audio sources. Ideally, this would include:
- New Requests:
- GetInputAudioPinned (Returns boolean)
- SetInputAudioPinned (Takes inputName and audioPinned: boolean)
- Updated Request Responses:
- Include an audioPinned boolean field inside the response payload of existing input requests like GetInputList and GetInputDefaultSettings.
- New Event:
- InputAudioPinnedStateChanged (Fires whenever a user manually pins or unpins an audio source in the OBS UI, sending inputName and audioPinned).
Additional contextThis addition is crucial for low-cost broadcast automation systems and remote production dashboards that rely on OBS acting as a predictable, headless A/V matrix engine.