Frame Page Selection not Consistent

The issues found when using the Virtual Console
Post Reply
User avatar
sandinak
Posts: 188
Joined: Mon Apr 03, 2017 5:40 pm
Location: Yorktown, VA
Real Name: Branson Matheson
Contact:

So, I was working on a way to have my VC have a main and sub chase's visible based on where I am in the main list ( from the other comment I made today ) and I noticed a strange behavior:
  • 1 'main' chase .. and 3 'sub' chases
  • collections representing scenes in the show
  • a loopback universe with 'Generic' fixtures that have scenes that fire each fixture with 255 value to use as semaphores
  • attach the "page" scene's to the collections that also include the chase I want
  • assign the corresponding loopback and "page" fixtures to the External Input on pages in a Frame (solo or otherwise)
  • roll forward thru the 'main' chase
I get inconsistent behavior:
  • Going to the first subchase, all works as expected, the right pages comes up on the frame and the chase is activated
    Screenshot 2023-03-20 at 12.38.08.png
  • going from the first to the second, the DMX values change correctly per the loopback, but the page doesn't and the widget is not active
    Screenshot 2023-03-20 at 12.38.27.png
  • going from the second to third, the second widget comes up not the third and they're not active
    Screenshot 2023-03-20 at 12.39.06.png
What I think *Should* be happening is when the second fixture on the loopback fires, the page should flip immediately to the second sub-cue Chase, but it's not. I think it's because the "transition" for both values is happening and it's seeing the old page transition after the new. If I manually adjust the value of the "page" fixture on the simple console, it flips and activates the page.

Interestingly.. what DOES work is altering the "page" scenes so that the "last" page value doesn't change but the "new" page value does. Eg .. for the first-page scene, set chan 1 to 255; for the second-page scene set chan 1 and 2 to 255..etc. While this works going forward thru the main chase, it doesn't work going backward.

See: https://sandsite.org/downloads/Chase+Subchase.qxw
MichelSliepenbeek
Posts: 504
Joined: Wed Feb 08, 2023 10:24 am
Location: Nederland
Real Name: Michel Sliepenbeek

Try This:
Chase+Subchase.qxw
(37.58 KiB) Downloaded 158 times
What i did is replace the 3 loopback scenes by sequences.

I had the same problem some time ago and found out (by accident) that this makes it work.
Don't ask me to explain why, i really don''t know. :) ;)
A QLC Workspace is like a Bob Ross painting: "it's your world, you can create whatever you want!"
User avatar
GGGss
Posts: 2732
Joined: Mon Sep 12, 2016 7:15 pm
Location: Belgium
Real Name: Fredje Gallon

My only explanation for this is a 'state' and the need for a rising edge. (And knowing that internal cycle time is 50Hz : 20ms)
0-state + 0-edge = 0
0-state + 1-edge = (activate 1-state +) do what is asked
1-state + 1-edge = set zero-state (do not do what is asked again) !!!
0-state + 1-edge = (activate 1-state +) do what is asked for.

And with Branson's 10ms fade in, he positions himself somewhere between everything. Between every engine cycle step, you need clear instructions. It might well be that the engine does 2 steps or gets stuck in the middle of the fade-in per engine tick not setting a clear value on the loopback output.
Why does it work for Michel? Well, 1st he uses a hold time bigger than the engine cycle 60ms = good, and with his constructed sequence, he makes sure that after the action is performed, the "state" is reset immediately (well at the next engine tick) and ready for the next action.

Remember the input profile, where you can set, 'Generate an extra Press/Release when toggled'? That is playing around with the state.
For that reason, the use of GPIO on raspi does have its difficulties also (you need a 2nd rising edge for the state to reset, but that is unnatural - having to switch twice).
All electric machines work on smoke... when the smoke escapes... they don't work anymore
User avatar
sandinak
Posts: 188
Joined: Mon Apr 03, 2017 5:40 pm
Location: Yorktown, VA
Real Name: Branson Matheson
Contact:

Yea, so I tested
  • a few different delay timings for fun and profit(0, 70, 100, etc.. ) no change.. so I didn't think it was a timing issue.
  • I tried reversing the Scene set .. same behavior first works, second and beyond are one behind.
  • I reversed the PAGE order ( that is made the first sub-chase the third page, and third chase the first page ) and it works as expected consistently forwards, but not backward.
So it almost seems like the paging code is evaluating pages last -> first and displaying the most recently changed input. My next step is to look at the code, but knowing now that I can make it work at least forward either by:
  • generating scenes that control the channels such that only the next channel transitions on the "paging" fixture
  • putting in the subcues in reverse order in the Frame Pages.
#1 seems alot more flexible to manage via the first method. Though, i think if someone wants to "insert" a subcuelist they'd have to rebuild the pages from the GUI or edit the XML by hand to change the Page id :

Code: Select all

<CueList ... Page="3">
MichelSliepenbeek
Posts: 504
Joined: Wed Feb 08, 2023 10:24 am
Location: Nederland
Real Name: Michel Sliepenbeek

Did you test the workfile i enclosed with my message?


Chase+Subchase.qxw
(37.57 KiB) Downloaded 156 times


With the change i made (replace scenes by sequences with 2 steps) it works fine in my situation. I can scroll forward and backward .

If this workfile does not work in your situation, you should have a look at the InputProfile for LoopBack (as this was not included).
In my situation SubCuePages 1 ..3 where defined as Button.
A QLC Workspace is like a Bob Ross painting: "it's your world, you can create whatever you want!"
User avatar
sandinak
Posts: 188
Joined: Mon Apr 03, 2017 5:40 pm
Location: Yorktown, VA
Real Name: Branson Matheson
Contact:

Hey.. so I just looked at it and yea .. works as expected. Nice job thinking outside the box to use sequencing of the channels to control the change timing this way. We should have a tips and tricks page for stuff like this ;)
MichelSliepenbeek
Posts: 504
Joined: Wed Feb 08, 2023 10:24 am
Location: Nederland
Real Name: Michel Sliepenbeek

Tip.

Have a look at this post:

viewtopic.php?p=67586#p67586

This is how i use "the Page Up and Page Down LoopBack Trick" :) ;)
A QLC Workspace is like a Bob Ross painting: "it's your world, you can create whatever you want!"
Post Reply