[PD] [PD-dev] extremely fast pure pd [list-drip] (fwd)

Mathieu Bouchard matju at artengine.ca
Thu Feb 26 06:15:48 CET 2009


On Thu, 26 Feb 2009, Martin Schied wrote:

> I often used message boxes for list splitting in my current project 
> because they were the fastest solution I could find using a benchmark of 
> [t b b b] and [realtime].

I just made an alternate version of [list-drip-quick] that is faster than 
[list-drip-quicker] without even using [repeat], and the difference is 
that it uses a pile of messageboxes for anything smaller than 9 elements. 
I use [s] with two inlets to dispatch the message because any solution 
involving [spigot] would be much slower and cumbersome, and anything using 
[demux] would be using an external.

I made it after reading your mail but before looking at your patch, and it 
looks different from yours so I'm attaching it.

So, the score is (for a 32768-element list):

[list-drip]          ~10000 ms
[list-drip-quick]     ~28.5 ms
[list-drip-quicker]   ~10.0 ms
[list-drip-quick2]     ~7.2 ms
[list-drip-schied]     ~6.0 ms
[list-drip-schied2]    ~5.1 ms
[drip]                 ~1.1 ms

The [list-drip-schied2] is done by replacing the split32 by a single 
messagebox with commas in it.

  _ _ __ ___ _____ ________ _____________ _____________________ ...
| Mathieu Bouchard - tél:+1.514.383.3801, Montréal, Québec
-------------- next part --------------
#N canvas 545 187 595 440 10;
#X obj 33 54 t a a;
#X obj 33 111 spigot;
#X obj 72 73 bang;
#X obj 72 92 1;
#X obj 151 73 bang;
#X obj 151 92 0;
#X obj 71 178 list split;
#X obj 100 130 list length;
#X obj 100 149 >> 1;
#X obj 33 130 t a a a a;
#X obj 33 266 list split;
#X obj 52 202 list length;
#X obj 52 221 >> 1;
#X obj 33 19 inlet;
#X text 75 19 Copyright 2009 by Mathieu Bouchard;
#X obj 230 46 t a a;
#X obj 223 371 outlet;
#X obj 269 46 list length;
#X obj 230 65 s;
#X obj 312 94 r \$0-f1;
#X obj 313 134 r \$0-f2;
#X msg 313 153 \$1 \, \$2;
#X obj 269 65 makefilename \$0-f%d;
#X obj 313 172 r \$0-f3;
#X msg 313 191 \$1 \, \$2 \, \$3;
#X obj 313 212 r \$0-f4;
#X msg 313 231 \$1 \, \$2 \, \$3 \, \$4;
#X obj 313 252 r \$0-f5;
#X msg 313 271 \$1 \, \$2 \, \$3 \, \$4 \, \$5;
#X obj 313 292 r \$0-f6;
#X msg 313 311 \$1 \, \$2 \, \$3 \, \$4 \, \$5 \, \$6;
#X obj 313 332 r \$0-f7;
#X msg 313 351 \$1 \, \$2 \, \$3 \, \$4 \, \$5 \, \$6 \, \$7;
#X obj 313 372 r \$0-f8;
#X msg 313 391 \$1 \, \$2 \, \$3 \, \$4 \, \$5 \, \$6 \, \$7 \, \$8
;
#X obj 72 54 list split 9;
#X connect 0 0 1 0;
#X connect 0 1 35 0;
#X connect 1 0 9 0;
#X connect 2 0 3 0;
#X connect 3 0 1 1;
#X connect 4 0 5 0;
#X connect 5 0 1 1;
#X connect 6 0 0 0;
#X connect 7 0 8 0;
#X connect 8 0 6 1;
#X connect 9 0 10 0;
#X connect 9 1 11 0;
#X connect 9 2 6 0;
#X connect 9 3 7 0;
#X connect 10 1 0 0;
#X connect 11 0 12 0;
#X connect 12 0 10 1;
#X connect 13 0 0 0;
#X connect 15 0 18 0;
#X connect 15 1 17 0;
#X connect 17 0 22 0;
#X connect 19 0 16 0;
#X connect 20 0 21 0;
#X connect 21 0 16 0;
#X connect 22 0 18 1;
#X connect 23 0 24 0;
#X connect 24 0 16 0;
#X connect 25 0 26 0;
#X connect 26 0 16 0;
#X connect 27 0 28 0;
#X connect 28 0 16 0;
#X connect 29 0 30 0;
#X connect 30 0 16 0;
#X connect 31 0 32 0;
#X connect 32 0 16 0;
#X connect 33 0 34 0;
#X connect 34 0 16 0;
#X connect 35 0 2 0;
#X connect 35 2 4 0;
#X connect 35 2 15 0;


More information about the Pd-list mailing list