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