Advanced Scene Switcher

Advanced Scene Switcher 1.32.9

HI! I installed thru apt in Mint 22.3 but when i open obs it fails to load libadvanced-scene-switcher.so and advanced-scene-switcher-lib.so, says to update or remove them. When i navigate to that particular location i don't see these .so either. i did first try to install by the .deb, but obs wouldn't open so i purged thru apt

Code:
14:27:24.034: Skipping module '/usr//lib/x86_64-linux-gnu/obs-plugins/advanced-scene-switcher-lib.so' due to possible import conflicts
14:27:24.040: Failed to load 'en-US' text for module: 'decklink-captions.so'
14:27:24.047: Failed to load 'en-US' text for module: 'decklink-output-ui.so'
14:27:24.054: A DeckLink iterator could not be created.  The DeckLink drivers may not be installed
14:27:24.054: Failed to initialize module 'decklink.so'
14:27:24.108: Skipping module '/usr//lib/x86_64-linux-gnu/obs-plugins/libadvanced-scene-switcher.so' due to possible import conflicts
14:27:24.146: [pipewire] No captures available
14:27:24.237: VAAPI: API version 1.22
14:27:24.244: FFmpeg VAAPI H264 encoding supported
14:27:24.259: FFmpeg VAAPI HEVC encoding supported
14:27:24.292: [obs-websocket] [obs_module_load] you can haz websockets (Version: 5.3.4 | RPC Version: 1)
14:27:24.292: [obs-websocket] [obs_module_load] Qt version (compile-time): 6.4.2 | Qt version (run-time): 6.4.2
14:27:24.292: [obs-websocket] [obs_module_load] Linked ASIO Version: 102801
14:27:24.295: [obs-websocket] [obs_module_load] Module loaded.
14:27:24.326: [vlc-video]: VLC 3.0.20 Vetinari found, VLC video source enabled
14:27:24.334: Failed to load 'en-GB' text for module: 'linux-pipewire-audio.so'
14:27:24.334: ---------------------------------
14:27:24.334:   Loaded Modules:
14:27:24.334:     linux-pipewire-audio.so
14:27:24.334:     vlc-video.so
14:27:24.334:     text-freetype2.so
14:27:24.334:     rtmp-services.so
14:27:24.334:     obs-x264.so
14:27:24.334:     obs-websocket.so
14:27:24.334:     obs-transitions.so
14:27:24.334:     obs-outputs.so
14:27:24.334:     obs-filters.so
14:27:24.334:     obs-ffmpeg.so
14:27:24.334:     linux-v4l2.so
14:27:24.334:     linux-pulseaudio.so
14:27:24.334:     linux-pipewire.so
14:27:24.334:     linux-jack.so
14:27:24.334:     linux-capture.so
14:27:24.334:     linux-alsa.so
14:27:24.334:     image-source.so
14:27:24.334:     frontend-tools.so
14:27:24.334:     decklink-output-ui.so
14:27:24.334:     decklink-captions.so
14:27:24.334: ---------------------------------
14:27:24.334: QWidget::setTabOrder: 'first' and 'second' must be in the same window
14:27:24.334: ==== Startup complete ===============================================
14:27:24.380: All scene data cleared
......
The deb file in the releases section is built for Ubuntu 24.
Unfortunately, I am not sure if that is compatible with Mint 22.3.

If it is not compatible your options are:
 
Mint 22 is Ubuntu 24 based, how would you troubleshoot this for Noble? When I installed the .deb originally OBS just refused to open
 
Mint 22 is Ubuntu 24 based, how would you troubleshoot this for Noble? When I installed the .deb originally OBS just refused to open
Which version of OBS are you using?

Can you give this test build a try?
Note that you will have to be logged into a GitHub account to be able to download the build at the bottom of the page.
 
As with the Master release, the artifact causes OBS to hang and fail on start. OBS in the noble release stream is 30.0.2+dfsg-3build1, i'm also seeing 30.2.3+dfsg-1~bpo24.04.1 available in backports. And I'm seeing your plugin supports 31.1.1 minimum... sorry to have bothered you about that. Going back I grabbed 1.27.2 but get "dependancy not satisfiable: libopencv-core4.5d (>= 4.5.4+dfsg)"
I suppose later I'll try to grab 30.2.3 and see if your July 2025 release works for now.. and head upstream to request updates, as even 25.10 is using obs-studio 30.2.3+dfsg-3
 
