Please help testing Sequence changes

A place where updates of QLC+ activities and technical articles are posted as if it was a blog
Post Reply
User avatar
mcallegari
Posts: 4446
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

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 :sweat_smile:

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... :laughing:
User avatar
GGGss
Posts: 2646
Joined: Mon Sep 12, 2016 7:15 pm
Location: Belgium
Real Name: Fredje Gallon

Can confirm - working in a small project.

Out of curiosity I grabbed some gear from the storage and made a little show in the last official version. The test involved some sequences just for fun.
conversion thru webtool completed.
loaded the converted show into the new 4.11 version.
Works like a charm
All electric machines work on smoke... when the smoke escapes... they don't work anymore
User avatar
mcallegari
Posts: 4446
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

Great, thanks
mdmayfield
Posts: 71
Joined: Wed Jun 15, 2016 8:51 am
Real Name: Matt Mayfield

Hi Massimo,

Thank you for all your work, as always.

I briefly tested the new version with a medium sized project (1 MB) and the basic functionality seems to work fine. Hiding the bound Scenes is very helpful, because it makes it much easier to find the Sequences - I'm very happy with this change!

One thing I noticed is that with this test build, it is no longer possible to attach a Sequence function to a Virtual Console Cue List. Is that intentional?

The Python migration script worked fine once I installed lxml with pip. For others' reference, this is what worked for me on MacOS, taken from this page:

Code: Select all

sudo easy_install pip
sudo CPATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2 CFLAGS=-Qunused-arguments CPPFLAGS=-Qunused-arguments pip install lxml
Thanks again,

Matt
User avatar
mcallegari
Posts: 4446
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

Hi Matt, thanks for testing.
One thing I noticed is that with this test build, it is no longer possible to attach a Sequence function to a Virtual Console Cue List. Is that intentional?
Definitely not intentional. Gonna fix it. Thanks for reporting.
mdmayfield
Posts: 71
Joined: Wed Jun 15, 2016 8:51 am
Real Name: Matt Mayfield

Massimo, thank you for the quick fix and the other issue resolution today! All seems to be well so far.

One minor point about the new sequences - once a new (hidden) bound scene is created by making a new sequence, it seems to remain in the project forever. For example:

1) Create new project, create a Sequence, save
2) Examine XML file in text editor - we see it contains 1 scene and 1 sequence
3) Delete the sequence - now the Function Manager appears to be empty - save
4) Examine XML file - contains 1 scene

I imagine that's not a big deal, of course. Maybe the scene should be deleted when the last sequence is deleted, or if that is too potentially dangerous, perhaps un-hiding the scene at that point would be a solution.

Thanks again,

Matt
User avatar
mcallegari
Posts: 4446
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

I imagine that's not a big deal, of course. Maybe the scene should be deleted when the last sequence is deleted, or if that is too potentially dangerous, perhaps un-hiding the scene at that point would be a solution.
You're right Matt. I realized it myself, thought about a solution and then forgot about it among all the other things in my head !
I need to implement one last thing to get rid of unused Scenes and I will do it probably tomorrow.
Un-hiding the Scene would create only confusion, so I don't think that's the way to go.

[EDIT] fixed on GIT. Now when deleting a Sequence, if the bound Scene is not used by anyone else, it will be removed as well.
dani105
Posts: 8
Joined: Fri Apr 28, 2017 7:11 pm
Real Name: Daniel

Hi Massimo,

I just built and tested the latest master (4e4f4af) because of the (for me) much needed rgb matrix change.
Doing that also made me use the converter.

As far as I can see, everything is working fine.
I do not use many sequences in my showfile, but the ones I use are all fine and everything else is also fully functional.
Since my showfile is not that large, I did not really notice a difference in loading, but it definitely did not get worse.

Thanks for your hard work. :)
janosvitok
Posts: 1265
Joined: Mon Apr 13, 2015 7:05 am
Location: Bratislava, Slovakia
Real Name: Jano Svitok
Contact:

See also: viewtopic.php?f=22&t=11200

During retest I found:

- the scene is not removed from Function manager immediately, I had to save/open workspace

- (feature request) it should be possible to add a scene to the show without converting it to a sequence (see https://github.com/mcallegari/qlcplus/b ... r.cpp#L630)

- when scene is converted to sequence, it may still be used in another parts (chaser, button) and can't be edited anymore. A copy should be made in that case.
Post Reply