Distinguish between two OSC sources (iKeleton OSC)
-
Hello all,
I'm working to rebuild a setup I had (modifying the Guru 13 patch) that combines/averages multiple sets of body tracking data to puppeteer one stick-figure avatar collectively. Now, I'm trying to get the data from multiple (2) iKeleton OSC apps to do the same as part of a conference demo. This way I don't have to travel with the Kinect.
Here's the trouble: I can't seem to disambiguate the two apps running on two different phones. Right now, they are sending to the same OSC channels as each other. So, rather than getting two sets of data (a total of 68 channels), Isadora is receiving both sets as one, glitchy set (34 channels) coming into the same place.
Does anyone have experience working with multiple copies of OCS apps like this? What can I do so that Isadora can treat the input from these separate phones as distinct?
(it appears as though the iKeleton OSC app settings allow you to change only the IP Address and Port)
tldr;
I'm trying to get the data from two phones with the iKeleton OSC app into Isadora, but Isadora can't tell the difference between them.
Best,
Rory
MacBook Pro, M1, 2020, Sonoma 14.5
Isadora 3.2.6 + Isadora 4.0
-
@rwillats said:
iKeleton OSC
I don't know this app, but it seems you can't set custom OSC Paths. So the only possible method to differentiate multiple iKeleton devices, would be sending them to different network ports on the same IP (your Isadora computers IP) e.g. 8001, 8002, etc...
BUT Isadora can only listen on a single IP Port. Therefor you need a tool, which accepts the OSC messages on different ports, translates them to an OSC Path which can be separated and send those messages to Isadora (e.g. port 8000 or default 1234).
Example:
iKeleton device 1:
/iKeleton/nose_x/"value" send to 192.168.1.1:8001
translated to
/iKeleton/1/nose_x/"value"
send to 192.168.1.1:8000 (or 127.0.0.1:8000 local host)iKeleton device 2:
/iKeleton/nose_x/"value" send to 192.168.1.1:8002
translated to
/iKeleton/2/nose_x/"value"
send to 192.168.1.1:8000 (or 127.0.0.1:8000 local host)There are several applications which can do this.
One is MidiMonster which is very powerful (can translate from almost any protocol to any other), but you need to write config files, which is a bit of a learning curve.Another one is Osculator, but it's macOS only and I'm not 100% sure it can translate from OSC to OSC in the way which is needed.
I know there are more tools for this.
-
Hi I had a similar thread a few months ago. Whereas ISADORA does not "directly" allow to receive osc messages on different ports, on V4 you can do so using the pythoner. @DusX sent a patch to do so.
I don't yet have V4 and haven't tried it. I on my mobile phone right now and don't know how to link to my former query, but you should be able to find it in this forum searching for OSC and NGIMU.
Good luck
-
@gaspar Oh thanks! I'll take a look