Advanced Scene Switcher

Advanced Scene Switcher 1.28.1

ATs_fm

New Member
I've set up my MIDI fader so that it sends and receives values from 0-100 instead of the default 0-127 if that's of any relevance
 

Bairespm

Member
Hello, @Warmuptill , please I need help?

I have 4 buttons (hotkeys)
one for each participant for a trivia game

A question is asked and the one who presses their button the fastest is the only one that will be marked on the screen (visibility of element in the scene (color frame e.g. "RED")

I need to make advss with a Macro work like this.

If the hotkey "A" is pressed first, the "RED" frame is displayed only in scene 1 and the rest of the hotkeys stop working for a period of 10 seconds.

or if the hotkey "B" is pressed first, the "RED" frame is displayed only in scene 2 and the rest of the hotkeys stop working for a period of 10 seconds.

or if the hotkey "C" is pressed first, the "RED" frame is displayed only in scene 3 and the rest of the hotkeys stop working for a period of 10 seconds.

or if the hotkey "D" is pressed first, the "RED" frame is displayed only in scene 4 and the rest of the hotkeys stop working for a period of 10 seconds.

I have tried doing this but it leads me to create too many macros. and it doesn't work well... could you help me simplify it? How could I make a macro that works like that?

Thank you so much for your help

I atach my extended macro
 

Attachments

  • MACRO.txt
    1.3 KB · Views: 15

Warmuptill

Active Member
Works really well thank you! :)
Is there a way to send back a MIDI Value (2) to set the MIDI Fader to the corresponding audio level, like the other way around?
So if I change audio levels in OBS via other scene switcher macros the fader on my virtual MIDI pad changes accordingly.
You should be able to do this using a setup similar to the following:

  1. A macro to get the current volume of a given source and assign it to a variable then scales the value (input value ranges [0.0, 1.0]) to [0, 100]:
    1706115686856.png
  2. Another macro and sends the MIDI message to the desired device using the variable:
    1706115747658.png
Make sure to uncheck "perform actions only on condition change" on those macros.
 

Warmuptill

Active Member
Hello, @Warmuptill , please I need help?

I have 4 buttons (hotkeys)
one for each participant for a trivia game

