Hallo,
IOhannes m zmoelnig a écrit :
Jerome Tuncer wrote:
Hi padawan12
padawan12 a écrit :
I've only played with OSC a little, but some things that come to mind:
- OSC lets you pack things into "bundles" and it might be better to
use blocks of 32 or 64 values rather than sending each one individually. That way your packet overhead is smaller.
I didn't dig very much much into what OSC bundles were all about but it seems to me that it looks more like something to send messages to multiple destinations at the same time than to send multiple values to only one dest. Somebody correct me if I'm wrong...
i am happy to correct you here. OSC bundles are about logical time: each message in an OSC bundle will be at received at the same logical time (bundles have time stamps, messages don't). it has nothing to do with broadcasting or the like.
That's kind of what I meant. Except that I had not had coffee yet : "multiple destinations" were supposed to mean different OSC receive names but on same machine ! Wasn't I clear ?! I must admit I wasn't at all (-:
however i doubt whether bundles make so much sense here: i would just send "raw" data over the link (a list of floats you want to display; probably 2 lists, if you want an xy-scope), instead of sending x,y-pairs in separate messages (just think of all the OSC-selectors you will have to send with no additional information)
That's precisely the point: sending a list of floats except that OSC messages don't seem to be able to handle lists. To be more precise, they sort of do but I have to convert them to symbol first and they still come out as lists. Check out my example patch (zexy and OSCx libs needed) that illustrates my first idea on how to transmit my list. tabset doesn't seem to work here. I'd say it should, shouldn't it?
Anyway, seeing the patch should make my desire more understable and I'm sure someone has a smartre idea...
another idea would be to use audio directly via some audio-routing framework (jack)....
This would be a good solution for me, I'd have to dig into what I once heard was called netjack.
mfga.sdr IOhannes
#N canvas 324 372 843 454 8; #X obj 336 93 cnv 15 370 140 empty empty empty 5 12 0 16 -233017 -66577 0; #X obj 177 93 cnv 15 150 140 empty empty empty 5 12 0 16 -233017 -66577 0; #X obj 19 93 cnv 15 150 140 empty empty empty 5 12 0 16 -233017 -66577 0; #X obj 498 68 print; #X obj 498 46 l2s; #X obj 19 42 cnv 15 130 50 empty empty 1 5 15 0 18 -195568 -66577 0 ; #X text 52 71 Fill the array:; #X obj 177 42 cnv 15 130 50 empty empty 2 5 15 0 18 -195568 -66577 0; #X text 210 71 Connect UDP :; #X obj 336 42 cnv 15 130 50 empty empty 3 5 15 0 18 -195568 -66577 0; #X text 370 71 Dump & send:; #X text 468 100 <- Outputs content of a table as a list; #X text 365 147 <- Converts to type "symbol"; #X obj 20 292 cnv 15 450 140 empty empty empty 5 12 0 16 -233017 -66577 0; #X obj 20 241 cnv 15 130 50 empty empty 4 5 15 0 18 -195568 -66577 0; #X text 48 251 OSC is received; #X obj 49 266 dumpOSC 9990; #X obj 49 300 OSCroute /Test; #N canvas 0 0 450 300 FillArray 0; #X obj 10 14 inlet; #X msg 10 43 ; SendingArray sinesum 32 0.5 0.5 0.1; #X connect 0 0 1 0; #X restore 23 99 pd FillArray; #X obj 23 118 table SendingArray; #X obj 23 67 bng 22 250 50 0 empty empty empty 17 7 0 10 -260818 -1 -1; #X obj 181 67 bng 22 250 50 0 empty empty empty 17 7 0 10 -260818 -1 -1; #X obj 181 214 sendOSC; #X msg 198 118 disconnect; #X msg 181 99 connect localhost 9990; #X obj 340 67 bng 22 250 50 0 empty empty empty 17 7 0 10 -260818 -1 -1; #X obj 340 99 tabdump SendingArray; #X obj 340 146 l2s; #X obj 340 125 prepend 0; #X text 402 126 <- Prepends a "0" (table filling purpose); #X msg 340 166 send /Test/Symbol $1; #X obj 49 390 tabset ReceivingArray; #X obj 74 367 print SymbolTransfer; #X obj 49 322 OSCroute /Symbol; #X obj 49 367 a2l; #X obj 49 411 table ReceivingArray; #X obj 49 342 t a a; #X text 203 368 <- Prints exactly what I'd like to get!!; #X text 178 411 Check the table; #X text 182 390 <- Doesn't do anything & no error in console; #X msg 498 13 this is a list that that appears to be too long to be converted to a symbol without losing info; #X connect 4 0 3 0; #X connect 16 0 17 0; #X connect 17 0 33 0; #X connect 20 0 18 0; #X connect 21 0 24 0; #X connect 23 0 22 0; #X connect 24 0 22 0; #X connect 25 0 26 0; #X connect 26 0 28 0; #X connect 27 0 30 0; #X connect 28 0 27 0; #X connect 30 0 22 0; #X connect 33 0 36 0; #X connect 34 0 31 0; #X connect 36 0 34 0; #X connect 36 1 32 0; #X connect 40 0 4 0;