#N canvas 259 433 689 355 12; #X declare -path . -path score -path ../lib -path lib; #N canvas 476 0 295 189 reset 0; #X obj 41 24 r reset; #X msg 41 64 \; stop-loop1 bang \; stop-loop2 bang; #X connect 0 0 1 0; #X restore 546 47 pd reset; #N canvas 90 54 628 391 output 0; #X obj 404 98 r tgp~; #X obj 401 152 pack 0 50; #X obj 401 182 line~; #X obj 403 126 dbtorms; #X obj 161 242 *~; #X obj 205 242 *~; #X obj 161 283 dac~; #X obj 135 106 catch~ out-left; #X obj 223 154 catch~ out-right; #X obj 173 131 catch~ out-center; #X connect 0 0 3 0; #X connect 1 0 2 0; #X connect 2 0 5 1; #X connect 2 0 4 1; #X connect 3 0 1 0; #X connect 4 0 6 0; #X connect 5 0 6 1; #X connect 7 0 4 0; #X connect 8 0 5 0; #X connect 9 0 4 0; #X connect 9 0 5 0; #X restore 546 25 pd output; #X text 135 265 click to; #X obj 16 278 score-editor; #X text 136 279 <- open; #X obj 12 18 sequencer; #X obj 16 255 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X text 14 237 START; #X text 25 221 -----test score----; #N canvas 343 52 528 473 recorder 0; #X obj 43 95 r~ input-signal1; #X obj 220 60 r record; #X obj 132 145 tabwrite~ sample1; #X obj 132 170 tabwrite~ sample2; #X obj 132 195 tabwrite~ sample3; #X obj 132 220 tabwrite~ sample4; #X obj 130 246 tabwrite~ sample5; #X obj 131 271 tabwrite~ sample6; #X obj 131 296 tabwrite~ sample7; #X obj 131 321 tabwrite~ sample8; #X obj 220 85 sel 1 2 3 4 5 6 7 8 9; #X obj 130 345 tabwrite~ sample9; #X text 50 19 record to a sample; #X obj 323 287 r record-sample9; #X obj 102 55 env~ 30000; #X floatatom 131 76 5 0 0 0 - - -; #X obj 322 331 r save-sample9; #X obj 322 354 savepanel; #X obj 321 420 soundfiler; #X msg 321 379 write \$1 sample9; #X connect 0 0 2 0; #X connect 0 0 3 0; #X connect 0 0 4 0; #X connect 0 0 5 0; #X connect 0 0 6 0; #X connect 0 0 7 0; #X connect 0 0 8 0; #X connect 0 0 9 0; #X connect 0 0 11 0; #X connect 0 0 14 0; #X connect 1 0 10 0; #X connect 10 0 2 0; #X connect 10 1 3 0; #X connect 10 2 4 0; #X connect 10 3 5 0; #X connect 10 4 6 0; #X connect 10 5 7 0; #X connect 10 6 8 0; #X connect 10 7 9 0; #X connect 10 8 11 0; #X connect 13 0 11 0; #X connect 14 0 15 0; #X connect 16 0 17 0; #X connect 17 0 19 0; #X connect 19 0 18 0; #X restore 546 69 pd recorder; #X obj 227 220 bng 15 250 50 0 record-sample9 empty empty 0 -6 0 8 -262144 -1 -1; #X text 245 211 record; #X text 246 222 sample9; #X obj 228 248 bng 15 250 50 0 save-sample9 empty empty 0 -6 0 8 -262144 -1 -1; #X text 247 250 sample9; #X text 248 238 save; #X obj 403 11 sample sample1; #X obj 403 33 sample sample2; #X obj 403 55 sample sample3; #X obj 403 77 sample sample4; #X obj 403 99 sample sample5; #X obj 403 121 sample sample6; #X obj 403 143 sample sample7; #X obj 403 165 sample sample8; #X obj 403 187 sample sample9; #N canvas 0 0 672 352 sustain-rec 0; #X obj 146 122 inlet; #X msg 14 220 \; record 1; #X obj 81 97 ctlin; #X obj 80 159 sel 127 0; #X obj 81 124 spigot; #X text 209 155 enable piano sustain pedal recording; #X obj 81 187 timer; #X obj 316 204 t f f; #X obj 357 232 + 10; #X obj 322 259 pack; #X msg 6 272 \; start-loop1 \$1 60 100 \$1 1 0 0 5 5; #X msg 321 287 \; start-loop2 \$2 60 100 \$1 1 0 0 5 5; #X connect 0 0 4 1; #X connect 2 0 4 0; #X connect 3 0 1 0; #X connect 3 0 6 0; #X connect 3 1 6 1; #X connect 4 0 3 0; #X connect 6 0 10 0; #X connect 6 0 7 0; #X connect 7 0 9 0; #X connect 7 1 8 0; #X connect 8 0 9 1; #X connect 9 0 11 0; #X restore 390 290 pd sustain-rec; #X obj 390 245 r sustain-rec; #X obj 390 270 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1; #N canvas 679 267 556 414 looper 0; #X text 38 6 parameters: loop-time \, pitch \, amplitude \, loop-length \, sample-number \, sample-location \, rise-time \, decay-time \, pan(1-9) ; #X floatatom 130 115 5 2 100000 0 period loop1-period-set loop1-period ; #N canvas 317 63 957 558 works 0; #X obj 194 62 r loop1-on; #X obj 203 92 metro 1000; #X obj 216 120 r loop1-one-time; #X obj 295 54 max 2; #X obj 184 152 f; #X obj 186 373 pack 0 0 0 0 0 0 0 0; #X msg 186 401 \; samp \$1 \$2 \$3 \$4 \$5 \$6 \$7 \$8; #X obj 294 29 setline~ loop1-period; #X obj 224 148 setline~ loop1-pitch; #X obj 205 179 setline~ loop1-amp; #X obj 213 206 setline~ loop1-length; #X obj 247 232 setline~ loop1-sample; #X obj 278 259 setline~ loop1-onset; #X obj 303 285 setline~ loop1-rise; #X obj 315 314 setline~ loop1-release; #X obj 339 341 setline~ loop1-pan; #X obj 15 19 r start-loop1; #X msg 14 50 \; loop1-period \$1 \; loop1-pitch \$2 \; loop1-amp \$3 \; loop1-length \$4 \; loop1-sample \$5 \; loop1-onset \$6 \; loop1-rise \$7 \; loop1-release \$8 \; loop1-pan \$9 \; loop1-on 1 \;; #X obj 21 253 r stop-loop1; #X msg 21 285 \; loop1-on 0 \;; #X obj 574 121 metro 1000; #X obj 666 83 max 2; #X obj 555 181 f; #X obj 557 402 pack 0 0 0 0 0 0 0 0; #X msg 557 430 \; samp \$1 \$2 \$3 \$4 \$5 \$6 \$7 \$8; #X msg 16 374 \; loop2-period \$1 \; loop2-pitch \$2 \; loop2-amp \$3 \; loop2-length \$4 \; loop2-sample \$5 \; loop2-onset \$6 \; loop2-rise \$7 \; loop2-release \$8 \; loop2-pan \$9 \; loop2-on 1 \;; #X obj 17 342 r start-loop2; #X obj 193 464 r stop-loop2; #X msg 193 496 \; loop2-on 0 \;; #X obj 665 58 setline~ loop2-period; #X obj 565 91 r loop2-on; #X obj 587 149 r loop2-one-time; #X obj 595 177 setline~ loop2-pitch; #X obj 576 208 setline~ loop2-amp; #X obj 601 237 setline~ loop2-length; #X obj 636 264 setline~ loop2-sample; #X obj 666 290 setline~ loop2-onset; #X obj 691 316 setline~ loop2-rise; #X obj 703 345 setline~ loop2-release; #X obj 727 372 setline~ loop2-pan; #X obj 329 485 print; #X connect 0 0 1 0; #X connect 1 0 4 0; #X connect 2 0 4 0; #X connect 3 0 1 1; #X connect 4 0 5 0; #X connect 5 0 6 0; #X connect 7 0 3 0; #X connect 8 0 4 1; #X connect 9 0 5 1; #X connect 10 0 5 2; #X connect 11 0 5 3; #X connect 12 0 5 4; #X connect 13 0 5 5; #X connect 14 0 5 6; #X connect 15 0 5 7; #X connect 16 0 17 0; #X connect 18 0 19 0; #X connect 20 0 22 0; #X connect 21 0 20 1; #X connect 22 0 23 0; #X connect 23 0 24 0; #X connect 26 0 25 0; #X connect 27 0 28 0; #X connect 29 0 21 0; #X connect 30 0 20 0; #X connect 31 0 22 0; #X connect 32 0 22 1; #X connect 33 0 23 1; #X connect 34 0 23 2; #X connect 35 0 23 3; #X connect 36 0 23 4; #X connect 37 0 23 5; #X connect 38 0 23 6; #X connect 39 0 23 7; #X restore 435 368 pd works; #X obj 130 94 tgl 15 0 loop1-on loop1-on on 0 -6 0 12 -262144 -1 -1 0 1; #X floatatom 130 137 5 0 0 0 pitch loop1-pitch-set loop1-pitch; #X floatatom 130 159 5 0 0 0 amp loop1-amp-set loop1-amp; #X floatatom 130 181 5 0 0 0 length loop1-length-set loop1-length; #X floatatom 130 203 5 1 20 0 sample loop1-sample-set loop1-sample ; #X floatatom 130 225 5 0 100000 0 onset loop1-onset-set loop1-onset ; #X floatatom 130 247 5 0 100000 0 rise loop1-rise-set loop1-rise; #X floatatom 130 269 5 0 100000 0 release loop1-release-set loop1-release ; #X floatatom 130 291 5 1 9 0 pan loop1-pan-set loop1-pan; #X text 108 61 LOOP 1; #X floatatom 280 118 5 2 100000 0 period loop2-period-set loop2-period ; #X obj 280 97 tgl 15 0 loop2-on loop2-on on 0 -6 0 12 -262144 -1 -1 0 1; #X floatatom 280 140 5 0 0 0 pitch loop2-pitch-set loop2-pitch; #X floatatom 280 162 5 0 0 0 amp loop2-amp-set loop2-amp; #X floatatom 280 184 5 0 0 0 length loop2-length-set loop2-length; #X floatatom 280 206 5 1 20 0 sample loop2-sample-set loop2-sample ; #X floatatom 280 228 5 0 100000 0 onset loop2-onset-set loop2-onset ; #X floatatom 279 251 5 0 100000 0 rise loop2-rise-set loop2-rise; #X floatatom 280 272 5 0 100000 0 release loop2-release-set loop2-release ; #X floatatom 280 294 5 1 9 0 pan loop2-pan-set loop2-pan; #X text 258 64 LOOP 2; #X msg 53 353 \; start-loop1 1533 60 100 1533 1 0 0 5 1 \; start-loop2 1543 60 100 1543 1 0 0 5 9; #X text 177 332 example:; #X restore 398 214 pd looper; #X text 486 214 <-- loop controls; #N canvas 259 65 545 541 sampler 0; #X obj 190 50 r samp; #X obj 71 159 + 1; #X obj 133 152 mod 8; #X obj 70 134 f; #X obj 159 98 t b f; #X obj 155 221 route 1 2 3 4 5 6 7 8; #X obj 298 251 voice; #X obj 298 272 voice; #X obj 299 296 voice; #X obj 299 317 voice; #X obj 298 341 voice; #X obj 298 363 voice; #X obj 299 386 voice; #X obj 299 408 voice; #X text 50 19 samp: pitch amplitude duration sample-number onset rise-time decay-time pan; #X obj 189 73 unpack 0 0 0 0 0 0 0 0; #X obj 155 192 pack 0 0 0 0 0 0 0 0 0; #X obj 67 228 print; #X obj 132 130 + 1; #X obj 31 486 declare -path . -path score -path ../lib -path lib; #X connect 0 0 15 0; #X connect 1 0 16 0; #X connect 2 0 3 1; #X connect 3 0 1 0; #X connect 3 0 18 0; #X connect 4 0 3 0; #X connect 4 1 16 1; #X connect 5 0 13 0; #X connect 5 1 12 0; #X connect 5 2 11 0; #X connect 5 3 10 0; #X connect 5 4 9 0; #X connect 5 5 8 0; #X connect 5 6 7 0; #X connect 5 7 6 0; #X connect 15 0 4 0; #X connect 15 1 16 2; #X connect 15 2 16 3; #X connect 15 3 16 4; #X connect 15 4 16 5; #X connect 15 5 16 6; #X connect 15 6 16 7; #X connect 15 7 16 8; #X connect 16 0 5 0; #X connect 18 0 2 0; #X restore 546 91 pd sampler; #X text 297 312 if activated \, piano pedals make recording; #X text 299 329 and start playback loops; #X connect 6 0 3 0; #X connect 26 0 27 0; #X connect 27 0 25 0;