Page 1 of 1

Multipage frame with external controller - catch slider by value

Posted: Tue Feb 07, 2017 8:44 am
by xhpohanka
Hi,
I saw a post about improving theatrical workflow and I would like to say thanks...

What I missed last time I was working with QLC+ is better ability to live editing, please check following description:
  • I have a multipage frame with 8 faders mapped to korg nano. 3 pages exists to control 24 dimmers. Each dimmer has level monitoring enabled.
  • I set intensities on all pages
  • Now I want to change intensity on page 1. Slider is set to value eg. 205 but physical fader on controller is on 30 like it remained from last action on page 3.
  • If I move the fader, slider jumps from 205 to 30 and then I can set new value
  • Desired behavior would be to not change slider until fader reach its current value. Such 'catching' usually works on bigger theatrical desks.
I'm not sure if anything similar isn't already implemented, but I have not found that.

regards
Jan

Re: Multipage frame with external controller - catch slider by value

Posted: Tue Feb 07, 2017 6:06 pm
by siegmund
Hey,

indeed this would be great for controllers, that don't have motorized faders. Maybe I'll try to implement something like this in the next few days and set up a pull request.

Are you able to build from sources?

Regards,
siegmund

Re: Multipage frame with external controller - catch slider by value

Posted: Tue Feb 07, 2017 9:06 pm
by xhpohanka
siegmund wrote: Are you able to build from sources?
No problem, I can build and test...

Re: Multipage frame with external controller - catch slider by value

Posted: Tue Feb 07, 2017 10:02 pm
by siegmund
xhpohanka wrote:
siegmund wrote: Are you able to build from sources?
No problem, I can build and test...
Great! So please give the code on the catch-sliders branch a try: https://github.com/siegmund42/qlcplus/t ... ch-sliders

EDIT: The only known drawback at the moment is that you cannot move fast over the value to catch the slider - you have to move slowly over it, catch it and then it follows. I was not able to implement it in a way that it is always caught..
I used the attached workspace to test basic functionality btw.

Re: Multipage frame with external controller - catch slider by value

Posted: Tue Feb 07, 2017 10:20 pm
by GGGss
If this work all right - why not make it into a settings-parameter?
option whise enabeling this feature would be great
...

Re: Multipage frame with external controller - catch slider by value

Posted: Tue Feb 07, 2017 10:36 pm
by siegmund
GGGss wrote:If this work all right - why not make it into a settings-parameter?
option whise enabeling this feature would be great
...
Indeed I thought about this, but I came to the conclusion that you only want to have this behavior if you have no motor faders. If you have motor faders your feedback is updated anyway. The only problem is if you have motor faders and don't want to have immediate feedback, so don't connect feedback to your universe, AND don't want to have this behavior. This would not be configurable, but I really don't see why one would do something like that..

Re: Multipage frame with external controller - catch slider by value

Posted: Tue Feb 07, 2017 10:39 pm
by janosvitok
Siegmund,

I really quickly skimmed through the commit
- maybe you can catch faster movement of external fader if you check not only when they are (almost) equal, but if the fader crosses the value (either slider was above and now is below the value, or vice versa)
I'm not shure how hard/easy is to implement. You'd need to handle movement of the on-screen fader -- most probably start the catch algorithm from scratch.
- grammar nazi comment: past tense of catch is caught... or at least I was taught so. :-)

Jano

Re: Multipage frame with external controller - catch slider by value

Posted: Tue Feb 07, 2017 10:55 pm
by siegmund
janosvitok wrote:- maybe you can catch faster movement of external fader if you check not only when they are (almost) equal, but if the fader crosses the value (either slider was above and now is below the value, or vice versa)
I'm not shure how hard/easy is to implement. You'd need to handle movement of the on-screen fader -- most probably start the catch algorithm from scratch.
I already thought about that, but this would need some kind of remembering the last value from the input source with an extra variable which I didn't consider very elegant. Maybe something else comes to my mind...
janosvitok wrote:- grammar nazi comment: past tense of catch is caught... or at least I was taught so. :-)
You're absolutely right, I realized this while setting up the PR :D Will fix this in one of the next commits.

Re: Multipage frame with external controller - catch slider by value

Posted: Wed Feb 08, 2017 7:18 am
by xhpohanka
Wow, you were fast.
Funny thing is that I cannot find my korgNano after moving into new flat. Maybe I have left it in theatre - I will check it afternoon.

Re: Multipage frame with external controller - catch slider by value

Posted: Wed Feb 08, 2017 8:23 pm
by xhpohanka
Works as expected, thanks...

Re: Multipage frame with external controller - catch slider by value

Posted: Thu Feb 09, 2017 2:51 pm
by caxpern
Works good when switching pages, but not after you press the Override reset button, then it still jumps up! Its not i big deal, but im trying if i an use this button as a clear button (like in Gradma and others). Thanx for all the work!

Re: Multipage frame with external controller - catch slider by value

Posted: Thu Feb 09, 2017 3:24 pm
by siegmund
Good "catch" :D
I've fixed this in git!

Re: Multipage frame with external controller - catch slider by value

Posted: Thu Feb 09, 2017 10:37 pm
by siegmund
janosvitok wrote:- maybe you can catch faster movement of external fader if you check not only when they are (almost) equal, but if the fader crosses the value (either slider was above and now is below the value, or vice versa)
I'm not shure how hard/easy is to implement. You'd need to handle movement of the on-screen fader -- most probably start the catch algorithm from scratch.
I was able to implement this. Still I don't think it is very elegant, especially because it needs two additional variables. Anyway, it works...