Program Crash when Using Pixel Scripts

Generic issues not specifically related to a QLC+ area.
Post here only if you can't really find the reason of an issue
User avatar
SPOPATT
Posts: 81
Joined: Wed Mar 13, 2019 3:34 am
Real Name: Jacob

Hey folks,

I have discussed this before and have made some progress with the help of some of the fine folks here but I would like to figure out why my program is crashing when I use some of the scripts in QLC+. I am able to avoid crashes by not doing certain animations but I would like to use all the features available.

In the attached photo, I have placed a box around the buttons that are giving me the most issues. You can recreate the crashing fairly quickly by clicking these in rapid succession. Otherwise the crash happens after a period of time. Sometimes it is fine for continued use over a day. Other times it will crash in as little as a minute. It seems to consistently crash though and I do not notice a large chunk of system resources being used up when I am using these buttons.

These particular fixtures are 12 round lights with 256 pixels each all set to display the same animation. I want them to all be identical with their animations. If there is a more efficient way to do this than I have been, please let me know.

I know my current virtual console is messy. I plan on redoing it soon but I would like to get this crashing issue under control. The crash seems to happen on both PC and Mac. The PC is fairly beefy with 64gb of memory and a 7 core i7. I bought it last year hoping it would help this issue. It didn't, unfortunately. The Mac I am using is an M1 Pro MacBook Pro with 32gb of memory.

Here is the file with all of the resources used. The file I have been using to experiment with this issue is the "Dash Room Lights Experimental"
https://drive.google.com/drive/folders/ ... sp=sharing

I appreciate your time and efforts. I know there are others using more pixels than I am without crashing so I figure it is how I have it configured but I cannot seem to figure it out.
Attachments
Screenshot 2024-04-04 at 9.20.09 AM.png
User avatar
mcallegari
Posts: 4484
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

I opened it on an average Windows PC. All outputs went to 127.0.0.1
I clicked like hell the buttons you indicated and no crashes at all with version 4.13.0
Perhaps the crash is related to the output you're using?
User avatar
SPOPATT
Posts: 81
Joined: Wed Mar 13, 2019 3:34 am
Real Name: Jacob

Thanks for taking a look. I will get a screen recording of the set up and crash and see if that helps in the troubleshooting.
What would you recommend for the output? I'm using a Falcon pixel controller at the moment connected to a cheap router with a cable running over to the PC. I'll get my current setup details in this thread asap.
User avatar
mcallegari
Posts: 4484
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

I meant that with 127.0.0.1 it doesn't seem to crash. Can you try the same on your machine(s) and see if it works for you too?
In that case, we have a starting point where to concentrate the analysis
User avatar
SPOPATT
Posts: 81
Joined: Wed Mar 13, 2019 3:34 am
Real Name: Jacob

mcallegari wrote: Thu Apr 04, 2024 2:57 pm I meant that with 127.0.0.1 it doesn't seem to crash. Can you try the same on your machine(s) and see if it works for you too?
In that case, we have a starting point where to concentrate the analysis
I wanted to be as helpful as possible in assisting you and anyone else who would want to look into this to troubleshoot. I am willing to replicate whatever suggestion and submit my findings here.

I have tried 127.0.0.1 and managed to get the system to crash. I went as far as unchecking all the outputs and was able to replicate. I have taken screen recordings of both of those and have put them in the link below.

I have also placed in there my current configuration within my pixel controller and the output set up I have been using within QLC+ just in case I am doing something incorrectly.

One last thing I did was submit a video I took using my phone that shows my set up and a brief explanation of the crash.

