Advanced Scene Switcher

Advanced Scene Switcher 1.28.1

Yeah so what you described is exactly what's happening, but it ultimately means it doesn't work.
With these settings (and the new minimum switch hold set to 1.3s):

1609979519065.png


Sending tone to two channels results in:

After about half a second it always goes to the first trigger, and then about a second later it goes to the wide shot.

So even if it is the 2nd and 3rd trigger, it will still first cut to the first trigger before cutting to the wide shot.

So yeah, how hard would it be to at least make the multiple trigger first priority rather than last?
 

Warmuptill

Active Member
Yeah so what you described is exactly what's happening, but it ultimately means it doesn't work.
With these settings (and the new minimum switch hold set to 1.3s):

View attachment 65521

Sending tone to two channels results in:

After about half a second it always goes to the first trigger, and then about a second later it goes to the wide shot.

So even if it is the 2nd and 3rd trigger, it will still first cut to the first trigger before cutting to the wide shot.

So yeah, how hard would it be to at least make the multiple trigger first priority rather than last?
Sorry, I seem to have been a bit unclear in my description as to how it works exactly.

As soon as any match is found the first thing being checked is whether there is also a second match.
If there is a second match (and the configured duration condition for the fallback option is fulfilled) the fallback scene will be selected to be switched to.
If that is not the case the scene of the original (and only) match will be selected to be switched to.

So the fallback option always has the highest possible priority it can have in regards to the audio scene switches.
Unless of course I made an error in the implementation - if you want to double check, this is the relevant part:

As you have configured a duration of 0.2s for the audio fallback option it is impossible to immediately switch to the fallback scene the first time a second match is found, because the very first time two or more audio entries match, exactly 0 seconds have passed for the fallback duration condition.
Only the second time around (or even later depending on your configured check interval) will the audio fallback duration condition be fulfilled and scene switcher will switch to the configured fallback scene.
That means that with a configured fallback duration of anything > 0s you will always first match a single entry before matching multiple entries and using the fallback scene.

(I think your idea of how the scene switcher works is that it would perform all of these checks in parallel while in reality it performs them sequentially - thus leading to a different expectation for its behavior.)

So my recommendation would be to select 0.00s for the fallback scene if you want your desired behavior of immediately switching to "wide shot".

I hope that helps clearing things up :)
If you have suggestions for improvement feel free to mention them of course!
 
Last edited:
Yeah there's something wrong with it, and I'm having trouble working out what exactly it is. But it's essentially getting 'stuck' sometimes and not triggering, whilst other moments it's behaving itself. But it seems to be less responsive than it was before the new additions.

How hard would it be to create a little indicator in at least the Audio tab to indicate which triggers are currently 'active' if that makes sense?

I've been trying to work out the problem by just creating 5 scenes in OBS to be triggered to give me a sense of exactly what's happening:
- Channel 1
- Channel 2
- Chaneel 3
- Multiple
- No Trigger

But even then it's still not clear what exactly is going wrong. It would also be helpful in setting the audio thresholds, because it seems like part of the problem is that it's infinitely more complicated when dealing with actual speech, rather than just tones.
 
OK I'm chasing this down. Part of the problem appears to be that with speech, you're not getting a clean trigger, because a slight pause is enough to 'reset' the trigger, which is particularly a problem when 2 people are talking at once, because at any moment it might be interpreted as only 1 person. I've had some luck with adding an audio 'echo' filter on the channels, to essentially smooth out their peaks and troughs. But then this of course creates issues with responsiveness, because it will also extend the end of one person talking.
So ideally, you'd need some kind of 'averaging' of the audio metering. And having the multiple input having a separate "do not trigger agai"' bias would also help a lot. Because ultimately you'd want to set the individual inputs to be more sensitive, but then have the multiple trigger more sticky once it had triggered. If that all makes sense.
 

Warmuptill

Active Member
How hard would it be to create a little indicator in at least the Audio tab to indicate which triggers are currently 'active' if that makes sense?
You can enable verbose logging on the general tab and open the OBS log viewer (not sure if that is what it is called) to see what exactly is currently matching.

>So ideally, you'd need some kind of 'averaging' of the audio metering.
That might be doable with the OBS API - i will look into it.

