Resource icon

Advanced Scene Switcher 1.17.1

Additions:
  • Add option to perform macro actions only on condition change.
    onChange
  • Enable the use of time constraints for transition condition type.
  • Reintroduce checkbox to change current scene check transition behaviour.
Additions:
  • Added the option create a dock widget to check and control whether or not the Advanced Scene Switcher is currently running.
    You can access it via View -> Docks -> Advanced Scene Switcher.
    Dock1
    It can be used just like any other dock and be freely placed in OBS' dock areas.
    Dock2
  • Added the OpenVR macro condition. (Windows only for now)
    OpenVR
    This will allow you to perform actions based on where your VR Headset is currently located.
    Thanks for the suggestion and support in testing @munkilicious!
  • Added the option to check if an audio source is muted.
    Mute
  • Added the condition "Studio Mode".
    This will allow you to check whether or not studio mode and which preview scene is currently active.
    Studio
  • Added action to switch the current OBS profile.
    Profile
  • Added action to switch scene collections.
    SceneCollection
  • Added action to import plugin settings from a file.
    Settings
Improvements:
  • Added the option to the "Switch scene" action to wait for the transition to complete before continuing with the next action.
    WaitForTransition
    This will make it much easier to set up a sequence of scene switches without having to know the duration of each transition beforehand.
  • Improved the scene item selection for visibility, order, and transform related macro actions and conditions.
    If a particular scene item exists multiple times in the selected scene you can now choose which scene item in particular shall be selected.
    SceneItem
    The previous behaviour of selecting all scene items is also available still.
Fixes:
  • Fix startup behaviour settings not loading correctly, causing the plugin to always be active on startup.
  • Fix crash when reordering macros which were marked to run in the background.
  • Fix volume not changing when selecting a fade with a duration of zero seconds.
  • Fix plugin asking to backup settings when starting the plugin for the first time.
Notes:
  • The OpenCV parts of the plugin have been moved outside the main plugin into a separate library.
    This was done to avoid the issue (especially on Linux) of the whole plugin not being able to start if a particular version of OpenCV was not available.
  • I started work on the wiki for this plugin:
    https://github.com/WarmUpTill/SceneSwitcher/wiki
    Feel free to contribute! :)
  • Like
Reactions: Lawrence_SoCal
Additions:
  • Add macro action for triggering screenshots.
    Screenshot
    Individual sources, scenes or OBS' main output is supported.
  • Add macro action to display system tray notifications.
    SystemTray
  • Add hotkey to toggle pause state of macros.
    Hotkey
    This will allow setting up even more complicated hotkey actions.
  • Add button to manually run macro actions.
    RunButton
    This will make it much easier to test macro actions.
  • Allow running macros in parallel to other macros.
    Parallel
    Previously a macro containing actions that would take a long time to execute (e.g. the "wait" condition) would "block" the plugin from performing any other checks or actions during this time.
    While in some situations, this could be the desired effect, there are certainly also situations where this is not ideal. (E.g. a continuous scene switching loop)
    Checking this box will allow you to run a macro's action in parallel to other potentially running actions.
  • Add condition to check if the plugin is running.
    Running
    This is mostly useful if you need a condition that is always true, but could also be used to perform actions if the plugin was running for a specific amount of time when combining it with a time constraint. (Small clock icon)
Improvements:
  • Allow setting random duration in specified range.
    RandomTimer
  • The run action now also supports supplying a path to a file that is not an application itself.
    So for example, if you pass it the path to an mp3 file and your default media player is VLC it will launch the VLC player and start playback of this file, just as if you would have clicked on the file's icon on the desktop.
  • Add option to match any or all media sources of a specific scene.
    Media
  • Add the option to execute another macro's actions.
    RunMacro
  • Suggest a file name when saving settings.
  • Minor UI improvements like resize lists on the macro tab to minimum necessary height.
Changes:
  • Add the option to check for the source and the target scene of an ongoing transition.
    Transition
    At the same time the option "wait for transition to complete" was removed from the "current scene is" check as it did not really fit into that category and its description was not really formulated clearly to begin with.
    Note that the behaviour has not change for any already existing macros.
  • Add a warning if the macro functionality is not running with highest priority.
  • Update locale (zh-CN locale provided by qwe1154323937)
