Advanced Scene Switcher

Advanced Scene Switcher 1.37.2

How do I use potentiometers to adjust the input and output audio in my obs? The plugin doesn't allow you to adjust potentiometer ranges and associate them with input or output audio values.
 
Where I'm complicating things and running into issues (I think) is the remaining behavior I'm looking for. After a solo shot is active for an extended period, OR if that speaker stops for a few seconds, I'd like it to return to the "main" scene. I also want any of the solo scenes to return to the "main" scene and hold there before switching to any solo shot.
I would set this up as an additional macro, which might look something like this:

1755099566231.png


The "wait" action in combination with this macro *not* running in parallel to other macros will ensure that we remain on the main scene for at least 10 seconds.
(If blocking other macros like that is not an option for your setup you can of course also simply "pause" the other macros using the "Macro" action instead)

The helper macro "Nobody is talking" looks like this:

1755099351854.png


I hope that is the correct interpretation of "if that speaker stops for a few seconds".
Let me know if you run into any issues with that suggestion! :)

How do I use potentiometers to adjust the input and output audio in my obs? The plugin doesn't allow you to adjust potentiometer ranges and associate them with input or output audio values.
As this came up a few times already I added a brief wiki page describing how to set this up:

However, the "obs-midi-mg" might also be of interest to you:



As a first step, create a new MIDI condition and select the desired device to read the input from.
Next up, click the "Start listening" button and use the slider, knob, ... to figure out which MIDI messages the Advanced Scene Switcher has to check for.

<see wiki for example image>

Once you have figured out which value is representing the volume range in the incoming MIDI messages click "Stop Listening" and set that field to Any.
In the example below this is Value(2).

<see wiki for example image>

Finally, uncheck the "Clear message buffer when matching message was found" as we don't want to discard any volume change messages.

Now let's add actions to read out the incoming values and use them to change the volume of a source.
To read the value we need a Variable action.
We want assign the Value(2) field to the variable of our choice so we configure it like this:

<see wiki for example image>

Finally, we need an action of type Audio to change the volume of the desired source in OBS.
You can click the highlighted button to use the variable you had previously assigned the MIDI value to.

<see wiki for example image>

The final macro will look and behave something like this:

<see wiki for example image>

You can, if necessary, add another optional action step of type Variable, which scales the incoming MIDI values to a desired range.
Here is an example if you would want to scale the 0 to 127 from the above example to 0 to 100:

<see wiki for example image>



Sorry about omitting the images here.
Unfortunately, the forum limits the amount and size of the attachments per post.

Let me know if you have any questions!
 
I have a set of videos, i already have advss randomizing/shuffling the playback... but i still notice, when testing, not everything is getting played, duplicate plays, etc. The only thing I can come up with is after a video is played, move it to a played folder, somehow check the playlist folder to see if anymore files exist, if not, reset/move all the files in the played folder back...

Not asking you to write this for me, but do need some help, trying to figure out how to get current playing filename, to move it, how to check the folder for files... Or if u have a better idea for me...

would be great if advss could keep track of what was played and not, and prioritize non-played... but I dont think thats possible.
 
I have a set of videos, i already have advss randomizing/shuffling the playback... but i still notice, when testing, not everything is getting played, duplicate plays, etc. The only thing I can come up with is after a video is played, move it to a played folder, somehow check the playlist folder to see if anymore files exist, if not, reset/move all the files in the played folder back...

Not asking you to write this for me, but do need some help, trying to figure out how to get current playing filename, to move it, how to check the folder for files... Or if u have a better idea for me...

would be great if advss could keep track of what was played and not, and prioritize non-played... but I dont think thats possible.
Depends on how you have set it up already.
If you use the "Random" action you can configure it to not allow consecutive executions of the same macro.

1755165829221.png


And you could rely on the fact that paused macros are ignored to prioritise the macros which were not yet executed.
The "Play video X" macros would just need to pause themselves like this:

1755165912054.png


