Advanced Scene Switcher

Advanced Scene Switcher 1.28.1

BreezzersGaming

New Member
I'm pretty new to OBS, 3-4 months, I'm streaming to multiple platforms simultaneously YT 4k, YT Vert, Twitch,
I was following Michael Feyerer's tutorial youtube.com/watch?v=mLN5LxL9kCE&list=WL&index=5&t=507s for switching the scenes Vertical and layouts and I can't get the vertical scene to change for the life of me, i don't want anything else to change other than the Vert scene. I have the layouts all done, just trying to automate the process
I'm trying to get the Switcher to just switch the scene in Vert mode. Is this possible? I'm on a dual stream rig, capture card
 

Warmuptill

Active Member
I'm pretty new to OBS, 3-4 months, I'm streaming to multiple platforms simultaneously YT 4k, YT Vert, Twitch,
I was following Michael Feyerer's tutorial youtube.com/watch?v=mLN5LxL9kCE&list=WL&index=5&t=507s for switching the scenes Vertical and layouts and I can't get the vertical scene to change for the life of me, i don't want anything else to change other than the Vert scene. I have the layouts all done, just trying to automate the process
I'm trying to get the Switcher to just switch the scene in Vert mode. Is this possible? I'm on a dual stream rig, capture card
Unfortunately, if you want to change only the vertical scene and not a "linked scene" it get's a bit more complicated.
The vertical scene cannot be directly changed by an OBS API call as OBS does not know about vertical scenes.
The vertical canvas plugin does however expose the option to change those scene via websocket messages.

So, that means you will have to use the "Websocket" action type to change the scene.
An example how to do this can be found here:
 

BreezzersGaming

New Member
Unfortunately, if you want to change only the vertical scene and not a "linked scene" it get's a bit more complicated.
The vertical scene cannot be directly changed by an OBS API call as OBS does not know about vertical scenes.
The vertical canvas plugin does however expose the option to change those scene via websocket messages.

So, that means you will have to use the "Websocket" action type to change the scene.
An example how to do this can be found here:
Thanks, lil more complicated but not bad, it crashed 1st time setting it up, Now I just need to reset up my trigger.

Thanks again
 

Warmuptill

Active Member
Thanks, lil more complicated but not bad, it crashed 1st time setting it up, Now I just need to reset up my trigger.

Thanks again
Glad to hear that it is working!

If you still have the crash report I will gladly take a look and see if I can find out what went wrong / fix it in case it was caused by the advanced scene switcher.
 

rcktech

New Member
Hi guys,

I am an occasional and modest user of OBS, I installed this Plugin, I am on a Windows system. OBS version 30.2.3 (64 bit)
In the Sequence Tab, I can add one item but every time I try to add one more item OBS crashes.

I only have two scenes, all I am trying to do is create of automatic sequence to switch from scene 1 to scene 2 every 5 seconds

any idea what is going on ?
 

Warmuptill

Active Member
Hi guys,

I am an occasional and modest user of OBS, I installed this Plugin, I am on a Windows system. OBS version 30.2.3 (64 bit)
In the Sequence Tab, I can add one item but every time I try to add one more item OBS crashes.

I only have two scenes, all I am trying to do is create of automatic sequence to switch from scene 1 to scene 2 every 5 seconds

any idea what is going on ?
Thanks for reporting the issue!
I was able to track down the problem and will a fix in a few hours.

In general I would advise you not rely on the old Sequence tab and instead use macros if you can.
If your two scenes are named "Scene 1" and "Scene 2" you can import these two macros to set this up:

