From 8fd35408d5e5e4884a63e50f47b4173b1922350e Mon Sep 17 00:00:00 2001 From: onyx-and-iris Date: Wed, 12 Mar 2025 17:13:34 +0000 Subject: [PATCH] rename the entry point vban instructions are only outbound for Audio.toggle_workstation_to_onyx() upd readme --- README.md | 18 +++++++++--------- duckypad_twitch/audio.py | 4 ++-- duckypad_twitch/{cli => macros}/__init__.py | 0 duckypad_twitch/{cli => macros}/duckypad.py | 0 pyproject.toml | 2 +- 5 files changed, 12 insertions(+), 12 deletions(-) rename duckypad_twitch/{cli => macros}/__init__.py (100%) rename duckypad_twitch/{cli => macros}/duckypad.py (100%) diff --git a/README.md b/README.md index 18294f2..c6819af 100644 --- a/README.md +++ b/README.md @@ -10,11 +10,6 @@ - [Installation](#installation) - [License](#license) -## Installation - -```console -pip install duckypad-twitch -``` ## About @@ -31,15 +26,19 @@ 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](https://www.midasconsoles.com/product.html?modelCode=P0C8H) 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], 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. +We use a triple pc streaming setup, one gaming pc for each of us and a third pc that handles the stream. -If you've ever attempted to setup a dual pc streaming setup, you may appreciate the audio challenges of a three pc setup. +- Both of our microphones, as well as both gaming pc are wired into an [MR18 mixer][mr18] 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]. +- 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 is a tightly coupled implementation meaning it is not designed for public use, it is purely a demonstration. +This package is for demonstration purposes only. Several of the interfaces on which it depends have been tightly coupled into a duckypad macros program. -- All keybindings are defined in `__main__.py`. +- 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. @@ -62,3 +61,4 @@ This is a tightly coupled implementation meaning it is not designed for public u [obsws-python]: https://github.com/aatikturk/obsws-python [slobs-websocket]: https://github.com/onyx-and-iris/slobs_websocket [voicemeeter]: https://voicemeeter.com/ +[mr18]: https://www.midasconsoles.com/product.html?modelCode=P0C8H diff --git a/duckypad_twitch/audio.py b/duckypad_twitch/audio.py index 7cc98b6..3f2bbf0 100644 --- a/duckypad_twitch/audio.py +++ b/duckypad_twitch/audio.py @@ -136,12 +136,12 @@ class Audio(ILayer): self.state.ws_to_onyx = not self.state.ws_to_onyx onyx_conn = configuration.get('vban_onyx') if self.state.ws_to_onyx: - with vban_cmd.api('potato', **onyx_conn) as vban: + with vban_cmd.api('potato', outbound=True, **onyx_conn) as vban: vban.vban.instream[0].on = True self.vm.strip[5].gain = -6 self.vm.vban.outstream[2].on = True else: - with vban_cmd.api('potato', **onyx_conn) as vban: + with vban_cmd.api('potato', outbound=True, **onyx_conn) as vban: vban.vban.instream[0].on = False self.vm.strip[5].gain = 0 self.vm.vban.outstream[2].on = False diff --git a/duckypad_twitch/cli/__init__.py b/duckypad_twitch/macros/__init__.py similarity index 100% rename from duckypad_twitch/cli/__init__.py rename to duckypad_twitch/macros/__init__.py diff --git a/duckypad_twitch/cli/duckypad.py b/duckypad_twitch/macros/duckypad.py similarity index 100% rename from duckypad_twitch/cli/duckypad.py rename to duckypad_twitch/macros/duckypad.py diff --git a/pyproject.toml b/pyproject.toml index 899848e..ec9e7b9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -36,7 +36,7 @@ dependencies = [ ] [project.scripts] -duckypad-cli = "duckypad_twitch.cli:run" +duckypad-macros = "duckypad_twitch.macros:run" [project.urls] Documentation = "https://github.com/unknown/duckypad-twitch#readme"