Then you can add another macro which checks if all "Play video X" macros are paused and if that is the case unpauses all of them.
 
I would set this up as an additional macro, which might look something like this:

View attachment 115146

The "wait" action in combination with this macro *not* running in parallel to other macros will ensure that we remain on the main scene for at least 10 seconds.
(If blocking other macros like that is not an option for your setup you can of course also simply "pause" the other macros using the "Macro" action instead)

The helper macro "Nobody is talking" looks like this:

View attachment 115145

I hope that is the correct interpretation of "if that speaker stops for a few seconds".
Let me know if you run into any issues with that suggestion! :)


As this came up a few times already I added a brief wiki page describing how to set this up:

However, the "obs-midi-mg" might also be of interest to you:



As a first step, create a new MIDI condition and select the desired device to read the input from.
Next up, click the "Start listening" button and use the slider, knob, ... to figure out which MIDI messages the Advanced Scene Switcher has to check for.

<see wiki for example image>

Once you have figured out which value is representing the volume range in the incoming MIDI messages click "Stop Listening" and set that field to Any.
In the example below this is Value(2).

<see wiki for example image>

Finally, uncheck the "Clear message buffer when matching message was found" as we don't want to discard any volume change messages.

Now let's add actions to read out the incoming values and use them to change the volume of a source.
To read the value we need a Variable action.
We want assign the Value(2) field to the variable of our choice so we configure it like this:

<see wiki for example image>

Finally, we need an action of type Audio to change the volume of the desired source in OBS.
You can click the highlighted button to use the variable you had previously assigned the MIDI value to.

<see wiki for example image>

The final macro will look and behave something like this:

<see wiki for example image>

You can, if necessary, add another optional action step of type Variable, which scales the incoming MIDI values to a desired range.
Here is an example if you would want to scale the 0 to 127 from the above example to 0 to 100:

<see wiki for example image>



Sorry about omitting the images here.
Unfortunately, the forum limits the amount and size of the attachments per post.

Let me know if you have any questions!
Thank you very much. The explanation was very helpful. I've used obs-midi-mg, but it lacks some features that this one does have.
 
I would like to make a key blink with its respective LED when performing an action and I can't find the way. Could you help me?
 
I would like to make a key blink with its respective LED when performing an action and I can't find the way. Could you help me?
Unfortunately, I can't really give any better advice than checking the documentation of your MIDI device to figure out which MIDI message enables / disables the LED.
 
I cannot think of a reason why the plugin would have trouble reconnecting to the Twitch API.
Can you try replicating the issue with verbose logging enabled?

View attachment 115098

Note that the log file will be rather large.
So you might want to set it back to default if you were able to reproduce it.

Thanks for your support in figuring out what the problem is!


You can use regular expressions for that purpose.
Click the .* button to enable regular expressions and match for the string (MARK)|(BEN)|(ROBERTW) and you should achieve the desired effect.

View attachment 115100

I hope this helps!
Let me know if you have questions!
Hi, that's the link for the verbose log with the same problem, ty.
 
I would set this up as an additional macro, which might look something like this:

View attachment 115146

The "wait" action in combination with this macro *not* running in parallel to other macros will ensure that we remain on the main scene for at least 10 seconds.
(If blocking other macros like that is not an option for your setup you can of course also simply "pause" the other macros using the "Macro" action instead)

The helper macro "Nobody is talking" looks like this:

View attachment 115145

I hope that is the correct interpretation of "if that speaker stops for a few seconds".
Let me know if you run into any issues with that suggestion! :)
Thanks for the guidance. I spent some time experimenting before reading your reply and tested it. It seems to mostly work ok. I might need to tweak some timings. But i attached my current settings that i exported, i wonder if you would leave things as i current have them set, or incorporate your suggested settings. Thanks
 

Attachments

Hi, that's the link for the verbose log with the same problem, ty.
Thanks a lot!

I think I understand what can lead to this behavior:
Repeated invalid event subscriptions requests will lead to the whole connection to be dropped from Twitch's side.
This can happen because a channel was selected which does not exist.

