Advanced Scene Switcher

Advanced Scene Switcher 1.28.1

FoxKeegan

New Member
Glad to hear that you found a solution!
Well, actually that didn't work like I expected it to. Still figuring out why.
Just to clarify regarding "pausing doesn't stop the timer":
You are referring to pausing the *macro* itself and not the "Timer" action to pause another timer, right?View attachment 82558
If the latter does not work that would be a bug.
Correct. I was pausing the macro. Thank you for showing me I can also pause the timer.
Unfortunately using the---oh. I was using "Reset Counter". Ha. I bet it'd reset the timer if I actually told it to reset the timer. :) I'll test this in an hour
Do makes sense still to add an option to the date condition which allows you to toggle the automatic overwriting of the selected date on repeat?
If so I would see if I can try to implement something similar to this:
View attachment 82559
Yes, that'd be a much better solution, provided I understand what it does correctly. If you unchecked that box you underlined, would it continue to fire off every 60 minutes, but not change 20:00:00? Cuz that'd be great.
 

Warmuptill

Active Member
Yes, that'd be a much better solution, provided I understand what it does correctly. If you unchecked that box you underlined, would it continue to fire off every 60 minutes, but not change 20:00:00? Cuz that'd be great.
Your understanding is correct.
I implemented this feature in the following build:
Note that you have to be logged into GitHub to be able to download it - let me know if that should be an issue.
 

MikeVF

New Member
Hoping someone might be able to help with an issue I'm experiencing. I created a simple macro to switch scenes after completing a VLC playlist. The first time through everything works as expected. But if I revisit the scene the playlist loops and the scene doesn't change. I can work around the problem by restarting OBS (everything starts working as expected again). Wondering if I'm doing something silly or if there's an issue with the Ended(Playlist) logic.
1650037524321.png

Also when the transition macro does work the last second of audio is clipped. More concerned about the first issue and it makes everything less reliable. Thoughts? Thanks -Mike
 

Warmuptill

Active Member
But if I revisit the scene the playlist loops and the scene doesn't change.
Is the playlist explicitly configured to be looping or is this not intentional?

The way "Ended(Playlist)" works is that it checks whether or not the specified media source is in the "ended" state multiple consecutive times in a row. (As to not be triggered when an individual playlist item ends).
So if the playlist is looping continuously it is to be expected that the condition is never true as the playlist never "ends".
 

MikeVF

New Member
Is the playlist explicitly configured to be looping or is this not intentional?

The way "Ended(Playlist)" works is that it checks whether or not the specified media source is in the "ended" state multiple consecutive times in a row. (As to not be triggered when an individual playlist item ends).
So if the playlist is looping continuously it is to be expected that the condition is never true as the playlist never "ends".
My playlist is not configured to loop and the looping is undesired. I've found a fix/work around. I was using an xspf file for the playlist in the VLC Video Source. Problem I described is a 100% repro case (see XML below). To work around the issue I manually added each video to VLC Video Source playlist in OBS and discontinued using the XSPF file. This works as expected. My takeaway is that xspf playlists are not fully supported by the Ended(playlist) function. Thanks -Mike

Example problematic xspf (with just one video) used for testing:

<?xml version="1.0" encoding="UTF-8"?>
<playlist xmlns="http://xspf.org/ns/0/" xmlns:vlc="http://www.videolan.org/vlc/playlist/ns/0/" version="1">
<title>Playlist</title>
<trackList>
<track>
<location>file:///C:/Users/mikev/OneDrive/Videos/SDB/SDB%20Promo%20Video_AME/Seattle%20promo%20short%20doc%20edit%204.mp4</location>
<duration>308309</duration>
<extension application="http://www.videolan.org/vlc/playlist/0">
<vlc:id>0</vlc:id>
</extension>
</track>
</trackList>
<extension application="http://www.videolan.org/vlc/playlist/0">
<vlc:item tid="0"/>
</extension>
</playlist>
 
I have an issue where I accidentally ran OBS Studio Music Edition without the plugin, which did two things:

1. Destroyed all my cues. That was easy to fix; I'd already backed them up, so I restored them.
2. The one I -REALLY- need help with, the menu tabs got thrashed a bit, only a subset is showing. as evidenced by the picture below.

