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.
Post Reply
Baer
Posts: 93
Joined: Fri Jan 15, 2016 8:40 am
Real Name: Matthias

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

Post by Baer » Tue Dec 06, 2016 10:35 am

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: 120
Joined: Mon Apr 20, 2015 5:07 am
Real Name: Mark Lohrey

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

Post by mlohrey » Tue Dec 06, 2016 12:34 pm

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: 1933
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

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

Post by mcallegari » Thu Dec 08, 2016 11:01 am

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: 93
Joined: Fri Jan 15, 2016 8:40 am
Real Name: Matthias

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

Post by Baer » Thu Dec 08, 2016 2:58 pm

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: 1933
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

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

Post by mcallegari » Thu Dec 08, 2016 4:22 pm

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: 561
Joined: Mon Nov 02, 2015 11:03 am
Location: Germany
Real Name: Lukas

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

Post by siegmund » Thu Dec 08, 2016 9:37 pm

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: 93
Joined: Fri Jan 15, 2016 8:40 am
Real Name: Matthias

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

Post by Baer » Fri Dec 09, 2016 8:23 am

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: 1933
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

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

Post by mcallegari » Fri Dec 30, 2016 12:36 pm

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: 120
Joined: Mon Apr 20, 2015 5:07 am
Real Name: Mark Lohrey

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

Post by mlohrey » Sat Dec 31, 2016 10:32 am

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 16 times
(Tested on Mac OSX)

User avatar
mcallegari
Posts: 1933
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

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

Post by mcallegari » Sat Dec 31, 2016 11:21 am

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