Is my osc bundle suposed to look like this?

hello
i am having troubles to decode osc data from others software

i am running the 40beta23
on windows xp sp3 japanese

so i would like to know if bundles in other peoples patches look like mine
http://linekernel.net/bundle.jpg

or is it a conflict with the japanese font system

thanks

looks not too bad. would be easier though if you provide a patch with that captured input…

btw:
for placing a link in a posting you have 2 options:

ok
sorry it was my first post
thank you for telling me
(i tried to upload it but it didn t work maybe because of chrome s bugs)

here is the patch
it is a modified version of a patch for comunication between max and vvvv

i want to try to use it with TSPS

http://opentsps.com/

i thought i would be able to find the “Address” of the right top corner of the OSCDecode node inside the bundle by reading it but i am lost

the list of the data TSPS is sending is

  • persistent id
  • age (in frames)
  • centroid (center of mass)
  • bounding rectangle (x, y, width, height)
  • velocity (x, y)
  • average optical flow velocity (x, y)
  • contours (the shape of the blob)

i know from an exemple in processing that

int id;
int age;
PVector centroid;
PVector velocity;
tsps.Rectangle boundingRect;
ArrayList contours;
boolean dead;

that s it

thank for your help

trying to understand osc (19.5 kB)

no, you can’t read addresses out of OSC packets.

the important information seems to be this (as taken from TSPS.java from the processing sample download):

/***********************************************************************
OSC Message is structured like this:

 address: TSPS/person/ + ordered id (i.e. TSPS/person/0)

 argument 1: pid; 
 argument 2: age; 
 argument 3: centroid.x; 
 argument 4: centroid.y; 
 argument 5: velocity.x; 
 argument 6: velocity.y; 
 argument 7: boundingRect.x; 
 argument 8: boundingRect.y; 
 argument 9: boundingRect.width; 
 argument 10: boundingRect.height; 
 ***********************************************************************/

this tells you that the OSC adress you have to decode for is e.g.:
/TSPS/person/0
so that is what you enter on the OSCDecoder (Network)'s Address

in return you should get a spread of 10 slices in the order as listed above. hope that helps.

thanks joreg , i feel amazingly close

i have tried with on OpenFrameworks and oscsend example
i succeeded in getting the mouse position by using /mouse/position in the address pin and got a spread of 2 , the x and y values

but i have try absolutely all address possibles for TSPS
and it is not working

i understood that as soon as i can see something in the Arguments pin of the OSCDecoder all the work is done
so i put a iobox string at it s Arguments pin

but still nothing

so i read the beginning of the bundle and as you can see on the image i attached it start with

TTSPS/personMoved/

i tried this too
i tried all combinations possible between this and /TSPS/person/0

because i thought it could be a typo in the processing comment

what should i try?

i still cant upload images on the forum (chrome) sorry
here is the file

http://linekernel.net/tspsvsvvvv.jpg

for my understanding OSC adresses have to start with / and the processing example and doesn’t…not sure if that is an issue…

so you can try creating a Renderer (TTY) and see if there are errors. and also check Show Characters #0#32,#127 in the IOBox (String) that shows the UDP (Network Server)'s output and post the image again please…

i tried without the first “/”
i tried almost all combinations with

TSPS TTSPS person 0 1 Moved moved i 1
and other …

i am not used to TTY so not sure what to do

here is what i did

http://linekernel.net/screenbundle2.jpg

i remember from the time i was doing osc with max that th ii and ffffffffff in the osc are the tags (in max) and they should be used in the address of the oscdecode node

concerning Renderer (TTY) you just create it and leave it there. if there are errors happening anywhere in the system it will tell you. obviously there is none else you’d have noticed something.

the screenshot you provided isn’t clear. just make a broad IOBox (String) with showcharacters enabled and connect it to the udps output. and please post again…

http://linekernel.net/screenbundle3.jpg

i start thinking there is a big error somewhere
as i saved my 3 last files i can open them anymore
they are empty and it looks like it s the roots that opens

but the files are still as heavy as a normal file

ok i got news

as it didnd saved my last files
i restarted my computer
then i retried to open the files with the problems , still empty

so i took an old one
i put a renderer TTY node in it
i saved it 2 times (to get the xml)

and i got this when i opened again
without TSPS opened

http://linekernel.net/crashreport.jpg

now please disconnect the iobox from the udp node so that the #bundle string stays in the iobox. save that patch and attach it here so i can check.

