# OBSosc App [Deleted]



## jshea2 (Sep 23, 2020)

jshea2 submitted a new resource:

Control OBS via OSC with Node.js - Uses Node.js to Control and Listen to OBS via OSC Protocol and obs-websocket plugin



> Go to the Github link for info:
> https://github.com/jshea2/nodeobsosc.git



Read more about this resource...


----------



## ChristianS (Sep 27, 2020)

Sounds nice... but could you explain a little bit what is the purpose ?
(I am an OBS beginner) I know what OSC is, but I cannot figure out a real-life application.


----------



## jshea2 (Oct 10, 2020)

ChristianS said:


> Sounds nice... but could you explain a little bit what is the purpose ?
> (I am an OBS beginner) I know what OSC is, but I cannot figure out a real-life application.


Hey, sorry for the late reply. This is mainly so you wouldn't have to manually change things in OBS, you could automate everything instead. OSC is used a lot in automating or triggering cues for live events.  For example, if you were streaming a show on OBS and you wanted to trigger a Scene from an outside application this allows you to send custom commands for show control. QLab has a GO button, so you would set up what each OSC cue would do, then just hit GO. This is originally made for technical theatre people trying to do virtual productions right now. Also, you could use this with TouchOSC to control scenes from your phone or iPad.


----------



## jshea2 (Oct 10, 2020)

Hey everyone, I made an update to the node.js project that controls and listens to OBS via OSC (Node OBSosc).
v1.1.0 new features include:

Scene Triggering by Name
Toggle Source's Visibility
Change and Automate Opacity, Position, and Scale
Change Transition Type and Duration
QLab 4 and OBS demo example files included with the Node file on Github.








						GitHub - jshea2/OSC-for-OBS: Control and listen to OBS via OSC
					

Control and listen to OBS via OSC. Contribute to jshea2/OSC-for-OBS development by creating an account on GitHub.




					github.com


----------



## ChristianS (Oct 10, 2020)

jshea2 said:


> Hey, sorry for the late reply. This is mainly so you wouldn't have to manually change things in OBS, you could automate everything instead. OSC is used a lot in automating or triggering cues for live events.  For example, if you were streaming a show on OBS and you wanted to trigger a Scene from an outside application this allows you to send custom commands for show control. QLab has a GO button, so you would set up what each OSC cue would do, then just hit GO. This is originally made for technical theatre people trying to do virtual productions right now. Also, you could use this with TouchOSC to control scenes from your phone or iPad.


For example, would this work to switch between two scenes, which sources would be two different cameras, depending on the position of an actor on the stage measured by a sensor ?


----------



## jshea2 (Oct 11, 2020)

ChristianS said:


> For example, would this work to switch between two scenes, which sources would be two different cameras, depending on the position of an actor on the stage measured by a sensor ?


Yeah, that should work. To do this I'd assume you would use an Arduino for the sensor, then take the data and send out an OSC command. 
Another version of that would be having actors with microphones and different camera positions/scenes for a live show and they can trigger scenes when their audio goes past a threshold (kinda like how it switches on Zoom.)
I actually use this for my live show/podcast: https://youtu.be/R0wRct6REew?t=667


----------



## jshea2 (Oct 11, 2020)

jshea2 updated Control OBS via OSC with Node.js with a new update entry:

Control OBS via OSC with Node.js (New Features)



> *Node OBSosc*
> Node.js project that controls and listens to OBS via OSC. Made for live events for triggering and automating cues from an outside application (like QLab)
> 
> *OSC Commands:*
> ...



Read the rest of this update entry...


----------



## jshea2 (Oct 11, 2020)

jshea2 updated Control OBS via OSC with Node.js with a new update entry:

Control OBS via OSC with Node.js



> Node OBSosc
> Node.js project that controls and listens to OBS via OSC. Made for live events for triggering and automating cues from an outside application (like QLab)
> 
> 
> ...