Submitted is also the two most recent crash logs (I figure these are useless but they're there)

https://drive.google.com/drive/folders/ ... sp=sharing

I have made a second link in case you or anyone else would like to submit photos or videos of things I could replicate. I set this link so people could edit.
https://drive.google.com/drive/folders/ ... sp=sharing

This is my system hardware. It was suggested previously to get more memory and I have done that.

Thank you, again.

Device name DESKTOP-R5VTNH0
Processor Intel(R) Xeon(R) E-2124G CPU @ 3.40GHz 3.41 GHz
Installed RAM 64.0 GB (63.8 GB usable)
Device ID CD5C14D0-D147-4DB5-969D-25537C0E461C
Product ID 00391-50000-00000-AAOEM
System type 64-bit operating system, x64-based processor
Pen and touch No pen or touch input is available for this display
User avatar
SPOPATT
Posts: 81
Joined: Wed Mar 13, 2019 3:34 am
Real Name: Jacob

I’ll be at the machine again tomorrow (Wednesday) evening so I can provide more information if required. Not sure where to go from here.
User avatar
GGGss
Posts: 2733
Joined: Mon Sep 12, 2016 7:15 pm
Location: Belgium
Real Name: Fredje Gallon

Reconstructed your project on my machine and tried to decompile it ...
OK animated gifs started from within a collection ...
OK network settings are inside my local network
PLAY: small rise into the CPU usage
PRESS all kind of functions - a substantial increase in CPU
ScreenHunter_42 Apr. 10 10.11.gif
(LOL! the guys from the warehouse wondering where all the flickering comes from .... all animations go to the 0.150 network node ... by coincidence we have an sAcn running at that address here LOL)
I'll have it run for a while and see
AND CRASH !!
ScreenHunter_42 Apr. 10 10.16.gif
What if we convert the animations into sequences? - All LR Sonic groups are called through the collection; so if you convert each of them into sequences, and call the sequences?
All electric machines work on smoke... when the smoke escapes... they don't work anymore
MichelSliepenbeek
Posts: 504
Joined: Wed Feb 08, 2023 10:24 am
Location: Nederland
Real Name: Michel Sliepenbeek

It seems to me that you always run the same effect/RGB matrix on all your 12 Light Rounds.

If so, then it is very inefficient to have QLC make 12 times the same calculations (and send 12 times the same information over your network).
Why not define only one Light Round in QLC and set up your 12 Light Rounds, to all listen to the same Universe / DMX adress?

If you want to keep some room for variation, reduce the number in QLC to 2 or 3 (or maybe even 4, but certainly not 6 :) :) )
A QLC Workspace is like a Bob Ross painting: "it's your world, you can create whatever you want!"
User avatar
SPOPATT
Posts: 81
Joined: Wed Mar 13, 2019 3:34 am
Real Name: Jacob

Thanks for taking a look, folks. I am willing to try anything. I made it work based on what I wanted and figured I didn't do it the best I possibly could.
GGGss wrote: Wed Apr 10, 2024 8:18 am Reconstructed your project on my machine and tried to decompile it ...
OK animated gifs started from within a collection ...
OK network settings are inside my local network
PLAY: small rise into the CPU usage
PRESS all kind of functions - a substantial increase in CPU
ScreenHunter_42 Apr. 10 10.11.gif
(LOL! the guys from the warehouse wondering where all the flickering comes from .... all animations go to the 0.150 network node ... by coincidence we have an sAcn running at that address here LOL)
I'll have it run for a while and see
AND CRASH !!
ScreenHunter_42 Apr. 10 10.16.gif

What if we convert the animations into sequences? - All LR Sonic groups are called through the collection; so if you convert each of them into sequences, and call the sequences?
That's an interesting thought. Are sequences significantly less resource heavy?
MichelSliepenbeek wrote: Wed Apr 10, 2024 9:32 am It seems to me that you always run the same effect/RGB matrix on all your 12 Light Rounds.

If so, then it is very inefficient to have QLC make 12 times the same calculations (and send 12 times the same information over your network).
Why not define only one Light Round in QLC and set up your 12 Light Rounds, to all listen to the same Universe / DMX adress?

If you want to keep some room for variation, reduce the number in QLC to 2 or 3 (or maybe even 4, but certainly not 6 :) :) )
You're correct. I have twelve of the same props I built on the ceiling. I don't typically use them as separate entities but I've occasionally made some quick animations and color patterns for events.

How would I go about telling them all to listen to the same universe/dmx address within QLC?
MichelSliepenbeek
Posts: 504
Joined: Wed Feb 08, 2023 10:24 am
Location: Nederland
Real Name: Michel Sliepenbeek

Just a simple example to start:
You have 5 spots (only white), each one has a 1 channel DMX controller.
If you want to control them seperately you could use the Generic Dimmer Profile and set them up as Spot 1 on DMX address 1, Spot 2 on DMX address 2, Spot 3 on DMX address 3, Spot 4 on DMX address 4 and Spot 5 on DMX address 5 (all in Universe 1). On the spots you accordingly need to use the dipswitches or menu to set them to the DMX channel they should listen to (so channel 1 for spot 1, ...., Channel 5 for spot 5).
If you want all 5 to do the same however, you only have to add 1 fixture to QLC on DMX address 1, only now on all 5 fixtures you use the same address (being 1).

