Advanced Scene Switcher

Advanced Scene Switcher 1.28.1

Warmuptill

Active Member
I happened to get a bug when it comes to importing/exporting. I'm not really sure which adv-ss version I had (might be 1.20 or 1.21 or something), but I updated to 1.22.1. When it prompted to backup settings, I did. However, now all duration (seconds) in conditions and actions became 0. I only checked the wait actions and "time remaining shorter" condition (I have yet to completely evaluate the scope of the damage to my setup) and both have the issue, so it does seem like this is not an action/condition specific issue.

I included an old backup file of mine, and the new backup file that has all seconds set to 0. Here's also the log file even though it might not help as there's a lot of things I did here before I noticed the issue. https://obsproject.com/logs/45C3IUc8qAjOLnlL
Sorry if the answer to the questions is obvious or I am mixing something up here, but did you perform a downgrade accidentally?
The export form today seems to be using version 1.20.5 but the one from May 15th is already using 1.22.0.

The settings only ever support upgrading the version.
Information might be lost when downgrading.

For "scene item visibility" action, can you please allow selecting a scene item by index (and as a variable), not by name? I have a scene containing all my videos, and I intend to play them sequentially (not necessarily one after the other, and may entail moving to other scenes). I want to be able to first show the first scene item. Once it finishes, I want to be able to show the second scene item and hiding the first scene item. While I haven't fiddled with variables that much yet, I think incrementing the index should be easy. Thanks!
I will look into it - thanks for the suggestion!
 

CodeYan

Member
Sorry if the answer to the questions is obvious or I am mixing something up here, but did you perform a downgrade accidentally?
Now I'm not sure. I did the old backup when I was copying settings over to a different PC, which had updated adv-ss. So it's possible that when I backed it up there, i copied the backup to my laptop, and I do remember having a thought like that so it's possible. But I don't edit filenames so you may be completely right. Thanks!
 

Bairespm

Member
For "scene item visibility" action, can you please allow selecting a scene item by index (and as a variable), not by name? I have a scene containing all my videos, and I intend to play them sequentially (not necessarily one after the other, and may entail moving to other scenes). I want to be able to first show the first scene item. Once it finishes, I want to be able to show the second scene item and hiding the first scene item. While I haven't fiddled with variables that much yet, I think incrementing the index should be easy. Thanks!
I definitely need this. I hope I'm not wrong but it's similar to what happens to me. my macro is similar. if scene is "standby" and previous scene is "commercials " display source "Countdown" otherwise don't display source "Countdown" I did something like this I achieved it with conditions "If previous scene is xxx and current scene is 000 then change visibility of element in scene.

this is very simple and doesn't work well as it takes adv-ss to react to it. and that causes the changes to be delayed.

I hope you find a way to do it with variables. I look forward to this
@CodeYan @Warmuptill
thank you
 

Bairespm

Member
Yo @Warmuptill
I looked for a way to do this but I couldn't
One question, can this be done in a single dock...? make it a toggle button

1686161834579.png

1686161500265.png

1686161584648.png

1686162347658.png

I can't find the toggle function here

thanks for you help.
 

Attachments

  • 1686161367041.png
    1686161367041.png
    50.6 KB · Views: 13
Last edited:

AaronD

Active Member
I looked for a way to do this but I couldn't
One question, can this be done in a single dock...? make it a toggle button

View attachment 94846
View attachment 94844
View attachment 94845
View attachment 94847
I can't find the toggle function here

thanks for you help.
You might do it with 3 macros, but yes, a toggle action would be much more convenient:
1686163791921.png

1686163810712.png

1686163825734.png

You might have to play with the "parallel" option, or perhaps use slightly different logic, to avoid having both the Enable and Disable actions run at the same time, in which case it probably *won't* do what you want. But I think you get the idea.



That said though, my experience in industrial controls, where a touchscreen button could easily control a motor the size of a house, says that toggle controls should be avoided if at all possible. Always use separate on and off buttons if you can, so that you know exactly what you're doing at all times and don't have to know anything prior to figure that out.

