Well George, I was looking at this from the point of view of the
average QC user, if there is such a thing.
Your scenario may well
become popular once there are examples of using this data with OpenCL
mesh stuff etc, but right now I struggle to understand quite a bit of
the important info in your post, some of it seems unintuitive to me.
Lets start with the basics so we can understand where I am coming
from. Ive never done anything with structures of strings coming over
OSC in QC. Rather, just use the standard OSC receiver in QC. Go to the
settings for it in the inspector. Select 'Floats' from the dropdown.
Put in the message address. Press the plus sign. That QC patch will
now output a structure of floats if that OSC message is received and
its only values are floats. These can then be separated via structure
index stuff as normal. Repeat for each joint.
Certainly I can understand that there are scenarios where you may want
all the data to go to an OpenCL patch or whatever in QC, but without
QC examples
it will be hard for me to fully get my head round your
ideas and I think whatever happens a nice simple approach that outputs
the different limbs as separate data ports in QC is going to be easier
for many QC users to handle.
There is no reason we cant have both
these options,
but I think you may have some more work to do to
explain exactly what format you would like OSCeleton to be outputting
the data in to meet your needs.
i think this solution is not good. what steve is suggesting is the
correct way of doing it. its just how OSC is supposed to be done. even
if you can parse the data out in QC its just not the right way of
using OSC. the description of the data should be in the name and only
the data should be in the message. you can later build the nested
structure you want with something like structure maker. steves
suggestion would not only work for qc but for most apps that support
OSC. which is what OSC is about. sending nested structures over OSC is
poor practice. as is sending different data types mixed in the same
message.
fsk
OK well I really believe that the general QC user is used to receiving
OSC messages that have a pretty simple structure and are to a great
extent easily human-readable.
Like I said, I can appreciate cases where performance is the key, but
I think QC users are more likely to start with the very basics, such
as making a cubes x,y & z positions be controlled by a particular
joint.
IPN Incubadora
Rua Pedro Nunes
3030-199 Coimbra, Portugal
Tel : +351 927 474 665
Tel : +351 239 700 358
Fax : +351 239 700 301
Just throwing my ideas here.
I agree that the message format should be as Steve described (or that
should be an option in addition to the current one). Currently the Max/
MSP patch that I made to reformat the OSC has the user number as the
first member of the message. I also thought about putting it on the
address, but I was just too eager to get it going to actually bother
to do that. Especially since I knew Tony was planning on adding QC
compatible OSC support to OSCeleton.
I can also see a reason for the messages to be formatted in this way:
/joint/i/s/x f
/joint/i/s/y f
/joint/i/s/z f
i is the user, s is the joint name and f is the value.
This would allow for individual joints to be used as controllers in
VDMX (and perhaps some other sotware).
But George's approach would be useful in some cases as well. I don't
have an idea what is more efficient – sendig lots of smaller messages
or one really long message.
I agree that the message format should be as Steve described (or that should be an option in addition to the current one). Currently the Max/MSP patch that I made to reformat the OSC has the user number as the first member of the message. I also thought about putting it on the address, but I was just too eager to get it going to actually bother to do that. Especially since I knew Tony was planning on adding QC compatible OSC support to OSCeleton.
I can also see a reason for the messages to be formatted in this way:
/joint/i/s/x f
/joint/i/s/y f
/joint/i/s/z f
i is the user, s is the joint name and f is the value.
This would allow for individual joints to be used as controllers in VDMX (and perhaps some other sotware).
But George's approach would be useful in some cases as well. I don't have an idea what is more efficient – sendig lots of smaller messages or one really long message.
Matti
IPN Incubadora
Rua Pedro Nunes
3030-199 Coimbra, Portugal
Tel : +351 927 474 665
Tel : +351 239 700 358
Fax : +351 239 700 301
IPN Incubadora
Rua Pedro Nunes
3030-199 Coimbra, Portugal
Tel : +351 927 474 665
Tel : +351 239 700 358
Fax : +351 239 700 301
IPN Incubadora
Rua Pedro Nunes
3030-199 Coimbra, Portugal
Tel : +351 927 474 665
Tel : +351 239 700 358
Fax : +351 239 700 301