Thanks for a great piece of software! I've just found one feature missing, and would like to hear other people's opinion on this:
At our church, we have a bunch of led lights, for which i've created a bunch of scenes to have them change color. For every scene, I put a button in a solo frame to change the colors. So far, so good. However, I would like to have one slider to dim them, regardless of which scene (function) happens to be active. This seems impossible at the moment (note: I can't use grand master for this, because that would effect other fixtures as well.)
So, I've looked at the code and made a real quick and real dirty proof of concept, in case I failed to explain myself clearly :) https://github.com/stefanriemens/qlcplus
Is this something more people would like to see? Cause in that case, I'd be happy to pursue this code-wise.
Thanks,
Stefan
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Once upon the time, in QLC before Heikki started his last refactoring (see the modern fairy tales? :) ) sliders in VC could be used as (inhibitive?) submasters.
I don't remember how did they function, but I can imagine this:
add new mode to VCSlider (Submaster), that you could assign functions to it (copy code from VCSpeedDial/VCSpeedDialProperties) and that would adjustIntensity like you did for the frame.
I'm not sure if this would be better than your proposal, nevertheless it may be more general.
I would welcome such addition.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Guys, I think the best solution here is to add a "special" mode to sliders where they can act as submasters.
In other words, when their value change, they will notify it to their parent widget and affect the intensity of all the running functions into it.
I guess this is what you want, right ?
Stefan did it right in his patch. My idea is a little bit more generic and not related to frames only. Dunno if this makes sense though.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
My idea was to create 3rd mode for sliders, independent of all other widgets - they would affect the functions directly. It's more work to configure since you ave to add all the functions from scratch, but gives more flexibility, like you can e.g. split buttons in a frame in parts and control each one separately.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Stefan, I like your idea of using adjustIntensity() for this thing - for submasters, I would try to duplicate grand master mechanisms in engine/src/universearray.cpp, that are more complicated, more fragile and less efficient.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
@Jano: Yeah, that can be a solution too.
I would say there might be two options (like what I did in DMX dump):
- manually select functions
- all functions in this frame
What do you think ?
Last edit: Massimo Callegari 2013-10-15
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Right that sounds like a plan as well. It's probably even easier to implement that way as well. I do wonder if it is as intuitive though. (disclaimer: I'm the technical who started doing lighting. I have virtually no experience with other software or lighting desks). Logically, I'd expect this to be part of a frame, rather than a random slider.
On the other hand, frames are gaining features quickly already, so it might become to heavy a tool if all you need the frame for is this dimmer functionality.
In any case, I'd be happy to implement this either way (and I'll keep clear of UniverseArray :)
Stefan
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Stefan, can I already merge and evaluate your changes or do you want to improve them ?
Makes sense for the slider to be a part of the frame (like what I did on VC cue lists) but I'm 99% sure that some user in the future will ask "is it possible to control the intensity only of 3 of my 15 widgets in the frame?" :)
I'm kinda getting used to this... :P
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have added a new mode to sliders, namely submaster. A submaster slider, will submaster channel groups. If multiple submasters are assigned to a channel group, they will both perform their submaster duty.
Example:
channel group red is set to 255
first submaster over red is set to 200 -> channel group red output is 200
second submaster over red is set to 25 -> channel group red output is 20
Hope that makes sense :)
Stefan
Last edit: Stefan Riemens 2013-12-03
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I'm sorry but I don't think I will merge this huge change.
A while ago we discussed about this functionality and I thought it was clear to act on intensity, either of the current frame or on manually selected functions.
Now you come up with this solution, which is great, but quite limited in my opinion. I believe what QLC+ users want more than anything else, is flexibility during live shows. If you need to "hardcode" channels before hitting "play", then you will surely run into a case where you have to hit "stop" and reconfigure. Then hit "play" again. (with all the related blackouts)
Intensity, on the contrary is a generic attribute that almost every QLC+ function has and that can be controlled during live performances.
The most flexible example I can think of is DMX dump on a VC button. In that case the function running on a button will always be different (you can determine 'live' which fixtures/channels to use), and intesity will still work on top of that.
I'm really sorry about this misunderstanding as I looked at your code and I like your style but I cannot help thinking about all the cases a user might run into during a live show.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thanks for the feedback, I probably (especially in hindsight :) should have proposed this change before going ahead and implementing it.
Ironically, the reason I decided to go ahead in this direction is for flexibility. It might help if I state the use cases I see for this:
1) Like stated before, I have a solo frame with a bunch of buttons enabling color scenes. I'd like to have slider to dim my LED fixtures, regardless of which button/scene happens to be active.
2) I have a bunch of pars for band lighting, which I'd like to assign to individual level-mode sliders plus a submaster slider.
Case 1 is perfectly doable via function intensity
Case 2 would get very convoluted via function intensity, especially if there are a decent number of fixtures involved
So, this got me to wanting to submaster channels. Channel groups seemed like a convenient choice, because frankly I didn't feel like manually selecting 50 channels by hand (again). I was already a heavy user of channel groups, to speed up scene creation (no need to select 20 fixtures by hand). Which reminds me, there's a bug there I still need to file.
I do realise (now), that for setups with only a few fixtures, creating channel groups might be overkill.
So basically, using channel groups this way encourages the creation of them. Once defined, the flexibility isn't really dropped much (I think).
If need be, it probably wouldn't be a big issue to allow channel groups to be defined in live mode? I could even envision a "put channels in this scene into a channel group" sort of functionality.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I think this is a great idea... had come across a situation like this during a show where i had a number of scenes running with pars for ambient light while an effect chase was going. that new function would come in handy being able to control the intensity of the scenes separately..
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
BTW, a great reason for having level sliders for the default pars is to prevent blackout during show programming. Level sliders will keep their value even in design mode.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I've just finished reading your poll and could I ask; would proposal 2 basically let you assign a submaster that will control everything in a frame (sliders on level mode, buttons etc?)?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Yeah, that's the basically the idea. I didn't think about sliders in level mode, but I am pretty sure it is feasible.
My proposal was more oriented to functions but it can always be extended
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I basically want to have one master that controls almost all lights except for a few special cases. For example I don't want the master to control the smoke machine and a few spotlights that are pointed at the dj.
I guess this is possible with both option 1 and 2 right?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi all,
Thanks for a great piece of software! I've just found one feature missing, and would like to hear other people's opinion on this:
At our church, we have a bunch of led lights, for which i've created a bunch of scenes to have them change color. For every scene, I put a button in a solo frame to change the colors. So far, so good. However, I would like to have one slider to dim them, regardless of which scene (function) happens to be active. This seems impossible at the moment (note: I can't use grand master for this, because that would effect other fixtures as well.)
So, I've looked at the code and made a real quick and real dirty proof of concept, in case I failed to explain myself clearly :)
https://github.com/stefanriemens/qlcplus
Is this something more people would like to see? Cause in that case, I'd be happy to pursue this code-wise.
Thanks,
Stefan
Once upon the time, in QLC before Heikki started his last refactoring (see the modern fairy tales? :) ) sliders in VC could be used as (inhibitive?) submasters.
I don't remember how did they function, but I can imagine this:
add new mode to VCSlider (Submaster), that you could assign functions to it (copy code from VCSpeedDial/VCSpeedDialProperties) and that would adjustIntensity like you did for the frame.
I'm not sure if this would be better than your proposal, nevertheless it may be more general.
I would welcome such addition.
Guys, I think the best solution here is to add a "special" mode to sliders where they can act as submasters.
In other words, when their value change, they will notify it to their parent widget and affect the intensity of all the running functions into it.
I guess this is what you want, right ?
Stefan did it right in his patch. My idea is a little bit more generic and not related to frames only. Dunno if this makes sense though.
My idea was to create 3rd mode for sliders, independent of all other widgets - they would affect the functions directly. It's more work to configure since you ave to add all the functions from scratch, but gives more flexibility, like you can e.g. split buttons in a frame in parts and control each one separately.
Stefan, I like your idea of using adjustIntensity() for this thing - for submasters, I would try to duplicate grand master mechanisms in engine/src/universearray.cpp, that are more complicated, more fragile and less efficient.
Noooo please universearray nooooo :)
I prefer much more to go through adjustIntensity
@Jano: Yeah, that can be a solution too.
I would say there might be two options (like what I did in DMX dump):
- manually select functions
- all functions in this frame
What do you think ?
Last edit: Massimo Callegari 2013-10-15
Right that sounds like a plan as well. It's probably even easier to implement that way as well. I do wonder if it is as intuitive though. (disclaimer: I'm the technical who started doing lighting. I have virtually no experience with other software or lighting desks). Logically, I'd expect this to be part of a frame, rather than a random slider.
On the other hand, frames are gaining features quickly already, so it might become to heavy a tool if all you need the frame for is this dimmer functionality.
In any case, I'd be happy to implement this either way (and I'll keep clear of UniverseArray :)
Stefan
Stefan, can I already merge and evaluate your changes or do you want to improve them ?
Makes sense for the slider to be a part of the frame (like what I did on VC cue lists) but I'm 99% sure that some user in the future will ask "is it possible to control the intensity only of 3 of my 15 widgets in the frame?" :)
I'm kinda getting used to this... :P
Looking forward to this!
Finally gotten around to this... https://github.com/mcallegari/qlcplus/pull/210
I have added a new mode to sliders, namely submaster. A submaster slider, will submaster channel groups. If multiple submasters are assigned to a channel group, they will both perform their submaster duty.
Example:
channel group red is set to 255
first submaster over red is set to 200 -> channel group red output is 200
second submaster over red is set to 25 -> channel group red output is 20
Hope that makes sense :)
Stefan
Last edit: Stefan Riemens 2013-12-03
Nice, I am going to use this as soon as it gets merged in.
I'm sorry but I don't think I will merge this huge change.
A while ago we discussed about this functionality and I thought it was clear to act on intensity, either of the current frame or on manually selected functions.
Now you come up with this solution, which is great, but quite limited in my opinion. I believe what QLC+ users want more than anything else, is flexibility during live shows. If you need to "hardcode" channels before hitting "play", then you will surely run into a case where you have to hit "stop" and reconfigure. Then hit "play" again. (with all the related blackouts)
Intensity, on the contrary is a generic attribute that almost every QLC+ function has and that can be controlled during live performances.
The most flexible example I can think of is DMX dump on a VC button. In that case the function running on a button will always be different (you can determine 'live' which fixtures/channels to use), and intesity will still work on top of that.
I'm really sorry about this misunderstanding as I looked at your code and I like your style but I cannot help thinking about all the cases a user might run into during a live show.
Hi Massimo,
Thanks for the feedback, I probably (especially in hindsight :) should have proposed this change before going ahead and implementing it.
Ironically, the reason I decided to go ahead in this direction is for flexibility. It might help if I state the use cases I see for this:
1) Like stated before, I have a solo frame with a bunch of buttons enabling color scenes. I'd like to have slider to dim my LED fixtures, regardless of which button/scene happens to be active.
2) I have a bunch of pars for band lighting, which I'd like to assign to individual level-mode sliders plus a submaster slider.
Case 1 is perfectly doable via function intensity
Case 2 would get very convoluted via function intensity, especially if there are a decent number of fixtures involved
So, this got me to wanting to submaster channels. Channel groups seemed like a convenient choice, because frankly I didn't feel like manually selecting 50 channels by hand (again). I was already a heavy user of channel groups, to speed up scene creation (no need to select 20 fixtures by hand). Which reminds me, there's a bug there I still need to file.
I do realise (now), that for setups with only a few fixtures, creating channel groups might be overkill.
So basically, using channel groups this way encourages the creation of them. Once defined, the flexibility isn't really dropped much (I think).
If need be, it probably wouldn't be a big issue to allow channel groups to be defined in live mode? I could even envision a "put channels in this scene into a channel group" sort of functionality.
PS, regarding the code style: I've just tried to mimick the existing code as much as possible :)
I think this is a great idea... had come across a situation like this during a show where i had a number of scenes running with pars for ambient light while an effect chase was going. that new function would come in handy being able to control the intensity of the scenes separately..
BTW, a great reason for having level sliders for the default pars is to prevent blackout during show programming. Level sliders will keep their value even in design mode.
Ok, I would like to hear other opinions before proceeding with this.
Basically I need to know what users expect from this functionality.
EDIT: Let's do this and see what happens. I'm gonna create a new topic with a poll so users can vote the solution they like the most
Last edit: Massimo Callegari 2013-12-05
Thanks for being so constructive, really appreciate it. I'm very curious what the results will be!
No problem Stefan ! I just want to make sure what users want
Hi Massimo,
I've just finished reading your poll and could I ask; would proposal 2 basically let you assign a submaster that will control everything in a frame (sliders on level mode, buttons etc?)?
Yeah, that's the basically the idea. I didn't think about sliders in level mode, but I am pretty sure it is feasible.
My proposal was more oriented to functions but it can always be extended
I basically want to have one master that controls almost all lights except for a few special cases. For example I don't want the master to control the smoke machine and a few spotlights that are pointed at the dj.
I guess this is possible with both option 1 and 2 right?