Please help testing Sequence changes
Posted: Sun Apr 23, 2017 10:59 am
Versions to test:
TEST versions available here
Short story:
For several reasons, I had to make some changes to the Sequence function and in doing so I broke (on purpose) the backward compatibility of projects using Sequences.
No alarm though, I have prepared an online and offline tool to convert your project to the new format.
Changes will be made only on Sequences, and Scenes used by Sequences will be turned to invisible, so they won't appear anymore in the Function Manager.
I need a hand on testing both the migration tools and the current QLC+ builds. I marked the next version as 4.11.0, to highlight that something major changed.
Just migrate and load your project, then check that everything is correct and working.
The good news is that with these changes, big projects will decrease in size and will load faster. A huge project that I have went from 68MB to 50MB and loaded from 40s to 10s. On small projects you probably won't even notice the difference.
Long story:
Sequences and Show Manager are the first things I implemented on the original QLC code when I forked it.
Even though I studied the code for months before writing new code, I realized too late my first decisions were not made on a big enough picture of how QLC worked.
So for years we had to add workarounds to Sequences to get them straight and usable, and still, Sequences are one of the most misunderstood functionalities of QLC+.
I still believe in the Sequence concept though, and I think Christmas LED freaks would agree with me on its usefulness. You can't just do some things with normal Chasers, and if you do it, it would be extremely inefficient.
Anyhow, with QLC+ 5 approaching I decided that it was not the case to keep a pile of (inefficient) workarounds in the code.
What didn't help me is that unfortunately the existing XML files were formatted in a way that QLC+ could not perform a migration on its own, so when changing how Sequences are saved in the XML file, I had to break backward compatibility.
Luckily enough, in the last year I've learned a bit of PHP and Python, so I was able to create migration tools quite easily.
With the latest changes, Sequences have a dedicated class in the code, so no more specific workarounds. Since I was breaking the XML syntax, I also took the occasion to find a more efficient way to store and load the step values, and the results are quite tangible on big projects.
The original Sequence idea was that more Sequences can share the same Scene as container for step values. While this is pretty clear in the Show Manager, it wasn't clear enough in the Function manager.
This created a lot of confusion and people started using Scenes either as "standalone" Scenes and as Sequence steps. Very wrong !
So to stop this from happening I also decided (thanks to Jano's suggestion) to turn Scenes used by Sequences to hidden. So no more weird trees in the Function Manager. Sequences now appear like every other Function.
The main difference is that when you create a new Sequence, it will internally create a new (hidden) Scene as well, but it won't be listed in the Function Manager, to sort of protect it from misusages.
If you want to re-use the same Scene for more than one Sequence, you need to clone an existing Sequence.
In the Show Manager instead, everything is like before. Once a Sequence is created on a Track, every other Sequence created on that Track will share the Scene of the first Sequence created. Basically a Track is still "bound" to a Scene.
In the Sequence editor, I also fixed the case where at some point you change your mind and decide you need (or don't need) a fixture channel. That was totally borken before and caused a lot of issues reported in the forums.
In general, when populating the Scene with fixtures, you should enable the channels that you will use for the whole Sequence. Now you can also change your mind while editing
Well, thanks for the patience and let's hope this Sequence sad story has come to an end.
Most likely I am now able to produce a new video tutorial about Shows and Sequences. When I will be able to make it is another story...
TEST versions available here
Short story:
For several reasons, I had to make some changes to the Sequence function and in doing so I broke (on purpose) the backward compatibility of projects using Sequences.
No alarm though, I have prepared an online and offline tool to convert your project to the new format.
Changes will be made only on Sequences, and Scenes used by Sequences will be turned to invisible, so they won't appear anymore in the Function Manager.
I need a hand on testing both the migration tools and the current QLC+ builds. I marked the next version as 4.11.0, to highlight that something major changed.
Just migrate and load your project, then check that everything is correct and working.
The good news is that with these changes, big projects will decrease in size and will load faster. A huge project that I have went from 68MB to 50MB and loaded from 40s to 10s. On small projects you probably won't even notice the difference.
Long story:
Sequences and Show Manager are the first things I implemented on the original QLC code when I forked it.
Even though I studied the code for months before writing new code, I realized too late my first decisions were not made on a big enough picture of how QLC worked.
So for years we had to add workarounds to Sequences to get them straight and usable, and still, Sequences are one of the most misunderstood functionalities of QLC+.
I still believe in the Sequence concept though, and I think Christmas LED freaks would agree with me on its usefulness. You can't just do some things with normal Chasers, and if you do it, it would be extremely inefficient.
Anyhow, with QLC+ 5 approaching I decided that it was not the case to keep a pile of (inefficient) workarounds in the code.
What didn't help me is that unfortunately the existing XML files were formatted in a way that QLC+ could not perform a migration on its own, so when changing how Sequences are saved in the XML file, I had to break backward compatibility.
Luckily enough, in the last year I've learned a bit of PHP and Python, so I was able to create migration tools quite easily.
With the latest changes, Sequences have a dedicated class in the code, so no more specific workarounds. Since I was breaking the XML syntax, I also took the occasion to find a more efficient way to store and load the step values, and the results are quite tangible on big projects.
The original Sequence idea was that more Sequences can share the same Scene as container for step values. While this is pretty clear in the Show Manager, it wasn't clear enough in the Function manager.
This created a lot of confusion and people started using Scenes either as "standalone" Scenes and as Sequence steps. Very wrong !
So to stop this from happening I also decided (thanks to Jano's suggestion) to turn Scenes used by Sequences to hidden. So no more weird trees in the Function Manager. Sequences now appear like every other Function.
The main difference is that when you create a new Sequence, it will internally create a new (hidden) Scene as well, but it won't be listed in the Function Manager, to sort of protect it from misusages.
If you want to re-use the same Scene for more than one Sequence, you need to clone an existing Sequence.
In the Show Manager instead, everything is like before. Once a Sequence is created on a Track, every other Sequence created on that Track will share the Scene of the first Sequence created. Basically a Track is still "bound" to a Scene.
In the Sequence editor, I also fixed the case where at some point you change your mind and decide you need (or don't need) a fixture channel. That was totally borken before and caused a lot of issues reported in the forums.
In general, when populating the Scene with fixtures, you should enable the channels that you will use for the whole Sequence. Now you can also change your mind while editing
Well, thanks for the patience and let's hope this Sequence sad story has come to an end.
Most likely I am now able to produce a new video tutorial about Shows and Sequences. When I will be able to make it is another story...