As with the Master release, the artifact causes OBS to hang and fail on start. OBS in the noble release stream is 30.0.2+dfsg-3build1, i'm also seeing 30.2.3+dfsg-1~bpo24.04.1 available in backports. And I'm seeing your plugin supports 31.1.1 minimum... sorry to have bothered you about that. Going back I grabbed 1.27.2 but get "dependancy not satisfiable: libopencv-core4.5d (>= 4.5.4+dfsg)"
I suppose later I'll try to grab 30.2.3 and see if your July 2025 release works for now.. and head upstream to request updates, as even 25.10 is using obs-studio 30.2.3+dfsg-3
Thanks for the update!

Yeah the dependencies can be quite a mess on the different Linux distros, unfortunately :(
If you want to give compiling it yourself a try don't hesitate to reach out and I can try to guide you through it.
 
Hello, I've been trying to update a text and image based on a text file, but I feel like I'm overcomplicating things by creating too much macros for a simple thing

Some basic context :
It's a tournament, I need to display 2 names (player 1 and player2), 2 flags (one for each player) and another text (their "seed" in the tournament). I have 2 text files where I put the name of the players competing, and it updates the player name automatically.
Now, I also need to update the flag and the seed, based on the players.

1772978260486.png

1772978318379.png

Now as you can see, creating 2 macros for each player is not what I would call efficient, but I'm not an expert scripter so I haven't been able to find an easy solution (maybe by having some kind of array with each player being linked with a flag and seed, stored in a JSON), but I can't find a way to make it work. I wanted to do a "java switch - case" thing in 1 or 2 macros but I don't think I can.
If anyone knows a simple script or can provide a simple template to make this without needing 50 macros it would be greatly appreciated.
Thanks !
 
Hello, I've been trying to update a text and image based on a text file, but I feel like I'm overcomplicating things by creating too much macros for a simple thing

Some basic context :
It's a tournament, I need to display 2 names (player 1 and player2), 2 flags (one for each player) and another text (their "seed" in the tournament). I have 2 text files where I put the name of the players competing, and it updates the player name automatically.
Now, I also need to update the flag and the seed, based on the players.

View attachment 118654
View attachment 118656
Now as you can see, creating 2 macros for each player is not what I would call efficient, but I'm not an expert scripter so I haven't been able to find an easy solution (maybe by having some kind of array with each player being linked with a flag and seed, stored in a JSON), but I can't find a way to make it work. I wanted to do a "java switch - case" thing in 1 or 2 macros but I don't think I can.
If anyone knows a simple script or can provide a simple template to make this without needing 50 macros it would be greatly appreciated.
Thanks !
You might be able to simplify your setup by introducing variables.

If you are using the same set of actions in every macro this section about enabling "inputs" for macros might also be of interest:

Regarding the "switch case":
  • You could set up a central variable containing a JSON string containing a map of the data you need.
    So something like this (AI generated example data):
    Code:
    {  "players": {
        "P001": {
          "player_name": "Aria Stormwind",
          "icon_path": "assets/icons/players/aria_stormwind.png"
        },
        "P002": {
          "player_name": "Marcus Ironfist",
          "icon_path": "assets/icons/players/marcus_ironfist.png"
        },
        "P003": {
          "player_name": "Luna Shadowveil",
          "icon_path": "assets/icons/players/luna_shadowveil.png"
        },
        "P004": {
          "player_name": "Tobias Runemark",
          "icon_path": "assets/icons/players/tobias_runemark.png"
        },
        "P005": {
          "player_name": "Seraphine Coldwater",
          "icon_path": "assets/icons/players/seraphine_coldwater.png"
        }
      }
    }

    In that case you can use a string of actions similar to the following to extract the value(s) you need:
    1772999268968.png
  • You could just use the "Script" action to use Python or LUA to implement your map.
I hope this helps! :)
Don't hesitate to reach out with follow-up questions!
 
Sorry if I'm missing something obvious, but is it possible to save the current audio level of a given source as a variable?

I had an idea of possibly fading out an audio input when switching to a certain scene, but then put it back to where it was when going to another scene.

