[PD] network problem with pd / [list-fifo]

Roman Haefeli reduzierer at yahoo.de
Sun Dec 17 19:42:13 CET 2006


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
-------------- next part --------------
#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;
-------------- next part --------------
#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;


More information about the Pd-list mailing list