From cc26720ae2dfa47cc10ad61d81df53a767e07dfc Mon Sep 17 00:00:00 2001 From: onyx-and-iris Date: Sat, 24 Jun 2023 19:06:23 +0100 Subject: [PATCH] add eq, comp, gate to apply examples. --- README.md | 5 +++-- __main__.py | 12 ++++++------ examples/obs/__main__.py | 4 ++-- voicemeeterlib/iremote.py | 4 +++- 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 53df0e1..dff2c47 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,7 @@ def main(): vm.apply( { "strip-2": {"A1": True, "B1": True, "gain": -6.0}, - "bus-2": {"mute": True}, + "bus-2": {"mute": True, "eq": {"on": True}}, "button-0": {"state": True}, "vban-in-0": {"on": True}, "vban-out-1": {"name": "streamname"}, @@ -82,6 +82,7 @@ def main(): if __name__ == "__main__": main() + ``` Otherwise you must remember to call `vm.login()`, `vm.logout()` at the start/end of your code. @@ -636,7 +637,7 @@ get() may return None if no value for requested key in midi cache vm.apply( { "strip-2": {"A1": True, "B1": True, "gain": -6.0}, - "bus-2": {"mute": True}, + "bus-2": {"mute": True, "eq": {"on": True}}, "button-0": {"state": True}, "vban-in-0": {"on": True}, "vban-out-1": {"name": "streamname"}, diff --git a/__main__.py b/__main__.py index bef55b0..22a1cee 100644 --- a/__main__.py +++ b/__main__.py @@ -14,16 +14,18 @@ class ManyThings: def other_things(self): self.vm.bus[3].gain = -6.3 - self.vm.bus[4].eq = True + self.vm.bus[4].eq.on = True info = ( f"bus 3 gain has been set to {self.vm.bus[3].gain}", - f"bus 4 eq has been set to {self.vm.bus[4].eq}", + f"bus 4 eq has been set to {self.vm.bus[4].eq.on}", ) print("\n".join(info)) def main(): - with voicemeeterlib.api(kind_id) as vm: + KIND_ID = "banana" + + with voicemeeterlib.api(KIND_ID) as vm: do = ManyThings(vm) do.things() do.other_things() @@ -32,7 +34,7 @@ def main(): vm.apply( { "strip-2": {"A1": True, "B1": True, "gain": -6.0}, - "bus-2": {"mute": True}, + "bus-2": {"mute": True, "eq": {"on": True}}, "button-0": {"state": True}, "vban-in-0": {"on": True}, "vban-out-1": {"name": "streamname"}, @@ -41,6 +43,4 @@ def main(): if __name__ == "__main__": - kind_id = "banana" - main() diff --git a/examples/obs/__main__.py b/examples/obs/__main__.py index 6a224a1..20c1fd0 100644 --- a/examples/obs/__main__.py +++ b/examples/obs/__main__.py @@ -51,8 +51,8 @@ class MyClient: def on_end(self): self.vm.apply( { - "strip-0": {"mute": True}, - "strip-1": {"mute": True, "B1": False}, + "strip-0": {"mute": True, "comp": {"ratio": 4.3}}, + "strip-1": {"mute": True, "B1": False, "gate": {"attack": 2.3}}, "strip-2": {"mute": True, "B1": False}, "vban-in-0": {"on": False}, } diff --git a/voicemeeterlib/iremote.py b/voicemeeterlib/iremote.py index c97b6ed..4082493 100644 --- a/voicemeeterlib/iremote.py +++ b/voicemeeterlib/iremote.py @@ -45,9 +45,11 @@ class IRemote(metaclass=ABCMeta): for attr, val in data.items(): if not isinstance(val, dict): - if hasattr(self, attr): + if attr in dir(self): # avoid calling getattr (with hasattr) target, attr, val = fget(attr, val) setattr(target, attr, val) + else: + self.logger.error(f"invalid attribute {attr} for {self}") else: target = getattr(self, attr) target.apply(val)