"Knowing nothing, you blindly push that button. You know which button you pushed, but nothing else. Now, based only on the button that you pushed (the button itself, not a label), what state is it in?"
That may seem contrived, but in the heat of the moment, it's surprisingly accurate. You're not reading in the moment, and you're probably not paying a whole lot of attention to the details that are going wrong. All you know is that you want X to be in Y state, and it has to happen NOW! If it already is, and you push a toggle button, you're going to break it even more.
 
Last edited:

Bairespm

Member
You might do it with 3 macros, but yes, a toggle action would be much more convenient:
View attachment 94849
View attachment 94850
View attachment 94851
You might have to play with the "parallel" option, or perhaps use slightly different logic, to avoid having both the Enable and Disable actions run at the same time, in which case it probably *won't* do what you want. But I think you get the idea.



That said though, my experience in industrial controls, where a touchscreen button could easily control a motor the size of a house, says that toggle controls should be avoided if at all possible. Always use separate on and off buttons if you can, so that you know exactly what you're doing at all times and don't have to know anything prior to figure that out.

"Knowing nothing, you blindly push that button. You know which button you pushed, but nothing else. Now, based only on the button that you pushed (the button itself, not a label), what state is it in?"
That may seem contrived, but in the heat of the moment, it's surprisingly accurate. You're not reading in the moment, and you're probably not paying a whole lot of attention to the details that are going wrong. All you know is that you want X to be in Y state, and it has to happen NOW! If it already is, and you push a toggle button, you're going to break it even more.
Thanks for the answer, I understand but imagine doing this for 10 buttons. I would have many macros. It is true what you said sometimes it is better to have the buttons separated although the good thing would be that they change color when you press them, to know if you have already pressed it or not.
@Warmuptill in this case you can make the button change color when pressed once? It is just a suggestion, which in the future can be used for an infinite number of buttons that we can create
 
Last edited:

Bairespm

Member
Thanks for the answer, I understand but imagine doing this for 10 buttons. I would have many macros. It is true what you said sometimes it is better to have the buttons separated although the good thing would be that they change color when you press them, to know if you have already pressed it or not.
@Warmuptill in this case you can make the button change color when pressed once? It is just a suggestion, which in the future can be used for an infinite number of buttons that we can create
or when the button is pressed that changes its name from ON to OFF
 

AaronD

Active Member
Thanks for the answer, I understand but imagine doing this for 10 buttons. I would have many macros. It is true what you said sometimes it is better to have the buttons separated although the good thing would be that they change color when you press them, to know if you have already pressed it or not.
@Warmuptill in this case you can make the button change color when pressed once? It is just a suggestion, which in the future can be used for an infinite number of buttons that we can create
or when the button is pressed that changes its name from ON to OFF
That can all be useful too, but it still gets back to, "You're probably not even looking at colors in a panic. It's all spacial, alone."

And, "Does the label indicate the *present* state? Or *what it will switch to* when I push it?"

Colors do matter at a less-panicked glance, when you're still not actually reading. Then the spacial component gets (mostly) ignored and you *only* have color. So the indication/action problem with labels is also a problem with colors. You certainly want a different color for each state, and it's actually *very* useful to use not only the hue but also the saturation to convey information. Drab colors don't require attention, while bright colors mean something important.

When I left the industry, it was still a debate as to what color scheme to standardize on, with lots of good but conflicting ideas. For example, should you push a red button to stop, and thus have a sea of red buttons? Or should you glance at it from a distance and have a sea of green that is "all okay", which usually means "running"? Same state, different appearance.
 

Bairespm

Member
Todo eso también puede ser útil, pero aún así vuelve a ser: "Probablemente ni siquiera estés mirando los colores con pánico. Todo es espacial, solo".

Y, "¿La etiqueta indica el estado *presente*? ¿O *a qué cambiará* cuando la presione?"