Notes:
  • The plugin is now also available via Flatpak on Linux
The main focus of this update was fixing issues and improving upon existing functionality.
Additions:
  • Add the option to fade in/out volume changes via the "Audio" macro action.
    Fade
  • Add macro action "Random", which will allow you to execute other macros at random.
    Paused macros will be ignored.
    Random
    This should allow you to expand upon the functionality provided by the "Random" tab if needed.
    I will probably expand upon this functionality in future, but I thought it wouldn't hurt to make it available to everyone in its current state.
  • Allow selecting source type instead of just individual sources for scene visibility action.
    VisibilitySourceType
    This should simplify some setups.
  • Add scene-visibility macro condition.
    VisibilityCondition
  • Allow use of "previous scene" in scene visibility action.
  • Allow interacting with OBS main window while plugin settings are opened.
Fixes:
  • Fix macro un-/pause hotkeys not working once a macro was executed.
  • Fix add, delete, reorder not working when changing macro segment type.
  • Fix macro count not updating correctly.
Other changes:
  • No longer check the conditions of paused macros.
    This should improve the performance if you have a lot of paused macros with "expensive" conditions like video pattern matching.
  • Ensure contents of combo boxes are readable when changing scene/filter.
Additions:
  • Improve the video condition's pattern matching functionality:
    This option now supports the option to provide a mask for the used pattern by using the pattern's alpha channel.
    alphaMask
    In short, this will allow you to match parts of an image which are not shaped as a rectangle.
    For example using the following pattern ...
    ZoomAlphaExample
    ... will all you to match both of the following images:
    ZoomExample1
    ZoomExample2
  • Add option to use pattern matching for "output changed" macro condition.
    OutputChanged
    This will allow to use this type of condition for "noisy" video sources like compressed video streams and thus ignore minor changes in the image output.
  • Improve the timer condition and add a timer action:
    The timer condition was improved to now support pausing and continuing the timer.
    TimerCondition
    The timer's state will now also be saved and reloaded when exiting and relaunching OBS.
    So if a timer still had 10 seconds remaining of a 60 second timeout when exiting OBS, the timer will now continue at 10 seconds when restarting OBS.
    A corresponding timer macro action was introduced also:
    TimerAction
    This new action will allow you to pause, continue, reset and set remaining time of timers of other macros.
Minor additions and changes:
  • Add version info to the window title.
    Version.PNG
  • Add "wait for transition to complete option" for current scene check on the macro tab.
    CurrentScene
  • Add conditions "stream starting" and "stream stopping" to the streaming macro condition.
    Streaming
  • Add option to display notifications when the plugin was started or stopped.
    SystemTray
    SystemTray2
  • Add description for the "minimum neighbors" parameter for the object detection.
  • Reword date condition's repeat option.
  • Slightly clean up general tab.
  • Improve error output when the data directory cannot be found.
Fixes:
  • Fix minimum neighbors parameter of object detection not loading correctly.
  • Fix crash when switching scene collection during macro wait action.
  • Fix newly created scene sequences not working when including scene groups.
  • Fix scroll position being lost on the macro tab when adding or removing macro segments.
  • Fix exact image match not working when using images containing alpha channel information.
  • Linux: Use process names for the process macro condition and executable tab, instead of relying on window names for this functionality.
