Page 1 of 1

Mysterious behavior using loopback to control widgets

Posted: Sun Feb 19, 2017 10:34 pm
by mdmayfield
This issue is reproducible on MacOS 10.11.6 and on Ubuntu MATE 16.04.1 LTS (I did not test on Windows), with QLC+ 4.10.4, 4.10.5b, and latest GIT source compiled today.

It is easiest to demonstrate through a very short (2-minute) screen capture video:


It seems that, when using an Input Profile that assigns DMX channels to buttons with extra presses, only on the first time going into Live mode after opening a .qxw, frame Enable controls which are assigned to those DMX channels trigger unexpectedly. The specific controls that are affected appear to be consistent between times the project is re-opened and put into Live mode on the same OS, but various factors seem to influence exactly which widgets are affected, including OS type, and whether any channels are "grabbed" by the Simple Desk.

Attached are all the files needed to reproduce the issue.

Note that, if I delete all of the Level mode faders for Universe 3 (the one with the loopback "fake" fixture), the issue goes away. (Of course, this also takes away the functionality I needed them for...) For now, I plan to work around this by using Playback mode faders instead of Level mode.

-------

(In case you're curious, there's a reason for this complex setup. I'm using a custom TouchOSC layout. Unfortunately, since OSC uses UDP, single-message controls like buttons and toggles are very unreliable on WiFi - perhaps 5-15% of the time these messages are being dropped on my network, which makes TouchOSC and my QLC+ Virtual Console go out of sync. So I am working around this by using only faders within TouchOSC instead of buttons, because faders always send out multiple messages whenever they are touched. I have my layout set with the custom controls to send values between 0 and 0.004 = DMX values 0 to 1.)

Re: Mysterious behavior using loopback to control widgets

Posted: Mon Feb 20, 2017 7:05 am
by mdmayfield
Even after setting up all my faders in Playback mode, strange behavior like this persists. It only appears to happen the very first time, after opening the workspace, that I adjust the Loopback universe's channel faders - and it only happens to certain frames/channels (different depending on computer/OS).

After the first time adjusting faders, the wrong frames are enabled/disabled, but if I fix those manually with the mouse in the Virtual Console, from then on everything behaves as expected.

Edit: Also, if I go to Inputs/Outputs and disconnect Loopback 1 from the Input (so that it is going nowhere), then adjust some loopback channels, then re-enable the Input, the frame enable buttons do not get messed up. It's almost as if, just for one brief instant, the wrong values are calculated in the Loopback universe, and then done correctly from then on.

Re: Mysterious behavior using loopback to control widgets

Posted: Mon Feb 20, 2017 10:53 am
by siegmund
This is quite a complex workspace, where it's not easy to follow what's happening. Are you able to reproduce this in a smaller workspace with a minimal setup? This would make debugging easier.

Re: Mysterious behavior using loopback to control widgets

Posted: Mon Feb 20, 2017 5:00 pm
by mdmayfield
Hello Siegmund,

Thank you for the reply! Here is a very simple and minimal way to reproduce the issue, attached.

- 64 empty frames, each one's Enable button controlled by the Loopback DMX channel it is named
- 64 sliders, each controlling the Loopback DMX channel it is named (Range Limit = 0 to 1, but that does not affect the glitch)
- Input Profile with 64 channels all classified as Buttons with Generate Extra Press enabled
- No lighting fixtures, functions, or external controls

Each slider should enable its respective frame when set to 1, and disable it when set to 0. Nothing else exists in this project.

However, the first time switching to Live mode immediately after opening the project, some frames incorrectly become enabled. (This puts the sliders out of sync with the Enabled/Disabled state.) However the DMX monitor reveals all channels are 0, so where did the signal to enable frames come from?

Also, note that after the issue occurs once, it never occurs again until the project is re-opened.

Here is a quick explanation with the simplified project:


Re: Mysterious behavior using loopback to control widgets

Posted: Tue Feb 21, 2017 12:06 am
by siegmund
This is really weird.

I can confirm this bug on Xubuntu 14.04 64 Bit with the latest sources.
At the moment I can't say where this is coming from, so I have added an issue on github that it doesn't get lost: https://github.com/mcallegari/qlcplus/issues/948