Dump of my research when reverse engineering an ActiveX D&R Lyra mixer remote control application, to make a clone that can run on a modern OS.
I dont remember the model name of the mixer, but i remember it looking like this.
This was developed years ago, and the mixer has since passed on. Therefore I cannot develop on this project anymore, and the source code is published mostly as was when I made it. Comments have been translated, and new comments I have made is marked FUTURE:.
Starts a remote control application. It can be compiled into a .exe file (See the makefile)
This library handles communication with the mixer.
# This is a short example written on publish.
# It has not been tested.
from lyramixer import Mixer, source_names_lookup_table
import time
import logging
import time
mixer_ip = "XXX.XXX.XXX.XXX"
mixer_port = 20000
logging.basicConfig(
level=logging.DEBUG
)
def none(a="", b="", c=""):
pass
callbacks = {
"set_channel_label": none,
"set_channel_lights": none,
"set_fader_value_percentage": none,
"set_crm_value_percentage": none,
"set_small_button": none,
"set_channel_volume": none,
"set_master_volume": none,
"set_channel_eq_hf": none,
"set_channel_eq_mf": none,
"set_channel_eq_lf": none,
"set_channel_gain": none,
"set_channel_source": none,
"set_channel_pan": none,
"set_channel_aux": none,
"set_channel_dyn": none
}
m = Mixer(mixer_ip, mixer_port, callbacks)
m.send_init_command() # Makes the mixer send us everything.
time.sleep(1) # Wait for the mixer to send its state
for c in m.channels:
print(c.label, "-", source_names_lookup_table[c.source]) # Print the label of every channel
m.send_channel_button_press(0, 1) # Press the ON button on the first channelThe buttons are poorly documented. It should suffice to search in mixergui.py inside MixerWindow.__init__() for what ids the buttons use.
A simple gui that shows and calls functions inside the Mixer class. For some unknown reason my young dumb self placed the callbacks from lyramixer.py inside main.py
I didnt know then how to set an icon, and was having issues not finding a solution that worked for both running normally and packaged exe. It will most likely crash here.
This was a short experiment to connect the mixer to homeassistant.
Its purpose would be to turn the lights red outside the studio if the microphone was live.