In your situation the situation in QLC is quite simple: instead of 12 Light rounds you will have only one (so basically delete LR2 to LR12).
As you also want to reduce your network traffic, on the Input/Output Tab you change your SACN settings to only send QLC Universes 8 and 9 (and not to send universes 10 to 26).


Now you either have to change the mapping on your SACN Node / Led Pixel controller to make all 12 Light Rounds to listen to the same 2 universes or otherwise rewire your led strips: put them all 12 in parallel (possibly you have to add some signal repeaters).
A QLC Workspace is like a Bob Ross painting: "it's your world, you can create whatever you want!"
User avatar
SPOPATT
Posts: 81
Joined: Wed Mar 13, 2019 3:34 am
Real Name: Jacob

MichelSliepenbeek wrote: Thu Apr 11, 2024 1:19 am Just a simple example to start:
You have 5 spots (only white), each one has a 1 channel DMX controller.
If you want to control them seperately you could use the Generic Dimmer Profile and set them up as Spot 1 on DMX address 1, Spot 2 on DMX address 2, Spot 3 on DMX address 3, Spot 4 on DMX address 4 and Spot 5 on DMX address 5 (all in Universe 1). On the spots you accordingly need to use the dipswitches or menu to set them to the DMX channel they should listen to (so channel 1 for spot 1, ...., Channel 5 for spot 5).
If you want all 5 to do the same however, you only have to add 1 fixture to QLC on DMX address 1, only now on all 5 fixtures you use the same address (being 1).

In your situation the situation in QLC is quite simple: instead of 12 Light rounds you will have only one (so basically delete LR2 to LR12).
As you also want to reduce your network traffic, on the Input/Output Tab you change your SACN settings to only send QLC Universes 8 and 9 (and not to send universes 10 to 26).


Now you either have to change the mapping on your SACN Node / Led Pixel controller to make all 12 Light Rounds to listen to the same 2 universes or otherwise rewire your led strips: put them all 12 in parallel (possibly you have to add some signal repeaters).
Is there a limit to how many pixels QLC+ can handle? There are 3072 pixels in this particular array. I've noticed I am able to make sequences out of the built in RGB scripts but I don't have the ability to do moving sequences from imported gifs. Is there a way to do that? Would sequencing be easier on the program as it isn't rendering on the fly or are sequences still rendered?
User avatar
GGGss
Posts: 2733
Joined: Mon Sep 12, 2016 7:15 pm
Location: Belgium
Real Name: Fredje Gallon

Hoh darn, you are using the animated gifs as a source for the animation... ehhm... I don't think we have a clever solution here?
All electric machines work on smoke... when the smoke escapes... they don't work anymore
User avatar
SPOPATT
Posts: 81
Joined: Wed Mar 13, 2019 3:34 am
Real Name: Jacob

GGGss wrote: Fri Apr 12, 2024 8:48 am Hoh darn, you are using the animated gifs as a source for the animation... ehhm... I don't think we have a clever solution here?
Well to be fair, it's more of a thing I do for fun to show off the abilities and not used in practice most of the time. I can live without them if I need to.

I am still curious if sequences are lighter weight than scripts are. I'm unclear on how they work. Are they prerendered or are they rendered on the fly as well?
User avatar
SPOPATT
Posts: 81
Joined: Wed Mar 13, 2019 3:34 am
Real Name: Jacob

I will be near the machine again tomorrow. I will do some experimentation with sequences and see what happens.
MichelSliepenbeek
Posts: 504
Joined: Wed Feb 08, 2023 10:24 am
Location: Nederland
Real Name: Michel Sliepenbeek

If you have time left, you could do another experiment:

Pick one of the Collections for your LR Animations, for instance LR RGB Gradient.
Make a copy, delete 6 of the RGB matrices (pick the odd numbers), and rename this collection to "LR RGB Gradient 6".
Now make a copy of the collection you just created, delete 3 RGB Matrices and rename it to "LR RGB Gradient 3".
Finally make a copy of this, delete 2 more and rename it "LR RGB Gradient 1".
Add 3 buttons to your "LR Rounds solo frame" to launch those collections.

