Resource icon

Advanced Scene Switcher 1.25.5

Warmuptill

Active Member
It’s called a menu bar on Mac, that’s part of the confusion. I would rather not have the menu bar cluttered. I just assumed “system tray” notifications referred to the windows taskbar system tray and the name was carried over into the Mac version of the plugin. It would be at least helpful for the plug-in to check on system tray being enabled in OBS when adding this action, or a notice text clarifying the option needs to be enabled in OBS itself.
Thanks for reporting the issue and your suggestion!
Adding a note about this limitation on MacOS makes sense.
 

Rozenman

New Member
Hi guys!
Tell me how to understand doubling "Local File"?
Thanks!

StatusIndicator 2024-03-23 08-58-19.png
 

AaronD

Active Member
If you open up the settings of a "Media Source", you will see two "Local File" options.
The first one is the checkbox to decide whether or not a local file is to be used.
The second option is the path to the local file.

View attachment 102794
I can understand if you're pulling the labels from OBS, and not actually coding them directly. But it's still confusing.

Could you perhaps add an indicator for what *type* of control you're pulling from? Maybe prepend a (_), where _ is a single character pulled from a list? ('c' for checkbox, 't' for text, etc., something like that)
So it's still automatic (assuming that it is already), but we don't get *exactly* repeated entries unless OBS itself does, which I would call an OBS problem, not Adv. SS.
 

TRickeyG

New Member
To add (I hate the edit limits here), the 1st workaround is good for quick hotkey presses etc. that need to be considered ASAP and if your actions are sorted in a way that results in stopping the not too important parts.

Queues workaround works well for things that can go slower, like showing new Twitch subscribers in possibly infinitely long separate popups.

Shorter checks work only if the 1st workaround isn't required due to ongoing long actions and will use more CPU as all conditions will execute with higher frequency. Maybe some day separate timers for each macro would be great, I think it wouldn't be too easy to implement, though.
Sorry I just realized that I never followed up. So that added tick box actually solved part of my problem and I was able to create a workaround to solve the remainder and I feel like I should explain in case any of it is helpful.

The main functionality I was shooting for was to be able to read midi input with this plugin and communicate (via hotkey macros for now) to a piece of software I use (SAMMI) that cannot read midi data so I can perform some other logic.

I found that the plugin takes in all midi data without any loss that I personally found but my macro was not activating as frequent as I needed it. I'm guessing this is from the limit on how frequent macros can be checked (mine is set to 10ms) which is fair though I was losing out on this midi macro firing if the midi data came in too quick in succession.

So the work around I made was to make two counter variables, one in advanced scene switcher and one in SAMMI then checking to see if there's a mismatch and then handling it if so.

It's a little wonky but it works!

Edit: typos
 
How do you toggle the audio track on/off without disabling the source entirely? I have some sources that I have audio track 1, 2, and 3 enable. I want to toggle track 1 and 2 on/off, while it still keep playing on track 3
 

Warmuptill

Active Member
I can understand if you're pulling the labels from OBS, and not actually coding them directly. But it's still confusing.

Could you perhaps add an indicator for what *type* of control you're pulling from? Maybe prepend a (_), where _ is a single character pulled from a list? ('c' for checkbox, 't' for text, etc., something like that)
So it's still automatic (assuming that it is already), but we don't get *exactly* repeated entries unless OBS itself does, which I would call an OBS problem, not Adv. SS.
Agreed.
I will add the underlying data type in brackets after the setting's name and in case multiple controls are combined into a "property group" I will add that as a prefix as well.

Capture.PNG


How do you toggle the audio track on/off without disabling the source entirely? I have some sources that I have audio track 1, 2, and 3 enable. I want to toggle track 1 and 2 on/off, while it still keep playing on track 3
That is currently not implemented in the official releases of the plugin.

But a build with the option to enable and disable sources on audio tracks will be available here in a few minutes:
You will have to be logged into GitHub to be able to download it - let me know if that should be an issue.

1711395487643.png


Let me know if you face any issues with this build!
 

Sally S.

