mcallegari / qlcplus

Q Light Controller Plus (QLC+) is a free and cross-platform software to control DMX or analog lighting systems like moving heads, dimmers, scanners etc. This project is a fork of the great QLC project written by Heikki Junnila that aims to continue the QLC development and to introduce new features.
Apache License 2.0
999 stars 357 forks source link

OSC: collection and chase feedback error #1413

Open ghost opened 1 year ago

ghost commented 1 year ago

Describe the bug When QLC+ is configured to communicate through OSC Plugin, we are encountered a problem with the feedback of the scenes commanded by a "collection" type function and with the feedback of the scenes commanded by a "chaser".

Put simply, we have these two cases:

  1. When in QLC's "virtual console" we have an active function (button) with a green border, the feedback command works correctly. Analyzing the OSC commands, when a function (button) is activated (and in QLC his button has a green edge) a "1" is sent through OSC and when it is deactivated a "0" is sent. This is correct.
  2. When in QLC's "virtual console" we have an active function (button) with a orange border (therefore commanded by "Collection" or "Chaser"), the feedback command does not work properly. Analyzing the OSC commands, when a function is activated (and in QLC his button has a orange edge) nothing is sent, while when it is deactivated one "0" is correctly sent.

To Reproduce Steps to reproduce the behavior:

  1. Create some scenes;
  2. Group them in collections;
  3. Create frame and buttons in "virtual console" by associating the various functions;
  4. Configure the Osc external input by associating it with the various VC buttons;
  5. Activate a scene and check the correct feedback;
  6. Activate a collection and check that the feedback of the connected (child) scenes does not work.

Expected behavior The expected behavior is that when a collection or chaser function is activated, the feedback of the child functions will be sent (so not only when in "virtual console" the edge of the buttons is green, but also when it is orange).

Screenshots

test

In this image we see:

  1. When the "Collection" function "R" is activated, only the activation ("1") feedback of the "Collection" button is sent: (DEBUG, OSC) In: { address: '/rgbw/r', args: 1 } From: 127.0.0.1:62002 | ("/rgbw/r" is the OSC ID of the "R" button of "Generic RGBW")
  2. When the "Collection" function "R" is deactivated, the deactivation ("0") feedback of the "Collection" button and of the "child" buttons is sent: (DEBUG, OSC) In: { address: '/rgbw/r', args: 0 } From: 127.0.0.1:62002 | ("/rgbw/r" is the OSC ID of the "R" button of "Generic RGBW") (DEBUG, OSC) In: { address: '/rgbw1/r', args: 0 } From: 127.0.0.1:62002 | ("/rgbw1/r" is the OSC ID of the "R" button of "Generic RGBW 1") (DEBUG, OSC) In: { address: '/rgbw2/r', args: 0 } From: 127.0.0.1:62002 | ("/rgbw2/r" is the OSC ID of the "R" button of "Generic RGBW 2")
  3. And this is also the case for other functions...

The same error happens even if the buttons are activated by the OSC software.

Desktop:

Additional context This zip contains the files used for the test: test.zip

yestalgia commented 1 year ago

Thanks for the comprehensive report. I was able to reproduce this problem.

QLC+ has 3 states for a button: On, Monitoring and Off. https://www.qlcplus.org/docs/html_en_EN/vcbutton.html

Since the buttons are put into "Monitoring" mode, the behaviour is expected. This is unless there is a "highlight" option in OSC which I can't find documentation on.

ghost commented 1 year ago

Hello, first of all thank you for the feedback.

In the last period I have studied various documentations on the use of OSC and I can confirm you that there is no "highlight" value (state) in OSC. For "button" type commands (and similar), only the "on" and "off" values are provided.

It would be very useful if in the OSC plugin configuration of QLC+ there was the possibility, perhaps through a flag, to choose whether to send an "on" feedback status even when the VC buttons of QLC+ are put into "monitoring" mode.

yestalgia commented 11 months ago

Recently I found a similar use case to you when using a MIDI controller. I think this is an opportunity to improve the feedback functionality globally.

When a function is active, there is no visible indicator on RGB pad if it's only in the "Monitoring" state. This can make it confusing when looking at a midi controller to determine the currently running functions.

There are many ways to implement the ability to provide feedback to controllers for widgets in the "Monitoring" state. Here are some suggestions:

Solution Suggestion 1 image

Solution Suggestion 2

If you have any thoughts or like these suggestions, I'm happy to make a feature request in the forum.

Cheers.

ghost commented 6 months ago

Good morning, I also confirm the presence of the problem.

I think the "Solution Suggestion 2" proposed by @yestalgia is better. Always send "on" feedback for buttons even when are in monitoring state.