A question is asked and the one who presses their button the fastest is the only one that will be marked on the screen (visibility of element in the scene (color frame e.g. "RED")

I need to make advss with a Macro work like this.

If the hotkey "A" is pressed first, the "RED" frame is displayed only in scene 1 and the rest of the hotkeys stop working for a period of 10 seconds.

or if the hotkey "B" is pressed first, the "RED" frame is displayed only in scene 2 and the rest of the hotkeys stop working for a period of 10 seconds.

or if the hotkey "C" is pressed first, the "RED" frame is displayed only in scene 3 and the rest of the hotkeys stop working for a period of 10 seconds.

or if the hotkey "D" is pressed first, the "RED" frame is displayed only in scene 4 and the rest of the hotkeys stop working for a period of 10 seconds.

I have tried doing this but it leads me to create too many macros. and it doesn't work well... could you help me simplify it? How could I make a macro that works like that?

Thank you so much for your help
Unfortunately, I can't really think of a good way with the current implementation of the Hotkey condition.

The reason being that there is currently a bug (which I discovered thanks to your request) which causes Hotkey conditions to evaluate to true if the hotkey was pressed while a given macro was paused and then unpaused later on.

A fix for this bug is available here on GitHub:
You will have to be logged into GitHub to be able to download this build.

Once you have done so you could use a setup like this to achieve what you are looking for:
  1. First create four macros for each buttons similar to this one:
    1706116296071.png
    Once a hotkey is pressed it will perform the scene switch action and then disable hotkey macros for 10 seconds using the actions in the macro named "Disable hotkey macros".
  2. The "Disable hotkey macros" only consists of actions which pause all of the hotkey macros:
    1706116451287.png

    This is done as the actions of "paused" macros will not be executed regardless of their condition state.
  3. Finally we need something which unpauses the macros again.
    For this we use the "Enable hotkey macros" macros, which, whenever it detects that one of the hotkey macros is paused, will wait 10s and then unpause all hotkey macros.
    1706116589251.png
Note that I am using scene switch actions as a placeholder for your "red frame display" action.

There are limitations already mentioned by @AaronD however:
If multiple hotkeys are pressed in the same instance the top macro in the macro list will always win since it is executed first.

To reduce the chance of this happening you should lower the "Check conditions every X ms" field of the General tab as much as possible.

If you want to import the example macros from above you can use this import code:
Code:
AAAjE3ic7Zpbb9owFID/CvIzqkgIlPJWLtOqbWo1aKVpQsgNBqwaO4odyob47zt2SEi4NVlbOqY8VCX2ufn4nE8ntEs0w64vJGr+XCKOZwQ10WehnsivElngmccIKiMPBxI2xphJop98zBhh8YLg7SnmE5BQfgDP8ol63QVxb3lPYV/FchNfBF4kZB46WGHUXCJXMIY9SUaxrKS/wV59tSpvh3X95gGtn0bCfeoRpSifSB2UTyZUKuLHAlMsvwe8FSgleGQa1u50MDur4EkF8it+TMQ1pZMpgx91M24LPqKKCi77oBFL+JH9PllAnAj8RcdNrRufsBPw3b37cA123ZSTMKK10MZ/CfukpMO+SGl80gEdUzERX6BVOayga1dvxTI9j1EFybsT0jyb+vJ0nVlXNX2p5nPVuVoN1ga6YC40cli3almxbkVrRncU1oZMlARkIFwE7UGcqOSSEpMJI3fby5sUGL+7pUnhI5qGGmXExIS6EA3UT+BjrfdNjOiY6rpZIkVnZAgWpfIx5crISaJdmBKbY6YvP/5weQH76pdH9PF00DRUmRNfmkRY0BBoRKSb7gf43aJ8ZAI2B0G3rd7wS/fH0EKrgU4Udl88knQJJ0P5TJU7BZuE40emZdY9pHd7hBE3vJJlFGc56s+elihZuiLgtDy8u74RsjbZ2XfsysvHLqNHBv15zxVl/dh6R3CSCrAfGTl4SlNru8cLl5uoQ6VeL4X3W1rDMcrfDR+RRSJwKxk2XmemqvNN4mrWOR/sYqxVYOysMWY3GjGK7MZlLozZgL3/GWMZ+nkHY62jGLNPjTG7wFgmjLULjBUYKzCW6ofDGKueGmPVAmOZMNYpMHbWGEu+GNp1Jx/G7HqBsS2MdY5izDk1xpwCY8cxdshDwbTzZZrjxFiqVSq5kObU7dMiLRsMXmiTxBdaOTrjFX2ZePU8qcP2qR128jo8Cpsu32KN8AvWnDdrqo0NbJyGnQ82CVB97PwUNcMHjE/xX9EGe3kW6tcSBzE2XBHoADa+kp5mAVNUXzZpZxWLbduZ+j05CqWSGjbMvpxaFfvfyGqryOo7ZLVdZPUdsto5h6xmG+GeMRx+Z9w49h5mZXoRiyzYf/0qpyPrR2+PB6vl3cfRDOX5ptPoq/3lHEZf7S/nLGrtm0VhaY59qt2k/nPlQbBgRkqMzGHAg57G87VaOAyQMYZWeQi9IWTMRIWCLKdec4mDVn8A06UYxQ==

Hope that helps! :)
 
Last edited:

AccidentalGrenade

New Member
I have a suspicion what might be causing problems.
At the end of your "Situation Room" macros, after performing the scene switch, you are modifying type of the currently active transition type and its duration.
Changing type or settings of the active transition while a transition is still ongoing can lead to those strange "canceled" transition effects.

Can you test if removing that last step in your macros resolves the issue?

View attachment 101119

I hope that helps! :)
If it does not I will try to have a deeper look tomorrow.

EDIT:
Hm .. after having another look I don't believe this is the root cause, as "wait until transition to target scene is complete" is checked.
It might still be worth testing if removing that step helps just to rule out that this is somehow causing the problem.
Hi - actually this was able to help me out. Adding the following completely resolved my issue:

1. Wait (3s) after switching scenes
2. Wait (3s) wait before setting the Transition back to Stinger

Thanks for your help!
 

ATs_fm

New Member
You should be able to do this using a setup similar to the following:

  1. A macro to get the current volume of a given source and assign it to a variable then scales the value (input value ranges [0.0, 1.0]) to [0, 100]:
    View attachment 101168
  2. Another macro and sends the MIDI message to the desired device using the variable:
    View attachment 101169
Make sure to uncheck "perform actions only on condition change" on those macros.
It worked but I had to add 'round variable to nearest integer' to the Get Audio Level macro. :) Thanks again for all your kind help.
 

ATs_fm

New Member
One more question ^^'
Is it possible to execute a scene switcher macro via run command with arguments like from a batch file or other tools that can execute programs with arguments?
 

Warmuptill

Active Member
One more question ^^'
Is it possible to execute a scene switcher macro via run command with arguments like from a batch file or other tools that can execute programs with arguments?
I am not sure I understand what you are trying to do, so I apologize if my answer does not really help.

There is no command line to directly interact with the advanced scene switcher.
But you could of course rely on interaction with files, websocket messages, ... to trigger the execution of macros.

