From 43c4a5e50cf3458af16a2f60a7a30163fd5ac911 Mon Sep 17 00:00:00 2001 From: coon Date: Fri, 19 Sep 2025 19:48:51 +0200 Subject: [PATCH 1/2] DRY: create mixer once --- mixer.py | 30 +++++++----------------------- 1 file changed, 7 insertions(+), 23 deletions(-) diff --git a/mixer.py b/mixer.py index 1ca6602..2bdcca3 100755 --- a/mixer.py +++ b/mixer.py @@ -173,35 +173,19 @@ def main(): args = parser.parse_args() print(f"IP: {args.ip}") + mixer = Mixer(args.ip, MIXER_PORT) if args.command: print(f"Command: {args.command}") print(f"Args: {vars(args)}") match args.command: - case 'get_name_from_qu': - mixer = Mixer(args.ip, MIXER_PORT) - mixer.get_name_from_qu(args.channel_id, args.name) - - case 'get_system_state': - mixer = Mixer(args.ip, MIXER_PORT) - mixer.get_system_state() - - case 'shutdown': - mixer = Mixer(args.ip, MIXER_PORT) - mixer.shutdown() - - case 'scene_recall': - mixer = Mixer(args.ip, MIXER_PORT) - mixer.scene_recall(args.scene_number) - - case 'scene_recall_default': - mixer = Mixer(args.ip, MIXER_PORT) - mixer.scene_recall(0) - - case 'watch': - mixer = Mixer(args.ip, MIXER_PORT) - mixer.watch() + case 'get_name_from_qu': mixer.get_name_from_qu(args.channel_id, args.name) + case 'get_system_state': mixer.get_system_state() + case 'shutdown': mixer.shutdown() + case 'scene_recall': mixer.scene_recall(args.scene_number) + case 'scene_recall_default': mixer.scene_recall(0) + case 'watch': mixer.watch() if __name__ == '__main__': main() From 75e22e0166a670835143da14e14a2bfb3d3bb665 Mon Sep 17 00:00:00 2001 From: coon Date: Fri, 19 Sep 2025 20:19:22 +0200 Subject: [PATCH 2/2] add and use enum for SysEx message ids --- mixer.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/mixer.py b/mixer.py index 2bdcca3..0bccd66 100755 --- a/mixer.py +++ b/mixer.py @@ -19,6 +19,14 @@ class Mixer: SYSEX_HEADER = ALLEN_HEATH_ID + QU_MIXER + MAJOR_MINOR SYSEX_ALL_CALL = SYSEX_HEADER + ALL_CALL_MIDI_CHANNEL + class SysExMessageId(Enum): + GET_NAME_FROM_QU_REQUEST = 0x01, + GET_NAME_FROM_QU_RESPONSE = 0x02, + GET_SYSTEM_STATE_REQUEST = 0x10, + GET_SYSTEM_STATE_RESPONSE = 0x11, + GET_METER_DATA_REQUEST = 0x12, + GET_METER_DATA_RESPONSE = 0x13 + def recv(self): p = mido.Parser() @@ -42,7 +50,7 @@ class Mixer: return msg def get_system_state(self): - msg_id = 0x10 + msg_id = self.SysExMessageId.GET_SYSTEM_STATE_REQUEST i_pad_flag = 0x01 data = self.SYSEX_ALL_CALL + [msg_id, i_pad_flag] @@ -87,7 +95,7 @@ class Mixer: print(f"Firmware Version: {major_ver}.{minor_ver}") def get_name_from_qu(self, channel_no, name_to_set): - msg_id = 0x01 + msg_id = self.SysExMessageId.GET_NAME_FROM_QU_REQUEST data = self.SYSEX_HEADER + [int(0), msg_id, int(channel_no)]