Have been playing with the rgb matrix function and have discovered a few issues.
I am running QLC+ 4.8.3 on Ubuntu 14.04 LTS.
1. If there are more than 256 steps the option to fade between first and second colour does not work.
To reproduce.
Either create a matrix with more than 256 leds (43 x 6) and select "random fill single", or on any matrix select "text" and add some more characters to the message (" Q LIGHT CONTROLLER + test the length". Select an end colour and the fade will not happen.
.
2. "Fade out" seems to be recalculated each step, so if the fade out time is set to more than the step time it never fades to 0.
To reproduce.
Create a matrix and select stripes. As soon as you add any fade out time the preview gets upset, but if you open the "Fixture monitor" you can see the channels fading out. If you take the fade out time above the step time you can see the fade out rate changing each time there is a new step. meaning the channels never get to zero.
Thanks for all the work people put in to this superb software.
RGB Matrix issues
Can you please attach sample workspace(s)? I suppose you have one and it will save me some time. Thanks!
The cause for 1 is [this code](https://github.com/mcallegari/qlcplus/b ... x.cpp#L273) since it operates on 0-255 range. One of the possible fixes is to rewrite the computation to use float versions of QColor that uses 0.0-1.0 range and stores 16 bit numbers (replace all three m_cXDelta with QColor m_colorDelta) and the mentioned line with
m_colorDelta.setRedF((m_endColor.redF() - m_startColor.redF()) / (m_algorithm->rgbMapStepCount(grp->size()) - 1))
and in updateSetColor():
m_stepColor.setRedF(m_stepColor.redF() + m_colorDelta.redf())
similarly for other colors.
m_colorDelta.setRedF((m_endColor.redF() - m_startColor.redF()) / (m_algorithm->rgbMapStepCount(grp->size()) - 1))
and in updateSetColor():
m_stepColor.setRedF(m_stepColor.redF() + m_colorDelta.redf())
similarly for other colors.
Hi,
Thanks for looking.
Haven't looked fully yet and my coding skills are a bit rusty, but another option is to maybe multiply the colour step by the step count rather that add to the previous. This might get round fractional errors. I believe that this is how the "Gradient" fades work.
Thanks for looking.
Haven't looked fully yet and my coding skills are a bit rusty, but another option is to maybe multiply the colour step by the step count rather that add to the previous. This might get round fractional errors. I believe that this is how the "Gradient" fades work.
Jano, you are the man
Here is a workspace showing the fade problem.
It looks like it is recalculating the fade rate each step, and using the current value as the start point each time.
Here is a workspace showing the fade problem.
It looks like it is recalculating the fade rate each step, and using the current value as the start point each time.
- Attachments
-
- FadeFail.qxw
- (2.48 KiB) Downloaded 30 times