OSC support

darran wilson

New Member
Can you please provide more info (maybe some links?) to what this is?
https://en.wikipedia.org/wiki/Open_Sound_Control
https://hexler.net/software/touchosc
https://www.youtube.com/watch?v=0uOR2idKvrM

OSC was designed to be used as virtual mixer/DAW interfaces but many many audio,video, and DMX controllers support OSC in/out. You can design your own faders, buttons, knobs, etc with 2 direction response. I use it daily to remotely control and program lighting cues on hardware consoles and software consoles and remotely control digital mixer consoles.

Not me but here is an example of OSC to control the Martin lighting consoles which is my usual main use as well as with the HOG4 consoles. Uses TouchOSC with a free layout of the console, or you can design your own custom interface and assign any command to any fader/knob/button/etc.
https://www.youtube.com/watch?v=aRwV8FtdZWY

Example of template someone did for TouchOSC and wirecast.

IMG_0145.jpg
 
Last edited:

Gerard Braad

New Member
OSC is used a lot software for audio editing, like DAW. Reaper.fm is a good example, but also applications that could beneift from a control surface, like Mixxx. We even used it in a VJ platform called the Milkymist, and it would be very helpful if OBS has native support for this.

Suggested as an idea: https://ideas.obsproject.com/ideas/86/add-osc-support
 
Last edited:

tuxilus

New Member
Hello you few that are also interested in OSC-SupportHello!

I have solved this for myself by writing a small programm in process which acts as a client to the websocket server of the OBS and parses all the JSON-Messages from the server. This programm always has a correct table with the scenenames and their actual numbers. Therefore I am able to write to the osc-server-port of this interface programm an osc message ´/scene/1....n' and it does not matter what type of data you send. I am sending the value 1 as integer.

The program now looks into it´s own table and finds there as member 1-1 = 0 the name of the first scene and sends an request to the websocket server which looks like this:
wsc.sendMessage( "{\"request-type\":\"SetCurrentScene\", \"message-id\":\"\",\"scene-name\":\""+scenes.get(argument-1)+"\"}");

scenes.get(argument-1) is the corresponding string of the table scenes in processing.

If you only want to parse the scene names you have to send this to the websocket server:
wsc.sendMessage( "{\"request-type\":\"GetSceneList\", \"message-id\":\"\"}");

