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

2006-12-18 Thread Frank Barknecht
Hallo,
Roman Haefeli hat gesagt: // Roman Haefeli wrote:

 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.

Thanks a lot, this can be a very useful patch. I added it to the
[list]-abs on CVS with some small changes/extensions: Internally it
uses the new [list-extend] abstraction now to build lists from
incoming messages. I added a clear method to the first inlet to
empty the FIFO, I changed the default delimiter to the empty symbol,
and added the possibility to set the delimiter with an abstraction
argument as well like [list-fifo my-l33t-del1m17er]

Ciao
-- 
 Frank Barknecht _ __footils.org_ __goto10.org__

___
PD-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


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

2006-12-18 Thread Roman Haefeli
On Mon, 2006-12-18 at 13:47 +0100, Frank Barknecht wrote:
 Hallo,
 Roman Haefeli hat gesagt: // Roman Haefeli wrote:
 
  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.
 
 Thanks a lot, this can be a very useful patch. I added it to the
 [list]-abs on CVS with some small changes/extensions: Internally it
 uses the new [list-extend] abstraction now to build lists from
 incoming messages. I added a clear method to the first inlet to
 empty the FIFO, I changed the default delimiter to the empty symbol,
 and added the possibility to set the delimiter with an abstraction
 argument as well like [list-fifo my-l33t-del1m17er]

wow.. cool!






___ 
Der frühe Vogel fängt den Wurm. Hier gelangen Sie zum neuen Yahoo! Mail: 
http://mail.yahoo.de


___
PD-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


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

2006-12-18 Thread Mathieu Bouchard

On Sun, 17 Dec 2006, Roman Haefeli wrote:

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.


Pd doesn't handle all of its sockets like that. There's one special socket 
that handles it differently, and it's the socket that talks to the GUI 
process. In Pd 0.38, Miller added a bunch of special code in s_inter.c 
that allows it to do nonblocking writes and causes it to replace the 
output buffer by a bigger one.


The problems that I see with that are:

1. there's no way to limit the size of the output buffer. If the other 
side of the connection doesn't respond, the sending buffer just 
inflates quickly. I've seen it happen that a bug in the sender causes 
it to try to send so fast that it ate memory like an infinite recursion 
or a forkbomb.


2. That operation is not realtime-safe (but still it's much closer to 
being so than just blocking...)


3. It's only usable by the GUI socket and never by [netsend].

4. While that buffer together with t_guiqueue allow GUI updates to be 
delayed for as long as necessary, it doesn't solve the problem that it can 
send information that is already outdated and redundant. This can be 
important in preventing problem #1 for a very heavy GUI. DesireData has 
had this problem essentially dealt with since a long time, but it lacks 
some fine tuning to get more robust.


 _ _ __ ___ _  _ _ ...
| Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju
| Freelance Digital Arts Engineer, Montréal QC Canada___
PD-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


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

2006-12-17 Thread Roman Haefeli
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