diff options
| author | Eddy Pedroni <epedroni@pm.me> | 2026-10-10 17:20:48 +0200 |
|---|---|---|
| committer | Eddy Pedroni <epedroni@pm.me> | 2026-10-10 17:20:48 +0200 |
| commit | edc8d820df84c147ddb6e723b9639bddd6d15344 (patch) | |
| tree | 2ddf4fb25b0807115f4b2a15f9a1febf1718a343 /solo-tool-project/src/solo_tool/external_volume.py | |
| parent | 3c3fae1c29348c8b5674dac7ccdb30eab78668f6 (diff) | |
XR18 volume controllerv2.2
Diffstat (limited to 'solo-tool-project/src/solo_tool/external_volume.py')
| -rw-r--r-- | solo-tool-project/src/solo_tool/external_volume.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/solo-tool-project/src/solo_tool/external_volume.py b/solo-tool-project/src/solo_tool/external_volume.py new file mode 100644 index 0000000..425351a --- /dev/null +++ b/solo-tool-project/src/solo_tool/external_volume.py @@ -0,0 +1,31 @@ +from pythonosc import udp_client + +class VolumeControllerXR18(): + def __init__(self, ip: str): + port = 10024 + self._client = udp_client.SimpleUDPClient(ip, port, timeout=1) + self._headphoneVolume = 0.0 + self._speakerVolume = 0.0 + + def __del__(self): + self._client.close() + + @property + def headphoneVolume(self) -> float: + return self._headphoneVolume + + @headphoneVolume.setter + def headphoneVolume(self, new: float) -> None: + if new is not None: + self._headphoneVolume = min(max(new, 0.0), 1.0) + self._client.send_message("/config/solo/level", self._headphoneVolume) + + @property + def speakerVolume(self) -> float: + return self._speakerVolume + + @speakerVolume.setter + def speakerVolume(self, new: float) -> None: + if new is not None: + self._speakerVolume = min(max(new, 0.0), 1.0) + self._client.send_message("/lr/mix/fader", self._speakerVolume) |
