Skip to content
This repository was archived by the owner on Mar 12, 2025. 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

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

duckypad twitch

Hatch project Ruff


Table of Contents

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 triple 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.
  • Voicemeeter 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 challenges of a triple pc setup.

Details about the code

This package is for demonstration purposes only. Several of the interfaces on which it depends have been tightly coupled into a duckypad macros program.

  • The package entry point can be found at duckypad_twitch.macros.duckypad.
  • 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.

Releases

No releases published

Packages

No packages published

Languages