Code:
AAALgnic7VTfa9swEP5XjB5LHGLXiZs+DLauY4V1a5d0L6MU2To7oopkJDlrCfnfd5Jjx2lHtzEobOuDQf50P7777nRrsqS5VoYcf10TSZdAjsksBwlBHISvguYYRGRAKlobvC2oMOD+NBUCRAcoebKgskQLq2v8N7e8Or2D/JOcWaptZ2esql7nlitpzoqPyr5Vche11Kquuj+m8tsZWMtlifzWREPJjQXdGSyo+VzLN7W1SrZ5EbtwTB+hSMPW5gPNeqQXvFwI/OxZcaIk457WHD06C93Gn8MdFkEwX6vFHu5z4k0tH99dNRje5ntJGkZbo13+gGoIHO3hnsc7R+gpF8/Y+TjdzhgaULYyJvQNDh0Ysmk6LtLkKGQsjcOkgDSc0igL0yyL03iUjA7hEAOsQBvuxIs2g2Y+mo51CWeV4BY7caGM//fTU7kpisZHm0F7niab622AU+TWBHnCdxJ3viPn2Tb8vbK3cG96w4dyNiB6X3eq9yGrylLAxUN4p6fPa6BcgrT9KcuVELQywLp0GOKkxrld7g9P3sfI+X0g/BEl4058454OiilUyXMsCPtSa+pSnyvGC+7meE0sX8INkjJWUy6xqzE+EXAsPZkVFW4Yu8N4iHHsfQVOIVc3tz50r2MI+9QzEJA3Aq9bl8GDJ+7INlfRyMnq+oL2ZHjgDYYHxFc/11Q2zZpTXYL1l50OvdwoMM2fT90b843bfIEkQdJMuKDb5fOLAkRegF11jRS7Tv2oBaOft2BAMoHP7UpaLnbaNZuuR3C+DYKqQfc8TDOnXFa1/UI1d3V5zD2NffK9BR2/LOh/YkFPIjbKsnQSRpSxMKGTIsxYlITjJDvM2RFLIE7+cEFPot6Cjn5vQY+nLwv6ORd09L8v6PhvWtCIrvpAq/VlDXWLdCRINIzTITb4O5JV/iE=

Here are Screenshot if you should instead choose to recreate them yourself:

1724436823162.png

1724436838267.png


More examples on how to cycle between scenes can be found here:
 

AaronD

Active Member
Thanks for reporting the issue!
I was able to track down the problem and will a fix in a few hours.

In general I would advise you not rely on the old Sequence tab and instead use macros if you can.
If your two scenes are named "Scene 1" and "Scene 2" you can import these two macros to set this up:

Code:
AAALgnic7VTfa9swEP5XjB5LHGLXiZs+DLauY4V1a5d0L6MU2To7oopkJDlrCfnfd5Jjx2lHtzEobOuDQf50P7777nRrsqS5VoYcf10TSZdAjsksBwlBHISvguYYRGRAKlobvC2oMOD+NBUCRAcoebKgskQLq2v8N7e8Or2D/JOcWaptZ2esql7nlitpzoqPyr5Vche11Kquuj+m8tsZWMtlifzWREPJjQXdGSyo+VzLN7W1SrZ5EbtwTB+hSMPW5gPNeqQXvFwI/OxZcaIk457WHD06C93Gn8MdFkEwX6vFHu5z4k0tH99dNRje5ntJGkZbo13+gGoIHO3hnsc7R+gpF8/Y+TjdzhgaULYyJvQNDh0Ysmk6LtLkKGQsjcOkgDSc0igL0yyL03iUjA7hEAOsQBvuxIs2g2Y+mo51CWeV4BY7caGM//fTU7kpisZHm0F7niab622AU+TWBHnCdxJ3viPn2Tb8vbK3cG96w4dyNiB6X3eq9yGrylLAxUN4p6fPa6BcgrT9KcuVELQywLp0GOKkxrld7g9P3sfI+X0g/BEl4058454OiilUyXMsCPtSa+pSnyvGC+7meE0sX8INkjJWUy6xqzE+EXAsPZkVFW4Yu8N4iHHsfQVOIVc3tz50r2MI+9QzEJA3Aq9bl8GDJ+7INlfRyMnq+oL2ZHjgDYYHxFc/11Q2zZpTXYL1l50OvdwoMM2fT90b843bfIEkQdJMuKDb5fOLAkRegF11jRS7Tv2oBaOft2BAMoHP7UpaLnbaNZuuR3C+DYKqQfc8TDOnXFa1/UI1d3V5zD2NffK9BR2/LOh/YkFPIjbKsnQSRpSxMKGTIsxYlITjJDvM2RFLIE7+cEFPot6Cjn5vQY+nLwv6ORd09L8v6PhvWtCIrvpAq/VlDXWLdCRINIzTITb4O5JV/iE=

