Sliders in VC should be able to act like Simple Desk sliders, i.e. overriding the current cue level

Request a feature that you would like to see in QLC+.
Explain in details why you would need it and which is your usage case.
siegmund
Posts: 703
Joined: Mon Nov 02, 2015 11:03 am
Location: Germany
Real Name: Lukas

Okay, if I get things right we basically need to discuss how to design the preferences, especially for preserving backwards compatibility.
I would suggest the following options for the preferences:
  • We keep the "monitoring" checkbox in the preferences
    • If not checked, everything behaves as before.
    • If checked, the new behavior is applied.
      --> This preserves backwards compatibility because LTP behavior hast not changed and HTP behavior of a monitoring slider was useless in the past.
  • As soon as monitoring is enabled, it is possible to pick from two radio buttons:
    1. Override the selected channels until the Reset button is pressed
    2. Stop overriding and fade to the new value if a new scene is applied to the selected channels
      --> with both options, there is only a Reset button shown in the slider
  • Mask for external input (I'm not 100% sure yet where to place and when to hide - ideas?)
  • Optional there could be an option to define a fade time to apply if the channel looses control (Reset by button or by scene change)
With the explanations of the others, I hope it is clear enough what we want to achieve (if not feel free to ask).

So far a compliment to Baer for this beautiful and very well-working change - I love it! :D :D

Please don't mind me to add a few requests/bugs:
  • Personally I would prefer to place the button(s) at the bottom of the slider - Would are the others thinking?
  • DMX dump does not recognize the overriden value, but it dumps the scene's one
  • If you are in the vc in edit mode, the buttons are somehow still clickable. Don't know if they have any effect but they just shouldn't be clickable at all.
  • Bug where the monitoring slider jumps as soon as you click AUTO RST. Please have a look at the attached workspace to reproduce:
    1. Move a slider on the left
    2. Move the corresponding slider on the right
    3. Move the slider on the left again - slider right does not follow (as expected)
    4. Click AUTO RST on the slider on the right - the slider jumps immediately to the value provided by the channel on the left. This is not as expected (at least to me). I would expect the slider to jump after the next scene change.
Thanks again - have a nice week!

[EDIT: Added some bugs/requests]
Attachments
OVR test.qxw
(6.44 KiB) Downloaded 362 times
Last edited by siegmund on Tue Dec 06, 2016 8:50 am, edited 2 times in total.
mlohrey
Posts: 243
Joined: Mon Apr 20, 2015 5:07 am
Real Name: Mark Lohrey

DMX dump isn't working in the current trial.

Tested on MACOSX
siegmund
Posts: 703
Joined: Mon Nov 02, 2015 11:03 am
Location: Germany
Real Name: Lukas

mlohrey wrote:DMX dump isn't working in the current trial.

Tested on MACOSX
Sorry but I don't see how this is related to the current discussion.
mlohrey wrote:
Massimo said: The reason is simple: a VC slider in level mode can control several channels, and each channel can have a different value at runtime. Therefore it is impossible to represent multiple levels with a single slider. There is no escape from this limitation.
I have thought about this for a day or two.
I don't think it impossible to represent multiple levels with a single slider. :D
Though this is a more basic question and not directly depending on the new feature, I would suggest to open another thread on this so we don't get too messy here.
janosvitok
Posts: 1266
Joined: Mon Apr 13, 2015 7:05 am
Location: Bratislava, Slovakia
Real Name: Jano Svitok
Contact:

siegmund wrote:
mlohrey wrote:DMX dump isn't working in the current trial.
Sorry but I don't see how this is related to the current discussion.
[I didn't test it myself] Maybe Mark wanted to say that if you set value using this new slider, DMX dump stores wrong values.
siegmund
Posts: 703
Joined: Mon Nov 02, 2015 11:03 am
Location: Germany
Real Name: Lukas

janosvitok wrote:
siegmund wrote:
mlohrey wrote:DMX dump isn't working in the current trial.
Sorry but I don't see how this is related to the current discussion.
[I didn't test it myself] Maybe Mark wanted to say that if you set value using this new slider, DMX dump stores wrong values.
You're right - thanks for the hint!

Can confirm that this is not working on Xubuntu 14.04 64Bit.

I'll add this to the bug list in my post.
mlohrey
Posts: 243
Joined: Mon Apr 20, 2015 5:07 am
Real Name: Mark Lohrey

Thanks Jano for clarifying my post. You were indeed correct.
I was running short of time and should have been a little more expansive in my explanation. :D I was testing the ability of the new feature in terms of being able to make an adjustment and then update a running scene.

I believe the managment of channel monitoring mode is fundamental to this new feature as it has to consider the possibility of a slider controlling multiple channels. However, to get a working model, I guess you could simplify the problem and assume that the slider can only monitor and control one level. And worry about the other possibilities later.

The code gurus might have a view on this.
Baer
Posts: 96
Joined: Fri Jan 15, 2016 8:40 am
Real Name: Matthias

Hi all,

back from holidays ;) So as I see siegmunds post has summarized the bugs you found well?
siegmund wrote: Please don't mind me to add a few requests/bugs:
  • Personally I would prefer to place the button(s) at the bottom of the slider - Would are the others thinking?
  • DMX dump does not recognize the overriden value, but it dumps the scene's one
  • Bug where the monitoring slider jumps as soon as you click AUTO RST. Please have a look at the attached workspace to reproduce:
    1. Move a slider on the left
    2. Move the corresponding slider on the right
    3. Move the slider on the left again - slider right does not follow (as expected)
    4. Click AUTO RST on the slider on the right - the slider jumps immediately to the value provided by the channel on the left. This is not as expected (at least to me). I would expect the slider to jump after the next scene change.
Position of the buttons is a really little change and doesn't matter to me, just let me know what most of you want.

I think a have an idea why DMX dump stores the wrong values, should be no big problem to fix.

The other bug: i will have a look at it as soon as i got time, this week is creepy full of work, so will be delayed to next week maybe.

The options siegmund proposed for the settings I like, so if everyone agrees i will try to implement it as proposed.
mlohrey
Posts: 243
Joined: Mon Apr 20, 2015 5:07 am
Real Name: Mark Lohrey

Hey Matthias.

I while back you asked for some button designs. I thought I might give it ago. This is one for the auto-reset.
Logos for Buttons.png
I haven't done this before so didn't know how big they should be or in what format.

Feel free to ignore them completely or if you want me to do some more work on them let me know.

Cheers

Mark
shortylight
Posts: 31
Joined: Sat Nov 21, 2015 7:06 pm
Location: Münster / Germany
Real Name: Martin Kurze

Hi Matthias,

in my opinion you fit all our needs if you go on like proposed. I am looking forward to test the next version.

Have fun with the coding ...

Martin
siegmund
Posts: 703
Joined: Mon Nov 02, 2015 11:03 am
Location: Germany
Real Name: Lukas

mlohrey wrote:I while back you asked for some button designs. I thought I might give it ago. This is one for the auto-reset.
Thanks mlohrey, the icons look very promising! Just some suggestions: I would drop the transparency and only go with the arrow. In a normal state I would prefer to have the standard color of buttons in the virtual console (some sort of gray) to be consistent. And when active use one of your proposed colors.

@Baer I go with shortylight:
shortylight wrote:in my opinion you fit all our needs if you go on like proposed. I am looking forward to test the next version.
Just found one more thing to improve: If you are in the vc in edit mode, the buttons are somehow still clickable. Don't know if they have any effect but they just shouldn't be clickable at all.
Baer
Posts: 96
Joined: Fri Jan 15, 2016 8:40 am
Real Name: Matthias

mlohrey wrote:Hey Matthias.

I while back you asked for some button designs. I thought I might give it ago. This is one for the auto-reset.

Logos for Buttons.png

I haven't done this before so didn't know how big they should be or in what format.

Feel free to ignore them completely or if you want me to do some more work on them let me know.

Cheers

Mark
Thank you for the nice icons, maybe we use this if auto reset is enabeld, therefor we would need a differnt one showing that reset only happens on user action.
This would allow to quickly see in which state the fader is.
To achieve this the coloring and/or desing should be different from the current one to make it easyier for the user to differneciate.

Size should be ok (haven't checked the needs yet) but i think we can scale them down to the needs.
mlohrey
Posts: 243
Joined: Mon Apr 20, 2015 5:07 am
Real Name: Mark Lohrey

Some grey versions. These could be the re-set buttons.

Left button is inactive, right would be active.

I like the circular ones without the frame.
Logos for Buttons_gray.png
User avatar
mcallegari
Posts: 4462
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

While developing QLC+ 5, I started to draw some diagrams of how I implemented certain mechanisms in the UI. They help me a lot to understand the efficiency and to avoid forgetting things.
So today I spent some time to create one for you guys, to show what happens in the QLC+ engine every 20ms:
https://docs.google.com/drawings/d/1KGh ... sp=sharing
That is a simplified version of the whole thing, but I think it gives the idea.

As you can see, every time the engine clock ticks, all the intensity channels are reset, and a Universe creation restarts from scratch, passing through stage 1, 2 and 3.
Every stage applies the HTP/LTP rules, unless it is specifically asked to force a DMX channel to a value, ignoring such rules.

One important thing to keep in mind, is that on every stage, the order of execution depends on the ID of a Function/Widget, which is assigned upon creation. Those are fixed and saved into the project XML file, so they won't change in time, to guarantee a certain order and hierarchy.

So, back to this long discussion, if a VC Slider with ID 100 tries to override some channels and then another widget with ID 200 acts on the same channels, the higher ID wins. (always after HTP/LTP rules)
So basically what you're asking is not possible at the moment. At least not without specific constrains.

The exception was already done for the Simple Desk, but that's just a single (and special) so called "DMX source".
Here you're talking about one or many VC Sliders that don't know anything about the other widgets in the Virtual Console, so QLC+ cannot guess which is one is the most important for you.

Please meditate about this topic now that (hopefully) you have all the information, and then we'll see how this can be implemented, possibly without hacks or huge rewrites of how the engine works right now.
Baer
Posts: 96
Joined: Fri Jan 15, 2016 8:40 am
Real Name: Matthias

Hi all together

First I want to thank Massimo for the great diagram, most of the things i had already figured out (and have drawn a similar diagram but mine was missing some parts), and thought i can handle them.
But the parts i didn't know (like the ID order) may cause some trouble and heavy restrictions.

By the way Massimo I have a question on the behaviour. Just for curiosity, but what is the reason for completly resetting and recreation of all the universes on everey tick? I'm sure there is a reason but I don't get it.

What i currently did to achieve override is to create an array for override values and one for override propertie if the channel should be overwritten. This puts away most of the problems caming from execution order.
With Massimos diagram i figured out the follwing drawbacks and constraints this afternoon.

- Scene Flashing won't affect the overwritten channel (this may be acceptable behaviour because we want to have control, if flashing should be possible well problem.)
- Simple desk sliders (without implementation change) wont be able to controll the overwritten channel (this is one i don't like)
- If two sliders try to control the same channel it depends on creation order of the sliders which will win. I see no possiblity in preventing this with affordable effort, not sure if this is a good idea to let the user take care about because i think this will lead to much confusion
- There is also the known problem from monitoring mode that a slider is only able to handle one level, so what if two channels are assinged and a scene sets them to different levels?
After some tests: Ignoring this is bad because it can lead to the fact that the slider is never ever updating on scene change.

If i missed something (quite sure I did) feel free to add ;)
Not sure what the project owners are thinking, but If this where my project I wouldn't accept a feature with this problems an user confusion.
But from a quick view the effort to make this stable enough for an official release is currently somehow exploding :(

Therefore direct Question to Massimo and the other main Contributors:
Do you see any possibilty of getting this thing stable enough to be part of an offical release with affordabel effort? If yes I could use some advice/help
Is such a behaviour/use case even desired from your point of view?

Otherwise I won't only implement the things a mentioned in my last post and then stop the development, because for my usecase the current version works as I need it.
User avatar
mcallegari
Posts: 4462
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

By the way Massimo I have a question on the behaviour. Just for curiosity, but what is the reason for completly resetting and recreation of all the universes on everey tick? I'm sure there is a reason but I don't get it.
HTP is the reason. In fact LTP channels don't get reset.
Only starting from 0 and going through all the entities contributing to a channel value in a universe you can obtain "the winner" with the highest level.
Do you see any possibilty of getting this thing stable enough to be part of an offical release with affordabel effort? If yes I could use some advice/help
Unfortunately it's not an easy feature to implement. If I had to do it, I could think of some exotic solutions, but none of them really convice me.
Moreover, the ID order is "hidden" to the users, so you would get weird behaviours and couldn't explain why. I need to think some more how this could be implemented.
Is such a behaviour/use case even desired from your point of view?
Seeing the participation to this thread, I understand this is quite a wanted feature so I believe it should be implemented, in the proper way.
On the other hand, and speaking on a more generic level, during the last 4 years I implemented a lot of new major stuff, but I also added a gazillion of new options, especially to VC widget configuration pages. Last but not least: play/pause vs play/stop button in VC Cue List widget.
My fear is that adding and adding and adding more options will end up in a Frankenstein software, which could be appreciated by "power users" like you guys, but might totally confuse newcomers, who might want to choose an easier software.

With QLC+ 5 I want to break this tendency, because in my opinion it is counter-productive. My idea is that QLC+ should be an intuitive software, where you need to read the manual only if you are an advanced user. In any case my feeling is that users don't read the manual anyway... :cry:
So the idea is to hide all the "extra options" into some "advanced" section on each component. Idea pretty much taken from Videolan Client, or Kodi if you prefer.
Also, the basic options are the ones covering 90% of the user needs, while advanced options cover just the remaining 10%. So there's no need to confuse 90% of the users for the good of the 10%.

So, please standby and give me some more days to think about it. Probably during xmas holidays I can dedicate some time to come up with a prototype and see if it satisfies your needs
siegmund
Posts: 703
Joined: Mon Nov 02, 2015 11:03 am
Location: Germany
Real Name: Lukas

Thanks for clarification of these things, Massimo! It helped me a bit to understand the difficulty of implementation.
mcallegari wrote:With QLC+ 5 I want to break this tendency, because in my opinion it is counter-productive. My idea is that QLC+ should be an intuitive software, where you need to read the manual only if you are an advanced user. In any case my feeling is that users don't read the manual anyway... :cry:
I'm afraid this is the normal way - no user reads the manual until he realizes that it is really necessary. This does not depend on how experienced somebody is with the software, it's just a general problem.
Anyway, I like the way of simplifying the UI for new users!

For now, I just can say keep up the good work and thank you for all your effort!
Baer
Posts: 96
Joined: Fri Jan 15, 2016 8:40 am
Real Name: Matthias

mcallegari wrote: HTP is the reason. In fact LTP channels don't get reset.
Only starting from 0 and going through all the entities contributing to a channel value in a universe you can obtain "the winner" with the highest level.
Thank your for the explanation, not its clear to me.
mcallegari wrote: My fear is that adding and adding and adding more options will end up in a Frankenstein software, which could be appreciated by "power users" like you guys, but might totally confuse newcomers, who might want to choose an easier software.
I understand that fear, if you want a broad userbase it need to be easy in the first place.
The feature we are discussing here is very usefull for technical applications.
For me a monitoring slider which take control of the channel if i move it and will be resetted on scene/function change directly to scenes value would be totally fine for me :)
mcallegari wrote: With QLC+ 5 I want to break this tendency, because in my opinion it is counter-productive. My idea is that QLC+ should be an intuitive software, where you need to read the manual only if you are an advanced user. In any case my feeling is that users don't read the manual anyway... :cry:
So the idea is to hide all the "extra options" into some "advanced" section on each component. Idea pretty much taken from Videolan Client, or Kodi if you prefer.
Also, the basic options are the ones covering 90% of the user needs, while advanced options cover just the remaining 10%. So there's no need to confuse 90% of the users for the good of the 10%.
I like this idea, keep it going please.
mcallegari wrote: So, please standby and give me some more days to think about it. Probably during xmas holidays I can dedicate some time to come up with a prototype and see if it satisfies your needs
Would be gread, If you need any help let me now
User avatar
mcallegari
Posts: 4462
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

Good news. I finally found the time to process this.
For who wants to build from sources, my changes are in the "owrslider" branch on GitHub (https://github.com/mcallegari/qlcplus/tree/owrslider)

Basically the trick has been to add the possibility to a VC Slider in level mode to request a higher priority to the QLC+ engine master timer, but always before Simple Desk, so it's still possible to override channels from SD.
After a VC Slider goes into "override" mode, channels are forced to be LTP, exactly like Simple Desk does. A reset button is visible at the bottom to "disengage" the override, like Simple Desk.

Now, for simplicity I haven't added any new option, so at the moment "monitoring" implicitely means also "override" if the slider is manually moved.
If you need also the possibility to enable/disable overriding at live time, please let me know.
Also, for now there is no visual indication that the override is in place, but I can easily add that once I have the confirmation this is the behaviour you want.

And yes, right now when you reset the override, the slider jumps to the monitoring value. Doing a fade is no easy at all. So for now, let's keep it simple and progress step by step.

Windows build available here (4.10.6.22): https://dl.bintray.com/mcallegari/qlcplus/
mlohrey
Posts: 243
Joined: Mon Apr 20, 2015 5:07 am
Real Name: Mark Lohrey

Thanks Massimo

This is a great step and will be fantastic for live events.

I found one slightly odd behaviour. To test this version, I set up a simple cue list with some basic scenes to see the effect and watched the DMX output at each stage. There are 4 dimmers on 4 channels that are mapped to the 4 sliders.

I then set slider one to 80 and worked my way through the cues. I had assumed that the DMX output for slider one would remain constant but for values in the cue that are above 80, at the beginning of the Cue, the DMX value jumps to the one set in the scene then fades back to 80. I made a movie of this.. https://www.dropbox.com/s/8y5zyxz9u0c4g ... r.mp4?dl=0 (Slider one Controls the two spots stage right)

I would have assumed that once the slider had over-ridden the scene values that it would be an absolute. I also tested the same scenario with simple desk and the behaviour is the same. This is consistent with your explanation of the changes you made.

I also tested the DMX dumping of an altered scene and that works well. There is one small improvement, but I am not sure how possible it is. If you make a change to scene by use of the over ride slider, then dump the values back into the same scene (updating it to the new look) and then click the cross to reset the slider, it returns to the original scene, not newly saved one. If you go to the next cue and then back to the previous one, the saved scene is available. I am guessing this is something to do with how a cue is loaded but it would be great if it could update immediately to scene adjustments.

Thanks for your work on this.
Newslider Test.qxw
(8.2 KiB) Downloaded 285 times
(Tested on Mac OSX)
User avatar
mcallegari
Posts: 4462
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

Hi Mark,
thanks for the accurate report.
That makes sense indeed. If you look at my diagram above, VC Sliders in level mode act on stage 2, while Scene fade out (you have 3 seconds each) act on stage 3, so they have a higher priority, even than Simple Desk.
You'll notice also that since the fade out is HTP, the higher you move an "override" slider, the lesser you will see the fade out kicking in.

Unfortunately at the moment there's nothing that I can do about it, unless some bigger action is taken towards stage 3.
For example I could think to merge stage 3 into stage 2, but this would mean fade outs can be easily overridden in a unwanted way. (most likely you can say goodbye to them)
I need to think some more about it.
Post Reply