Request for a midi/osc mapper in omniverse

Hi,

From that log it looks like it fails to install the python-osc package. In case it’s missing from your archive you could try running this in the script editor from create and re-enable the extension.
Not entirely sure if it’ll fix it, but worth a shot until a developer can help.

import omni.kit.pipapi

omni.kit.pipapi.install(
    package="python-osc", module="pythonosc", use_online_index=True, ignore_cache=True, ignore_import_check=False
)

I’ve pinged @jshrake to see what’s up.

The GitHub repository exceeded the git lfs data quota limit, which resulted in malformed files in the release archive, including the vendored python-osc wheel. I fixed this issue, tested in Create 2022.3.0, and deployed a new release, v0.2.2, which should be available in the community extension list within the next few days. When the extension is available, I’ll test and confirm that the issue is indeed fixed. If you need this fixed sooner, you can clone and install the extension from the source at GitHub - NVIDIA-Omniverse/kit-osc: Omniverse Kit extension for sending and receiving OSC (Open Sound Control) messages.

@Jshrake , i was trying to build an extension to actually link the incoming osc data to some prims attributes via name. So the name of the channel is the path of the attribute you want to control, If type is correct than move the value with osc data. This will save tons of objects in the action graph + making the whole things really fast to use and change on the fly. Do you think such a feature will be possible in one of your next releases?

i was trying to build an extension to actually link the incoming osc data to some prims attributes via name. So the name of the channel is the path of the attribute you want to control, If type is correct than move the value with osc data. This will save tons of objects in the action graph + making the whole things really fast to use and change on the fly. Do you think such a feature will be possible in one of your next releases?

You can do this today with the existing functionality. I’ve attached an example scene. It makes use of omni.graph.scriptnode, which you will need to manually install and enable before opening the scene. The main idea is to use a python script to map the address name to a valid USD attribute name. In this case, the OSC address is /xformOp:scale and the script removes the leading / to create a valid USD attribute name.

cube-with-osc-graph-dynamic-attribute.usda (11.9 KB)

This is awesome, eh still a nobby here… this looks like a good node to have… thanks for example will be really usefull. GRAZIE!!!

1 Like

v0.2.2 is now available and I confirmed it fixes the issue. Thanks for the reports.

Yup, I got it and its all working - thanks for the quick response.

I purchased TouchOSC and Ctrl for iPad (not sure which one I’ll end up keeping).

But, looking at the included sample file - its not clear to me how to set the nodes up (forgive me, I’m totally new to OSC messages).

Let’s say I have 2 controls with this message path ‘/iPad/xy’ and ‘iPad/button’ - how would I respond to OSC messages from those two controls using the OnOSCMessage node and ExtractAttribute node?

OnOSCMessage looks like it grabs all OSC messages into a bundle? Then ExtractAttribute can grab a message out of the bundle? - but what value would that be in my scenario? Would the value be ‘/iPad/xy’ or something else?

I made this tutorial that show the basic, i use another software to send osc but in omniverse the process is the same.
https://youtu.be/FRHSjDdBs5E

FYI - I lead the effort that is now released to integration Touch OSC with Wacom Cintiq’s multi-touch and pen pressure.

This enables a type of realtime DIT Cart / Controller to connect and power distributed virtual art departments (VADs). Plus a new command and control center for “VJing” / triggers, sliders, etc. for 3D assets movements, VFX, etc.

Get it here TouchOSC | hexler.net

Hi,

I finally took the time to dive a bit in the OSC extension and I made this :

is basically a name convention inside the osc message handler in the extension

(‘/Path/to/Your/Prim’,[‘nameOfTheAtrr’,[values],sizeOfTheValues])

Than in the extension i check ‘sizeOfTheValues’ to pack the float list as require (vec3 (3) or float (1) for now)

With the new ray reconstruction and dlss in performance mode I can run simulation with a decent frame rate in a 3080laptop

This open a lot of opportunity in a real-time ‘artistic’ environment.

There is one little thing : every time I send a value I got a warning telling me the carbonite even manager is appending a ‘none type event’ , I check the extension and the type is given from a string in the core.py

I am middle expert in python so for now i stick with clearing the warning but I would like to avoid them.

To replicate the error just add anything that is not a carl.log to the message handler in the OSC extension.

Let me know if there’s any fix to this.

Thanks Simo