Advanced Scene Switcher

Advanced Scene Switcher 1.28.1

lindenkron

Member
is it possible to create a video condition macro to trigger a color correction filter if say a game capture loses brightness e.g. nighttime
Yes, probably. You can do a Video > Matches Pattern - I'd suggest trying with a dark image, perhaps black? Then set the Threshold and see what % you can get it to trigger on when it's night time.

I have no experience with pattern matching though, so this is just at the top of my head!
 

Warmuptill

Active Member
How would I be able to sequence it to where the plug-in can cycle thru each scene once in random order
Let me preface this by saying:
Doing this for 200 scenes will be very tedious - maybe there might be a better approach to achieve this.
If you do not insist on each scene being switched to at least once and use the same duration for each scene the setup becomes much simpler (see later section).

This would be possible using the macro action "Random".
It will allow you to randomly execute one macro from a list of macros.
RandomAction.PNG

Notably macros that are paused will be skipped over.

So to randomly execute each macro in the list of the "Random" action once the macros will have to be paused when they finish running.
This could be done using the "Macro" action.

To give an example on how these macros will have to look like see the screenshot below:
SwitchToTest1.PNG


You would have to copy this macro (Right-click in the macro list -> Create copy) for each of your 200 scenes and add it to the "Random" list.
Once you have this setup you have to think about how you want to trigger this random scene switch, e.g. only while streaming:

RandomOnceMacro.PNG

(Might be worth executing this in the background if you intend to run other macros in the mean time as well)

Once each macro was executed at least once the "Random" action will no longer have anything to do as each macro in the list was paused.

Note that it might also be worth it to setup a macro which unpauses each of these macros once on OBS startup or shutdown, as otherwise you will have to reset every macro manually to make this setup work again.

then re-cycle indefinitely
This should be rather easy to setup if you want to switch to each sence for the same amount of time.
In that case you can use a "Scene Group" containing each of the scenes in combination with the "Switch scene" action, like so:
RandomSceneGroup.PNG


SceneGroup.PNG


If you are using this macro in the setup with the previously described macro setup (switch to each scene once in a random order) you will have to probably add an additional condition to avoid conflicts, e.g. by checking how often the other macro was executed:

CheckCount.PNG

(This is just an example and the best solution depends on your setup needs - e.g. you can also achieve this by pausing / unpausing this macro, ...)

If each scene needs to be shown for a different amount of time you will have to setup something similar described in the first section (switch to each scene once in a random order) but leave out the pausing of the macros part.

Also, sometimes I will want to trigger a scene with a specific video loop, but after a minute or so, I would like it to transition back to the scene the plug-in had activated and then continue its sequence
You could achieve this by setting up a macro, which pauses the automated random scene switches for a fixed amount of time when a hotkey is pressed, similar to this one:

HotkeyPauseRandom.PNG


Hope this helped - Let me know if you have any questions!
 

macha

New Member
Hi, I have a question.
I want to stop automatically Advanced Scene Switcher when I finished stream.
How can I this?
Sorry my English, Thank you.
 

AaronD

Active Member
Hi, I have a question.
I want to stop automatically Advanced Scene Switcher when I finished stream.
How can I this?
Sorry my English, Thank you.
Just poke around the options. There's enough there now that no matter what you want to do, it's probably in there somewhere. For this particular case:
1651860719575.png


And I barely even use this plugin, having built my rig before it became this good. Yet it still only took me a handful of seconds to find this.

Why you'd WANT to stop the plugin, instead of either letting it run with practically no effect because you're not streaming anyway, or designing your conditions so that they're only met when you actually need them, is beyond me. (Note: designing the conditions includes both the signals coming in, as well as how you respond to them. It might be easier to leave the plugin logic alone, and prevent the trigger itself instead.) But the function is there, should you decide that you really do need it.
 
Last edited:

carlosfunk

New Member
Not sure if this is the right place to ask, but why does not my advanced scene switcher look like the rest I've seen with all the menu items on top..... can't get it to work
 

Attachments

  • Screenshot (103).png
    Screenshot (103).png
    180.1 KB · Views: 43

Warmuptill

Active Member
Not sure if this is the right place to ask, but why does not my advanced scene switcher look like the rest I've seen with all the menu items on top..... can't get it to work
You can show the old tabs by unchecking "Hide tabs which can be represented via macros" in the lower left corner of the General tab.
 

macha

New Member
オプションをざっと見てください。何をしたいのかに関わらず、おそらくどこかにあるので十分です。この特定のケースの場合:
View attachment 83270