Here are Screenshot if you should instead choose to recreate them yourself:

View attachment 107158
View attachment 107159

More examples on how to cycle between scenes can be found here:
Slight nitpick: I'd change "For exactly" to "For at least", just in case something hiccups and it misses the exact one.

That's a classic beginner's programming error, where you're looking for a specific point in a sequence to trigger a one-time action, and it goes past that point without doing that action. Debugging then shows that the sequence skips some values, and yours was one of the skipped ones. (independent timers that are checked periodically, and physical sensors, are common sources of skipped values in a sequence)

Instead, use either "greater than" or "less than" - not "strictly equal" - and then add another mechanism to tell that you've already done it so don't do it again. To do that with Adv. SS, you use "For at least" and the "only on change" checkbox.
 

Warmuptill

Active Member
Slight nitpick: I'd change "For exactly" to "For at least", just in case something hiccups and it misses the exact one.

That's a classic beginner's programming error, where you're looking for a specific point in a sequence to trigger a one-time action, and it goes past that point without doing that action. Debugging then shows that the sequence skips some values, and yours was one of the skipped ones. (independent timers that are checked periodically, and physical sensors, are common sources of skipped values in a sequence)

Instead, use either "greater than" or "less than" - not "strictly equal" - and then add another mechanism to tell that you've already done it so don't do it again. To do that with Adv. SS, you use "For at least" and the "only on change" checkbox.
The "For exactly ..." does not compare to an exact time point, but instead the time range from "now" to the last time this particular duration modifier was checked.
If the given time window falls within that range the duration modifier check returns true.

So the issue you described should not come up, if I made no mistakes in implementing it this way. :)
 

rcktech

New Member
Thanks for reporting the issue!
I was able to track down the problem and will a fix in a few hours.

In general I would advise you not rely on the old Sequence tab and instead use macros if you can.
If your two scenes are named "Scene 1" and "Scene 2" you can import these two macros to set this up:

Code:
AAALgnic7VTfa9swEP5XjB5LHGLXiZs+DLauY4V1a5d0L6MU2To7oopkJDlrCfnfd5Jjx2lHtzEobOuDQf50P7777nRrsqS5VoYcf10TSZdAjsksBwlBHISvguYYRGRAKlobvC2oMOD+NBUCRAcoebKgskQLq2v8N7e8Or2D/JOcWaptZ2esql7nlitpzoqPyr5Vche11Kquuj+m8tsZWMtlifzWREPJjQXdGSyo+VzLN7W1SrZ5EbtwTB+hSMPW5gPNeqQXvFwI/OxZcaIk457WHD06C93Gn8MdFkEwX6vFHu5z4k0tH99dNRje5ntJGkZbo13+gGoIHO3hnsc7R+gpF8/Y+TjdzhgaULYyJvQNDh0Ysmk6LtLkKGQsjcOkgDSc0igL0yyL03iUjA7hEAOsQBvuxIs2g2Y+mo51CWeV4BY7caGM//fTU7kpisZHm0F7niab622AU+TWBHnCdxJ3viPn2Tb8vbK3cG96w4dyNiB6X3eq9yGrylLAxUN4p6fPa6BcgrT9KcuVELQywLp0GOKkxrld7g9P3sfI+X0g/BEl4058454OiilUyXMsCPtSa+pSnyvGC+7meE0sX8INkjJWUy6xqzE+EXAsPZkVFW4Yu8N4iHHsfQVOIVc3tz50r2MI+9QzEJA3Aq9bl8GDJ+7INlfRyMnq+oL2ZHjgDYYHxFc/11Q2zZpTXYL1l50OvdwoMM2fT90b843bfIEkQdJMuKDb5fOLAkRegF11jRS7Tv2oBaOft2BAMoHP7UpaLnbaNZuuR3C+DYKqQfc8TDOnXFa1/UI1d3V5zD2NffK9BR2/LOh/YkFPIjbKsnQSRpSxMKGTIsxYlITjJDvM2RFLIE7+cEFPot6Cjn5vQY+nLwv6ORd09L8v6PhvWtCIrvpAq/VlDXWLdCRINIzTITb4O5JV/iE=

