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)