GithubHelp home page GithubHelp logo

onyx-and-iris / duckypad-twitch Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 23 KB

DuckyPad driver for Twitch Streams

License: MIT License

Python 100.00%
duckypad obs streaming streamlabs twitch voicemeeter voicemeeter-remote

duckypad-twitch's Introduction

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.

duckypad-twitch's People

Contributors

onyx-and-iris avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.