そして、私はこのプラグインをほとんど使用していません。これほど良いものになる前にリグを構築しました。それでも、これを見つけるのにほんの数秒しかかかりませんでした。

とにかくストリーミングしていないためにプラグインを実質的に効果なしで実行させたり、実際に必要なときにのみ満たされるように条件を設計したりするのではなく、プラグインを停止したい理由は私にはわかりません。(注:条件の設計には、着信する信号とそれらへの応答の両方が含まれます。プラグインロジックをそのままにして、代わりにトリガー自体を防ぐ方が簡単な場合があります。)ただし、関数はそこにあります。あなたが本当にそれを必要としていること。
Thanks.
 
Why you'd WANT to stop the plugin, instead of either letting it run with practically no effect because you're not streaming anyway, or designing your conditions so that they're only met when you actually need them, is beyond me. (Note: designing the conditions includes both the signals coming in, as well as how you respond to them. It might be easier to leave the plugin logic alone, and prevent the trigger itself instead.) But the function is there, should you decide that you really do need it.

My usage case for that is that, before LioranBoard 2 dropped, since I use a second PC to do encoding and packet-pushing, I had to use the plugin and a scene switch via the network support to trigger start-of-stream. Before I started stream, using LioranBoard and a few buttons with the arm/disarm events assigned to keys, I could manually arm the local instance of Advanced Scene Switcher immediately prior to start-of-stream. Once my stream was over, a black-at-foot event would not only stop the stream on the encoding machine, turn off the "studio" instance of Advanced Scene Switcher to avoid starting a stream if I touched the scene that triggers the other computer to start stream by accident.

However nowadays, given LioranBoard 2's ability to access multiple OBS Studio setups as a new feature, I can now directly issue the command from LioranBoard 2 to the encoder machine, obviating the need for relying on Advanced Stream Switcher on the "encoder" machine to trigger the event when the start-of-show scene is selected on the "studio" machine. That said, I could leave Advanced Scene Switcher turned on with no ill effects. I just need to be careful on the tablet I use for my stream deck.

--Katt. =^.^=
 
Last edited:

AaronD

Active Member
My usage case for that is that, before LioranBoard 2 dropped, since I use a second PC to do encoding and packet-pushing, I had to use the plugin and a scene switch via the network support to trigger start-of-stream. Before I started stream, using LioranBoard and a few buttons with the arm/disarm events assigned to keys, I could manually arm the local instance of Advanced Scene Switcher immediately prior to start-of-stream. Once my stream was over, a black-at-foot event would not only stop the stream on the encoding machine, turn off the "studio" instance of Advanced Scene Switcher to avoid starting a stream if I touched the scene that triggers the other computer to start stream by accident.

However nowadays, given LioranBoard 2's ability to access multiple OBS Studio setups as a new feature, I can now directly issue the command from LioranBoard 2 to the encoder machine, obviating the need for relying on Advanced Stream Switcher on the "encoder" machine to trigger the event when the start-of-show scene is selected on the "studio" machine. That said, I could leave Advanced Scene Switcher turned on with no ill effects. I just need to be careful on the tablet I use for my stream deck.

--Katt. =^.^=
That makes...a little bit of sense I guess. It's hard to understand a complex setup with just words. But yeah, backwards compatibility makes for some fun times. :-/

---

