I've been using qlc and love it, but I'm having an odd issue. When I change scenes, it quickly fades to black for just a millisecond before showing the next scene. It just looks like a flicker to black before bringing up the next scene. Any thoughts why this might be happening?
I'm using a PC with a usb dmx king dongle and the latest version of qlc+.
Any ideas?
Flicker Issue
Hello Chris, you just spotted an issue that I am aware of.
I think it appeared after some changes to the Scene fade out sequence. Months ago.
Unfortunately I haven't been able yet to find a way to repoduce it sistematically. I have only seen it on complex projects, almost impossible to debug.
Also I noticed that reopening a project make it disappear for a while.
If you are able to provide a very simple project (let's say controlling a simple 4 channel PAR) and the exact steps to reproduce it, it would help me to debug and eventually fix it.
thanks
I think it appeared after some changes to the Scene fade out sequence. Months ago.
Unfortunately I haven't been able yet to find a way to repoduce it sistematically. I have only seen it on complex projects, almost impossible to debug.
Also I noticed that reopening a project make it disappear for a while.
If you are able to provide a very simple project (let's say controlling a simple 4 channel PAR) and the exact steps to reproduce it, it would help me to debug and eventually fix it.
thanks
I've also noticed it a few weeks ago. At first thought it may be something related to my (cheap) interface, but not.
It seems that the shorter is the fade, deeper is the "dip".
I'm attaching a file demonstrating it.
It happens in both Windows and Linux (can't say in MacOs)
It seems that the shorter is the fade, deeper is the "dip".
I'm attaching a file demonstrating it.
It happens in both Windows and Linux (can't say in MacOs)
- Attachments
-
- flicker%20issue.qxw
- (8.6 KiB) Downloaded 23 times
I have amended the test file to show the issue more prominently. I added 2 x 5 second cross fade scenes.
See what happens when you switch from an 0.05 to an 5.00- it goes to about 150 before fading back to 255 over the 5 seconds.
See what happens when you switch from an 0.05 to an 5.00- it goes to about 150 before fading back to 255 over the 5 seconds.
- Attachments
-
- flicker%20issue2.qxw
- (10.06 KiB) Downloaded 21 times
Thanks guys ! With these files I should be able to debug it.
This is clearly HTP not working somewhere in the code.
@Chris, if we're lucky, this might be related also to the slider/monitor issue that we have seen
This is clearly HTP not working somewhere in the code.
@Chris, if we're lucky, this might be related also to the slider/monitor issue that we have seen
I'm away from my system, but in theory, if I changed my fixtures to ltp the issue may dissapear?
I'm not convinced it is HTP alone. Attached is the same workspace but 2 of the dimmers have been changed to LTP and the behaviour is also weird and unexpected.
Massimo, I think you are right - this is the same behaviour I showed you when testing the channel monitor functionality.
Massimo, I think you are right - this is the same behaviour I showed you when testing the channel monitor functionality.
- Attachments
-
- flicker%20issue2.1.qxw
- (10.13 KiB) Downloaded 15 times
A little update on this. I think there's more than one issue.
The one showed by the sample project you attached is specific to Buttons and Scenes. In fact if you create a Chaser with Scene 0.05 and 5.00 it works correctly.
The issue I've seen is even more serious cause it happens in Chasers/Sequences.
QLC+ has an internal clock (called MasterTimer) that runs at 50Hz. It ticks every 20 milliseconds to ensure tha fade transitions are smooth.
So what happens when you hit A 0.05 and then A 5.00 ?
1- hit A 0.05 button
2- start Scene A 0.05
3- fade in for 0.05 seconds
4- hit A 5.00 button
5- stop Scene 0.05
6- start to fade out for 0.05 seconds
7- start Scene A 5.00
8- Fade in for 5 seconds
Between 6 and 7 is where the issue occurs. The transition between one Scene and the other takes more than 20 ms, so QLC+ has the time to start the A 0.05 fade out.
It is able to run for just one tick, but it's enough to bring the dimmer levels to halfway. So Scene A 5.00 starts to fade in from the current value, which is halfway.
I'll continue to investigate if there is a clean solution to this.
The one showed by the sample project you attached is specific to Buttons and Scenes. In fact if you create a Chaser with Scene 0.05 and 5.00 it works correctly.
The issue I've seen is even more serious cause it happens in Chasers/Sequences.
QLC+ has an internal clock (called MasterTimer) that runs at 50Hz. It ticks every 20 milliseconds to ensure tha fade transitions are smooth.
So what happens when you hit A 0.05 and then A 5.00 ?
1- hit A 0.05 button
2- start Scene A 0.05
3- fade in for 0.05 seconds
4- hit A 5.00 button
5- stop Scene 0.05
6- start to fade out for 0.05 seconds
7- start Scene A 5.00
8- Fade in for 5 seconds
Between 6 and 7 is where the issue occurs. The transition between one Scene and the other takes more than 20 ms, so QLC+ has the time to start the A 0.05 fade out.
It is able to run for just one tick, but it's enough to bring the dimmer levels to halfway. So Scene A 5.00 starts to fade in from the current value, which is halfway.
I'll continue to investigate if there is a clean solution to this.
[[embed url=https://www.youtube.com/watch?v=Grnsxsx ... e=youtu.be]]
Looks like you've got the problem figured out. I'm sure this is the same issue, just thought I'd throw a vid up of the problem. Thanks for taking time with this!
Looks like you've got the problem figured out. I'm sure this is the same issue, just thought I'd throw a vid up of the problem. Thanks for taking time with this!
- Attachments
-
- flicker.qxw
- (3.92 KiB) Downloaded 23 times
For you guys building from sources. Can you please try a quickfix for this ?
Change the piece of code at line 631 of ui/src/virtualconsole/vcbutton.cpp from this:
emit functionStarting();
f->start(m_doc->masterTimer());
if (isStartupIntensityEnabled() == true)
f->adjustAttribute(startupIntensity() * intensity(), Function::Intensity);
else
f->adjustAttribute(intensity(), Function::Intensity);
to this:
if (isStartupIntensityEnabled() == true)
f->adjustAttribute(startupIntensity() * intensity(), Function::Intensity);
else
f->adjustAttribute(intensity(), Function::Intensity);
f->start(m_doc->masterTimer());
emit functionStarting();
Basically it first starts the new function and then stops the previous one.
Not sure if this has counter effects, especially on LTP channels.
Please try the change on more complex projects and report if you see any issue.
Thanks
Change the piece of code at line 631 of ui/src/virtualconsole/vcbutton.cpp from this:
emit functionStarting();
f->start(m_doc->masterTimer());
if (isStartupIntensityEnabled() == true)
f->adjustAttribute(startupIntensity() * intensity(), Function::Intensity);
else
f->adjustAttribute(intensity(), Function::Intensity);
to this:
if (isStartupIntensityEnabled() == true)
f->adjustAttribute(startupIntensity() * intensity(), Function::Intensity);
else
f->adjustAttribute(intensity(), Function::Intensity);
f->start(m_doc->masterTimer());
emit functionStarting();
Basically it first starts the new function and then stops the previous one.
Not sure if this has counter effects, especially on LTP channels.
Please try the change on more complex projects and report if you see any issue.
Thanks
Massimo - initial test shows this solves the problem for HTP channels but not for LTP channels. See my previously uploaded 2.1 workspace - there I changed two of the dimmers to LTP. Now if you go from 5.00 to 0.05 the channel will in fact fade to 0 and then snap to 255.
Looks like the correct behaviour to me. A 5 seconds fade out is longer than the .05 fade in of the new scene, so it obviously overrides the DMX values in LTP mode.
The problem here is that an intensity channel should never be set to LTP cause by definition it breaks the HTP rule.
EDIT: by the way the weird behaviour you see happens even without the above change to the code
The problem here is that an intensity channel should never be set to LTP cause by definition it breaks the HTP rule.
EDIT: by the way the weird behaviour you see happens even without the above change to the code
Fair enough, except that the same fade out and snap behaviour is there when you switch between A5.00 and B5.00
I understand your point about intensity channels and LTP vs HTP, but would one not have LTP channels that one does cross fade (like positions) and sometimes the from and to values are the same. Then the fade and snap behaviour would be a problem?
We use moving heads to resemble follow spots and then we fade between tilt and pan values to create a smooth movement of the head. If we were to get fade to zero and then snap to the actual value, it would be a headache - i.e. the heads would jump all over the place.
I understand your point about intensity channels and LTP vs HTP, but would one not have LTP channels that one does cross fade (like positions) and sometimes the from and to values are the same. Then the fade and snap behaviour would be a problem?
We use moving heads to resemble follow spots and then we fade between tilt and pan values to create a smooth movement of the head. If we were to get fade to zero and then snap to the actual value, it would be a headache - i.e. the heads would jump all over the place.