I no longer have LED feedback on the macros device when midi value change .Bug ? Missing Listeners ?

0

Hello

Here is a problem that I have for no apparent reason and without touching anything in the script or my midi controller
I manage macros of a device with rotary encoders from 0 to 127 (absolute)
I have LEDs around these rotary encoders that should indicate the position of the knob to me

When I varied the rotary encoder ableton should normally return the corresponding value
Well, without reason, that’s no longer the case
I just opened ableton

I was able to erase it instead of a macro and set different parameters such as send return, and now it works. I have feedback from the LEDs so the problem does not come from the system.

I was also able to map one of the roary encoded to see if I had a return from LED and it was the case but since this makes duplicates with the script, the display is very slow

With a Midi Test software it works

I was able to test with a script that I had developed beforehand and the ca also works
but if I import the script or it works and I relod the scrip in remotify the problem again

I tested
-with several versions 12 of Ableton,
-w10 ,
-w11 ,
-reload the script several times with control surface 2.8 and 2.9
-reinstalled control surface
-tried to create reactions but I only stop at having 0 all turned off and 127 all lit, I don’t have the variation or intermediate positioning

This problem is very strange because it happened all at once without apparent signs of

I wasn’t even going to reload the scirpt when it worked

I am almost sure comes from the generation of the script where there are missing listeners because I don’t have an abstract reference regarding the device macro

Did someone have this problem appear ?

Thank you in advance for your help

Greetings

The HumaniZer Answered question
0

What I notice according to some test is that in the new script (after loading it into Control Surface Studio) all the macro listeners for the devices are missing.