Los colores sí importan a simple vista, cuando todavía no estás leyendo. Luego, el componente espacial se ignora (en su mayoría) y *solo* tiene color. Entonces, el problema de indicación/acción con las etiquetas es también un problema con los colores. Ciertamente desea un color diferente para cada estado, y en realidad es *muy* útil usar no solo el tono sino también la saturación para transmitir información. Los colores monótonos no requieren atención, mientras que los colores brillantes significan algo importante.

Cuando dejé la industria, todavía había un debate sobre qué combinación de colores estandarizar, con muchas ideas buenas pero contradictorias. Por ejemplo, ¿debería presionar un botón rojo para detenerse y, por lo tanto, tener un mar de botones rojos? ¿O debería mirarlo desde la distancia y tener un mar verde que dice "todo bien", que generalmente significa "correr"? Mismo estado, distinta apariencia.
buen punto. entonces la solución está parpadeando
 

AaronD

Active Member
good point. so the solution is flashing
Flashing simply attracts attention. More than a solid bright color does. That's used too, but that's all it does. It doesn't actually mean anything. The meaning still comes from everything else, as above, with a bias towards the brighter color in the alternating pair, and that still has the same problems.

It's a surprisingly difficult problem to solve. You'd think it'd be straightforward, but it's absolutely not!
 

Bairespm

Member
You are definitely right, and thinking about it, toggle only doesn't work, but there is something that shows that it is active or not, when you press it
 

MrGhost

Member
I am Using A MIDI device where I am controlling a Synthesizer via MIDI but would like to have an output text source change (Maybe perhaps using chat log), based on the MIDI CC that I send, Referencing the MIDI implementation for the synth. Whether using a Pattern recognition of the synth's cc implementation in .pdf or .txt file, or an excel spreadsheet I could create (there are some 50 MIDI CCs and I could type it up).

I want to have the plugin here, use the recieved CC to call the pre mapped setting that is being changed on the synth, such as "Square Wave" and then state "on" or "off", written in the OBS Text source, which could work using the chat log option of Text sources.

I figure It would need program to allow using the chat log option in text field. So it would require that there is a chat log used in the Scene Switching plugin.

As an example, I also use the plugin OBS Tuna. Tuna uses the chat log implementation to pull info out of MP3 files in a playlist for instance a VLC playlist. Works well using the Chatlog option in the OBS text source and pointing to the .txt file created by the Tuna plugin. The Tuna plugin created file (in the user folder in Windows) uses chat log (check box in Tuna), so that updates the information. The Information is grabbed from there using the metadata string values such as {artist} that the user wants to see written in the text field. I think it could be done here using a predefined .txt file containing CC. Should work if it could correlate the recieved CC midi, to the premapped CC value in the .txt file, and read the label for that CC and place it in the chatlog. So like where the Tuna plugin reads an MP3 in a playlist in VLC or other music service, this would just read the info in the mapped .txt file... At least that seems like the simplest implementation.
 

AaronD

Active Member
@Warmuptill I thought of something else to add! :-)

How about an MPD client?
I'd use this for a standalone jukebox, that feeds an external audio mixer, the finished output of which comes into OBS as the only audio source.

If you wanted to start with a generic TCP connection, I think I can make that work. According to Wireshark, I think I only need to send these messages:
random "1"
repeat "1"
single "0"
consume "0"

pause "0"

stop
Separate message for each line, all ASCII text. The first 4 are all sent at the same time, shortly after startup, one after another, possibly waiting for a response in between. (it works to rake a finger across the hotkeys in a standalone app) The other two are sent individually at their appropriate times. Each one ends with hex 0A (newline).
 

Tophicles

New Member
I'm confused... I have installed the plugin and it was working a treat, then stopped.

In the logs, I see the condition and the macros returning a value of "1" when the time of day is reached, but the scene switch action in the macro never changes.

1686339454823.png


I don't know what I'm doing wrong, basically, when a time of day is reached, the scene switches. It used to work perfectly, then stopped.
 

Bairespm

Member
MMM. La verdad a mi me ha pasado lo mismo un par de veces, pero cuando lo reinicio vuelve a funcionar normal... es raro... espero que se pueda solucionar
 

