# OSC support



## darran wilson (Mar 28, 2018)

OSC 2 way support would be awesome. Would allow us to make custom controllers and interfaces.


----------



## Fenrir (Mar 28, 2018)

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


----------



## dodgepong (Mar 28, 2018)

OSC (Open Sound Control) has been requested before in context of supporting tally lights here: https://obsproject.com/forum/threads/osc-tally-lights-feature.80858/

I'm not sure what OP has in mind for OSC support, perhaps a similar use case.


----------



## darran wilson (Mar 28, 2018)

Fenrir said:


> 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.


----------



## Gerard Braad (Apr 20, 2018)

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


----------



## tuxilus (Jun 2, 2019)

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.


----------



## braverock (Sep 7, 2019)

@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 (Mar 17, 2020)

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.


----------



## suapapa (Jun 25, 2020)

I made little program (in Go) to convert OSC messages to Key combinations press.

Here is the code: https://github.com/suapapa/oscshortcut
You can find above layout under `_ref` directory and the osc-to-key map in `shortcuts.json`


----------



## Swivelly (Jun 28, 2020)

suapapa said:


> View attachment 58067
> I made little program (in Go) to convert OSC messages to Key combinations press.
> 
> Here is the code: https://github.com/suapapa/oscshortcut
> You can find above layout under `_ref` directory and the osc-to-key map in `shortcuts.json`



Hello. Can you tell me how to work this with Mac? I love the midi map but can't work out how to make it work work osx. Your help would be much appreciated.


----------



## Meierhans (Jul 1, 2020)

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 (Jul 1, 2020)

Meierhans said:


> 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 (Jul 22, 2020)

cpyarger said:


> 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 (Jul 22, 2020)

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 (Jul 22, 2020)

cpyarger said:


> 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 (Jul 25, 2020)

DazzboDuck said:


> 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 (Aug 10, 2020)

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






						MIDI\OSC Continuous Controllers
					

Hello OBS folks,  If this feature is not currently available (and I don't see that it is), I'm wondering what the interest would be in being able to extend Remote Control possibilities within OBS : We have switches in hotkeys which are very useful, but there is room for growth - not just in...




					obsproject.com
				




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


----------



## Flick H (Sep 28, 2020)

Fenrir said:


> 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 (Oct 11, 2020)

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 (Dec 8, 2020)

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.


----------



## Meierhans (Dec 20, 2020)

I am revisiting OBS after some month for my next project, and question myself if there is now anything that lets me map arbitrary parameters to midi or OSC. (Things like blur radius  or luma key floor f.e.) @cpyarger I see there is quite something going on with your plugin on github, but latest release is from summer. Is there any released I did oversee? I would actually be quite happy with 7-bit midi, if I could just freely map parameters..


----------