def _mode1_ui_listeners(self):
        try:
            self.send_a_id_42_led = eval(self.send_a_id_42["module"])
            self.send_a_id_42_led.add_value_listener(self.send_a_id_42_led_listener)
        except:
            self.log("_mode1_ui_listeners: " + str(self.send_a_id_42["element"]) + " does not exist")
        try:
            self.send_b_id_43_led = eval(self.send_b_id_43["module"])
            self.send_b_id_43_led.add_value_listener(self.send_b_id_43_led_listener)
        except:
            self.log("_mode1_ui_listeners: " + str(self.send_b_id_43["element"]) + " does not exist")
        try:
            self._session.add_offset_listener(self.scene_up_id_23_led_listener)
        except:
            self.log("_mode1_ui_listeners: self._session does not exist")
        try:
            self._session.add_offset_listener(self.scene_down_id_24_led_listener)
        except:
            self.log("_mode1_ui_listeners: self._session does not exist")
        try:
            self.macro_01_id_30_led = eval(self.macro_01_id_30["module"])
            self.macro_01_id_30_led.add_value_listener(self.macro_01_id_30_led_listener)
        except:
            self.log("_mode1_ui_listeners: " + str(self.macro_01_id_30["element"]) + " does not exist")
        try:
            self.macro_02_id_12_led = eval(self.macro_02_id_12["module"])
            self.macro_02_id_12_led.add_value_listener(self.macro_02_id_12_led_listener)
        except:
            self.log("_mode1_ui_listeners: " + str(self.macro_02_id_12["element"]) + " does not exist")
        try:
            self.macro_03_id_27_led = eval(self.macro_03_id_27["module"])
            self.macro_03_id_27_led.add_value_listener(self.macro_03_id_27_led_listener)
        except:
            self.log("_mode1_ui_listeners: " + str(self.macro_03_id_27["element"]) + " does not exist")
        try:
            self.macro_04_id_28_led = eval(self.macro_04_id_28["module"])
            self.macro_04_id_28_led.add_value_listener(self.macro_04_id_28_led_listener)
        except:
            self.log("_mode1_ui_listeners: " + str(self.macro_04_id_28["element"]) + " does not exist")
        try:
            self.macro_05_id_31_led = eval(self.macro_05_id_31["module"])
            self.macro_05_id_31_led.add_value_listener(self.macro_05_id_31_led_listener)
        except:
            self.log("_mode1_ui_listeners: " + str(self.macro_05_id_31["element"]) + " does not exist")
        try:
            self.macro_06_id_7_led = eval(self.macro_06_id_7["module"])
            self.macro_06_id_7_led.add_value_listener(self.macro_06_id_7_led_listener)
        except:
            self.log("_mode1_ui_listeners: " + str(self.macro_06_id_7["element"]) + " does not exist")
        try:
            self.macro_07_id_8_led = eval(self.macro_07_id_8["module"])
            self.macro_07_id_8_led.add_value_listener(self.macro_07_id_8_led_listener)
        except:
            self.log("_mode1_ui_listeners: " + str(self.macro_07_id_8["element"]) + " does not exist")
        try:
            self.macro_08_id_9_led = eval(self.macro_08_id_9["module"])
            self.macro_08_id_9_led.add_value_listener(self.macro_08_id_9_led_listener)
        except:
            self.log("_mode1_ui_listeners: " + str(self.macro_08_id_9["element"]) + " does not exist")
        try:
            self.macro_09_id_10_led = eval(self.macro_09_id_10["module"])
            self.macro_09_id_10_led.add_value_listener(self.macro_09_id_10_led_listener)
        except:
            self.log("_mode1_ui_listeners: " + str(self.macro_09_id_10["element"]) + " does not exist")
        try:
            self.macro_10_id_29_led = eval(self.macro_10_id_29["module"])
            self.macro_10_id_29_led.add_value_listener(self.macro_10_id_29_led_listener)
        except:
            self.log("_mode1_ui_listeners: " + str(self.macro_10_id_29["element"]) + " does not exist")
        try:
            self.macro_11_id_14_led = eval(self.macro_11_id_14["module"])
            self.macro_11_id_14_led.add_value_listener(self.macro_11_id_14_led_listener)
        except:
            self.log("_mode1_ui_listeners: " + str(self.macro_11_id_14["element"]) + " does not exist")
        try:
            self.macro_12_id_13_led = eval(self.macro_12_id_13["module"])
            self.macro_12_id_13_led.add_value_listener(self.macro_12_id_13_led_listener)
        except:
            self.log("_mode1_ui_listeners: " + str(self.macro_12_id_13["element"]) + " does not exist")
        try:
            self.macro_13_id_17_led = eval(self.macro_13_id_17["module"])
            self.macro_13_id_17_led.add_value_listener(self.macro_13_id_17_led_listener)
        except:
            self.log("_mode1_ui_listeners: " + str(self.macro_13_id_17["element"]) + " does not exist")
        try:
            self.macro_14_id_15_led = eval(self.macro_14_id_15["module"])
            self.macro_14_id_15_led.add_value_listener(self.macro_14_id_15_led_listener)
        except:
            self.log("_mode1_ui_listeners: " + str(self.macro_14_id_15["element"]) + " does not exist")
        try:
            self.macro_15_id_16_led = eval(self.macro_15_id_16["module"])
            self.macro_15_id_16_led.add_value_listener(self.macro_15_id_16_led_listener)
        except:
            self.log("_mode1_ui_listeners: " + str(self.macro_15_id_16["element"]) + " does not exist")
        try:
            self.macro_16_id_11_led = eval(self.macro_16_id_11["module"])
            self.macro_16_id_11_led.add_value_listener(self.macro_16_id_11_led_listener)
        except:
            self.log("_mode1_ui_listeners: " + str(self.macro_16_id_11["element"]) + " does not exist")

In any case, when I copy this part into the code that has the error, the LED response for the macros works again.

You can clearly see the macro number or parameter bnumber (self.macro_02) but but the “id” is different each time (id_12 for macro_02)

Why has this deletion occurred? Is it due to the upgrade from version 2.8 to version 2.9? Has this problem been resolved with version 3.0?

The HumaniZer Answered question
You are viewing 1 out of 4 answers, click here to view all answers.