Now (go to Operate Mode, ) switch between the four variations (12 , 6, 3 and 1) of this Animation and monitor what it does to CPU and Network load.
If the differences are significant, you might have found a way to make your set up more efficient (and stable again).
A QLC Workspace is like a Bob Ross painting: "it's your world, you can create whatever you want!"
User avatar
SPOPATT
Posts: 81
Joined: Wed Mar 13, 2019 3:34 am
Real Name: Jacob

MichelSliepenbeek wrote: Sun Apr 14, 2024 1:55 am If you have time left, you could do another experiment:

Pick one of the Collections for your LR Animations, for instance LR RGB Gradient.
Make a copy, delete 6 of the RGB matrices (pick the odd numbers), and rename this collection to "LR RGB Gradient 6".
Now make a copy of the collection you just created, delete 3 RGB Matrices and rename it to "LR RGB Gradient 3".
Finally make a copy of this, delete 2 more and rename it "LR RGB Gradient 1".
Add 3 buttons to your "LR Rounds solo frame" to launch those collections.

Now (go to Operate Mode, ) switch between the four variations (12 , 6, 3 and 1) of this Animation and monitor what it does to CPU and Network load.
If the differences are significant, you might have found a way to make your set up more efficient (and stable again).
Interesting thought. I will let you know what I find out. I know there is software out there with pixels in mind but I just love the heck out of QLC+ and would rather bend how I do things instead of going to another platform.

It would be nice if there was a way to create loops that render once and then repeat instead of constantly rendering. I have used the XLights program before in creating Christmas displays and all of their stuff is rendered ahead of time. It is essentially a player. I understand it is a completely different animal.
MichelSliepenbeek
Posts: 504
Joined: Wed Feb 08, 2023 10:24 am
Location: Nederland
Real Name: Michel Sliepenbeek

It would be nice if there was a way to create loops that render once and then repeat instead of constantly rendering.
Have a look at this:
https://apps.microsoft.com/detail/9pc9q ... n-US&gl=US



If you have a spare PC or laptop, you could also consider to run QLC+ on two PC's.
On the first PC you run about everything except for your Light Rounds (let's call it "VC pc"), on the second one you only run your Light Rounds (LR pc).
That way if your Matrices still might crash, you still have a stable VC pc to continue your show. You only have to restart the LR PC.
A QLC Workspace is like a Bob Ross painting: "it's your world, you can create whatever you want!"
User avatar
SPOPATT
Posts: 81
Joined: Wed Mar 13, 2019 3:34 am
Real Name: Jacob

MichelSliepenbeek wrote: Sun Apr 14, 2024 6:43 pm
It would be nice if there was a way to create loops that render once and then repeat instead of constantly rendering.
Have a look at this:
https://apps.microsoft.com/detail/9pc9q ... n-US&gl=US



If you have a spare PC or laptop, you could also consider to run QLC+ on two PC's.
On the first PC you run about everything except for your Light Rounds (let's call it "VC pc"), on the second one you only run your Light Rounds (LR pc).
That way if your Matrices still might crash, you still have a stable VC pc to continue your show. You only have to restart the LR PC.
Ooooooooooo. THAT is interesting.

I've considered two PCs. What is frustrating is these rounds end up being the main light source during events. It sounds like I have a good bit of things to try though.

Because I am a fool, I have been considering making another large pixel light that would display the logo of whatever was happening in the room at the time. It would be a 48x48 pixel round. 2304 pixels. I am planning on making a test light in QLC+ to see how that does. I have an unhealthy love of pixels I think
User avatar
GGGss
Posts: 2733
Joined: Mon Sep 12, 2016 7:15 pm
Location: Belgium
Real Name: Fredje Gallon

SPOPATT wrote: Mon Apr 15, 2024 2:08 am I have an unhealthy love of pixels I think
OffTopic: I'm looking at dual 4K screens right now, so I'm also hooked up to pixels ;)
All electric machines work on smoke... when the smoke escapes... they don't work anymore
User avatar
SPOPATT
Posts: 81
Joined: Wed Mar 13, 2019 3:34 am
Real Name: Jacob

I had some time to troubleshoot a little bit. I don't recommend making 12 identical 256 pixel circles unless you like tedious work.

Making sequences for the scripts are not the answer. lol. I am talking an almost immediate crash. It bumped the file size from 1.2mb to about 40mb first off. It destroys the CPU usage.

I haven't had a chance to try to idea of splitting them into separate collections just yet. Going to try that soon™.

Willing to try anything else if there are some more thoughts.
Post Reply