#N canvas 455 65 742 682 12; #X declare -path hjh-abs -path .; #X declare -lib cyclone; #X obj 491 38 declare -path hjh-abs -path .; #X obj 408 73 stereofile sf pdrec-2022-11-02-114039.wav 646232 1.27469e+06 , f 41; #X obj 82 68 tgl 45 0 empty empty user\\\ trigger 47 7 0 18 #fcfcfc #000000 #000000 0 1; #X obj 82 42 r \$0-set-trig; #X obj 276 509 vline~; #X obj 118 554 *~; #X obj 158 554 *~; #X obj 118 588 pddp/ezoutput~; #X obj 82 152 select 0, f 29; #X msg 282 177 1; #N canvas 475 283 450 343 play-interface 0; #X obj 54 38 inlet; #X obj 54 90 route resume all, f 24; #X msg 54 115 resume; #X obj 54 287 outlet; #X msg 136 115 bang; #X obj 136 140 getvalue sfdur; #X obj 136 165 - 100; #X msg 136 190 0 \$1 1; #X obj 54 63 t a b, f 34; #X msg 289 153 1 100; #X obj 289 287 outlet; #X obj 136 215 sf-startmsg sf; #X text 142 238 ^^ add sf-startmsg here; #X connect 0 0 8 0; #X connect 1 0 2 0; #X connect 1 1 4 0; #X connect 2 0 3 0; #X connect 4 0 5 0; #X connect 5 0 6 0; #X connect 6 0 7 0; #X connect 7 0 11 0; #X connect 8 0 1 0; #X connect 8 1 9 0; #X connect 9 0 10 0; #X connect 11 0 3 0; #X restore 118 406 pd play-interface; #X f 23; #X obj 282 202 t b b; #N canvas 475 283 450 413 play-timeout 0; #X obj 69 45 inlet; #X obj 141 154 delay 3000; #X obj 141 45 inlet; #X msg 141 70 stop; #X obj 141 204 outlet; #X obj 141 179 t b b, f 17; #X msg 257 204 set 0; #X obj 257 229 s \$0-set-trig; #X connect 0 0 1 0; #X connect 1 0 5 0; #X connect 2 0 3 0; #X connect 3 0 1 0; #X connect 5 0 4 0; #X connect 5 1 6 0; #X connect 6 0 7 0; #X restore 314 255 pd play-timeout; #X text 389 442 play behavior: \; - pause-dur timer determines start msg \; - run stop-timeout \; \; stop behavior: \; - 'stop' msg \; - reset pause-dur timer \; - communicate stop to timeout; #X obj 82 177 t b b b; #N canvas 475 283 450 300 stop-interface 0; #X obj 57 33 inlet; #X obj 57 58 t b b, f 16; #X obj 57 83 delay 100; #X msg 166 108 0 100; #X obj 57 133 outlet; #X obj 166 133 outlet; #X msg 57 108 pause; #X connect 0 0 1 0; #X connect 1 0 2 0; #X connect 1 1 3 0; #X connect 2 0 6 0; #X connect 3 0 5 0; #X connect 6 0 4 0; #X restore 82 361 pd stop-interface; #X obj 51 641 print msgs to play; #N canvas 475 283 450 451 pause-timer 0; #X obj 62 42 inlet; #X obj 129 42 inlet; #X obj 62 67 timer, f 10; #X obj 62 92 moses 2500, f 34; #X msg 297 160 all; #X obj 153 336 outlet; #X obj 62 160 symbol resume; #X obj 150 135 r \$0-nextresume; #X obj 62 185 t a b, f 8; #X msg 115 210 symbol resume; #X obj 115 235 s \$0-nextresume; #X msg 62 135 bang; #X obj 62 261 list trim; #X connect 0 0 2 0; #X connect 1 0 2 1; #X connect 2 0 3 0; #X connect 3 0 11 0; #X connect 3 1 4 0; #X connect 4 0 5 0; #X connect 6 0 8 0; #X connect 7 0 6 1; #X connect 8 0 12 0; #X connect 8 1 9 0; #X connect 9 0 10 0; #X connect 11 0 6 0; #X connect 12 0 5 0; #X restore 105 301 pd pause-timer; #X text 433 225 left: bang = started play \; right: bang = play stopped for any reason, f 27; #X text 221 301 left bang: reset timer upon last stop \; right bang: check time and decide resume or start; #X text 217 361 convert bang into pause msg + envelope; #X text 289 406 convert 'all' or 'resume' into msg + envelope; #X obj 118 446 play~ sf_LEFT; #X obj 158 477 play~ sf_RIGHT; #X obj 422 153 declare -lib cyclone; #X msg 253 578 symbol all; #X obj 253 603 s \$0-nextresume; #X connect 2 0 8 0; #X connect 3 0 2 0; #X connect 4 0 5 1; #X connect 4 0 6 1; #X connect 5 0 7 0; #X connect 6 0 7 1; #X connect 8 0 14 0; #X connect 8 1 9 0; #X connect 9 0 11 0; #X connect 10 0 16 0; #X connect 10 0 22 0; #X connect 10 0 23 0; #X connect 10 1 4 0; #X connect 11 0 17 1; #X connect 11 1 12 0; #X connect 12 0 15 0; #X connect 12 0 17 0; #X connect 14 0 15 0; #X connect 14 1 17 0; #X connect 14 2 12 1; #X connect 15 0 16 0; #X connect 15 1 4 0; #X connect 17 0 10 0; #X connect 22 0 5 0; #X connect 23 0 6 0; #X connect 23 1 25 0; #X connect 25 0 26 0;