I added a safe guard for this behavior.

A build will be available here in a few minutes:

You will have to be logged into GitHub to be able to download it at the bottom of the page.
Let me know if that should be an issue and I can try to upload it somewhere else once it is ready.

Thanks for the guidance. I spent some time experimenting before reading your reply and tested it. It seems to mostly work ok. I might need to tweak some timings. But i attached my current settings that i exported, i wonder if you would leave things as i current have them set, or incorporate your suggested settings. Thanks
If you got something, which works for you, I don't dare to mess with it :D
What you have set up seems fine to me on a first glance.
 
Hello.

Installed 1.31.0 on Mac (Silicon) and OBS 31.1.2 starts only in Safe Mode.

Hpw to solve this issue or uninstall?
I am sorry to hear that!

Do you have a crash log?

How did you install the plug-in? (Installer or manually)
If you did install it manually please have a look at the signing step mentioned here:

To uninstall the plug-in you must remove this folder:
~/Library/Application Support/obs-studio/plugins/advanced-scene-switcher.plugin
(The ~ represents your home directory)

Let me know if you run into any issues!
 
Last edited:
Tnanks Warmuptill

I install it with installer.

Where can I see crash log to share it? Because I would like to try it if fixed.

Also, plugin is not in that specific folder, but installation was succesfull.

Screenshot 2025-08-21 at 09.20.01.png
 
Also, plugin is not in that specific folder, but installation was succesfull.
If the advanced-scene-switcher.plugin folder doesn’t exist then the plug-in was probably not installed successfully.

Are you sure you are looking into the correct Library folder?
There is one in the root of the MacOS installation, but the one off interest is the one in your user’s home directory.

Where can I see crash log to share it? Because I would like to try it if fixed.
Usually a dialog windows with a crash log should pop up if OBS crashes on macOS.
I need the information contained in that dialog window.
 
If the advanced-scene-switcher.plugin folder doesn’t exist then the plug-in was probably not installed successfully.

Are you sure you are looking into the correct Library folder?
There is one in the root of the MacOS installation, but the one off interest is the one in your user’s home directory.


Usually a dialog windows with a crash log should pop up if OBS crashes on macOS.
I need the information contained in that dialog window.
Yes, I find that "user" one imedeatlly after I replied, but did not manage to edit post before your reply.

Found it, delete it, OBS starts normally.

Than I installed plugin once more time, with OBS running. Same issue.

Delete it and tried to install it with OBS closed. No issues, everything is now OK.
 
Thanks a lot!

I think I understand what can lead to this behavior:
Repeated invalid event subscriptions requests will lead to the whole connection to be dropped from Twitch's side.
This can happen because a channel was selected which does not exist.

I added a safe guard for this behavior.

A build will be available here in a few minutes:

You will have to be logged into GitHub to be able to download it at the bottom of the page.
Let me know if that should be an issue and I can try to upload it somewhere else once it is ready.


If you got something, which works for you, I don't dare to mess with it :D
What you have set up seems fine to me on a first glance.
Hi, i've tried the build but the problem reoccurs, this is the log.
 
Hi, i've tried the build but the problem reoccurs, this is the log.
I am at a bit off a loss.
The log does unfortunately not give any conclusive hints as to what the problem might be.

Can you please send me an export of your settings?
You can export them to a file on the General tab.
Please send them to me via DM and not here to make sure your Twitch token does not get leaked.

I apologise that it is such a chore to get it working for you for some reason.
 
I am at a bit off a loss.
The log does unfortunately not give any conclusive hints as to what the problem might be.

Can you please send me an export of your settings?
You can export them to a file on the General tab.
Please send them to me via DM and not here to make sure your Twitch token does not get leaked.

I apologise that it is such a chore to get it working for you for some reason.
I've sended it, ty.
 
Bug report :
When using condition "If scene has changed" doesn't work if we change it manually in OBS.
It is only taken into account if another macro change it due to actions.
 
Back
Top