In theory, it'd be:
  • On mic volume change (for example) --> Save number to "variable".
  • Switching to break scene (for example) --> Set audio level to 0.
  • Switching off of break scene --> Set audio level to "variable".

Right now, I could hard code the number, like Audio to -inf --> -10db on switch. But if there had been leveling adjustments throughout the course of the stream, it'd be nice to be able to not have to readjust every time when coming back.

Or am I approaching all of this in the wrong way?
 
Sorry if I'm missing something obvious, but is it possible to save the current audio level of a given source as a variable?

I had an idea of possibly fading out an audio input when switching to a certain scene, but then put it back to where it was when going to another scene.

In theory, it'd be:
  • On mic volume change (for example) --> Save number to "variable".
  • Switching to break scene (for example) --> Set audio level to 0.
  • Switching off of break scene --> Set audio level to "variable".

Right now, I could hard code the number, like Audio to -inf --> -10db on switch. But if there had been leveling adjustments throughout the course of the stream, it'd be nice to be able to not have to readjust every time when coming back.

Or am I approaching all of this in the wrong way?
You can use a macro somewhat similar to this to save the configured volume level of a source in "dB" to a variable:
1773434404075.png


To set / restore the volume you can then use the audio action:
1773434449440.png


Just make sure to also use "dB" as the unit here.

Hope that helps!
 
Sorry. I'm back with something else. Is anyone else getting dropdown menus out of place?

For example, here, these "If" and "Configured volume level" dropdowns are fine. But if you click either the "Audio" or "--select source--" in the middle, the location of the dropdown menu ends up anchored to the right side of the screen as shown here.

Screenshot 2026-03-13 020542.png


This happens across any number of macro screens. Resizing the window will fix some of them. But it often just shifts which dropdown menus start acting funny.

Has anyone else else experienced this? I'm on Windows 11 with the latest update. Scene Switcher 1.32.8.

Edit: It seems to be happening when you have multiple monitors connected.
 
Last edited:
Sorry. I'm back with something else. Is anyone else getting dropdown menus out of place?

For example, here, these "If" and "Configured volume level" dropdowns are fine. But if you click either the "Audio" or "--select source--" in the middle, the location of the dropdown menu ends up anchored to the right side of the screen as shown here.

View attachment 118759

This happens across any number of macro screens. Resizing the window will fix some of them. But it often just shifts which dropdown menus start acting funny.

Has anyone else else experienced this? I'm on Windows 11 with the latest update. Scene Switcher 1.32.8.

Edit: It seems to be happening when you have multiple monitors connected.
I haven't heard about any such issues yet.
I will try to look into it.
Thanks for letting me know about it!
 
It's me again. lol

Related to the above, I've successfully crafted it so that the music will fade back and forth. But am I doing this in the most efficient way? I have multiple VLC music playlists depending on the game I'm playing/what I'm doing on stream. I could maybe just switch which lone playlist applies in the macro, or I could include all of them in the list like this:
Screenshot 2026-03-16 222912.png


But if the playlists are in a group, is there a way to tell the macro to apply it to "everything in the 'Waiting Music' group" for instance? I don't know if a large list like this is more taxing on the plugin than it needs to be.
 

Warmuptill
Tx for the help!
I've got it working. Not quite as you had it but the WAIT action was the key.
Moving what were separate scene overlays into the scene I wanted automated and not having a Duration set on the IF, but instead using the WAIT action was the key.

Also found out the it doesn't work Studio mode.​

 
It's me again. lol

Related to the above, I've successfully crafted it so that the music will fade back and forth. But am I doing this in the most efficient way? I have multiple VLC music playlists depending on the game I'm playing/what I'm doing on stream. I could maybe just switch which lone playlist applies in the macro, or I could include all of them in the list like this:
View attachment 118775

But if the playlists are in a group, is there a way to tell the macro to apply it to "everything in the 'Waiting Music' group" for instance? I don't know if a large list like this is more taxing on the plugin than it needs to be.
I would say what you have right now is fine.
I don't think you need to worry about performance / efficiency too much here.

The condition checks you are using and volume changes are relatively "cheap" computationally. (At least compared to video processing :D)
 
Back
Top