Here are Screenshot if you should instead choose to recreate them yourself:

View attachment 107158
View attachment 107159

More examples on how to cycle between scenes can be found here:
Thank you so much for your reply.
 
Tired of banging my head, so gonna ask you guys... Why do these 3 macros keep firing together? Ignore the 2nd entry in the first image, was just trying to further differentiate the macro from the others, no help, so I removed it.
 

Attachments

  • Screenshot 2024-08-26 002558.png
    Screenshot 2024-08-26 002558.png
    24 KB · Views: 25
  • Screenshot 2024-08-26 002643.png
    Screenshot 2024-08-26 002643.png
    39 KB · Views: 26
  • Screenshot 2024-08-26 002735.png
    Screenshot 2024-08-26 002735.png
    39.1 KB · Views: 23

Warmuptill

Active Member
Tired of banging my head, so gonna ask you guys... Why do these 3 macros keep firing together? Ignore the 2nd entry in the first image, was just trying to further differentiate the macro from the others, no help, so I removed it.
The macro conditions are evaluated from top to bottom.

As two of your macros end in a “or” condition I assume you are in a situation in which the last condition of the two “hide” macros and all conditions of the “comms” macro evaluate to true.
Thus all three macros are executed at the same time.

You will likely be able to resolve the problem by reordering the conditions.

Enabling visual indicators when which condition is true or enabling verbose logging might help figuring out the correct order for what you are trying to set up:

Hope that helped clear things up! :)
Let me know if you have any further questions!
 

TomTronic