New Member
How can we have it create a broadcast (or use a pre existing one) before it runs a live stream?
Or we need to do it manually every time :(
 

AaronD

Active Member
How can we have it create a broadcast (or use a pre existing one) before it runs a live stream?
Or we need to do it manually every time :(
I don't think that's possible. @Warmuptill can give a better answer on that than I can, but it requires the server end to support that too (YouTube, Facebook, Twitch, wherever you stream to), not just Adv. SS. If the server doesn't support doing that automatically, then it must be manual. I remember when YouTube had a much better remote control API than it does now, and they killed it to get rid of spambots...

What you might do though, is not create a separate broadcast every time, but reuse the default one. That's what I do. You lose the automatic announcement to your audience that you're going to stream at <this time>, but my audience knows the schedule anyway and doesn't need that.

I also stream about 15 minutes of "leader" before the actual start time as I see it, just for people to find it and see that their end works. Some sort of changing graphic that includes the actual start time, and some sort of sound. And about 10 minutes of "trailer" (silent still image), to let them leave on their own before getting kicked off.

Anyway, I just start throwing data at it, and the stream starts. Stop the data, and YouTube times out and resets, ready for the next one. Easy as that. Same key. And I do use the stream key; OBS is *not* logged into my account.
 
Last edited:

Default_User

New Member
Hello there,

First of all thank you Warmuptill for making this very helpfull plugin.

I have a question regarding the random timer.

Is there any way to make it more.. random. My issue is that i have several macros, many of which run in the same random timer span which in return makes them run in sync.

Example: If i have 5 timers running in random timer duration from 0.00 seconds - 1.0 hour, they will all randomize the same and sync up. I would like them to not sync up and be truly random.

I hope it makes sense :-)

I havent found any reasonable workaround yet. I know i can use a seperate macro with the "reset timer" but doing that comes with quite a hazzle with so many macros, unless im overlooking soemthing.

Once again, hank you for the plugin Warmuptill
 

Lawrence_SoCal

Active Member
How can we have it create a broadcast (or use a pre existing one) before it runs a live stream?
Or we need to do it manually every time :(
That depends entirely on the streaming service you use, as each has service (ex YT, FB, Twitch, etc) has its own process (other than relatively standard input streaming protocols, and even there they differed on preferred values/settings) there is NOTHING standard across free consumer 'broadcast' services. Then it depends on things like
- did you pre-schedule the video 'broadcast'? or is this 'ad-hoc'?
- or you going low-security route with persistent stream key?
- etc
Personally, all of my streams are pre-scheduled. And I change a handful of settings/values with each stream, though there probably over 100+ values I could be adjusting (from streaming services 'broadcast' setup portal). And those stream settings options have changed significantly over time

some people go simple... ad-hoc, same settings, no description, etc for every broadcast. Others are far more sophisticated. And that is ALL controlled at streaming service, and has nothing to do with stream being sent (there is no standard H.264/H.265/AV1 metadata for streaming services to grab such broadcast settings from). So, you have to set all of those stream details at streaming service, or the service has to have an flushed out API with all typical settings available (if API isn't complete, reliable, secure, etc, it will get ignored... see above comment on stream settings changing significantly over time). And then publish/advertise so that software developers (OBS Studio, 3rd party plugin authors like this ADvSS by the amazing @Warmuptill, or other streaming related software) will support those APIs.

All of this to say, that is not a simple question. it actually gets complicated rather quickly, and this being the free, open-source world doesn't help. Especially when it comes to 'free' streaming services.

So, when considering that stream settings aren't static, and change rates vary by streaming service, and some manual input typically required regardless (stream title), whether one enters that in streaming service portal, or within streaming software, doesn't make that much difference. I see where it would be convenient... but I also see why streaming services have focused their efforts elsewhere for the time being.
 

RandomNerd

New Member
Is it possible for this plugin to see when a given device (for my case, my controller) is connected to my PC? Had the idea for a gamepadviewer source to to be visible only while my controller is connected, so that I don't have to automatically toggle the source when I'm using it
 

AaronD

Active Member
Is it possible for this plugin to see when a given device (for my case, my controller) is connected to my PC? Had the idea for a gamepadviewer source to to be visible only while my controller is connected, so that I don't have to automatically toggle the source when I'm using it
If you're on Linux, then you might use the lsusb command, with appropriate arguments, in the Process condition of Adv. SS. man lsusb in a terminal to figure out what those arguments should be. Arrange it so it returns success or failure depending on whether that specific USB device is present, and Adv. SS can use that return code to run a macro.

If you're on Mac, it might be similar. Not quite the same, but close as I understand things.

If you're on Windows, it's probably quite different. Might need to download a sketchy third-party utility.
 

RandomNerd

New Member
If you're on Linux, then you might use the lsusb command, with appropriate arguments, in the Process condition of Adv. SS. man lsusb in a terminal to figure out what those arguments should be. Arrange it so it returns success or failure depending on whether that specific USB device is present, and Adv. SS can use that return code to run a macro.

If you're on Mac, it might be similar. Not quite the same, but close as I understand things.

If you're on Windows, it's probably quite different. Might need to download a sketchy third-party utility.
Windows for me. Since (I think) this plugin doesn't have 'device' or something like it in its list of conditions, I'm guessing the next easiest way would be to have some program that detects it, and writes the status to a file, and then have that file's contents be the macro condition?
 

AaronD

Active Member
...have some program that detects it, and writes the status to a file, and then have that file's contents be the macro condition?
That's another possibility. It's a lot of disk thrashing in theory, but since no modern system writes to disk immediately, it's probably fine. You're just changing some bits in RAM that the system treats as if it were a file on disk. And its physical update to disk is simply included in whatever else the system does with the disk *anyway*.

(That's pretty much THE reason why you need to tell it to shut down and not just kill power: the shutdown procedure fixes up all of the "eventual consistency" stuff, one layer at a time with many layers. Same for removing external storage: the explicit eject function fixes it up so it actually *is* how you think it is.)
 

RandomNerd

New Member
That's another possibility. It's a lot of disk thrashing in theory, but since no modern system writes to disk immediately, it's probably fine. You're just changing some bits in RAM that the system treats as if it were a file on disk. And its physical update to disk is simply included in whatever else the system does with the disk *anyway*.

(That's pretty much THE reason why you need to tell it to shut down and not just kill power: the shutdown procedure fixes up all of the "eventual consistency" stuff, one layer at a time with many layers. Same for removing external storage: the explicit eject function fixes it up so it actually *is* how you think it is.)
Appreciate the help, ended up finding an even more elegant solution--a gamepad viewer thing that can be configured to show nothing while no inputs are being pressed, allowing me to leave the source visible at all times with no issue re a gamepad overlay being visible when not doing anything with a controller. :)
 

Jason McPeak

New Member
I'm running OBS 30.1.1, I noticed that the “ADVANCED SCENE SWITCHER” has quit working. I tried updating it, and it still doesn't work, I tried uninstalling and reinstalling, and it still isn't working, I tried the .deb file and I tried the flatpak. Anyone have any ideas?
 

Warmuptill

Active Member
Hello there,

First of all thank you Warmuptill for making this very helpfull plugin.

I have a question regarding the random timer.

Is there any way to make it more.. random. My issue is that i have several macros, many of which run in the same random timer span which in return makes them run in sync.

Example: If i have 5 timers running in random timer duration from 0.00 seconds - 1.0 hour, they will all randomize the same and sync up. I would like them to not sync up and be truly random.

I hope it makes sense :-)

I havent found any reasonable workaround yet. I know i can use a seperate macro with the "reset timer" but doing that comes with quite a hazzle with so many macros, unless im overlooking soemthing.

Once again, hank you for the plugin Warmuptill
Good find!
That is a bug and was not intended to be the case.

A build with a fix will be available here in a few minutes:
You will have to be logged into GitHub to be able to download it.
Let me know if that should be an issue and I try to share it with you via other means!

I'm running OBS 30.1.1, I noticed that the “ADVANCED SCENE SWITCHER” has quit working. I tried updating it, and it still doesn't work, I tried uninstalling and reinstalling, and it still isn't working, I tried the .deb file and I tried the flatpak. Anyone have any ideas?
Sorry about that!
Unfortunately, I need a bit more information:

Which OS are you using?
What exactly is not working?
Does the plugin not function any more or is it not showing up in OBS at all?

In case of the former can you please provide more information about what you have set up?
In case of the latter can you please share on OBS log (with the plugin installed)?
 

kapout

New Member
Hello,
Sorry for the question but i can't see "Advanced Scene Switcher" in my OSB. (I'm on Mac OS Monterey 12.6)

I try to install the package with the auto installer, and by in hand. In the two case it's in the same and correct folder.
When i launch OBS i can't see it in the tool menu.

I try the terminal command but it's not working. Thanks if you have some ideas... i really need the plugin for my stream.
 

Warmuptill

Active Member
Hello,
Sorry for the question but i can't see "Advanced Scene Switcher" in my OSB. (I'm on Mac OS Monterey 12.6)

I try to install the package with the auto installer, and by in hand. In the two case it's in the same and correct folder.
When i launch OBS i can't see it in the tool menu.

I try the terminal command but it's not working. Thanks if you have some ideas... i really need the plugin for my stream.
Can you please share on OBS log?
This might give an indication what the issue is.
 
Top