Additions:
  • Improve video condition:
    The improvements to the video condition have been achieved by relying on the functionality provided by OpenCV.
    This update includes a few of the OpenCV libraries and thus increased the size of the plugin for Windows and MacOS.
    Linux users will have to manually install the corresponding OpenCV 4 packages. (imgproc, objdetect)
    • Added pattern matching:
      Previously, you were only to perform actions based on an exact pixel-match of a selected video source and an input image.
      With this new functionality you can decide how similar the input image has to be to video source output or just match parts of an image.
      This can be useful if you have "noisy" video sources or cannot know the exact output of the video source beforehand.
      PatternMatch
      To test if the video source is matching the pattern one can click the "Show match" button.
      Below you can find an example of using the number "2" as an input pattern.
      It was correctly identified and highlighted in red in the video source:
      PatternMatchShowMatch
    • Added object detection option:
      Besides pattern matching the option to identify "objects" in video sources was added by relying OpenCV's "Haar Cascades".
      ObjectMatch
      A few face detection related example models have been included plugin's data directory.
      An example use case brought up on GitHub would be to automatically switch scenes based on in which camera you are currently looking.
      Similar to the pattern matching the "Show match" button will highlight any objects detected in the selected video source:
      FaceMatch
      (Face provided by https://thispersondoesnotexist.com)
      I am not sure how much use this feature will find but it was very fun to implement. ;)
  • Add conditions "scene changed" and "scene has not changed"
    SceneChanged
    SceneHasNotChanged
    This should allow to simplify some macro setups which previously had to specify every single scene.
  • Added Studio mode related actions:
    • Add action to switch preview scene.
      SwitchPreview
    • Add action to scene swap "Preview" and "Program" scene.
      SwapScene
  • Add macro condition "Scene item transform".
    SceneTransformCondition
  • Improved Hotkey action:
    An option was added to specify the duration a key is held down.
    Additionally, you can now limit the key presses to be sent only to OBS.
    This action is now also enabled on MacOS, although it is limited to only sending simulated key presses to OBS.
    Hotkey
  • Add macro action and condition "Transition":
    The new transition action will allow you to set the current transition type and duration.
    TransitionAction
    The new transition condition will allow you to perform actions based on which transition is currently selected, its duration and also whether a transition is currently started or a transition ended.
    TransitionCondition
    An example use case would be to automatically mute the microphone during a longer fancy transition and unmute it once it completes.
Minor additions and changes:
  • Escape settings when pressing "Get settings" and regular expressions are used.
    EscapeRegex
  • Create a copy of the previous macro segment when inserting new segment.
  • Highlight newly added macro segments.
Fixes:
  • Validate window position before setting it.
  • Fix empty paths not saving on file tab.
  • Fix crash on clicking "Get settings" if source or filter is null.
  • Fix crash on OBS exit or when deleting sources whose settings were checked.
  • Save window position and size when using ESC or the "close" button.
  • Fix rapid scene switches repeatedly restarting certain transition types.
Additions:
  • Expand date macro condition functionality.
    This condition type now supports specifying a range of time during which the condition will be true.
    For example:
    date
    Time ranges can be selected using the options "before", "after" and "between" and a time point can be selected using the "at" option.
Fixes:
  • Fix crash when deleting macro that is currently running a "wait" action.
  • Fix wait action causing macros to be aborted randomly.
  • Fix matching settings of sources and filters using macro conditions.
    Previously, depending on which version of OBS you were using, the settings would only match when using "flat" json formatting, which was not used when pressing the "Get current settings" button.
  • Fix writing current scene to file.
  • Like
Reactions: IDLT
  • Allow scrolling in expanded comboboxes
  • Fix extended sequence aborting when using non-instant transitions
  • Backwards compatibility to older settings format was removed to make sure no duplicate condition and action selections are shown on the macro tab.

    Most users will not be affected by this, but just in case:
    If you haven't updated the plugin in a while and are afraid that some macro settings will be lost when updating...
    ... make sure to backup your settings, when prompted to.
    ... install a previous version of the plugin to automatically convert the settings. (1.15.1 for example)
    Affected settings are the old "count", "screen region" and "interval" macro conditions.
  • Like
Reactions: IDLT
  • Fix video condition not saving time constraint, logic and collapsed state.
  • Add note to network tab clarifying the requirement of the scene names having to match exactly.
Macro tab UI changes:
  • Add the ability to reorder, add and remove macro conditions and actions in place.
    These new controls will appear when hovering over a macro condition or action.
    Controls
  • Persist collapse / expanded state of conditions and actions.
  • Add option to expand or collapse all macro actions or conditions.
    Right click inside the conditions or actions area to access these controls.
    ExpandCollapse
  • Prevent accidental edits of actions and conditions when scrolling by disabling scroll wheel interactions for widgets which have not explicitly gained focus by clicking on them.
Cursor macro condition changes:
  • Extend the mouse cursor macro condition to support detecting if the cursor was moved.
    CursorMoving
  • Add the option to show a frame highlighting the current screen region selected for a cursor macro condition.
    CursorFrame
  • Show current cursor position.
Fixes:
  • Fix crash on Wayland based Linux systems.
    Note that functionality relying on information provided X window manager (e.g. current foreground window) might not be functional on these systems.
Top