New Member
Hey Guys.
I have a Question, i googled and tried to find an answer but cant find anything.
Im using the Scene Switcher on my Mac.
I wanna use the RANDOM Setting but i couldnt find the Options. So i started searching the Web and found some Videos showing how to use it but the Problem is that on my Mac in the Scene Switcher Settings there are no Tabs :(
On the Windows Versions the Video Creators are using there are a lot of Tabs in the Switcher on Top including a RANDOM Tab.

Why is that? Is the Mac Version so different to the Windows Version ? And what can i do about it? Is there any way to add these Functions ?
I dont have a Windows PC :/

Thx in advance !
 

TomTronic

New Member
Ok, i think the Videos i watched are to old and they changed the way it works now. I read a Guide and now i know the (new) way of configuring a Random Order.
 

AaronD

Active Member
The macro conditions are evaluated from top to bottom.

As two of your macros end in a “or” condition I assume you are in a situation in which the last condition of the two “hide” macros and all conditions of the “comms” macro evaluate to true.
Thus all three macros are executed at the same time.

You will likely be able to resolve the problem by reordering the conditions.
The way I think of it, from a mathematical/programming background, is that you have all of your open parentheses up front, and you close one for each item. So one of the example conditions (INT: Hide) would be:
(((((CurScn = Intermission) AND NS: KTV visible) OR NS: KTV ftr visible) OR NS: KTV MMet visible) OR NS: Commercials visible)

It's easy to program that way, behind the scenes. I've made some things like that myself. As a user, you can't change that structure, but you *can* change the order.
 

AaronD

Active Member
Ok, i think the Videos i watched are to old and they changed the way it works now. I read a Guide and now i know the (new) way of configuring a Random Order.
Yeah, most tutorials are horribly out of date now. And they stick around forever!

on my Mac in the Scene Switcher Settings there are no Tabs :(
On the Windows Versions the Video Creators are using there are a lot of Tabs in the Switcher on Top including a RANDOM Tab.
Technically, the old tabs are still there and still functional, but they're not maintained anymore. And they might *actually* go away sometime in the future, so don't use them for anything that has a chance of lasting a while.

Use macros for everything instead, as you probably found. They can do everything that the old tabs could and far more!

If you absolutely *must* have the old tabs (which again, have a risk of going away entirely), there's a checkbox to show them:
1724684157923.png
 

Warmuptill

Active Member
It's easy to program that way, behind the scenes. I've made some things like that myself. As a user, you can't change that structure, but you *can* change the order.
Just to add to this point:
It is not only much easier to implement this way, but I also think that most users are not familiar with logical operator precedence and implementing it that might cause more harm than good.

But if I should be wrong about that please let me know!
I am open to change it, if it is requested.
 

AaronD

Active Member
Just to add to this point:
It is not only much easier to implement this way, but I also think that most users are not familiar with logical operator precedence and implementing it that might cause more harm than good.

But if I should be wrong about that please let me know!
I am open to change it, if it is requested.
I've sometimes wondered if the order should be exactly reversed. Same single accumulator, just traverse the list in the opposite direction. That would open one parenthesis for each item, and then close them all at the end.

The idea there is that later operands feel more like afterthoughts, and the earlier ones are more important. With the present system, the *later* ones end up being progressively more important...and they tend to disappear when the scrollbar defaults to the top.

I didn't think of that until well after I'd written mine the same way that you did. And of course, there's inertia now...
 
The macro conditions are evaluated from top to bottom.

As two of your macros end in a “or” condition I assume you are in a situation in which the last condition of the two “hide” macros and all conditions of the “comms” macro evaluate to true.
Thus all three macros are executed at the same time.

You will likely be able to resolve the problem by reordering the conditions.

Enabling visual indicators when which condition is true or enabling verbose logging might help figuring out the correct order for what you are trying to set up:

Hope that helped clear things up! :)
Let me know if you have any further questions!
maybe I just don't understand the "or" usecase correctly?

The goal is: on Scene XYZ
AND Source ABC is visible
OR Source DEF is visible
OR Source GHI is visible

So it will fire if on that scene, with 1 of those 3 sources showing(also setup so only one source can be visible at a time).

But what I get is, like it only looks at the sources, if ones visible, they all fire regardless what scene I am on, even though each one has a different scene set, I would think since thats the first thing to look for, it should ignore the whole macro if im not on that scene...
 

AaronD

Active Member
maybe I just don't understand the "or" usecase correctly?

The goal is: on Scene XYZ
AND Source ABC is visible
OR Source DEF is visible
OR Source GHI is visible

So it will fire if on that scene, with 1 of those 3 sources showing(also setup so only one source can be visible at a time).

But what I get is, like it only looks at the sources, if ones visible, they all fire regardless what scene I am on, even though each one has a different scene set, I would think since thats the first thing to look for, it should ignore the whole macro if im not on that scene...
Put your desired logic on one line like I did, over-parenthesize it to make it blatantly obvious which order of operations you want (don't rely on PEMDAS), and then compare to what I did of how it actually works.

What you said here is still ambiguous, compared to the rigorous environment that mathematicians and computers work in:
On Scene XYZ AND Source ABC is visible OR Source DEF is visible OR Source GHI is visible

I *think* you want (note the additional parentheses to make it clear):
On Scene XYZ AND (Source ABC is visible OR Source DEF is visible OR Source GHI is visible)
but I don't actually *know* that that's what you want.

It's equivalent to:
(On Scene XYZ AND (Source ABC is visible OR (Source DEF is visible OR (Source GHI is visible))))
which can be exactly reversed to match what actually happens:
((((Source GHI is visible) OR Source DEF is visible) OR Source ABC is visible) AND On Scene XYZ)

What you actually did though, and you say doesn't do what you want, is:
((((On Scene XYZ) AND Source ABC is visible) OR Source DEF is visible) OR Source GHI is visible)
which mathematically simplifies to:
(On Scene XYZ AND Source ABC is visible) OR Source DEF is visible OR Source GHI is visible
just by removing the redundant parentheses.

And that is, in fact, different from what I think you want (note the difference in where the parentheses are), and it matches the unwanted behavior that you describe.
 
Last edited:
Top