EDIT:
The easiest change was just to look at the maximum peak value observed over the whole switch interval period, instead of just checking the current peak value at the moment of the check happens to be performed.
That should in theory improve the situation, so "pauses" in the range less than the configured scene switcher check interval will still result in a match, if there was at least a short moment where the configured volume threshold was reached.

You can find a build with this change here in a couple of minutes.

>And having the multiple input having a separate "do not trigger again" bias would also help a lot.
Hm, I think I understand what you mean.
Ultimately the current fallback solution for the audio tab is just a quick workaround.
The real solution would be to allow combining multiple conditions (not just audio).
Then you could configure the sensitivity to your liking.
But this would require a bigger rework of the plug-in, which is not something I have the time to implement any time soon, unfortunately.
 
Last edited:

wabi

New Member
any idea why installation of plugin fails? tried it on several computer and also reinstalled OBS and plugins. Still not working. Still showing up as below.
1610148992527.png
 
You can enable verbose logging on the general tab and open the OBS log viewer (not sure if that is what it is called) to see what exactly is currently matching.

>So ideally, you'd need some kind of 'averaging' of the audio metering.
That might be doable with the OBS API - i will look into it.

EDIT:
The easiest change was just just look at the maximum peak value observed over the whole switch interval period, instead of just checking the current peak value at the moment of the check happens to be performed.
That should in theory improve the situation, so "pauses" in the range less than the configured scene switcher check interval will still result in a match, if there was at least a short moment where the configured volume threshold was reached.

You can find a build with this change here in a couple of minutes.

>And having the multiple input having a separate "do not trigger again" bias would also help a lot.
Hm, I think I understand what you mean.
Ultimately the current fallback solution for the audio tab is just a quick workaround.
The real solution would be to allow combining multiple conditions (not just audio).
Then you could configure the sensitivity to your liking.
But this would require a bigger rework of the plug-in, which is not something I have the time to implement any time soon, unfortunately.

Wow SOOOO much better! This might be ready for prime time now from my quick testing. Well done!
 

Warmuptill

Active Member
Wow SOOOO much better! This might be ready for prime time now from my quick testing. Well done!
Great to hear it! Thanks for all your testing! :)

any idea why installation of plugin fails? tried it on several computer and also reinstalled OBS and plugins. Still not working. Still showing up as below.
View attachment 65632
As mentioned previously you forgot to install the "data" folder.

I would recommend just running the installer, but if you want to manually install it you have to copy "SceneSwitcher\Windows\data" folder from the downloaded "SceneSwitcher.zip" archive to your OBS Studio installation directory, which is usually located at "C:\Program Files (x86)\obs-studio\".

├───data
│ ├───obs-plugins
│ │ ├───advanced-scene-switcher
│ │ │ └───locale <- translations are in here :)
...

I will see if I can add a quick pop-up if a user runs into that situation.
I hope that helps! :)
 
Last edited:

Warmuptill

Active Member
Warmuptill updated Advanced Scene Switcher with a new update entry:

Audio tab updates

An option was added which allows you to specify a scene to switch to if multiple audio entries match at the same time.

Additionally the way the conditions for the audio tab entries are checked was changed to now look at the maximum audio peaks over the complete cycle - so the check interval configured on the general tab - instead of just checking the volume at the moment the condition happened to be checked.
You might have to adjust your volume threshold levels.

Additional changes:
  • ...

Read the rest of this update entry...
 

Warmuptill

Active Member
I tried to install this thing on my mac over four times and neither time did I find it in the tool window. I followed the instructions and made sure to install it both ways suggested in the instructions. Here is the log file: https://obsproject.com/logs/ydGH7Y03iDLgJBtM
Looks like you will either have to update to a newer OBS version or rely on using an older version of this plugin.
The problem is that the QT libraries differ so the plugin cannot be loaded.

Reason: Incompatible library version: advanced-scene-switcher.so requires version 5.15.0 or later, but QtWidgets provides version 5.14.0
 

Decors

New Member
I've been waiting for switch cool down feature. Awsome update.
But cool down thing is not working correctly.
It often switch scene immediately even if you add 10s cooldown.
Looks like cooldown timer is always working in background.
 

Warmuptill