the problem you’re facing with not being able to reopen patches is a known problem. it concerns the weird characters stored in the patch which breack the loading mechanism.

workaround:
start a plain vvvv. create a Renderer (TTY). then open the broken patch. now the console will tell you which line there is an error at. open the .v4p in a texteditor and remove the problematic characters. save and reopen in vvvv. voila.

not sure i understood what patch to send you

i am sending you the last one from the crashreport.jpg screenshot

with the iobox string i attached to udp and then unattached on a frame bundle was received like this you can access the bundle and for exemple copie it

and you ll have to do the TTY and texteditor trick to be able to open it

am i right?

bundle copie (8.8 kB)

while i am quite certain that the correct adress do decode is
TSPS/personMoved/
in this case i don’t get the message decoded here either.
hm…
have you tried receiving the same osc-message with the processing sample on the same PC?

ok
THHHHHHHANKS
it is working with that address

i don t know how i missed it
might have tried that with the / at the begin or with 2 T

i got 12 spread

btw , nothing appends in processing , i think they mistook the port

if you wanna take a look

http://linekernel.net/TSPSvdProcessing.jpg

for everything thank you Joreg

:)

so is it only in this case that the address was at the head of the bundle , or can we take the beginning of the bundle systematically as the address for the oscdecode ?

ai, great to hear it works for you. then the message i digged out of the file you attached obviously was mangled.

please read the osc specs to understand how messages are built. basically like this

  • bundle + timestamp + size-of-message + address + typetags + arguments

ok thanks Joreg
i ll read this later
i ll have to try to recompile TSPS because i want the osc to send all the tracked blobes positions
so i have to go to openframeworks forum for a wile

here is the final patch for anybody to use

tsps osc vvvv.v4p (24.4 kB)

i had Brett Renfer from lab.rockwellgroup
(who made TSPS)

telling me on OF forum that TSPS was sending all the blobs data

but i can get only one for now

anybody has an idea how to do it?

it is a bit hard though to guess in what format the data is sent. i can’t find a documentation of this on the TSPS page.

the processing code i cited above mentions something like:
TSPS/person/0

so it seems you should decode for multiple persons by inserting a spread to the OSCDecoders address pin, like:
TSPS/person/0
TSPS/person/1
TSPS/person/2

but from the sample (that seems to work for you) the message you receive is
TSPS/personMoved/

without an ID and with personMoved instead of person
you’d need to clarify the exact messageformat TSPS sends before you can decode it right in vvvv.

here is as far as i got (see file)

here are all the last infos i got from the TSPS maker

The messages are event based; so, to track each time something enters the field of view, listen for “TSPS/personEntered/”; to listen for objects as they move (which is I think what you’re going to want), listen for “TSPS/personMoved/”. Did you see the parameters in the src? The OSC message is structured like this:

0 - int - blob ID
1 - int - blob age
2 - float - blob center x
3 - float - blob center y
4 - float - blob velocity x
5 - float - blob velocity y
6 - float - blob bounding rectangle x (e.g. the top left corner of the blob)
7 - float - blob bounding rectangle y
8 - float - blob bounding rectangle width
9 - float - blob bounding rectangle height
10 - float - average optical flow at center x
11 - float - average optical flow at center y

if you are sending contours, the rest of the osc message is filled with contour
arguments, starting at message12 + message13 and continuing until the end

12 - float - contour0 x
13 - float - contour0 y

hope that helps! basically, what we’ve done in the examples is a process like this:

1 - create an array to put TSPSPerson objects in
2 - listen for “TSPS/personEntered/” to add a new object to the array

  • keep track of the blob ID, x and y, etc
    3 - listen for "TSPS/personMoved/ to update your objects
  • look them up in the array via their IDs
    4 - listen for “TSPS/personWillLeave/” to delete objects from the array

edit: you can change the OSC host + port if you’re having troubles. these variables are in the “communication” tab. here, you must set the IP address to the IP of whatever computer you’re sending to (or to localhost if the apps are on the same computer), and the OSC port to whatever port your TSPS catcher is on.

is anybody abble to understand better than me where are the rest of the tracked blobs ?

tsps osc vvvv.v4p (24.6 kB)

from this explanation i’d assume that osc-messages for multiple persons arrive time-sequential. so it should happen on your OSCDecoder that the first slice (the blob ID) varies or that in some (vvvv) frames you even receive multiple blobs i.e. not only 15 slices, but 30 (for 2 blobs), 45 (for 3 blobs),… is that the case?