If your question is if you can pass arguments to commands to be run be the advanced scene switcher plugin then the answer is yes.
Simply pass the arguments in the "Run" action or "Run" condition:
1706294795356.png
 

ATs_fm

New Member
I am not sure I understand what you are trying to do, so I apologize if my answer does not really help.

There is no command line to directly interact with the advanced scene switcher.
But you could of course rely on interaction with files, websocket messages, ... to trigger the execution of macros.

If your question is if you can pass arguments to commands to be run be the advanced scene switcher plugin then the answer is yes.
Simply pass the arguments in the "Run" action or "Run" condition:
View attachment 101218
Sorry if I again wrote my question a little overcomplicated. What I'm looking for is a way to execute scene switcher macros directly via other windows tools. In my case I'm also using VoiceMacro, mainly for its text-to-speech implementation and the ability to directly play sound files over a specified sound device. I can directly execute a VoiceMacro macro via a scene switcher action (run "C:/Program Files (x86)/VoiceMacro/VoiceMacro.exe" with the argument "/ExecuteMacro=VoiceMacroProfile/Example_Macro") and I'm looking for a way to, in return, directly trigger a scene switcher macro via VoiceMacro action since it can also run programs with arguments like scene switcher. (Hope that makes sense) Is that possible?
Thanks again for all your kind help :)
 

Warmuptill

Active Member
Sorry if I again wrote my question a little overcomplicated. What I'm looking for is a way to execute scene switcher macros directly via other windows tools. In my case I'm also using VoiceMacro, mainly for its text-to-speech implementation and the ability to directly play sound files over a specified sound device. I can directly execute a VoiceMacro macro via a scene switcher action (run "C:/Program Files (x86)/VoiceMacro/VoiceMacro.exe" with the argument "/ExecuteMacro=VoiceMacroProfile/Example_Macro") and I'm looking for a way to, in return, directly trigger a scene switcher macro via VoiceMacro action since it can also run programs with arguments like scene switcher. (Hope that makes sense) Is that possible?
Thanks again for all your kind help :)
I don't think this is possible directly at the moment, unfortunately.
I am not sure of the capabilities of VoiceMacro, but you might be able to simply set up hotkeys in OBS to trigger macros and trigger those hotkeys via VoiceMacro by using macros similar to this:
1706297479188.png
 

ATs_fm

New Member
I don't think this is possible directly at the moment, unfortunately.
I am not sure of the capabilities of VoiceMacro, but you might be able to simply set up hotkeys in OBS to trigger macros and trigger those hotkeys via VoiceMacro by using macros similar to this:
View attachment 101219
Alright, yeah I had this as a workaround but I'm shortly running out of Hotkeys unfortunately (already used up all combinations of ctrl, alt, shift F1 to F24). Hmm... maybe I can set VM to edit the content of some arbitrary txt file and have scene switcher check if the content of that file has changed as a trigger. I'll look into it a bit more. But manny thanks anyway for your time. You're a real MVP!
 

HadronSounds

New Member
Hi Y'all,
Been trying to install Advances Scene Switcher on M1Max Ventura 13.6.4 OBS (ARM, 30.0.2). Neither ARM nor Universal Versions work and I always get a crash. Any pointers?
Thanks!
 

Warmuptill

Active Member
Hi Y'all,
Been trying to install Advances Scene Switcher on M1Max Ventura 13.6.4 OBS (ARM, 30.0.2). Neither ARM nor Universal Versions work and I always get a crash. Any pointers?
Thanks!
Which OBS version are you using?
You will have to use at least version 30.
See here for more details why.

If you are already using OBS 30 or newer, would you be able to share the crash log?
 

RobertWilliams

New Member
Not sure if this intended functionality but I noticed that the command under the "else actions" of a macro is always executed regardless if the macro is enabled or not. The workaround is to disable each individual "else action" . Im running windows 1.24.2
 

Warmuptill

Active Member
Not sure if this intended functionality but I noticed that the command under the "else actions" of a macro is always executed regardless if the macro is enabled or not. The workaround is to disable each individual "else action" . Im running windows 1.24.2
That is not intended.
Thanks for pointing it out! :)

It is fixed on the current development release.
In case you or someone else needs a fix urgently you can download the latest build here:
 

Bairespm

Member
Unfortunately, I can't really think of a good way with the current implementation of the Hotkey condition.

The reason being that there is currently a bug (which I discovered thanks to your request) which causes Hotkey conditions to evaluate to true if the hotkey was pressed while a given macro was paused and then unpaused later on.

A fix for this bug is available here on GitHub:
You will have to be logged into GitHub to be able to download this build.

