Skip to content
This repository has been archived by the owner on Jan 18, 2024. It is now read-only.

DuckyPad driver for Twitch Streams

License

Notifications You must be signed in to change notification settings

onyx-and-iris/duckypad-twitch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.