From 82be5712f7be8e63e18b0828de7958b758999337 Mon Sep 17 00:00:00 2001 From: Luke Iannini Date: Thu, 7 May 2009 05:03:07 +0000 Subject: 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 --- sfruit/clavier.crikey | 71 ++++++++++ sfruit/crikeymini.pd | 299 +++++++++++++++++++++++++++++++++++++++++++ sfruit/drumpads.crikey | 179 ++++++++++++++++++++++++++ sfruit/list-part-help.pd | 10 ++ sfruit/list-part.pd | 38 ++++-- sfruit/list-part2.pd | 58 +++++---- sfruit/list-partslow-help.pd | 3 + sfruit/list-partslow.pd | 15 +++ sfruit/no-dsp.pd | 10 ++ 9 files changed, 646 insertions(+), 37 deletions(-) create mode 100644 sfruit/clavier.crikey create mode 100644 sfruit/crikeymini.pd create mode 100644 sfruit/drumpads.crikey create mode 100644 sfruit/list-part-help.pd create mode 100644 sfruit/list-partslow-help.pd create mode 100644 sfruit/list-partslow.pd create mode 100644 sfruit/no-dsp.pd 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; -- cgit v1.2.1