DuckyPad driver for Twitch Streams
Go to file
2023-07-23 21:28:10 +01:00
configs/potato load 'streaming_extender' profile on startup 2023-07-11 21:05:17 +01:00
duckypad_twitch reset current_scene on streamlabs shutdown 2023-07-23 21:28:10 +01:00
tests initial commit 2023-07-05 13:44:21 +01:00
__main__.py increase delay 2023-07-12 04:55:49 +01:00
.gitignore load 'streaming_extender' profile on startup 2023-07-11 21:05:17 +01:00
LICENSE.txt initial commit 2023-07-05 13:44:21 +01:00
pyproject.toml initial commit 2023-07-05 13:44:21 +01:00
README.md initial commit 2023-07-05 13:44:21 +01:00

duckypad twitch

PyPI - Version PyPI - Python Version


Table of Contents

Installation

pip install duckypad-twitch

About

This respository holds the source code for the Duckypad driver we use when Twitch streaming.

Packages used in this codebase:

Need for a custom driver

We use a three pc streaming setup, one gaming pc for each of us and a third pc that handles the stream. Both of our microphones, as well as both gaming pc are wired into an MR18 mixer which itself is connected to the streaming pc. Then we vban our microphones from the workstation off to each of our pcs in order to talk in-game. All audio is routed through Voicemeeter, which itself is connected to Studio ONE daw for background noise removal. Any voice communication software (such as Discord) is therefore installed onto the workstation, separate of our gaming pcs.

If you've ever attempted to setup a dual pc streaming setup, you may appreciate the audio challenges of a three pc setup.

Details about the code

This is a tightly coupled implementation meaning it is not designed for public use, it is purely a demonstration.

  • All keybindings are defined in __main__.py.
  • A base DuckyPad class in duckypad.py is used to connect the various layers of the driver.
  • Most of the audio routing for the dual stream is handled in the Audio class in audio.py with the aid of Voicemeeter's Remote API.
    • Some communication with the Xair mixer and the vban protocol can also be found in this class.
  • Scene switching and some audio routing are handled in the Scene class in scene.py.
    • A StreamlabsController class is used to communicate with the Streamlabs API.
  • Dataclasses are used to hold internal states and states are updated using event callbacks.
  • Decorators are used to confirm websocket connections.
  • A separate OBSWS class is used to handle scenes and mic muting (for a single pc stream).
  • Logging is included to help with debugging but also to provide stream information in real time.

License

duckypad-twitch is distributed under the terms of the MIT license.