Multipage frame with external controller - catch slider by value

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
xhpohanka
Posts: 9
Joined: Tue Apr 19, 2016 5:42 pm
Real Name:

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

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
xhpohanka
Posts: 9
Joined: Tue Apr 19, 2016 5:42 pm
Real Name:

siegmund wrote: Are you able to build from sources?
No problem, I can build and test...
siegmund
Posts: 703
Joined: Mon Nov 02, 2015 11:03 am
Location: Germany
Real Name: Lukas

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.
Attachments
catchtest.qxw
(4.26 KiB) Downloaded 54 times
User avatar
GGGss
Posts: 2704
Joined: Mon Sep 12, 2016 7:15 pm
Location: Belgium
Real Name: Fredje Gallon

If this work all right - why not make it into a settings-parameter?
option whise enabeling this feature would be great
...
All electric machines work on smoke... when the smoke escapes... they don't work anymore
siegmund
Posts: 703
Joined: Mon Nov 02, 2015 11:03 am
Location: Germany
Real Name: Lukas

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..
janosvitok
Posts: 1273
Joined: Mon Apr 13, 2015 7:05 am
Location: Bratislava, Slovakia
Real Name: Jano Svitok
Contact:

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

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.
xhpohanka
Posts: 9
Joined: Tue Apr 19, 2016 5:42 pm
Real Name:

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.
xhpohanka
Posts: 9
Joined: Tue Apr 19, 2016 5:42 pm
Real Name:

Works as expected, thanks...
caxpern
Posts: 5
Joined: Thu Feb 18, 2016 8:56 am
Real Name: Casper

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

Good "catch" :D
I've fixed this in git!
siegmund
Posts: 703
Joined: Mon Nov 02, 2015 11:03 am
Location: Germany
Real Name: Lukas

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...
Post Reply