aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Iannini <lukeiannini@users.sourceforge.net>2009-05-07 05:03:07 +0000
committerLuke Iannini <lukeiannini@users.sourceforge.net>2009-05-07 05:03:07 +0000
commit82be5712f7be8e63e18b0828de7958b758999337 (patch)
tree92694a542e9cbe867af596782b9fd2a675b70e1f
parent952e8c6b3b042993edcf42dd250dcea80fe41430 (diff)
finished list-part for parsing delimited lists and added list-partslow to the family
added no-dsp, an object to disable DSP while an operation is run and then turn it back on made a miniature version of crikey (keyboard-to-"midi" translator) that's much less fiddly than the big version svn path=/trunk/abstractions/sfruit/; revision=11253
-rw-r--r--sfruit/clavier.crikey71
-rw-r--r--sfruit/crikeymini.pd299
-rw-r--r--sfruit/drumpads.crikey179
-rw-r--r--sfruit/list-part-help.pd10
-rw-r--r--sfruit/list-part.pd38
-rw-r--r--sfruit/list-part2.pd58
-rw-r--r--sfruit/list-partslow-help.pd3
-rw-r--r--sfruit/list-partslow.pd15
-rw-r--r--sfruit/no-dsp.pd10
9 files changed, 646 insertions, 37 deletions
diff --git a/sfruit/clavier.crikey b/sfruit/clavier.crikey
new file mode 100644
index 0000000..3c04a2e
--- /dev/null
+++ b/sfruit/clavier.crikey
@@ -0,0 +1,71 @@
+0 43;
+1 30;
+2 20;
+3 31;
+4 26;
+5 8;
+6 33;
+7 21;
+8 34;
+9 23;
+10 35;
+11 28;
+12 24;
+13 37;
+14 12;
+15 38;
+16 18;
+17 19;
+18 45;
+19 47;
+20 46;
+21 48;
+22 42;
+23 49;
+24 29;
+25 22;
+26 27;
+27 7;
+28 6;
+29 25;
+30 10;
+31 5;
+32 11;
+33 17;
+34 13;
+35 16;
+1 30;
+2 20;
+3 31;
+4 26;
+5 8;
+6 33;
+7 21;
+8 34;
+9 23;
+10 35;
+11 28;
+12 24;
+13 37;
+14 12;
+15 38;
+16 18;
+17 19;
+18 45;
+19 47;
+20 46;
+21 48;
+22 42;
+23 49;
+24 29;
+25 22;
+26 27;
+27 7;
+28 6;
+29 25;
+30 10;
+31 5;
+32 11;
+33 17;
+34 13;
+35 16;
diff --git a/sfruit/crikeymini.pd b/sfruit/crikeymini.pd
new file mode 100644
index 0000000..391553d
--- /dev/null
+++ b/sfruit/crikeymini.pd
@@ -0,0 +1,299 @@
+#N canvas 875 284 395 398 10;
+#N canvas 757 271 365 337 hid 0;
+#X obj 55 103 route key;
+#X obj 55 122 route key_1 key_-1;
+#X obj 177 152 list split 1;
+#X obj 177 206 symbol2list _;
+#X obj 176 233 list split 1;
+#X obj 211 178 s \$0keystate;
+#X obj 210 276 s \$0hidnum;
+#X obj 55 56 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
+;
+#X obj 55 84 hid;
+#X obj 55 4 loadbang;
+#X msg 149 55 debug 0;
+#X obj 55 28 t b b b;
+#X msg 84 55 open keyboard;
+#X connect 0 0 1 0;
+#X connect 1 2 2 0;
+#X connect 2 0 3 0;
+#X connect 2 1 5 0;
+#X connect 3 0 4 0;
+#X connect 4 1 6 0;
+#X connect 7 0 8 0;
+#X connect 8 0 0 0;
+#X connect 9 0 11 0;
+#X connect 10 0 8 0;
+#X connect 11 0 7 0;
+#X connect 11 1 12 0;
+#X connect 11 2 10 0;
+#X connect 12 0 8 0;
+#X restore 34 43 pd hid;
+#N canvas 547 30 733 597 transconfig 0;
+#X obj 543 46 keyname;
+#X obj 336 241 r \$0hidnum;
+#X obj 232 63 r \$0keystate;
+#X obj 232 149 sel 1;
+#X obj 243 171 r \$0reset;
+#X msg 26 299 1;
+#X msg 56 299 0;
+#X obj 87 299 f;
+#X obj 58 235 t b b f;
+#X obj 26 378 pack f f;
+#X obj 87 350 pipe f f 250;
+#X obj 87 378 pack f f;
+#X obj 26 433 s \$0note;
+#X floatatom 253 245 5 0 0 0 - - -;
+#X obj 217 540 tabwrite \$0translation;
+#X msg 243 193 reset;
+#X obj 426 47 r \$0rec;
+#X obj 426 73 sel 1;
+#X obj 426 102 s \$0reset;
+#X obj 253 292 s \$0recr;
+#X obj 253 267 sel 36;
+#X obj 233 219 count 37;
+#N canvas 0 22 463 424 (subpatch) 0;
+#X array \$0translation 255 float 3;
+#A 0 255 255 255 255 4 16 2 6 10 7 20 21 27 22 23 35 18 17 16 17 8
+11 5 24 26 3 9 1 25 0 12 13 14 15 28 29 30 31 15 255 255 255 22 0 255
+18 20 19 21 23 255 255 255 255 19 32 33 255 255 255 255 255 255 255
+255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
+255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
+255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
+255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
+255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
+255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
+255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
+255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
+255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
+255 255 255 255 255 255 255 255 255 255 255 255 34 255 255 255 255
+255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
+255 255 255 255;
+#X coords 0 0 255 260 200 140 1;
+#X restore 9 38 graph;
+#X obj 336 314 t b f;
+#X obj 217 350 f;
+#X obj 336 290 spigot;
+#X obj 372 265 r \$0rec;
+#X obj 232 119 spigot;
+#X obj 265 94 r \$0rec;
+#X text 16 204 feedback while filling;
+#X text 17 214 the translation table.;
+#X obj 582 75 s \$0keyname;
+#X obj 250 424 pack f f;
+#X obj 250 448 s \$0messmem;
+#X obj 250 485 r \$0messmemload;
+#X obj 250 509 unpack;
+#X obj 295 401 change;
+#X obj 250 401 change;
+#X obj 527 216 r \$0reset;
+#X obj 527 241 t b b;
+#X obj 527 395 tabwrite \$0translation;
+#X msg 571 295 reset;
+#X obj 527 326 count 255;
+#X msg 527 373 255;
+#X obj 527 296 until;
+#X msg 527 270 255;
+#X obj 527 348 t b f;
+#X text 17 193 This rigs up visual;
+#X connect 0 1 31 0;
+#X connect 1 0 25 0;
+#X connect 2 0 27 0;
+#X connect 3 0 21 0;
+#X connect 4 0 15 0;
+#X connect 5 0 9 1;
+#X connect 6 0 10 1;
+#X connect 7 0 9 0;
+#X connect 7 0 10 0;
+#X connect 8 0 7 0;
+#X connect 8 1 6 0;
+#X connect 8 1 5 0;
+#X connect 8 2 7 1;
+#X connect 9 0 12 0;
+#X connect 10 0 11 0;
+#X connect 10 1 11 1;
+#X connect 11 0 12 0;
+#X connect 13 0 20 0;
+#X connect 15 0 21 0;
+#X connect 16 0 17 0;
+#X connect 17 0 18 0;
+#X connect 20 0 19 0;
+#X connect 21 0 13 0;
+#X connect 21 0 8 0;
+#X connect 21 0 24 1;
+#X connect 23 0 24 0;
+#X connect 23 1 14 1;
+#X connect 23 1 36 0;
+#X connect 24 0 14 0;
+#X connect 24 0 37 0;
+#X connect 25 0 23 0;
+#X connect 26 0 25 1;
+#X connect 27 0 3 0;
+#X connect 28 0 27 1;
+#X connect 32 0 33 0;
+#X connect 34 0 35 0;
+#X connect 35 0 14 0;
+#X connect 35 1 14 1;
+#X connect 36 0 32 1;
+#X connect 37 0 32 0;
+#X connect 38 0 39 0;
+#X connect 39 0 45 0;
+#X connect 39 1 41 0;
+#X connect 41 0 42 0;
+#X connect 42 0 46 0;
+#X connect 43 0 40 0;
+#X connect 44 0 42 0;
+#X connect 45 0 44 0;
+#X connect 46 0 43 0;
+#X connect 46 1 40 1;
+#X restore 34 69 pd transconfig;
+#N canvas 930 190 350 403 translate 0;
+#X obj 100 266 r \$0keystate;
+#X obj 56 321 s \$0note;
+#X obj 55 286 pack f f;
+#X obj 55 149 tabread \$0translation;
+#X obj 55 45 r \$0hidnum;
+#X obj 145 45 r \$0rec;
+#X obj 145 70 sel 0 1;
+#X msg 145 97 1;
+#X msg 175 97 0;
+#X obj 55 223 spigot;
+#X obj 55 179 t f f;
+#X obj 88 202 < 255;
+#X obj 55 114 spigot 1;
+#X connect 0 0 2 1;
+#X connect 2 0 1 0;
+#X connect 3 0 10 0;
+#X connect 4 0 12 0;
+#X connect 5 0 6 0;
+#X connect 6 0 7 0;
+#X connect 6 1 8 0;
+#X connect 7 0 12 1;
+#X connect 8 0 12 1;
+#X connect 9 0 2 0;
+#X connect 10 0 9 0;
+#X connect 10 1 11 0;
+#X connect 11 0 9 1;
+#X connect 12 0 3 0;
+#X restore 34 117 pd translate;
+#N canvas 564 265 482 332 output 0;
+#X obj 138 28 r \$0note;
+#X obj 138 68 unpack;
+#X obj 175 115 sel 1;
+#X obj 174 203 f;
+#X obj 189 158 r \$0vel;
+#X obj 90 252 outlet;
+#X obj 175 252 outlet;
+#X obj 113 173 * 12;
+#X obj 90 196 + 60;
+#X obj 113 152 r \$0oct;
+#X connect 0 0 1 0;
+#X connect 1 0 8 0;
+#X connect 1 1 2 0;
+#X connect 2 0 3 0;
+#X connect 2 1 6 0;
+#X connect 3 0 6 0;
+#X connect 4 0 3 1;
+#X connect 7 0 8 1;
+#X connect 8 0 5 0;
+#X connect 9 0 7 0;
+#X restore 34 141 pd output;
+#N canvas 806 99 474 324 args 0;
+#X obj 165 61 \$1;
+#X obj 197 61 \$2;
+#X obj 229 61 \$3;
+#X obj 164 26 loadbang;
+#X obj 164 131 s \$0durationr;
+#X obj 198 109 s \$0velr;
+#X obj 230 86 s \$0channel;
+#X connect 0 0 4 0;
+#X connect 1 0 5 0;
+#X connect 2 0 6 0;
+#X connect 3 0 0 0;
+#X connect 3 0 1 0;
+#X connect 3 0 2 0;
+#X restore 34 19 pd args;
+#X obj 34 204 outlet;
+#N canvas 683 22 713 641 saveload 0;
+#X msg 190 110 add2 \$1 \$2;
+#X msg 125 110 addcomma;
+#X obj 125 52 r \$0messmem;
+#X obj 125 78 t a a;
+#X msg 125 207;
+#X msg 201 176 set;
+#X obj 124 502 textfile;
+#X msg 124 366 add \$1 \$2;
+#X obj 337 379 s \$0reset;
+#X obj 278 235 r \$0loadkeymap;
+#X obj 174 555 s \$0keyname;
+#X msg 174 528 symbol Ok;
+#X obj 125 596 s \$0messmemload;
+#X obj 9 144 r \$0savekeymap;
+#X obj 9 360 savepanel;
+#X msg 9 386 write \$1;
+#X obj 201 152 r \$0reset;
+#X obj 9 174 t b b;
+#X msg 298 469 rewind;
+#X obj 240 403 until;
+#X text 12 10 The map is held in a message to allow the eventual ability
+to hardcode defaults into the patch for ease of use.;
+#X obj 278 283 openpanel;
+#X obj 278 353 t b b a b;
+#X obj 316 434 list trim;
+#X obj 342 297 loadbang;
+#X text 399 298 Default map filename;
+#X obj 316 407 list prepend read;
+#X obj 345 88 r \$0-mode-s;
+#X obj 345 111 sel 0 1;
+#X msg 345 157 symbol drumpads.crikey;
+#X msg 345 137 symbol clavier.crikey;
+#X msg 342 319 symbol clavier.crikey;
+#X connect 0 0 4 0;
+#X connect 1 0 4 0;
+#X connect 2 0 3 0;
+#X connect 3 0 1 0;
+#X connect 3 1 0 0;
+#X connect 4 0 7 0;
+#X connect 5 0 4 0;
+#X connect 6 0 12 0;
+#X connect 6 1 11 0;
+#X connect 6 1 19 1;
+#X connect 7 0 6 0;
+#X connect 9 0 21 0;
+#X connect 11 0 10 0;
+#X connect 13 0 17 0;
+#X connect 14 0 15 0;
+#X connect 15 0 6 0;
+#X connect 16 0 5 0;
+#X connect 17 0 14 0;
+#X connect 17 1 4 0;
+#X connect 18 0 6 0;
+#X connect 19 0 6 0;
+#X connect 21 0 22 0;
+#X connect 22 0 19 0;
+#X connect 22 1 18 0;
+#X connect 22 2 26 0;
+#X connect 22 3 8 0;
+#X connect 23 0 6 0;
+#X connect 24 0 31 0;
+#X connect 26 0 23 0;
+#X connect 27 0 28 0;
+#X connect 28 0 30 0;
+#X connect 28 1 29 0;
+#X connect 29 0 22 0;
+#X connect 30 0 22 0;
+#X connect 31 0 22 0;
+#X restore 34 93 pd saveload;
+#X obj 34 172 pack f f;
+#X obj 186 132 hradio 8 1 1 7 \$0oct \$0octr Octave 0 -6 0 8 -39808
+-1 -1 3;
+#X obj 186 143 vradio 10 1 0 2 \$0-mode-s \$0-mode-r empty 0 -8 0 10
+-262144 -1 -1 0;
+#X obj 198 143 cnv 10 40 10 empty empty Clavier 2 5 0 8 -262144 -66577
+0;
+#X obj 198 153 cnv 10 40 10 empty empty MPD 2 5 0 8 -262144 -66577
+0;
+#X connect 3 0 7 0;
+#X connect 3 1 7 1;
+#X connect 7 0 5 0;
+#X coords 0 -1 1 1 64 50 2 182 118;
diff --git a/sfruit/drumpads.crikey b/sfruit/drumpads.crikey
new file mode 100644
index 0000000..f032bd0
--- /dev/null
+++ b/sfruit/drumpads.crikey
@@ -0,0 +1,179 @@
+0 43;
+1 30;
+2 20;
+3 31;
+4 26;
+5 8;
+6 33;
+7 21;
+8 34;
+9 23;
+10 35;
+11 28;
+12 24;
+13 37;
+14 12;
+15 38;
+16 18;
+17 19;
+18 45;
+19 47;
+20 46;
+21 48;
+22 42;
+23 49;
+24 29;
+25 22;
+26 27;
+27 7;
+28 6;
+29 25;
+30 10;
+31 5;
+32 11;
+33 17;
+34 13;
+35 16;
+1 30;
+2 20;
+3 31;
+4 26;
+5 8;
+6 33;
+7 21;
+8 34;
+9 23;
+10 35;
+11 28;
+12 24;
+13 37;
+14 12;
+15 38;
+16 18;
+17 19;
+18 45;
+19 47;
+20 46;
+21 48;
+22 42;
+23 49;
+24 29;
+25 22;
+26 27;
+27 7;
+28 6;
+29 25;
+30 10;
+31 5;
+32 11;
+33 17;
+34 13;
+35 16;
+0 29;
+1 27;
+2 6;
+3 25;
+4 4;
+5 22;
+6 7;
+7 9;
+8 20;
+9 26;
+10 8;
+11 21;
+12 30;
+13 31;
+14 32;
+15 33;
+16 5;
+17 17;
+18 16;
+19 54;
+20 10;
+21 11;
+22 13;
+23 14;
+24 23;
+25 28;
+26 24;
+27 12;
+28 34;
+29 35;
+30 36;
+31 37;
+32 55;
+33 55;
+34 55;
+35 55;
+0 29;
+1 27;
+2 6;
+3 25;
+4 4;
+5 22;
+6 7;
+7 9;
+8 20;
+9 26;
+10 8;
+11 21;
+12 30;
+13 31;
+14 32;
+15 33;
+16 5;
+17 17;
+18 16;
+19 54;
+20 10;
+21 11;
+22 13;
+23 14;
+24 23;
+25 28;
+26 24;
+27 12;
+28 34;
+29 35;
+30 36;
+31 37;
+32 55;
+33 56;
+34 229;
+35 15;
+0 29;
+1 27;
+2 6;
+3 25;
+4 4;
+5 22;
+6 7;
+7 9;
+8 20;
+9 26;
+10 8;
+11 21;
+12 30;
+13 31;
+14 32;
+15 33;
+16 5;
+17 17;
+18 16;
+19 54;
+20 10;
+21 11;
+22 13;
+23 14;
+24 23;
+25 28;
+26 24;
+27 12;
+28 34;
+29 35;
+30 36;
+31 37;
+32 55;
+33 56;
+34 229;
+35 15;
diff --git a/sfruit/list-part-help.pd b/sfruit/list-part-help.pd
new file mode 100644
index 0000000..8defa82
--- /dev/null
+++ b/sfruit/list-part-help.pd
@@ -0,0 +1,10 @@
+#N canvas 781 414 450 300 10;
+#X msg 83 101 a b c d | e f g h i | j k | l m n o p q r s | t u v;
+#X obj 83 154 list-part |;
+#X text 38 49 list-part - split a list into its head and tail upon
+encountering a delimiter;
+#X obj 83 199 print head;
+#X obj 175 191 print tail;
+#X connect 0 0 1 0;
+#X connect 1 0 3 0;
+#X connect 1 1 4 0;
diff --git a/sfruit/list-part.pd b/sfruit/list-part.pd
index d194b6e..fc1a8d6 100644
--- a/sfruit/list-part.pd
+++ b/sfruit/list-part.pd
@@ -1,24 +1,38 @@
-#N canvas 59 429 450 300 10;
+#N canvas 9 131 450 300 10;
#X obj 123 127 list-find;
#X obj 123 84 list append \$1;
#X obj 123 14 inlet;
#X obj 123 156 once;
-#X obj 123 47 t b a b a;
#X obj 124 229 list split;
#X obj 124 204 list;
#X obj 124 178 t b a;
#X obj 124 273 outlet;
#X obj 195 269 outlet;
+#X obj 152 249 list split 1;
+#X text 229 249 remove the separator;
+#X obj 174 156 sel 0;
+#X obj 123 47 t b a b a a;
+#X obj 174 200 list;
+#X obj 174 178 t b b;
+#X text 208 176 if we didn't find the separator \, just output the
+input from the left and a bang from the right.;
#X connect 0 0 3 0;
+#X connect 0 1 11 0;
#X connect 1 0 0 0;
-#X connect 2 0 4 0;
-#X connect 3 0 7 0;
-#X connect 4 0 1 0;
-#X connect 4 1 0 1;
-#X connect 4 2 3 1;
-#X connect 4 3 6 1;
-#X connect 5 0 8 0;
-#X connect 5 1 9 0;
+#X connect 2 0 12 0;
+#X connect 3 0 6 0;
+#X connect 4 0 7 0;
+#X connect 4 1 9 0;
+#X connect 5 0 4 0;
#X connect 6 0 5 0;
-#X connect 7 0 6 0;
-#X connect 7 1 5 1;
+#X connect 6 1 4 1;
+#X connect 9 1 8 0;
+#X connect 11 0 14 0;
+#X connect 12 0 1 0;
+#X connect 12 1 0 1;
+#X connect 12 2 3 1;
+#X connect 12 3 5 1;
+#X connect 12 4 13 1;
+#X connect 13 0 7 0;
+#X connect 14 0 13 0;
+#X connect 14 1 8 0;
diff --git a/sfruit/list-part2.pd b/sfruit/list-part2.pd
index 7fe97df..520d342 100644
--- a/sfruit/list-part2.pd
+++ b/sfruit/list-part2.pd
@@ -1,4 +1,4 @@
-#N canvas 253 257 481 530 10;
+#N canvas 212 292 481 530 10;
#X obj 123 127 list-find;
#X obj 123 84 list append \$1;
#X obj 123 14 inlet;
@@ -46,7 +46,6 @@
#X obj 329 178 \$2;
#X obj 124 318 list-slice;
#X obj 124 212 list prepend 0;
-#X obj 329 205 + 1;
#X obj 125 419 list-slice;
#X obj 160 383 unpack f f;
#X obj 295 119 inlet;
@@ -58,35 +57,44 @@
#X obj 124 263 list append;
#X obj 123 47 t b a a a;
#X obj 157 235 list length;
+#X msg 373 82 1;
+#X floatatom 349 313 5 0 0 0 - - -;
+#X floatatom 342 353 5 0 0 0 - - -;
+#X obj 329 205 + 2;
+#X obj 68 268 print;
#X connect 0 0 6 1;
#X connect 0 1 7 0;
#X connect 1 0 0 0;
-#X connect 2 0 24 0;
-#X connect 3 0 15 0;
+#X connect 2 0 23 0;
+#X connect 3 0 14 0;
#X connect 4 0 3 0;
-#X connect 4 1 16 0;
+#X connect 4 1 15 0;
#X connect 6 0 13 0;
#X connect 7 0 6 0;
-#X connect 8 0 24 0;
+#X connect 8 0 23 0;
#X connect 9 0 1 1;
#X connect 10 0 12 1;
-#X connect 11 0 14 0;
+#X connect 10 0 27 0;
+#X connect 11 0 28 0;
#X connect 12 0 4 0;
-#X connect 12 0 22 0;
-#X connect 13 0 23 0;
-#X connect 14 0 12 2;
-#X connect 15 0 5 0;
-#X connect 15 0 20 0;
-#X connect 16 0 15 1;
-#X connect 16 1 15 2;
-#X connect 17 0 18 0;
-#X connect 18 0 10 0;
-#X connect 18 1 11 0;
-#X connect 19 0 18 0;
-#X connect 21 0 18 0;
-#X connect 23 0 12 0;
-#X connect 24 0 1 0;
-#X connect 24 1 0 1;
-#X connect 24 2 25 0;
-#X connect 24 3 3 1;
-#X connect 25 0 23 1;
+#X connect 12 0 21 0;
+#X connect 13 0 22 0;
+#X connect 14 0 5 0;
+#X connect 14 0 19 0;
+#X connect 15 0 14 1;
+#X connect 15 1 14 2;
+#X connect 16 0 17 0;
+#X connect 17 0 10 0;
+#X connect 17 1 11 0;
+#X connect 18 0 17 0;
+#X connect 20 0 17 0;
+#X connect 22 0 12 0;
+#X connect 22 0 29 0;
+#X connect 23 0 1 0;
+#X connect 23 1 0 1;
+#X connect 23 2 24 0;
+#X connect 23 3 3 1;
+#X connect 24 0 22 1;
+#X connect 25 0 17 0;
+#X connect 28 0 12 2;
+#X connect 28 0 26 0;
diff --git a/sfruit/list-partslow-help.pd b/sfruit/list-partslow-help.pd
new file mode 100644
index 0000000..2be24cb
--- /dev/null
+++ b/sfruit/list-partslow-help.pd
@@ -0,0 +1,3 @@
+#N canvas 519 115 450 300 10;
+#X text 64 35 list-partslow: Serialize a delimited list on demand;
+#X obj 65 115 list-partslow;
diff --git a/sfruit/list-partslow.pd b/sfruit/list-partslow.pd
new file mode 100644
index 0000000..b5289a9
--- /dev/null
+++ b/sfruit/list-partslow.pd
@@ -0,0 +1,15 @@
+#N canvas 0 22 450 300 10;
+#X obj 217 150 list;
+#X obj 130 113 route bang;
+#X obj 238 112 inlet;
+#X obj 217 79 inlet;
+#X obj 217 183 outlet;
+#X obj 131 185 outlet;
+#X obj 131 150 list-part \$1;
+#X connect 0 0 1 0;
+#X connect 1 0 4 0;
+#X connect 1 1 6 0;
+#X connect 2 0 0 1;
+#X connect 3 0 0 0;
+#X connect 6 0 5 0;
+#X connect 6 1 0 1;
diff --git a/sfruit/no-dsp.pd b/sfruit/no-dsp.pd
new file mode 100644
index 0000000..157847e
--- /dev/null
+++ b/sfruit/no-dsp.pd
@@ -0,0 +1,10 @@
+#N canvas 741 517 223 215 10;
+#X obj 58 21 inlet;
+#X obj 58 64 t b a b;
+#X obj 77 143 outlet;
+#X msg 100 107 \; pd dsp 0;
+#X msg 50 167 \; pd dsp 1;
+#X connect 0 0 1 0;
+#X connect 1 0 4 0;
+#X connect 1 1 2 0;
+#X connect 1 2 3 0;