Read the rest of this update entry...


----------



## ChristianS (Oct 11, 2020)

jshea2 said:


> Yeah, that should work. To do this I'd assume you would use an Arduino for the sensor, then take the data and send out an OSC command.
> Another version of that would be having actors with microphones and different camera positions/scenes for a live show and they can trigger scenes when their audio goes past a threshold (kinda like how it switches on Zoom.)
> I actually use this for my live show/podcast: https://youtu.be/R0wRct6REew?t=667


This is remarkably smooth and efficient ! Excellent idea !

Damn, I have too many things to try !


----------



## from1975 (Oct 15, 2020)

Looks like you can do virtual pan plugin with that by simple controlling layer position on scene? Doable?


----------



## jshea2 (Oct 23, 2020)

from1975 said:


> Looks like you can do virtual pan plugin with that by simple controlling layer position on scene? Doable?


Yeah! if you're talking about panning a source left and right on it's 'X' axis via OSC, that is definitely possible. Just use the syntax:
*/[scene_name]/[source_name]/position [x] [y]*

There's an example of translating/animating position in the video and more of an explanation on Github. Hope this helps!


----------



## spiderjjr45 (Dec 1, 2020)

Just fixed a bug with your Visibility. Changed "msg[0]" to "msgArray[2][msgArray[2].length-1] " and changed the === so it compares value and not type (since "1" isn't 1)

(the last osc field "visible 1" doesn't get split off, so you have to grab the last character)

I also had to add bundled command compatability to the osc-js server library. I can send you my files if you want.


----------



## Meierhans (Dec 20, 2020)

> */[scene_name]/[source_name]/position [x] [y]*


So this is not just bool-triggers ramping parameters up and down, but it exposes all the OBS internal parameters realtime directly to OSC?? So I could just send the matching OSC messages from the program of my liking, or twiddle a fader in TouchOSC ???


----------



## jshea2 (Jan 8, 2021)

jshea2 updated Control OBS via OSC with Node.js with a new update entry:

Control OBS via OSC with Node.js Add bookmark



> Node OBSosc
> Node.js project that controls and listens to OBS via OSC. Made for live events for triggering and automating cues from an outside application (like QLab)
> 
> 
> ...



Read the rest of this update entry...


----------



## William Huston (Jan 12, 2021)

OMG! This is so fabulous! Thank you @jshea2!
This is a dream I've been having! I am a PD (Pure Data) hacker, which is similar to Max/MSP, only free.

I really want to control the StreamFX 3D-transform effect (and perhaps other parameters of effects).
This was just playing around... DEMO Video

Unfortunately, even with a MIDI controller, doing some of these moves_ by hand _is difficult, because multiple parameters must be changed simultaneously. Also, controlling by hand produces some choppy moves. 

However it is trivial for something like PD or Max to control multiple parameters simultaneous, at different rates, whatever.

I'm guessing that this is not possible yet, and may require plugins to be OSC controllable, but this looks like a great start.
THANK YOU FOR OSC SUPPORT!!

BH


----------



## EdK (Jan 29, 2021)

Hello jshea2,

I'd love to give this a try.  Not happy with other solutions available like Midikey2key, OBS-Midi plugin, MidiControl.
I'm not comfortable with github nor modifying code as you described.
Could you make installing it easier?  Like creating a install program?

Thanks! Ed


----------



## jshea2 (Jan 30, 2021)

EdK said:


> Hello jshea2,
> 
> I'd love to give this a try.  Not happy with other solutions available like Midikey2key, OBS-Midi plugin, MidiControl.
> I'm not comfortable with github nor modifying code as you described.
> ...


Lol I think the day you posted this is the same day I released exactly what you are describing:
*Node-OBSosc Standalone App*
Available on Windows & Mac








						Release Node-OBSosc App · jshea2/OSC-for-OBS
					

Using Node-OBSosc Requires: obs-websocket   Configure the input fields Successfully "Connect" The window will open a "DevTools" window  Make sure it's on the "Console" tab, not "Elements"   In the ...




					github.com
				



(Still waiting on OBSForum approval for the official post)


----------



## jshea2 (Jan 30, 2021)

jshea2 updated Control OBS via OSC with Node.js with a new update entry:

Node-OBSosc Standalone App Now Available!



> View attachment 66739
> 
> *Node OBSosc
> Download ''*
> ...



Read the rest of this update entry...


----------



## EdK (Feb 1, 2021)

Thanks!  I'll give it a try.


----------



## EdK (Feb 1, 2021)

HI jshea2,
I'm sorry to bother you but I'm a bit confused.  Not quite sure what to download and from where.
I clicked on the link-  Node-OBSosc Standalone App Now Available   and it took me to another page-

*Node OBSosc
Download*
An _Electron_ application that controls and listens to OBS via OSC.
Made for live events for triggering and automating cues from an external application (like QLab) 

I selected Download and it took me to a github page.    I'm not quite sure what to do on that page.
At the bottom of that page under "Assets",  there are a couple zip entries. One for Mac the other for Windows.
I'm on Windows. Is that the one I need?   If so, it shows v1.0.0   but from reading entries in this thread, you're currently on version 1.1.0? 

I'm not a programmer/developer.....just an end-user so much of this is quite foreign to me.

Thanks! Ed



Add bookmark


----------



## EdK (Feb 1, 2021)

HI jshea2,
I think I figured out how to download it.  I just grabbed the Windows zip entry and also installed the websocket for OBS.
I started OBSOSC and received the same window as the example you provided, entered the ip address, etc
In my App, I sent an OSC command to OBS but got the attached Java error.
I'm sure I'm doing something wrong....but perhaps not.
The OSC message I'm trying to send is:     /scene/Scene_2 

BTW- I'm sending the command from a program called MultiPlay.  It's very similar to QLAB but for Windows.

Thanks...Ed


----------



## jshea2 (Feb 4, 2021)

Hmm, it looks like it doesn’t like the syntax how MultiPlay is sending it. Can you share a screenshot of how you input the OSC message/string and values/arguments? Sorry for the delay. I’m a lot more active on my discord server if you want to join the channel: https://discord.gg/FJ79AKPgSk


----------



## jshea2 (Feb 4, 2021)

I downloaded MultiPlay but could find how to send OSC. I did get it to work on Open Sound Control. If MultiPlay makes you send a value or argument try this:


address/string:
/scene

value/argument:
Scene 2

if it makes you do it all in one line try:

/scene, Scene 2


----------



## EdK (Feb 4, 2021)

I checked with Multiplay developer before I posted here. He is sending the OSC command out propertly.  If you join the Multiplay forum  https://da-share.com/forum/index.php   you'll be able to download version 3 of Multiplay.  It's in the Beta Testers sub-forum.  It's still in beta but available to use.   Specifically this sub-forum entry  
https://da-share.com/forum/index.php?topic=74.msg1789#msg1789 

I think the default Multiplay that you looked at was version 2.5.5.0 which doesn't not have OSC support.
Version 3 is still under development and he hasn't updated all the documentation yet but there is lots of information in other sub-forums.

I will try the format you provided  and also setup an account in Discord.

Is there any other software I need on my end?  I just got a new computer about a month ago and I'm still in the process of installing software I used on my old computer. I thought I covered everything I need so far but perhaps not.

When I read the error message it referred to Java. The first time I tried it, I didn't have Java installed.  But I downloaded Java runtime and tried again but the same error took palce.

Thanks for replying!


----------



## EdK (Feb 4, 2021)

HI jshea2,

Your suggestions didn't work. Same error.  I checked with the developer of Multiplay and he check the output with Protokol.
Here is what Protokol sees:  (I tried different formats).

CONNECT    | ENDPOINT([::]:3333)
RECEIVE    | ENDPOINT([::ffff:192.168.1.194]:50761) ADDRESS(/scene/,Scene_2)
RECEIVE    | ENDPOINT([::ffff:192.168.1.194]:50761) ADDRESS(/scene/) STRING(Scene_2)
RECEIVE    | ENDPOINT([::ffff:192.168.1.194]:50761) ADDRESS(/scene/Scene_2)

Since trying the above, I rebooted my computer and now when I try it, nothing happens at all.  i.e. I get no error message.
I tried the above OCS commands again.

Multiplay is sending to 192.168.1.194 and using port 3333
Websockets in OBS is using server port 4444


----------



## jshea2 (Feb 4, 2021)

Hmm I’m heading to a place now that has a PC. I’ll download it and see what’s going on there.


----------



## jshea2 (Feb 4, 2021)

EdK said:


> HI jshea2,
> 
> Your suggestions didn't work. Same error.  I checked with the developer of Multiplay and he check the output with Protokol.
> Here is what Protokol sees:  (I tried different formats).
> ...


Make sure 192.168.1.194 is your up address. Make it 127.0.0.1 if you can


----------



## EdK (Feb 5, 2021)

Hi jshea2,

Thanks so much for helping me.    

Windows tells me my IP address is 192.168.1.194  (IPv4 address).  Both Multiplay and OBS running my computer.  
I don't know how to change the IP address....sorry.

In Multiplay go to:  File>Production Properties>Network    to define the IP address.
Then,  "Insert Network Cue" into the cue list.  Double click the cue and and select the Messages tab to enter the OSC command followed by GO to send the command.

I'll get on Discord later today. If you don't mind, please keep this conversation here.  For anything else in the future, I'll post in Discord. 

Again, thanks for the help.
Ed


----------



## jshea2 (Feb 5, 2021)

Hey EdK, yesterday I got a chance to sit down and play with MultiPlay, also replicate the same issues you were having. I even saw that Protokol noticed the OSC, but not Node-OBSosc. For NodeOBSosc it uses the dependency "node-osc" and I traced back the error to the "docode.js" file so I see it's not liking the format of the raw OSC data, which is weird because Open Stage Control works for both Protokol and NodeOBSosc, but MultiPlay only works on Protokol.


----------



## EdK (Feb 6, 2021)

Hi jshea2,

I sort of follow what you said.  Do you think it's Multiplay or docode.js?  If it's decode.js, who would be able to take a look at that?  Is that part of an OBS plugin?  I'd really like to have this work but I don't know where/who to turn to.  

The MIDI interfaces are buggy and tend to crash OBS and one of the more promising ones have no documentation of how to set it up....at least nothing I can understand.    Your OSC plugin is so much cleaner and easier to use. The MIDI interfaces are like 'middleware' where not only do I have to define the MIDI commands in Multiplay but also again in the interface.   At one time I also tried using MIDIkey2key (or something like that where it translated MIDI commands into OBS hotkeys. What a confusing mess that was. 

Thanks again for  you help.
Ed


----------



## EdK (Feb 6, 2021)

Hi again jshea2,

I re-read your entry on github regarding Node-OBSosc.   Below the line where you say 
*Standalone 'Node-OBSosc App' Now Available*
There is a section called Requires:

Do I have to follow those instructions also?  I'm a bit confused.

THanks.
Ed


----------



## EdK (Feb 6, 2021)

Hi jshea2,
I received the following info from the Multiplay developer.

MultiPlay sends OSC messages as "bundles" even though there is only one message in it. It could be that Node-OBSosc doesn't decode bundles.
Protokol and MultiPlay both accept single OSC messages or OSC bundles so there's no issue there. 

Ed


----------



## EdK (Feb 7, 2021)

HI jshea2,

Making progress.  Multiplay developer said he sends OSC commands in 'bundled" format.     As a test, he changed it to "unbundled" and sent it to me.  This time I got an error in NodeOBSosc that said it couldn't find the scene I specified. 

Turns out, the scene name I was sending was  "Scene_2" because that's how I have it defined in OBS.   I changed the scene name in OBS to "Scene 2"  (without the underscore)   but sent the message from Mutiplay as  "Scene_2" since your instructions specify that if the scene name  contains a space, that is must be sent as "Scene_2" and that worked.

So...discovered a couple things-  1) NodeOBSosc doesn't accept "bundled" OSC messages and  2) Scene names in OBS should not contain an underscore.

I'm waiting for a reply from the Multiplay developer to see if he'll change Multiplay to send "unbundled" OSC messages.

I wonder if any other Apps send 'bundled" messages. Might be a good idea to have it accept either one (if possible)...or...at least document the fact that NodeOBSosc requires "unbundled" messages.    Also, might want to make a note that scene names in OBS should not contain an underscore unless there's a way for you to get around that.  I'm pretty sure users may eventually run into these peculiarities.

At the moment I'm happy to see it work.

Ed


----------



## jshea2 (Feb 7, 2021)

That’s great to hear you got it working! Yes I’ll look more into the bundled situation. And I will also update the document about no underscore in an OBS  scene. The underscore converts it into a space, that way it allows you to specify it in just the first string. This is mainly for apps like TouchOSC that doesn’t give you multiple arguments to input. I’m going to rethink if there’s a better syntax to send a scene trigger.


----------



## EdK (Feb 8, 2021)

Ya....me too!  Much cleaner and easier than dealing with the MIDI plugins.  Thanks!

By the way....maybe you saw another post in the Windows Support group. 
Is there a way to start NodeOBSosc automatically when OBS starts?  Reason I ask, the MIDI interfaces I tried are plugins
for OBS.  I know Websockets is a plugin.  Was wondering if NodeOBSosc could do that also.


----------



## JasonZeh (Feb 8, 2021)

This is so wonderful! thank you. I am currently working on making some control interfaces in Max to use the Korg NanoKontrol as a control surface with the goal of eventually integrating this into an M4L device. 

I have one question. If I am not mistaken, it seems like opacity is the only parameter that you can currently control via OSC in the color filter. Is this correct?


----------



## EdK (Feb 8, 2021)

EdK said:


> Ya....me too!  Much cleaner and easier than dealing with the MIDI plugins.  Thanks!
> 
> By the way....maybe you saw another post in the Windows Support group.
> Is there a way to start NodeOBSosc automatically when OBS starts?  Reason I ask, the MIDI interfaces I tried are plugins
> for OBS.  I know Websockets is a plugin.  Was wondering if NodeOBSosc could do that also.


HI jshea2,
Actually have a followup question.   Is there a way to save the all the parameters (IP addresses, ports, etc) into a configuration file....so the next time I start NodeOBSosc, I can choose a specific configuration?   And to go along with that,  if invoking NodeOBSosc.exe from a command line....being able to choose a specific configuration as a parameter including performing the "Connect" action?    

Thanks! Ed


----------



## jshea2 (Feb 11, 2021)

JasonZeh said:


> This is so wonderful! thank you. I am currently working on making some control interfaces in Max to use the Korg NanoKontrol as a control surface with the goal of eventually integrating this into an M4L device.
> 
> I have one question. If I am not mistaken, it seems like opacity is the only parameter that you can currently control via OSC in the color filter. Is this correct?


That's awesome! Currently, that is correct. I'm working on adding more commands. Do you have any feature requests? Any specific parameters or all of them in the Color Correction?


----------



## jshea2 (Feb 16, 2021)

jshea2 updated OBSosc App with a new update entry:

OBSosc 2.0



> View attachment 66980
> 
> *OBSosc 2.0
> Download*
> ...



Read the rest of this update entry...


----------



## jshea2 (Mar 1, 2021)

This resource has been removed and is no longer available.


----------

