Resource icon

Advanced Scene Switcher 1.12

Added the Macro tab

Macros will allow you to perform a string of actions based on a combination of conditions.
For example this will allow you to only used audio based scene switching if a certain window is currently in focus.
But the actions are also not limited to just scene switching so you could for example mute your microphone while a media source is playing.​
The macro actions currently supported are:​
  • wait
  • switch scene
  • audio un-/mute / set volume
  • streaming start / stop
  • recording start / stop / un-/pause
  • replay buffer start / stop / save
  • run a program
Macro conditions that are currently supported are:​
  • window
  • screen region
  • audio
  • file
  • media
  • video
  • stream
  • recording
  • scene
  • process
  • idle
I plan on mostly focusing development on this new functionality and will be slowly fading out other tabs which do the same thing but worse. (For example media / video / audio tab)
If you should disagree with this approach please let me know.
MacroExample

Other changes and fixes:
  • Add option "has changed" to video tab
  • Add option to set transition duration
  • Only send scene switch messages if scene was actually switched (Network tab)
  • Adjust default setting values of transition tab
  • Fix previous scene not working for some sequences
  • Fix transition overrides not restoring duration correctly
  • Reset tab order if config is invalid
  • Like
Reactions: ASchneider
  • Fix crash on Linux if no ewmh support is available
  • Re-enable network tab for MacOS
  • Add add option to use transition overrides for transition changes instead of changing the active transition.
    The option can be found on the transition tab.
DisableTransitionChange
  • Added option to save window state
    This new option can be found on the general tab and allows you to save the size and position of the plugin's settings window.
    WindowState

  • Fix Crash on macOS:
    The asio library ran into issues e.g. when the obs-websocket plugin (or others which rely on this library) was starting a server leading to a crash in the obs-websocket's listen() calls.
    As the use obs-websocket plugin is more widespread than the use of the advanced scene switcher's network features, the network tab functionality will be disabled for macOS for the time being.
    This is of course only a temporary measure to avoid crashes on macOS.

    The Windows and Linux versions of the pluign are not affected by this change.
Additions and changes:
  • Add "Network" tab.

    The network tab allows you to open a web-socket or connect to a web-socket to synchronize the active scene between two or more instances of OBS.
    NetworkTab.PNG
    The functionality is mostly based on https://github.com/Palakis/obs-websocket.
    An OBS instance running a server will send its currently active scene to all connected clients on scene change.
    By default all scene switches will trigger a message to be sent to all clients, but you also have the option to limit sending these messages only when an automated scene change is triggered by the advanced scene switcher.

  • Add option to check volume of 'inactive' audio sources.
  • Add option to configure default transition delay.
  • Enable use of Scene Groups for Random tab.
Fixes:
  • Fix audio tab not supporting mono audio output. (Thanks nospam2k for your help!)
  • Fix window based scene switching always testing for focus.
Additions:
  • Added video tab.

    This new tab will allow you to switch scenes based on the current video output of selected sources.
    You have to option to either trigger a scene change if the output matches a target images, does not match the target image or has not changed for a specified duration.
    VideoTabExample.png
    The "Get screenshot for selected entry" will create a screenshot of whatever video source is currently chosen for the selected entry and set it as the target entry.

    If you want to perform more complex image comparisons please have a look at the following plug-in:

  • Add German locale for extended sequences.

Fixes:
  • Update base sequence entry if values of base sequence entry were changed in the extend edit window.
Additions / Changes:
  • Add option to extend scene sequences.
Extending a scene sequence allows for more complex switching setups, but should also simplify some setups.​
So for example sequences like "A -> B -> A -> C", which previously were only possible by creating a copy of A, can now be specified in a single entry.​
To extend a sequence either select the sequence you want to modify and click the extend sequence button or simply double click the entry.​
Extend1.PNG
Extend2.PNG
  • Add option to select 'current transition' as an option for most switching methods.
