[Feature Request] OSC, MIDI, and Syphon

midi tc would be nice if implemented in UE4
I could sync game or 3d events from an external audio sequencer


To be able to right click on any slider in the interface and to bring up an option assign OSC control would be amazing, as with the ability send a syphon output from a camera in Unreal Engine to projection mapping software (such as madmapper) would have a lot more live visual artists wanting to use Unreal Engine.
I really hope this is implemented at some point.
Olly from 1000 Errors

Still…midi should not be completely dropped. It might still be useful for some projects. For example, a game that handles midi data is Synthesia.

I want to see this stay alive. Anyone doing any work with the LiveEditor that JamesG mentioned?

+1 recent convert from Quartz Composer (QC), was attracted due to the similarities in the visual scripting/coding with Blueprint. I would hope to do some interactive audio visual games and of course MIDI, OSC are key.

Syphon is just a game changer especially as I work with a lot of Augmented reality. Please include these functions into a release of Unreal . :slight_smile:

I just published the first version of UE4OSC. It is a free, open-source plugin that allows Unreal Engine 4 to communicate send and receive OSC messages.

It has a page on the Unreal Engine Wiki, and is on GitHub.

It is has basic functionality at this point in time, but I will continue to expand it based on my own process and any feature requests I get.

Hope Epic won’t drop Midi. I have some projects in plan, that require connecting my midi keyboard to PC.

I released my OSC plugin here:

It receives and sends OSC messages in Blueprints. It manages float, integer, bool and string parameters.

Right now, you must compile it yourself though…

Hi Monsieurgustav. This is great!!! Could you please give us a little rundown on how to compile it?

Thanks a lot!

ok i was able to compile it

can you please post a sample blueprint


Hi !
Compiling should not be a problem:

  • copy the files in a the Plugins folder of your project,
  • click File/Refresh project files from the Editor,
  • build and run from VS 2013.

Do not hesitate to tell me if it was more complicated than that!

I will post an example tonight.
In the mean time:

  • to receive messages, add a OscReceiverComponent to your class blueprint (in the Components tab),
    select it in the blueprint graph view and add the OnOscReceived event (should be in the contextual list).
    use PopFloat/String/etc. functions to get the message parameters.
  • to send messages, build a parameters list using PushFloat/String/etc.
    use the SendOsc function to actually send it.

I’ll add usage examples and some functionality very soon.


Hi monsieurgustav

Thank you for the fast reply

yes it was not so hard to recompile (I did not have VS set up and/or using the github source… but it was fairly straightforward)
but i actually put your code in the plugins folder inside the engine… it compile without errors

in terms of the blueprint. i think i did the same steps you described… but i did not get it to work… yes if you could post some examples/pics that would be great

Thanks so much!

I pushed some examples and a new OSC receiver actor class.
Depending on your design, you may use either a receiver component (and add it to many actors) or a receiver actor (create a few class blueprint based on it for specific usage).
I plan to add the multicast feature and some others soon.

Tell me if you work it out !
(do not forget to look at the plugin settings as well, in “Edit/Project Settings/OSC”)

ps: To build the plugin, you don’t really need to compile the engine sources. (you do need VS 2013 though, or XCode)
On any Unreal project (from the shipped Editor): if you do not have VS2013 project in the project root folder, you can just add a dummy class from “File/AddCodeToProject”. It creates some files to disk.
Then, create a “Plugins” folder in the project root, and copy the OSC plugin folder into it.
From the Unreal Editor, click on “File/Refresh Visual Studio Project”, now the VS2013 project contains the plugin sources.
Build and run from VS2013, and that’s it !

pps: It would be nice to have a VS2013 project from the very beginning… if someone knows how to create it without the “AddCodeToProject” trick, I’m listening ! :slight_smile:

Thanks very much for the OSC plugin. I got it working in the editor although I don’t think I compiled anything, and I don’t see the latest stuff you mentioned pushing in the above post (e.g. examples).

I’m sure I’ll have more to say once I’ve had time to use it a bit more.


Hey monsieurgustav, i got it to work but i am getting constant crashes with these errors


Access violation - code c0000005 (first/second chance not available)

Fatal error!

UE4Editor_OSC!FUdpSocketReceiver::Run() + 131 bytes [c:\program files\unreal engine\4.4\engine\source\runtime
UE4Editor_Core + 3091622 bytes
UE4Editor_Core + 3064429 bytes
kernel32 + 88557 bytes
ntdll + 181569 bytes

any ideas?

Hi !
I ran into the same issue…
I just pushed a fix, hope that will help !

hey Gustav< i will check it out. Also I not seem to get the filter to work… all OSC messages affect everything even if i add the correct address e.i “/parametric” to the component. any ideas on this
but it works great otherwise


Hum… address filtering is not yet implemented actually! :slight_smile:
Coming soon! (in the mean time, you can filter using blueprint nodes, as the received address is an event output)

Happy to know you’re using it!

cool thanks monsieurgustav!
Yes i am using it for a performance tomorrow! yeah!
ok i see how i can filter using that output

pD. I just tested it, recompiled the new version and it works great with that event output and a switch!

Yes man your update is solid, i performed with it last night and it was great, basically sending amplitude data from ableton live via osc. Rock solid!
So one question
How difficult is to keep this plugin up to date? 4.5 is coming up and maybe if it is not so difficult i could help maintain it.
Thanks again monsieurgustav.