biosmatrix
New Member
Hello,Showing/hiding things on a single scene is generally not the recommended way to do things. Have a dedicated scene for each thing instead, so you have lots of simple scenes instead of a few complex ones. If you're layering things so that all are visible at the same time, then of course you need all of that to be in the same scene, but beyond that, use a different scene.
Also, the Wait action commits you to the entire sequence unless you can stop the macro. *Maybe* that's what you want, as a form of "tamper resistance", but most of the time, I think you want it to be easily escapable. To do that, you'll have a bunch of macros:
Then if you want to escape, just switch manually to something else. The timer will reset because it's not on that scene anymore, and so the macro won't run.
- Macro A
- Conditions
- If Scene A for 10 seconds
- Actions
- Switch to Scene B
- Macro B
- Conditions
- If Scene B for 10 seconds
- Actions
- Switch to Scene C
- Macro C
- Conditions
- If Scene C for 10 seconds
- Actions
- Switch to Scene D
- Etc.
The pattern should be obvious, so now the question becomes, "How to collapse it all into one macro that follows that pattern?" I'm thinking about a naming convention for the scenes, that defines the available ones to switch to, and a sequence number. So then the one macro might be:
Each image in the slideshow is also its own scene, not a self-contained show.
- Sequence Macro
- Conditions
- If Scene <prefix><number> for 10 seconds
- Actions
- number = number + 1
- Switch to Scene <prefix><number>
Now the sequence can be any length, simply by the number of scenes that follow that naming convention. The macro stays the same regardless. It does rely on well-behaved error handling, when the scene past the end doesn't exist, so you might want to test that before you use it in production.
And maybe you have a second, "starting" macro that sets the variable and switches to the scene that it corresponds to. Maybe something like this:
If you follow the program flow here, that will Switch to Scene <prefix>1 and continue through the sequence. And the naming convention only exists in one macro, and is therefore easier to modify if needed.
- Starting Macro
- Conditions
- <something>
- Actions
- number = 0
- Run actions of Sequence Macro
@Warmuptill Is that use of variables possible?
Thanks for spending time to reply and for your input. I’m afraid what you have suggested isn’t going to achieve what is needed…
I’m aware of ideally using scenes within scenes to achieve certain things and I’m already using this where it fits, in fact the way I have it setup now is using a nested scene. I’ll explain further:
We have scenes for cameras in a studio, a scene for another incoming remote stream and another scene for when nothing is ‘live’ - let’s call these the main scenes.
We now want to show images, image slide show and a video as a batch of adverts - when the adverts are showing, it needs to always be shown on top of which ever scene is active - so I have a ‘root’ scene which is in the main scenes and always visible. Inside the root scene is a ‘child’ scene - inside this scene is all the sources for the adverts. I have a macro setup so when the child scene is made visible, it starts cycling through all the advert sources (as per my original post). So no matter what main scene is active, the root scene shows the child scene which does the adverts.
So there’s method to the madness here - I don’t want and can’t have the scene to change away from the main scene and come back to it, as there are other factors which can change which main scene is showing and could happen at any time - so the main scene (whichever one is live) must always be showing with the adverts on top of it but in the event the main scene changes to another main scene, the adverts must continue to show and not be interrupted.
Hope the above makes sense.
Regarding image slide show images being their own scene - not sure what you mean by this?
Thanks!