Warmuptill

Active Member
Here are my settings, if that helps...

View attachment 94930
Unfortunately it is very difficult to say what is going wrong without having more information.

Can you please enable verbose logging and share a log file where the issue happens?
And a timestamp when the issue happened would also be helpful :)

Just looking at the screenshot I would recommend to disable the "after performing actions skip performing actions for X seconds" by entering 0 seconds.

I am Using A MIDI device where I am controlling a Synthesizer via MIDI but would like to have an output text source change (Maybe perhaps using chat log), based on the MIDI CC that I send, Referencing the MIDI implementation for the synth. Whether using a Pattern recognition of the synth's cc implementation in .pdf or .txt file, or an excel spreadsheet I could create (there are some 50 MIDI CCs and I could type it up).

I want to have the plugin here, use the recieved CC to call the pre mapped setting that is being changed on the synth, such as "Square Wave" and then state "on" or "off", written in the OBS Text source, which could work using the chat log option of Text sources.

I figure It would need program to allow using the chat log option in text field. So it would require that there is a chat log used in the Scene Switching plugin.

As an example, I also use the plugin OBS Tuna. Tuna uses the chat log implementation to pull info out of MP3 files in a playlist for instance a VLC playlist. Works well using the Chatlog option in the OBS text source and pointing to the .txt file created by the Tuna plugin. The Tuna plugin created file (in the user folder in Windows) uses chat log (check box in Tuna), so that updates the information. The Information is grabbed from there using the metadata string values such as {artist} that the user wants to see written in the text field. I think it could be done here using a predefined .txt file containing CC. Should work if it could correlate the recieved CC midi, to the premapped CC value in the .txt file, and read the label for that CC and place it in the chatlog. So like where the Tuna plugin reads an MP3 in a playlist in VLC or other music service, this would just read the info in the mapped .txt file... At least that seems like the simplest implementation.
So if I understand you correctly you want to create a mapping between MIDI control change messages and their textual representation, right?
The textual representation shall then be appended to a text file, correct?

If so you will have to create macros similar to this.
Midi1.PNG


Midi2.PNG


Although it might be easier to set up a script which handles the translation from numbers to strings, which gets called every time the Midi values variable changes.

Let me know if you have questions!

@Warmuptill I thought of something else to add! :-)

How about an MPD client?
I'd use this for a standalone jukebox, that feeds an external audio mixer, the finished output of which comes into OBS as the only audio source.

If you wanted to start with a generic TCP connection, I think I can make that work. According to Wireshark, I think I only need to send these messages:

Separate message for each line, all ASCII text. The first 4 are all sent at the same time, shortly after startup, one after another, possibly waiting for a response in between. (it works to rake a finger across the hotkeys in a standalone app) The other two are sent individually at their appropriate times. Each one ends with hex 0A (newline).

I will add it to the list :)
But I can't promise that I will get around to it soon.

Yo @Warmuptill
I looked for a way to do this but I couldn't
One question, can this be done in a single dock...? make it a toggle button

View attachment 94846
View attachment 94844
View attachment 94845
View attachment 94847
I can't find the toggle function here

thanks for you help.
You can find a build below which adds the following features which might help in this case:
  • Use of variables in the dock settings
  • Option to add status label to the macro docks
  • The option to toggle a filter on / off.

So you could for example set up something similar to this to for a button to toggle the visibility of a given filter on a source.

First two macros which set the value of a variable depending on the status of the filter.
Filter1.PNG
Filter2.PNG


Next a macro which toggles the filter, which will be used as the dock widget.

Filter3.PNG


For this macro specify that you want to use the content of the variable of the first two macros as the text of the run button like so.

Filter4.PNG


This should result in a macro dock widget which displays the current status of a filter widget and allows you to toggle its status.

Filter5.PNG
Filter6.PNG


I hope that helps already.

Combining multiple macro docks into a single combined dock window is something that has been requested previously already.
Unfortunately I did not yet have the time to look into this.
 
Last edited:
Top