hi all netpd's major problem is the occurence of many dropouts in certain situations. one reason is the way how all (at least all i know) network related objects in pd handle buffer overruns. when the buffer of a network object is full, the whole pd processing is stopped until the buffer gets emptied again. buffer overruns could be avoided in userspace, if these object would output their internal state. it would be already quite helpful, if there would be a second outlet, that outputs a bang when ever the buffer is completely emptied (like [textfile] or [list-drip] and other object do). with this information it would be possible to build a patch, that uses maximum bandwidth without ever getting dropouts. the above concerns at least [netsend], [netserver]/[netclient] (from maxlib) and possibly the objects from mrpeach.
as a crude solution to limit bandwidth in netpd, i made the attached abstraction [list-fifo]. i am not sure, if it is a suitable name. @frank if you think, that fits into your list-abs-collection, feel free to add/modify it. roman
#N canvas 546 60 474 380 10; #X obj 138 129 list append; #X obj 139 101 list; #X obj 139 79 t b l; #X obj 22 182 list split 1; #X obj 22 160 list append; #X obj 22 206 sel [delim]; #X obj 22 134 until; #X obj 139 57 list append [delim]; #X obj 94 278 list append; #X obj 94 228 t b l; #X obj 94 256 list; #X obj 22 305 list; #X obj 22 231 t b b; #X obj 22 6 inlet trigger; #X obj 139 5 inlet list; #X obj 303 6 inlet delimiter; #X obj 303 28 route symbol; #X obj 22 329 outlet; #X obj 239 332 outlet; #X obj 180 171 b; #X connect 0 0 1 1; #X connect 0 0 4 1; #X connect 1 0 0 0; #X connect 2 0 1 0; #X connect 2 1 0 1; #X connect 3 0 5 0; #X connect 3 1 4 1; #X connect 3 1 1 1; #X connect 3 2 18 0; #X connect 3 2 19 0; #X connect 4 0 3 0; #X connect 5 0 12 0; #X connect 5 1 9 0; #X connect 6 0 4 0; #X connect 7 0 2 0; #X connect 8 0 10 1; #X connect 8 0 11 1; #X connect 9 0 10 0; #X connect 9 1 8 1; #X connect 10 0 8 0; #X connect 11 0 17 0; #X connect 12 0 11 0; #X connect 12 1 10 1; #X connect 12 1 8 1; #X connect 12 1 6 1; #X connect 13 0 6 0; #X connect 14 0 7 0; #X connect 15 0 16 0; #X connect 16 0 7 1; #X connect 16 0 5 1; #X connect 19 0 6 1;
#N canvas 131 63 657 285 10; #X obj 18 196 print; #X obj 76 166 print EOF; #X obj 18 12 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X msg 47 32 eins due trois four; #X msg 56 52 1 2 3 4 5; #X symbolatom 69 73 10 0 0 0 - - -; #X floatatom 82 90 5 0 0 0 - - -; #X text 204 65 [list-fifo] keeps back incoming messages \, so that they can be outputted afterwards.; #X text 202 150 [list-fifo] can be used to limit the number of messages passing during a certain time (might be usefull to limit the used network bandwidth).; #X symbolatom 114 117 10 0 0 0 - - -; #X text 194 116 <- change delimiter symbol; #X text 202 215 !! PROBLEM !!; #X text 42 11 <- trigger output; #X obj 18 137 list-fifo; #X text 203 233 when a message contains the delimiter symbol \, it is falsely split into two parts.; #X connect 2 0 13 0; #X connect 3 0 13 1; #X connect 4 0 13 1; #X connect 5 0 13 1; #X connect 6 0 13 1; #X connect 9 0 13 2; #X connect 13 0 0 0; #X connect 13 1 1 0;
_______________________________________________ PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list