Once you have done so you could use a setup like this to achieve what you are looking for:
  1. First create four macros for each buttons similar to this one:
    View attachment 101170Once a hotkey is pressed it will perform the scene switch action and then disable hotkey macros for 10 seconds using the actions in the macro named "Disable hotkey macros".
  2. The "Disable hotkey macros" only consists of actions which pause all of the hotkey macros:
    View attachment 101171
    This is done as the actions of "paused" macros will not be executed regardless of their condition state.
  3. Finally we need something which unpauses the macros again.
    For this we use the "Enable hotkey macros" macros, which, whenever it detects that one of the hotkey macros is paused, will wait 10s and then unpause all hotkey macros.
    View attachment 101172
Note that I am using scene switch actions as a placeholder for your "red frame display" action.

There are limitations already mentioned by @AaronD however:
If multiple hotkeys are pressed in the same instance the top macro in the macro list will always win since it is executed first.

To reduce the chance of this happening you should lower the "Check conditions every X ms" field of the General tab as much as possible.

If you want to import the example macros from above you can use this import code:
Code:
AAAjE3ic7Zpbb9owFID/CvIzqkgIlPJWLtOqbWo1aKVpQsgNBqwaO4odyob47zt2SEi4NVlbOqY8VCX2ufn4nE8ntEs0w64vJGr+XCKOZwQ10WehnsivElngmccIKiMPBxI2xphJop98zBhh8YLg7SnmE5BQfgDP8ol63QVxb3lPYV/FchNfBF4kZB46WGHUXCJXMIY9SUaxrKS/wV59tSpvh3X95gGtn0bCfeoRpSifSB2UTyZUKuLHAlMsvwe8FSgleGQa1u50MDur4EkF8it+TMQ1pZMpgx91M24LPqKKCi77oBFL+JH9PllAnAj8RcdNrRufsBPw3b37cA123ZSTMKK10MZ/CfukpMO+SGl80gEdUzERX6BVOayga1dvxTI9j1EFybsT0jyb+vJ0nVlXNX2p5nPVuVoN1ga6YC40cli3almxbkVrRncU1oZMlARkIFwE7UGcqOSSEpMJI3fby5sUGL+7pUnhI5qGGmXExIS6EA3UT+BjrfdNjOiY6rpZIkVnZAgWpfIx5crISaJdmBKbY6YvP/5weQH76pdH9PF00DRUmRNfmkRY0BBoRKSb7gf43aJ8ZAI2B0G3rd7wS/fH0EKrgU4Udl88knQJJ0P5TJU7BZuE40emZdY9pHd7hBE3vJJlFGc56s+elihZuiLgtDy8u74RsjbZ2XfsysvHLqNHBv15zxVl/dh6R3CSCrAfGTl4SlNru8cLl5uoQ6VeL4X3W1rDMcrfDR+RRSJwKxk2XmemqvNN4mrWOR/sYqxVYOysMWY3GjGK7MZlLozZgL3/GWMZ+nkHY62jGLNPjTG7wFgmjLULjBUYKzCW6ofDGKueGmPVAmOZMNYpMHbWGEu+GNp1Jx/G7HqBsS2MdY5izDk1xpwCY8cxdshDwbTzZZrjxFiqVSq5kObU7dMiLRsMXmiTxBdaOTrjFX2ZePU8qcP2qR128jo8Cpsu32KN8AvWnDdrqo0NbJyGnQ82CVB97PwUNcMHjE/xX9EGe3kW6tcSBzE2XBHoADa+kp5mAVNUXzZpZxWLbduZ+j05CqWSGjbMvpxaFfvfyGqryOo7ZLVdZPUdsto5h6xmG+GeMRx+Z9w49h5mZXoRiyzYf/0qpyPrR2+PB6vl3cfRDOX5ptPoq/3lHEZf7S/nLGrtm0VhaY59qt2k/nPlQbBgRkqMzGHAg57G87VaOAyQMYZWeQi9IWTMRIWCLKdec4mDVn8A06UYxQ==

Hope that helps! :)
Thank you very much for the help, it works perfectly like this. Yes, I know that @AaronD is right that it won't be exactly the first one I press when doing it by software, but hey, later I will do it with an Arduino to the circuit. For the moment it will work like this. thanks for your help @Warmuptill
 

DZ_Da_Dude

New Member
Hello all,

I hope my question has not been answered already (167 pages) but I do need help.

I am trying to use advanced scene switcher to automate the following.

When I go live on twitch I want to add a small delay to allow people to join the stream.

After this small delay I want to start my "stream starting " animated screen scene (its 7 seconds long but I have it on loop) with the intro song playing

8 seconds before the song ends I want to switch to the animated logo intro scene (its 7 seconds) to play while the song finishes

After all of that is done go to the game capture.

How can I accomplish this if possible.
 

DZ_Da_Dude

New Member
Okay I figured out how to do the first few steps. But for some reason after everything is complete it will not switch to the game (live view).
 
Top