Hey All,
Is anyone able to have a look at this for me, I'm not sure if i have screwed something up in my script or if this may be an issue with QLC.
The issue is: After selecting the pattern/algorithm the on screen preview works but playing on real fixtures does not.
I can get it to work on real fixtures by changing the patterns properties (doesn't matter the value just needs a change).
This doesn't seem to be an issue with the provided scripts only the ones i have written. Script and Workspace attached.
Steps to reproduce:
- Create New RGBMatrix.
- Set Fixture Group.
- Set Pattern to Color Wave.
- Observe On Screen Preview works.
- Click Preview.
- Observe Fixture Monitor shows no DMX activity.
- Modify Hue Range to 121 then to 120.
- Modify Hue Direction to Counter-Clockwise then to Clockwise.
- Observe Fixture Monitor shows DMX activity (if you didn't stop Preview).
Posible Bug - RGBMatrix does not work until a user edits all properties
-
- Posts: 16
- Joined: Fri May 29, 2015 10:06 am
- Real Name:
- Attachments
-
- ColorWave.js
- Script for Workspace
- (9.84 KiB) Downloaded 150 times
-
- RGBMatrix Issue.qxw
- Test Workspace
- (3.75 KiB) Downloaded 156 times
-
- Posts: 1325
- Joined: Mon Apr 13, 2015 7:05 am
- Location: Bratislava, Slovakia
- Real Name: Jano Svitok
- Contact:
Tubby,
I can't look into his problem now, but you get big golden medal for perfect report!
I can't look into his problem now, but you get big golden medal for perfect report!
- mcallegari
- Posts: 4711
- Joined: Sun Apr 12, 2015 9:09 am
- Location: Italy
- Real Name: Massimo Callegari
- Contact:
I haven't tested the script yet, but after a quick look at the code I noticed:
- declare arrays like "new Array()" and not the Python style [ ]
- no need for a semicolumn at the end of a function declaration (actually JS doesn't need semicolumns at all)
- the algorithm parameters are numbers, then why do you change them to strings like the following ?
- declare arrays like "new Array()" and not the Python style [ ]
- no need for a semicolumn at the end of a function declaration (actually JS doesn't need semicolumns at all)
- the algorithm parameters are numbers, then why do you change them to strings like the following ?
Code: Select all
algo.HueRange = 120;
algo.getHueRange = function()
{
return ""+algo.HueRange;
};
- mcallegari
- Posts: 4711
- Joined: Sun Apr 12, 2015 9:09 am
- Location: Italy
- Real Name: Massimo Callegari
- Contact:
And fixing it solves the issue you're having ?For point 3, i don't know what i was thinking
-
- Posts: 16
- Joined: Fri May 29, 2015 10:06 am
- Real Name:
Sorry for not getting back to you. Those changes didn't resolve the issue.
I have been looking at it a bit more in depth and i think i have found the cause.
I believe it is related to how script list properties are handed.
The script i wrote expected the value of "algo.HueDirection" to be set otherwise it fails. This value is set by a list property. I updated my code to so that when "algo.HueDirection" isn't set it displays the opposite colour than the supplied RGB.
Running this (ColorWave V4) in QLC+ i found that:
- Initially the on screen preview works as expected.
- Then when previewing (on DMX) the script displayed the opposite colour (ie "algo.HueDirection" has not been set) .
- Then when i stopped previewing the on screen preview displayed the opposite colour as well (ie "algo.HueDirection" has not been set).
After further digging this only happens when the default for "algo.HueDirection" (value set at the start of the anonymous function) is set to be the first value in the list ("Clockwise" in this example), setting the default to the 2nd or 3rd value everything works fine.
My suspicion is QLC+ isn't storing the value so it only works the first time after a script is loaded (ie when the anonymous function is fully executed). The workspace files seem to confirm this as they show this property to be blank.
I have been looking at it a bit more in depth and i think i have found the cause.
I believe it is related to how script list properties are handed.
The script i wrote expected the value of "algo.HueDirection" to be set otherwise it fails. This value is set by a list property. I updated my code to so that when "algo.HueDirection" isn't set it displays the opposite colour than the supplied RGB.
Running this (ColorWave V4) in QLC+ i found that:
- Initially the on screen preview works as expected.
- Then when previewing (on DMX) the script displayed the opposite colour (ie "algo.HueDirection" has not been set) .
- Then when i stopped previewing the on screen preview displayed the opposite colour as well (ie "algo.HueDirection" has not been set).
After further digging this only happens when the default for "algo.HueDirection" (value set at the start of the anonymous function) is set to be the first value in the list ("Clockwise" in this example), setting the default to the 2nd or 3rd value everything works fine.
My suspicion is QLC+ isn't storing the value so it only works the first time after a script is loaded (ie when the anonymous function is fully executed). The workspace files seem to confirm this as they show this property to be blank.
- Attachments
-
- ColorWaveV4.js
- ColorWave with handler for no "algo.HueDirection"
- (9.89 KiB) Downloaded 126 times
-
- ColorWaveV2.js
- ColorWave with mcallegari changes
- (9.85 KiB) Downloaded 129 times
-
- RGBMatrix Issue.qxw
- Updated Workspace
- (5.21 KiB) Downloaded 141 times