Active Member
I've been waiting for switch cool down feature. Awsome update.
But cool down thing is not working correctly.
It often switch scene immediately even if you add 10s cooldown.
Looks like cooldown timer is always working in background.
Hm, strange - I will investigate.
Would you be able to share more details in what circumstances the the cooldown does not work?
Can you maybe provide a log file with verbose logging of the plug-in enabled (this option can be found on the general tab)?
(Also exporting the settings of the plug-in and sharing them could help in reproduction of the issue - if that is OK for you)
 

hellbent

New Member
Is there a way to set a sequence of scenes to loop a predetermined number of times before advancing to the next group of scenes that I'd like to loop thru? Say for example I have scenes 1 - 12. I want to loop thru scene 1 for :30, 2 for :15, 3 for :30, 4 for :15, then loop thru that sequence 3 times before doing the same with scenes 5-8, then again with scenes 9-12.
 

Warmuptill

Active Member
Is there a way to set a sequence of scenes to loop a predetermined number of times before advancing to the next group of scenes that I'd like to loop thru? Say for example I have scenes 1 - 12. I want to loop thru scene 1 for :30, 2 for :15, 3 for :30, 4 for :15, then loop thru that sequence 3 times before doing the same with scenes 5-8, then again with scenes 9-12.
Unfortunately, it is not possible to configure the plug-in such a way at the moment without having to create two additional copies of the scenes 1-4.
I will see if this could be implemented somehow.
 
Last edited:

Decors

New Member
Here is a log file.
With those settings below.
1. set window title "a" to switch scene A. also window title "b" to switch scene B.
2. focus window "a" to let ASS switch scene to A.
3. once ASS switched to scene A wait for 8 maybe 9 sec.
4. focus window "b" and let ASS try to switch scene to B. And in my environment ASS switch to scene B within 1 or 2 sec instead waiting for 10 sec.
thanks.

decors

settings.png
 

Attachments

  • 2021-01-10 08-40-06.txt
    116.5 KB · Views: 28

Warmuptill

Active Member
Here is a log file.
With those settings below.
1. set window title "a" to switch scene A. also window title "b" to switch scene B.
2. focus window "a" to let ASS switch scene to A.
3. once ASS switched to scene A wait for 8 maybe 9 sec.
4. focus window "b" and let ASS try to switch scene to B. And in my environment ASS switch to scene B within 1 or 2 sec instead waiting for 10 sec.
thanks.

decors

View attachment 65680
Thanks, but with your given your example I think there is a misunderstanding as to how this functionality works.

[...] once ASS switched to scene A wait for 8 maybe 9 sec. [...] focus window "b" and let ASS try to switch scene to B. And in my environment ASS switch to scene B within 1 or 2 sec [...]

Am I understanding correctly that you wait for 8 seconds before switching to a different window and then after 2 seconds the scene switcher switches to scene B?

If so then the plug-in is behaving exactly as intended.

The "cool down" period starts as soon as the scene switcher switched to Scene A.
And after 8s + 2s - so the specified 10s - the scene switcher switches to scene B.


What you are looking for is some type of "delayed scene switch", is it not?
So you want to switch to a scene 10 seconds *after* a window was detected, correct?
Such an option does not exist currently, but I will see if something like that could be added.

Depending on your requirements you could maybe work with the sequence tab in combination with the window tab in the meantime.
 

Decors

New Member
I was thinking probably I'm misunderstanding and yeah that's it. :)

What I wanted was like this.

I often alt tab a lot. And every single time if I do that ASS will switch even if I only show alt window for 0.5 sec.
And I was thinking this new feature will avoid that.
But that was my misunderstanding :p
Hopefully we can get that feature in the future.

Thanks man and sorry for wasting your time.
And keep up the good work!
 

JasonB

New Member
I just started using the Advanced Scene Switcher today and noticed two possible bugs.
  1. When using the option in the "General" tab: "Automatically start <streaming> on scene <selected scene>"
    1. If manually transitioning to that selected scene, it doesn't start streaming. It only triggers if the scene was transitioned into automatically by Advanced Scene Swither.
  2. When using the "Audio" tab to set up a transition when my microphone is below x-% for y-seconds
    1. When the scene that captures my microphone is active, the transition set up in the "Audio" tab only triggers if that said scene that captures my microphone begins with sound being picked up by the microphone right from the onset, then dropping below the defined % for the defined time period. If the scene opens with no audio being picked up from my microphone, because I'm not talking when the scene first opens, then I start talking, then stop, dropping the volume below the defined % for the defined time period, the transition doesn't trigger.
 
Top