Uh... help?

Thanks in advance!

--Katt. =^.^=

obs64_w6CQlyZUj1.png
 
I have an issue where I accidentally ran OBS Studio Music Edition without the plugin, which did two things:

1. Destroyed all my cues. That was easy to fix; I'd already backed them up, so I restored them.
2. The one I -REALLY- need help with, the menu tabs got thrashed a bit, only a subset is showing. as evidenced by the picture below.

Uh... help?

Thanks in advance!

--Katt. =^.^=

(Picture removed for brevity's sake)

UPDATE: I managed to fix my issue by using a backup copy of my scenes config, thanks to Exceldro's Scene Collection Manager plugin. I managed to restore functionality to the point where I can use the plugin's dialog again.

--Katt. =^.^=
 

Warmuptill

Active Member
UPDATE: I managed to fix my issue by using a backup copy of my scenes config, thanks to Exceldro's Scene Collection Manager plugin. I managed to restore functionality to the point where I can use the plugin's dialog again.

--Katt. =^.^=
Just in case you are wondering which option caused this UI change:
In the lower left corner of the General tab there is an option to "Hide tabs which can be represented via macros", which is set by default in the recent version.
 

132nd.Fudd

New Member
I love this plugin, but there is one condition I feel is missing. I use a separate scene-collection per thing I'm streaming, and I'd like to run a condition that checks if a particular scene-collection is active. This way, macros can properly auto-start and know what scenes are available.

As an example, I sometimes stream my 3D printer. I have a scene for general prints, and I have scenes for specific cosplay projects I'm working on. The general scene switches between two web-sources (printer dashboard and webcam), while the project-specific scenes also have a slideshow of stills from the movie or series that the cosplay is from.

With the above suggestion, I could hit "Stream now" and the macro would know whether to include the slideshow-scene or not, depending on what scene-collection is active.
 

Warmuptill

Active Member
I love this plugin, but there is one condition I feel is missing. I use a separate scene-collection per thing I'm streaming, and I'd like to run a condition that checks if a particular scene-collection is active. This way, macros can properly auto-start and know what scenes are available.

As an example, I sometimes stream my 3D printer. I have a scene for general prints, and I have scenes for specific cosplay projects I'm working on. The general scene switches between two web-sources (printer dashboard and webcam), while the project-specific scenes also have a slideshow of stills from the movie or series that the cosplay is from.

With the above suggestion, I could hit "Stream now" and the macro would know whether to include the slideshow-scene or not, depending on what scene-collection is active.
The plugin's settings are saved as part of the scene collection data.
So each macro you create will only apply to one particular scene collection, which should already allow you to achieve what you are looking for.

Please let me know if I am missing something / am misunderstanding your request.
 
Just in case you are wondering which option caused this UI change:
In the lower left corner of the General tab there is an option to "Hide tabs which can be represented via macros", which is set by default in the recent version.

Ah, I see that now. Just played with the checkbox just now. It yielded me that very interface appearance I screenshot for my post. Thanks for the clarification!

--Katt. =^.^=
 

AaronD

Active Member
Just in case you are wondering which option caused this UI change:
In the lower left corner of the General tab there is an option to "Hide tabs which can be represented via macros", which is set by default in the recent version.
Does this mean that you're slowly "reducing" the UI to macros only? That could be good.
 

booj

New Member
Here's the issue I have -- I have a base canvas size for Scene 1 at 10240x2880. This is two monitors side by side. When I want to switch to just the left monitor I have a scene setup for this... but the issue is the base canvas size is still at 10240x2880 so I have a large blank/black area to the right.
 

AaronD

Active Member
Here's the issue I have -- I have a base canvas size for Scene 1 at 10240x2880. This is two monitors side by side. When I want to switch to just the left monitor I have a scene setup for this... but the issue is the base canvas size is still at 10240x2880 so I have a large blank/black area to the right.
That sounds to me like expected behavior: a constant-size canvas. Are you trying to re-size the video mid-stream? Switch from 3D stereo video to 2D? What are you trying to do?
 

khaver

Member
So you have 2 5120x2880 monitors side by side with GPU set so they act as one display, and you want to show 1 side at a time in OBS? Make your base canvas 5120x2880 and in 1 scene move the display source to the left so only the right side is shown, and in the other scene move it to the right so the left side is showing. Now you can switch between those 2 scenes.

If the monitors are set as separate displays, just have 2 scenes, one with a display capture of one display, and the other scene with a display capture of the other display.
 

BenAndo

Member
Just curious, what was the answer? Maybe there's a better one, or at least someone else can get it from you, via a google search, instead of beating their head against a wall.
I figured out how to run a PowerShell command from the Run function for a macro.

Select Run as the action. Paste in or browse to C:/WINDOWS/System32/WindowsPowerShell/v1.0/powershell.exe
Add the following as an argument, modifying it to match your file path and name: powershell.exe -executionpolicy bypass -File C:\Users\User\Desktop\command.ps
Ensure the argument doesn't have any spaces in the file path, e.g. Users/My User/ will not work. If your user has a space in it then put it somewhere else, e.g. C:\
 

BenAndo

Member
If anyone is interested I managed to get this plugin to send an email as the action of a macro. Possible use cases would be broad, such as sending an email if the computer is dropping frames or bitrate, some sort of an error or you started streaming and you want to notify someone. My use case is if an audio device is below a certain level for a period of time then send an email.

This works in Windows but could probably be used to work in Mac and Linux if you use Powershell 7.
1. Open Windows Powershell ISE or Notepad and paste in the following code, modifying from/to email, email password and smtp server & port to suit your needs
$secpasswd = ConvertTo-SecureString "emailpassword" -AsPlainText -Force $cred = New-Object System.Management.Automation.PSCredential ("fromemail@gmail.com", $secpasswd) Send-MailMessage -SmtpServer smtp.gmail.com -Credential $cred -UseSsl -Port 587 -From 'fromemail@gmail.com' -To 'toemail@gmail.com' -Subject 'Audio device disconnected' -Body 'Check audio is connected on audio recording server'

If you use Gmail ensure you've created an App password and use that as the password, otherwise it will not work as you can no longer disable less-secure apps.

2. Save the file as whatever.ps1

3. In OBS select Run as the macro action and paste in or browse to C:/WINDOWS/System32/WindowsPowerShell/v1.0/powershell.exe

4. Add the following as an argument, modifying it to match your file path and name: powershell.exe -executionpolicy bypass -File C:\Users\User\Desktop\whatever.ps
If you don't want to use -executionpolicy bypass then first run Powershell as Administrator and enter in Set-ExecutionPolicy -ExecutionPolicy Unrestricted

1650591587097.png


To the developer, having a native way to send emails could be cool.
 

ElitePrezes

New Member
Hi,
For a long time I was wondering how I can set my streams to turn on by themselves without my interference.
For example, to have the stream come on at 3 p.m. while I'm still at work.
It is true that I found the answer to this (Advanced Scene Switcher Plugin)
And okay, many people praise this plug, but I do not know how to set it.
I marked the stream to turn on in a minute, but the stream started a second after the button was pressed.
What am I doing wrong?
In A.S.S. 1.17.15 I have 4 tabs:
General / Macro / Network / Scene group
There are two tables in the macro:
in upper gives: If Streaming For exactly 1 minuts Stream starting
and at the bottom: Streaming> Start streaming
 

ElitePrezes

New Member
Warmuptill submitted a new resource:

Automatic Scene Switching - Switches to specified scenes depending on which window is in focus



Read more about this resource...
Hi,
For a long time I was wondering how I can set my streams to turn on by themselves without my interference.
For example, to have the stream come on at 3 p.m. while I'm still at work.
It is true that I found the answer to this (Advanced Scene Switcher Plugin)
And okay, many people praise this plug, but I do not know how to set it.
I marked the stream to turn on in a minute, but the stream started a second after the button was pressed.
What am I doing wrong?
In A.S.S. 1.17.15 I have 4 tabs:
General / Macro / Network / Scene group
There are two tables in the macro:
in upper gives: If Streaming For exactly 1 minuts Stream starting
and at the bottom: Streaming> Start streaming
 
Top