Because the quotes (") are essential they are escaped with a backslash so that they are really written into the string.

I am sending the OSC-Messages to the interfaceprogramm out of the CasparCG Client because this standalone Programm is both - an OSC Server and an OSC Client. (You can define an endless number of servers in the CasparCG Client). The Client also works without a CasparCG Server to control Blackmagic Atemmixers, Tricasters, PTZ-Cams from Sony and Panasonic.
By defining groups in the CasparCG client I can do things like this in my rundown:
Switch to OBS SCENEx
after 500msec
SWITCH to CAM3 as SOURCE of UPSTREAMKEYER 3
SWITCH to INPUT2 as PROGINPUT of ATEMMIXER

and this all by sending /control/181 , 1 as OSC-Message to the Client where I have defined UID 181 as REMOTE TRIGGER.

I know that this is far, far away from streaming. But in my studio environment I need real buttons and not only a touch screen or a mouse and therefore I am using Novation Lauchpads with interfaceprograms (written in processing) which do the logic of litting and darkening the buttons and do a transformation of the midisequences to osc-commands(which are sent to the CasparCG Client).

I have to mention that this is a very easy task to write in python on a raspberry pi but it was a pain in the a... to try this in OBS-Python directly with OBS and not via websocket. I simply gave up.

Thanks for reading and I hope this was of interest.

P.S.: the main advantage of OSC is that it is UDP-based and not TCP-based as websocket. TCP-based connections in a studio environment always have the potential to tear down your whole equipment because a program fails if the server-client connection got lost.
 
Last edited:

braverock

New Member
@tuxilus is there a chance you could post your code somewhere? I am also very interested in physical controls for OBS, and have been looking in to using a DMX controller or MIDI controller to do this. Some example code would be a great start.
 

William Huston

New Member
YES! I have just discovered how useful OBS is as a compositional tool for experimental video art.
It's AMAZING!

I would LOVE to find a way to control knobs within the basic interface, do color correction, move/resize layers, etc. as well as control filters, for example Stream FX's "3D Transform" filter.
 

Meierhans

New Member
I partly come from a Vjing Background, and first got into OBS just for streaming. Then I found out how much more you can do, and most important: How fast & clean it renders even large resolutions. Very nice indeed. Then I started searching for midi or OSC input.. PLEASE make it possible to change parameters in realtime, without hacky websocket workaround or external, buggy tool. So you can just send OBS itself OSC messages, and it will cleanly change the parameter ASAP without any glitch. This would allow to build shareable Touchosc/Lemur presets for many effects, so we can adjust f.e. colorgrading, chromakey, zoom amount, image position on the fly. This would put OBS on a completly new level.
 

cpyarger

Member
I partly come from a Vjing Background, and first got into OBS just for streaming. Then I found out how much more you can do, and most important: How fast & clean it renders even large resolutions. Very nice indeed. Then I started searching for midi or OSC input.. PLEASE make it possible to change parameters in realtime, without hacky websocket workaround or external, buggy tool. So you can just send OBS itself OSC messages, and it will cleanly change the parameter ASAP without any glitch. This would allow to build shareable Touchosc/Lemur presets for many effects, so we can adjust f.e. colorgrading, chromakey, zoom amount, image position on the fly. This would put OBS on a completly new level.

I recently released the obs-midi plugin I have plans for an OSC plugin in the future, you can find the obs-midi plugin here

I am currently hoping to have a new "control plugin type" discussed and implemented before I do so, This would allow for people to map any input control plugin to any output control plugin, ex. I could fire off osc, from a midi button press on the same controller I use to control OBS.

The new plugin type also leaves open the possibility of a macros plugin. aka a multiple output action plugin, one button press control of lights, sound, sources and filters etc.
 

DazzboDuck

New Member
I recently released the obs-midi plugin I have plans for an OSC plugin in the future, you can find the obs-midi plugin here

Hi cpyarger

I am running a program called Qlab by Figure 53 this app is capable of outputting both Midi and OSC commands, could I use your midi plugin to trigger scene changes from Qlab via Midi. Qlab said that OSC is a better protocaol but all I need to do is change a scene when I hit a Que in Qlab app.

Any help would be great
 

cpyarger

Member
Unfortunately, the plugin does not support showing up as a virtual midi device. If you could make a virtual midi device, that you can connect to with both Qlab and OBS-midi that should work for now. I believe there are a few virtual midi solutions out there for windows, mac, and Linux.
 

DazzboDuck

New Member
If you could make a virtual midi device, that you can connect to with both Qlab and OBS-midi that should work for now. I believe there are a few virtual midi solutions out there for windows, mac, and Linux.

I made an IAC midi device Iam on mac and Qlab is mac only, should that suffice as the virtual ? Qlab can see the output I just need to add midi to OBS. If not do you have any suggestions as to other solutions.
 

cpyarger

Member
I made an IAC midi device Iam on mac and Qlab is mac only, should that suffice as the virtual ? Qlab can see the output I just need to add midi to OBS. If not do you have any suggestions as to other solutions.
Give it a show and let me know what you find out! I have been focusing on a rewrite of the obs-hotkeys page into a controls plugin mapper. and haven't had the time to try anything out with IAC
 

Glennzone

New Member
I just posted a Request For Interest on the topic of OSC\MIDI CC here :


@William Huston : I also perceive great potential here. I am following you.
 

Flick H

New Member
Can you please provide more info (maybe some links?) to what this is?

I would definitely use OSC to control my ATEM switcher from within OBS.

As it stands, I can manually switch the cameras coming into my ATEM and then use OBS for all kinds of graphics, Zoom inputs, remote cams etc... but the four HDMI inputs coming into the ATEM and their sounds have to come through the hardware switcher.
 

bbernstein

New Member
I've just successfully used Qlab with OBS using OSC. I made a little repo of what I put together based on some python code that I acknowledged in the Readme. Let me know what you think. My repo is obsosc-py. Now that we had our show last night, I spent a little time today making a ReadMe and some startup scripts to make it easy to run. I'm on Mac, so I don't know how well it works on Windows.

Let me know what you think. It's pretty trivial to add more OSC commands given how complete the OBS-websocket plugin is, so I may add some more soon.
 

LarryH

New Member
Our church recently installed Blackmagic web presenter, a switcher and hyper deck. OBS recognizes the web presenter but not the cameras or the other Blackmagic technology. Any pointers you can share would be really appreciated.
 
Top