This will use whichever transition is currently active.​
The rules specified on the transition tab still take priority of this stetting.​
CurrentTransition.PNG
  • Add a scene trigger to unmute an audio source.
  • Add a scene trigger for starting and stopping the scene switcher.
  • Allow specifying transition when reading scenes from file.
The first line in the file specifies the scene the second line, if present, the transition.​
  • Default transitions will now only be set after about 50ms after a scene change. This should prevent the transition change interrupting an ongoing scene change.

Fixes:
  • Fix name conflict with Time and Scene Trigger tab, which would make the Time tab unusable. (Only the Windows version was affected - The 1.9 release was updated to contain this fix)
  • Fix scene switching via reading the scene name from file ignoring the pause option for for file based scene switching.
  • Update the UI's "status" field on the general tab even if the status of the plugin changed externally (For example via hotkey).
Major Additions:
  • Add scene trigger tab
    This tab allows you to trigger actions on scene change, like stopping streaming or recording.
    Feel free to make suggestions for additions.

    Please note that the options to automatically start or stop streaming or recording on specific scenes were removed from the general tab.
    Corresponding entries will be automatically created on this new tab!

  • Add scene group tab
    Scene Groups can be selected as a target just like a regular scene.

    As the name suggests a scene group is a collection of multiple scenes.
    The scene group will advance through the list of its assigned scenes depending on the configured settings.

    You can configure the scene group to advance to the next scene in the list:
    After a number of times the scene group is selected as a target.
    After a certain amount of time has passed.
    Or randomly.

    For example, a scene group containing the scenes ...
    Scene 1
    Scene 2
    Scene 3
    ... will activate "Scene 1" the first time it is selected as a target.
    The second time it will activate "Scene 2".
    The remaining times "Scene 3" will be activated.
Minor Additions and Changes:
  • Ask for backup of settings if a new version is detected
  • Add help messages if tab is empty
  • Add option to specify scenes to exclude from Region triggers (Implemented by kieve)
  • Add option to automatically activate the scene switcher on recording or streaming start
Fixes:
  • Fix crash on settings import
  • Fix regex matching for window tab, which would not allow matching if full-screen or maximized was selected as a condition

As usual I hope I didn't break anything.
In case I did please let me know! :)
  • Like
Reactions: OpenFields
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:
  • Add switch "cool down" option to the general tab which allows you to specify a minimum amount of time that has to pass before a next match will have an effect.
    All matches during this time will be ignored.
  • Link to Transition Table plug-in on transition tab.
  • Display warning if translation data cannot be found.
Additions:
  • Add support for translating the plugin into different languages - German and Chinese translations are available
  • Add option to pause individual switching methods on the pause tab
  • Add option to only match if file content changed
  • Add option to specify duration for audio matching
  • Add option to choose the "below x %" threshold for audio matching
  • Add option to allow scene sequence to be interrupted
  • Add windows installer

Fixes:
  • Fix new time entries matching if time was never changed from 00:00:00
  • Fix remote file check always matching
  • Fix some visual issues

Changes:
  • Rework UI of file tab
  • Sort media, process and audio source selection entries alphabetically
  • Automatically scroll to new entries
  • Write status of plugin to scene info file if plugin is stopped
  • Love
Reactions: plus_power
Fixes:
  • fix crash on first startup on fresh install of OBS
  • fix crash on deleting last screen region entry when guide frame was active
  • fix matching obs-studio's window title with 'OBS' on Windows
  • fix random tab only matching once if there was only one entry
  • resolve potential deadlocks
  • fix media states being retriggered multiple times
  • fix crash on importing scene sequence
  • fix crash on deleting scene sequences

Additions and changes:
  • add a log when automatically stopping or starting streaming or recording
  • hide screen region guide frames when switching to a different tab
  • add media state "played to end", which should only trigger a scene change when a media source was played to completion as opposed to also switching if the playback was ended prematurely.
    This is an experimental feature so let me know if you run into any issues.
  • add option to delay the "If no condition is met ..." options
  • improve accuracy of the "Check switch conditions every x ms" option by factoring in the time it takes to perform the different condition checks
Top