I actually have a dual-OBS rig myself, with both running on the same PC in portable mode via a command-line switch. (they're actually started from a script that does a bunch more automated setup as well) Different profiles and scene collections, of course, also specified on the command line.

One instance produces the live feed to a remote meeting via the virtual camera, same as any other broadcast, and the other instance window-captures that meeting to show to the local audience and to record. Two different pictures, so I need two different instances, with some automation between them using either a python script with websockets (on Linux) or an old version of Adv-SS communicating via a file (on Windows).

Either way, the local display and recording ("slave") switches between 3 scenes according to a regex on the ("master") scene name that's being shown to the meeting: Camera.* to show the normal meeting window with its grid of participants, Feature.* to mirror what's going to the meeting with the meeting audio off, and Voiceover.* to mirror with the meeting audio on.

Name the "master" scenes accordingly, and there's no need to mess with the "slave" at all, except to tell it to start/stop recording at the right time. This gives me both a functional meeting with broadcast-style presentation capabilities, and a recording to put on YouTube later. I could stream too, if I really wanted, but I haven't seen the need. Everyone who wants to be there live is already in the meeting.

No need in that rig to disable the automation. In fact, it's quite reassuring to see it "always work", especially before I go "on-air". If I weren't clicking those buttons with the mouse, I'd be sorely tempted to use hotkeys instead of Adv-SS for the more critical functions like start/stop recording. The inability to put complex logic behind them means that I can remember exactly what their triggers are, and I can control the environment accordingly to avoid a surprise.
 
I actually have a dual-OBS rig myself, with both running on the same PC in portable mode via a command-line switch. (they're actually started from a script that does a bunch more automated setup as well) Different profiles and scene collections, of course, also specified on the command line.

Apart from the flags you use for loading up specific profiles and scene collections, you do know about the ability to put a file at OBS Studio's directory tree root called "obs_portable_mode"? That completely obviates the need to specify the "--portable" flag on the command line. Of course, that assumes that all instances you're running on that machine from that tree are in portable mode.

--Katt. =^.^=
 

AaronD

Active Member
Apart from the flags you use for loading up specific profiles and scene collections, you do know about the ability to put a file at OBS Studio's directory tree root called "obs_portable_mode"? That completely obviates the need to specify the "--portable" flag on the command line. Of course, that assumes that all instances you're running on that machine from that tree are in portable mode.

--Katt. =^.^=
No, I didn't know that, but it's not hard at all to use the command line, and it keeps my options open.

Another tip for those that might not know: even Windows shortcuts use the command line. You just have to dig a little bit to find it, and then you can modify as you need. So I made the shortcut for OBS by itself (the one that comes with the installer) use a third profile and collection so it doesn't interfere with the meeting rig.
 
No, I didn't know that, but it's not hard at all to use the command line, and it keeps my options open.

Another tip for those that might not know: even Windows shortcuts use the command line. You just have to dig a little bit to find it, and then you can modify as you need. So I made the shortcut for OBS by itself (the one that comes with the installer) use a third profile and collection so it doesn't interfere with the meeting rig.

Briefly and completely unrelated, I do that with two of my VTubing programs, code in a couple of items in the command line, notably setting window size by way of a Unity command-line flag for both, and for one, VTube Studio, to not use Steam on startup (a batch tile comes with the program, but it was just as easy to use a shortcut).

--Katt. =^.^=
 

WekizZ

New Member
Would it be possible to make a auto counter that would count how many games in a row I have won and reset to 0 afer a lose? With image recognition.
 

AaronD

Active Member
This plugin feels so powerful that it looks like it could do way more than I ask XD

And with a Tally Counter plugin, I think I can get what I want!
What you might do, if you're okay with doing it manually, is to find or write a simple app or webpage that can do that in response to some hotkeys, and then Window Capture that app or browser window. (it doesn't have to be showing at the moment, just running and not minimized) Maybe even chroma-key it like a green-screen. (except it doesn't have to be green, it could be anything) All of that is also outside the scope of Adv-SS.

Also, I think OBS's text source can watch a file and keep itself up to date from that file. If you do it that way, then you just have to keep that file up to date somehow. Again, outside the scope of this plugin though.
 

jcoryd

New Member
Hey folks....from OBS studio users, what would be the best approach in utilizing the advanced screen switcher to switch between a handful of different scenes approximately 100 times (each with a different wait time). Is there a way to utilize the macro feature without having to manually add "switch scene" then "wait" that many times?
 

AaronD

Active Member
Hey folks....from OBS studio users, what would be the best approach in utilizing the advanced screen switcher to switch between a handful of different scenes approximately 100 times (each with a different wait time). Is there a way to utilize the macro feature without having to manually add "switch scene" then "wait" that many times?
How do you get the different wait times? Do you enter those manually? If so, then there's probably not much room to improve on making the entire sequence that way. If they're the same or random, then we might have some possibilities.
 

khaver

Member
Using the latest Windows OBS and ASS plugin, the macro for listening for the level of an audio source that goes over a certain level seems to have a bug.
I have a macro set to start recording on a video pattern match (a certain slide is shown on a display). After the recording starts, the macro fades up to a wide camera scene and unpauses another macro that's been pauses from when OBS is opened and the ASS plugin is activated. This macro listens to an audio source and when it reaches a certain level, switches to a closeup camera scene. Instead, the macro immediately switches to the closeup scene no matter what the level of the audio.

This setup does work if the audio source is silent all the way up to the point the listening macro is unpaused, but if there is audio on the source that's above the trigger level while the macro is paused, as soon as it is unpaused, the switch is triggered. This can be seen in the verbose log where the audio macro returns a 1 as soon as it's unpaused. It seems to be listening even while it's paused.
 

Terry1983!

New Member
hello all, i am a very very beginner at obs. the advanced scene switcher, i have no clue on how to set up, can someone explain in simple terms how to setup from start to finish. thanks
 
Top