Hi Patrick,
patrick wrote:
can we you share the pd patch that talks to sooperlooper via osc?
It's pretty customized to the HID devices I use with it (4 footswitches
jacked into a USB joystick circuit board and a Contour Shuttle), and the
Shuttle part of the controllers isn't done yet. It's based on
SooperLooper running on Localhost with 4 loops in place. Maybe the rest
will make sense, but I have a feeling it won't be plug-n-play on anybody
else's machine.
I noticed that HID now crashes my PD on OSX quite regularly, so I have
renamed all the [hid] objects [nohid] so that you can at least open it
before [hid] has the possibility to crash. The patch was designed and
used exclusively under Linux, BTW.
There's no docs here, just a work in progress, but I can try to answer
questions. Probably the most interesting part is in the OSC control and
routing stuff at the bottom, espc the copious use of [makefilename] and
some other tricks to construct the OSC messages and change the
information displayed by the canvases.
Have fun!
d.
--
derek holzer :::
http://www.umatic.nl
---Oblique Strategy # 184:
"Where is the edge?"
#N canvas 201 156 1083 566 10;
#X obj 22 265 route key abs;
#X obj 65 292 route abs_y;
#X obj 22 353 route btn_4 btn_5 btn_6 btn_7;
#X text 249 389 MODE(1 , 2 , 3 , 4);
#X text 249 425 MUTE(reverse , trigger , once);
#X text 249 458 SUSTAIN(substitute , replace , insert);
#X text 249 356 LOOP(1 , 2 , 3 , 4);
#X text 153 294 RECORD (overdub , multiply , delaymode);
#X obj 22 424 makefilename %d;
#X msg 22 446 label $1;
#X obj 22 470 s loop_rcv;
#X obj 22 399 + 1;
#N canvas 0 22 462 312 shuttle_modes 0;
#X msg 45 70 ; r14 color $1 $2;
#X msg 175 70 ; r15 color $1 $2;
#X msg 305 70 ; r16 color $1 $2;
#X msg 45 130 ; r24 color $1 $2;
#X msg 175 130 ; r25 color $1 $2;
#X msg 305 130 ; r26 color $1 $2;
#X msg 45 190 ; r34 color $1 $2;
#X msg 175 190 ; r35 color $1 $2;
#X msg 305 190 ; r36 color $1 $2;
#X msg 45 250 ; r44 color $1 $2;
#X msg 175 250 ; r45 color $1 $2;
#X msg 305 250 ; r46 color $1 $2;
#X obj 45 46 pack 10 2;
#X obj 175 46 pack 10 2;
#X obj 305 46 pack 10 2;
#X obj 45 106 pack 10 2;
#X obj 175 106 pack 10 2;
#X obj 305 106 pack 10 2;
#X obj 45 166 pack 10 2;
#X obj 175 166 pack 10 2;
#X obj 305 166 pack 10 2;
#X obj 45 226 pack 10 2;
#X obj 175 226 pack 10 2;
#X obj 305 226 pack 10 2;
#X msg 250 8 bang;
#X connect 12 0 0 0;
#X connect 13 0 1 0;
#X connect 14 0 2 0;
#X connect 15 0 3 0;
#X connect 16 0 4 0;
#X connect 17 0 5 0;
#X connect 18 0 6 0;
#X connect 19 0 7 0;
#X connect 20 0 8 0;
#X connect 21 0 9 0;
#X connect 22 0 10 0;
#X connect 23 0 11 0;
#X connect 24 0 13 0;
#X connect 24 0 12 0;
#X connect 24 0 14 0;
#X connect 24 0 17 0;
#X connect 24 0 16 0;
#X connect 24 0 15 0;
#X connect 24 0 18 0;
#X connect 24 0 19 0;
#X connect 24 0 20 0;
#X connect 24 0 23 0;
#X connect 24 0 22 0;
#X connect 24 0 21 0;
#X restore 225 252 pd shuttle_modes;
#X text 268 233 Shuttle Contour;
#N canvas 26 35 791 579 osc_control 0;
#X obj 66 236 sendOSC;
#X floatatom 66 265 5 0 0 0 - - -;
#X obj 405 201 dumpOSC 11875;
#N canvas 75 240 740 442 mode_messages 0;
#X obj 19 34 select 0;
#X msg 19 220 label $1;
#X obj 19 198 makefilename %s;
#X obj 19 174 symbol;
#X obj 19 244 s rcmd;
#X obj 89 34 select 1;
#X obj 159 34 select 2;
#X obj 229 34 select 3;
#X obj 299 34 select 4;
#X obj 369 34 select 5;
#X obj 439 34 select 6;
#X obj 509 34 select 7;
#X obj 39 84 select 8;
#X obj 109 84 select 9;
#X obj 179 84 select 10;
#X obj 249 84 select 11;
#X obj 319 84 select 12;
#X obj 389 84 select 13;
#X obj 447 104 bang;
#X msg 19 54 OFF;
#X msg 89 54 W.START;
#X msg 159 54 RECORD;
#X msg 229 54 W.STOP;
#X msg 299 54 PLAYING;
#X msg 369 54 OVERDUB;
#X msg 439 54 MULTIPLY;
#X msg 509 54 INSERT;
#X msg 39 104 REPLACE;
#X msg 109 104 DELAY;
#X msg 179 104 MUTED;
#X msg 249 104 SCRATCH;
#X msg 319 104 ONESHOT;
#X msg 389 104 SUBSTIT;
#X msg 447 125 UNKNOWN;
#X obj 19 7 inlet mode;
#X obj 571 7 inlet sus;
#X obj 571 34 select 0;
#X text 25 411 (16 , 13) green , red;
#X text 25 393 (10 , 2) grey , black;
#X msg 135 298 ; rcmd color $1 12;
#X msg 578 298 ; rsus color $1 12;
#X msg 640 271 10;
#X obj 578 271 gate;
#X msg 601 244 0;
#X msg 641 244 1;
#X obj 641 220 bang;
#X obj 571 220 t b b;
#X obj 135 271 gate;
#X msg 198 271 10;
#X msg 158 244 0;
#X msg 198 244 1;
#X obj 198 220 bang;
#X obj 128 220 t b b;
#N canvas 0 22 450 300 metro 0;
#X obj 82 76 + 1;
#X obj 45 97 mod 2;
#X obj 45 118 select 0;
#X obj 96 140 bang;
#X obj 45 52 metro 250;
#X msg 45 161 13;
#X msg 96 161 10;
#X obj 45 76 f;
#X obj 45 24 loadbang;
#X obj 45 198 outlet;
#X connect 0 0 7 1;
#X connect 1 0 2 0;
#X connect 2 0 5 0;
#X connect 2 1 3 0;
#X connect 3 0 6 0;
#X connect 4 0 7 0;
#X connect 5 0 9 0;
#X connect 6 0 9 0;
#X connect 7 0 0 0;
#X connect 7 0 1 0;
#X connect 8 0 4 0;
#X restore 355 198 pd metro;
#X connect 0 0 19 0;
#X connect 0 0 52 0;
#X connect 0 1 5 0;
#X connect 0 1 51 0;
#X connect 1 0 4 0;
#X connect 2 0 1 0;
#X connect 3 0 2 0;
#X connect 5 0 20 0;
#X connect 5 1 6 0;
#X connect 6 0 21 0;
#X connect 6 1 7 0;
#X connect 7 0 22 0;
#X connect 7 1 8 0;
#X connect 8 0 23 0;
#X connect 8 1 9 0;
#X connect 9 0 24 0;
#X connect 9 1 10 0;
#X connect 10 0 25 0;
#X connect 10 1 11 0;
#X connect 11 0 26 0;
#X connect 11 1 12 0;
#X connect 12 0 27 0;
#X connect 12 1 13 0;
#X connect 13 0 28 0;
#X connect 13 1 14 0;
#X connect 14 0 29 0;
#X connect 14 1 15 0;
#X connect 15 0 30 0;
#X connect 15 1 16 0;
#X connect 16 0 31 0;
#X connect 16 1 17 0;
#X connect 17 0 32 0;
#X connect 17 1 18 0;
#X connect 18 0 33 0;
#X connect 19 0 3 0;
#X connect 20 0 3 0;
#X connect 21 0 3 0;
#X connect 22 0 3 0;
#X connect 23 0 3 0;
#X connect 24 0 3 0;
#X connect 25 0 3 0;
#X connect 26 0 3 0;
#X connect 27 0 3 0;
#X connect 28 0 3 0;
#X connect 29 0 3 0;
#X connect 30 0 3 0;
#X connect 31 0 3 0;
#X connect 32 0 3 0;
#X connect 33 0 3 0;
#X connect 34 0 0 0;
#X connect 35 0 36 0;
#X connect 36 0 46 0;
#X connect 36 1 45 0;
#X connect 41 0 40 0;
#X connect 42 0 40 0;
#X connect 43 0 42 1;
#X connect 44 0 42 1;
#X connect 45 0 44 0;
#X connect 46 0 41 0;
#X connect 46 1 43 0;
#X connect 47 0 39 0;
#X connect 48 0 39 0;
#X connect 49 0 47 1;
#X connect 50 0 47 1;
#X connect 51 0 50 0;
#X connect 52 0 48 0;
#X connect 52 1 49 0;
#X connect 53 0 47 0;
#X connect 53 0 42 0;
#X restore 484 273 pd mode_messages;
#X obj 66 26 r osc;
#X obj 405 227 OSCroute /state;
#X obj 405 250 unpack 0 s 0;
#X obj 136 -28 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
1;
#X obj 138 -10 metro 10;
#X obj 591 250 r sustain_status;
#N canvas 6 22 509 547 numbers 0;
#X obj 85 10 inlet;
#X msg 24 280 set $1;
#X obj 24 303 makefilename;
#X obj 24 257 makefilename %%d%d;
#X msg 161 280 set $1;
#X obj 161 303 makefilename;
#X obj 161 257 makefilename %%d%d;
#X msg 161 347 set $1;
#X obj 161 370 makefilename;
#X obj -90 257 makefilename %d;
#X obj 161 439 makefilename;
#X msg 161 416 set $1;
#X obj 161 325 makefilename %%s.%s;
#X obj 161 393 makefilename %%s:%s;
#X msg 161 462 label $1;
#X obj 115 59 int;
#X obj 99 83 -;
#X obj 85 32 t f f;
#X obj 99 162 tosymbol;
#X msg 129 139 symbol;
#X obj 99 207 unpack 0 s 0 0;
#X obj 99 185 s2l _;
#X obj -16 207 int;
#X obj 24 185 mod 10;
#X obj -16 185 / 10;
#X obj -90 185 / 60;
#X obj -90 207 int;
#X obj 129 116 loadbang;
#X obj 161 486 outlet;
#X obj 264 11 inlet mode;
#X obj 264 32 select 0;
#X msg 264 59 0;
#X obj 264 83 t f f;
#X connect 0 0 17 0;
#X connect 1 0 2 0;
#X connect 2 0 8 0;
#X connect 3 0 1 0;
#X connect 4 0 5 0;
#X connect 5 0 12 0;
#X connect 6 0 4 0;
#X connect 7 0 8 0;
#X connect 8 0 13 0;
#X connect 9 0 10 0;
#X connect 10 0 14 0;
#X connect 11 0 10 0;
#X connect 12 0 7 0;
#X connect 13 0 11 0;
#X connect 14 0 28 0;
#X connect 15 0 16 1;
#X connect 16 0 18 0;
#X connect 17 0 16 0;
#X connect 17 1 15 0;
#X connect 17 1 25 0;
#X connect 17 1 24 0;
#X connect 17 1 23 0;
#X connect 18 0 21 0;
#X connect 19 0 21 1;
#X connect 20 2 5 0;
#X connect 20 3 6 0;
#X connect 21 0 20 0;
#X connect 22 0 2 0;
#X connect 23 0 3 0;
#X connect 24 0 22 0;
#X connect 25 0 26 0;
#X connect 26 0 9 0;
#X connect 27 0 19 0;
#X connect 29 0 30 0;
#X connect 30 0 31 0;
#X connect 31 0 32 0;
#X connect 32 0 5 0;
#X connect 32 1 6 0;
#X restore 159 393 pd numbers;
#X obj 175 16 inlet loop;
#X obj 138 59 symbol;
#X obj 175 36 makefilename /sl/%d/get;
#X obj 204 -33 loadbang;
#X msg 258 16 0;
#X obj 204 -10 t b b b;
#X obj 159 414 s rcurrent;
#X obj 80 370 unpack 0 s 0;
#X obj 80 350 OSCroute /loop_pos;
#X obj 289 414 s rtotal;
#X obj 419 414 s rcycle;
#X obj 210 370 unpack 0 s 0;
#X obj 210 350 OSCroute /loop_len;
#X obj 340 350 OSCroute /cycle_len;
#X obj 340 370 unpack 0 s 0;
#N canvas 6 22 509 547 numbers 0;
#X obj 85 10 inlet;
#X msg 24 280 set $1;
#X obj 24 303 makefilename;
#X obj 24 257 makefilename %%d%d;
#X msg 161 280 set $1;
#X obj 161 303 makefilename;
#X obj 161 257 makefilename %%d%d;
#X msg 161 347 set $1;
#X obj 161 370 makefilename;
#X obj -90 257 makefilename %d;
#X obj 161 439 makefilename;
#X msg 161 416 set $1;
#X obj 161 325 makefilename %%s.%s;
#X obj 161 393 makefilename %%s:%s;
#X msg 161 462 label $1;
#X obj 115 59 int;
#X obj 99 83 -;
#X obj 85 32 t f f;
#X obj 99 162 tosymbol;
#X msg 129 139 symbol;
#X obj 99 207 unpack 0 s 0 0;
#X obj 99 185 s2l _;
#X obj -16 207 int;
#X obj 24 185 mod 10;
#X obj -16 185 / 10;
#X obj -90 185 / 60;
#X obj -90 207 int;
#X obj 129 116 loadbang;
#X obj 161 486 outlet;
#X obj 264 11 inlet mode;
#X obj 264 32 select 0;
#X msg 264 59 0;
#X obj 264 83 t f f;
#X connect 0 0 17 0;
#X connect 1 0 2 0;
#X connect 2 0 8 0;
#X connect 3 0 1 0;
#X connect 4 0 5 0;
#X connect 5 0 12 0;
#X connect 6 0 4 0;
#X connect 7 0 8 0;
#X connect 8 0 13 0;
#X connect 9 0 10 0;
#X connect 10 0 14 0;
#X connect 11 0 10 0;
#X connect 12 0 7 0;
#X connect 13 0 11 0;
#X connect 14 0 28 0;
#X connect 15 0 16 1;
#X connect 16 0 18 0;
#X connect 17 0 16 0;
#X connect 17 1 15 0;
#X connect 17 1 25 0;
#X connect 17 1 24 0;
#X connect 17 1 23 0;
#X connect 18 0 21 0;
#X connect 19 0 21 1;
#X connect 20 2 5 0;
#X connect 20 3 6 0;
#X connect 21 0 20 0;
#X connect 22 0 2 0;
#X connect 23 0 3 0;
#X connect 24 0 22 0;
#X connect 25 0 26 0;
#X connect 26 0 9 0;
#X connect 27 0 19 0;
#X connect 29 0 30 0;
#X connect 30 0 31 0;
#X connect 31 0 32 0;
#X connect 32 0 5 0;
#X connect 32 1 6 0;
#X restore 289 393 pd numbers;
#N canvas 6 22 513 551 numbers 0;
#X obj 85 10 inlet;
#X msg 24 280 set $1;
#X obj 24 303 makefilename;
#X obj 24 257 makefilename %%d%d;
#X msg 161 280 set $1;
#X obj 161 303 makefilename;
#X obj 161 257 makefilename %%d%d;
#X msg 161 347 set $1;
#X obj 161 370 makefilename;
#X obj -90 257 makefilename %d;
#X obj 161 439 makefilename;
#X msg 161 416 set $1;
#X obj 161 325 makefilename %%s.%s;
#X obj 161 393 makefilename %%s:%s;
#X msg 161 462 label $1;
#X obj 115 59 int;
#X obj 99 83 -;
#X obj 85 32 t f f;
#X obj 99 162 tosymbol;
#X msg 129 139 symbol;
#X obj 99 207 unpack 0 s 0 0;
#X obj 99 185 s2l _;
#X obj -16 207 int;
#X obj 24 185 mod 10;
#X obj -16 185 / 10;
#X obj -90 185 / 60;
#X obj -90 207 int;
#X obj 129 116 loadbang;
#X obj 161 486 outlet;
#X obj 264 11 inlet mode;
#X obj 264 32 select 0;
#X msg 264 59 0;
#X obj 264 83 t f f;
#X connect 0 0 17 0;
#X connect 1 0 2 0;
#X connect 2 0 8 0;
#X connect 3 0 1 0;
#X connect 4 0 5 0;
#X connect 5 0 12 0;
#X connect 6 0 4 0;
#X connect 7 0 8 0;
#X connect 8 0 13 0;
#X connect 9 0 10 0;
#X connect 10 0 14 0;
#X connect 11 0 10 0;
#X connect 12 0 7 0;
#X connect 13 0 11 0;
#X connect 14 0 28 0;
#X connect 15 0 16 1;
#X connect 16 0 18 0;
#X connect 17 0 16 0;
#X connect 17 1 15 0;
#X connect 17 1 25 0;
#X connect 17 1 24 0;
#X connect 17 1 23 0;
#X connect 18 0 21 0;
#X connect 19 0 21 1;
#X connect 20 2 5 0;
#X connect 20 3 6 0;
#X connect 21 0 20 0;
#X connect 22 0 2 0;
#X connect 23 0 3 0;
#X connect 24 0 22 0;
#X connect 25 0 26 0;
#X connect 26 0 9 0;
#X connect 27 0 19 0;
#X connect 29 0 30 0;
#X connect 30 0 31 0;
#X connect 31 0 32 0;
#X connect 32 0 5 0;
#X connect 32 1 6 0;
#X restore 419 393 pd numbers;
#N canvas 381 381 392 225 cycles 0;
#X obj -11 8 inlet current;
#X obj 98 8 inlet total;
#X obj 198 8 inlet cycles;
#X obj 98 57 /;
#X obj -11 57 /;
#X obj -11 82 int;
#X obj -11 106 + 1;
#X msg -11 153 label $1;
#X msg 98 153 label $1;
#X obj -11 177 s curcyc;
#X obj 98 179 s totcyc;
#X obj -11 130 makefilename %d;
#X obj 98 130 makefilename %d;
#X obj 294 8 inlet mode;
#X obj 294 29 select 0;
#X msg 294 56 0;
#X connect 0 0 4 0;
#X connect 1 0 3 0;
#X connect 2 0 3 1;
#X connect 2 0 4 1;
#X connect 3 0 12 0;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 6 0 11 0;
#X connect 7 0 9 0;
#X connect 8 0 10 0;
#X connect 11 0 7 0;
#X connect 12 0 8 0;
#X connect 13 0 14 0;
#X connect 14 0 15 0;
#X connect 15 0 11 0;
#X restore 159 437 pd cycles;
#X msg 66 188 connect localhost 9951;
#X msg 138 79 send $1 loop_pos osc.udp://localhost:11875/ /loop_pos
;
#X msg 154 106 send $1 state osc.udp://localhost:11875/ /state;
#X msg 178 130 send $1 loop_len osc.udp://localhost:11875/ /loop_len
;
#X msg 208 153 send $1 cycle_len osc.udp://localhost:11875/ /cycle_len
;
#X connect 0 0 1 0;
#X connect 2 0 5 0;
#X connect 2 0 19 0;
#X connect 2 0 23 0;
#X connect 2 0 24 0;
#X connect 4 0 0 0;
#X connect 5 0 6 0;
#X connect 6 2 3 0;
#X connect 6 2 27 1;
#X connect 6 2 26 1;
#X connect 6 2 10 1;
#X connect 6 2 28 3;
#X connect 7 0 8 0;
#X connect 8 0 12 0;
#X connect 9 0 3 1;
#X connect 10 0 17 0;
#X connect 11 0 13 0;
#X connect 12 0 30 0;
#X connect 12 0 31 0;
#X connect 12 0 32 0;
#X connect 12 0 33 0;
#X connect 13 0 12 1;
#X connect 14 0 16 0;
#X connect 15 0 13 0;
#X connect 16 0 8 0;
#X connect 16 1 29 0;
#X connect 16 2 15 0;
#X connect 18 2 10 0;
#X connect 18 2 28 0;
#X connect 19 0 18 0;
#X connect 22 2 26 0;
#X connect 22 2 28 1;
#X connect 23 0 22 0;
#X connect 24 0 25 0;
#X connect 25 2 27 0;
#X connect 25 2 28 2;
#X connect 26 0 20 0;
#X connect 27 0 21 0;
#X connect 29 0 0 0;
#X connect 30 0 0 0;
#X connect 31 0 0 0;
#X connect 32 0 0 0;
#X connect 33 0 0 0;
#X restore 38 526 pd osc_control;
#X obj 3 8 cnv 15 1014 185 empty empty empty 20 14 1 14 -1 -66577 0
;
#X obj 5 10 cnv 15 1010 181 empty empty empty 20 14 1 14 -24198 -66577
0;
#X obj 7 13 cnv 15 460 115 empty loop_rcv 1 20 14 1 14 -1 -66577 0
;
#X obj 334 16 cnv 15 130 25 empty r13 RECORD 2 12 0 24 -24198 -33289
0;
#X obj 334 44 cnv 15 130 25 empty r23 OVERDUB 2 12 0 24 -233017 -33289
0;
#X obj 334 72 cnv 15 130 25 empty r33 MULTIPLY 2 12 0 24 -233017 -33289
0;
#X obj 334 100 cnv 15 130 25 empty r43 DELAYMOD 2 12 0 24 -233017 -33289
0;
#X obj 68 16 cnv 15 130 25 empty r11 MUTE 2 12 0 24 -24198 -33289 0
;
#X obj 68 44 cnv 15 130 25 empty r21 REVERSE 2 12 0 24 -233017 -33289
0;
#X obj 68 72 cnv 15 130 25 empty r31 TRIGGER 2 12 0 24 -233017 -33289
0;
#X obj 68 100 cnv 15 130 25 empty r41 ONCE 2 12 0 24 -233017 -33289
0;
#X obj 201 16 cnv 15 130 25 empty r12 SUSTAIN 2 12 0 24 -24198 -33289
0;
#X obj 201 44 cnv 15 130 25 empty r22 SUBSTIT 2 12 0 24 -233017 -33289
0;
#X obj 201 72 cnv 15 130 25 empty r32 REPLACE 2 12 0 24 -233017 -33289
0;
#X obj 201 100 cnv 15 130 25 empty r42 INSERT 2 12 0 24 -233017 -33289
0;
#X obj 10 16 cnv 15 55 109 empty loop_rcv 1 0 60 0 80 -233017 -1 0
;
#X obj 472 13 cnv 15 539 115 empty empty empty 20 14 1 14 -1 -66577
0;
#X obj 475 16 cnv 15 130 25 empty r14 FBAK 2 12 0 24 -233017 -66577
0;
#X obj 475 44 cnv 15 130 25 empty r24 WET 2 12 0 24 -233017 -66577
0;
#X obj 475 72 cnv 15 130 25 empty r34 DRY 2 12 0 24 -233017 -66577
0;
#X obj 475 100 cnv 15 130 25 empty r44 XFDE 2 12 0 24 -233017 -66577
0;
#X obj 609 16 cnv 15 130 25 empty r15 QUAN 2 12 0 24 -233017 -66577
0;
#X obj 609 44 cnv 15 130 25 empty r25 TEMP 2 12 0 24 -233017 -66577
0;
#X obj 609 72 cnv 15 130 25 empty r35 8ths 2 12 0 24 -233017 -66577
0;
#X obj 609 100 cnv 15 130 25 empty r45 SYNC 2 12 0 24 -233017 -66577
0;
#X obj 743 16 cnv 15 130 25 empty r16 RATE 2 12 0 24 -233017 -66577
0;
#X obj 743 44 cnv 15 130 25 empty r26 1X 2 12 0 24 -233017 -66577 0
;
#X obj 743 72 cnv 15 130 25 empty r36 1/2X 2 12 0 24 -233017 -66577
0;
#X obj 743 100 cnv 15 130 25 empty r46 2X 2 12 0 24 -233017 -66577
0;
#X obj 878 16 cnv 15 130 25 empty r16 GRAN 2 12 0 24 -233017 -66577
0;
#X obj 878 44 cnv 15 130 25 empty r26 ASYN 2 12 0 24 -233017 -66577
0;
#X obj 878 72 cnv 15 130 25 empty r36 W&F 2 12 0 24 -233017 -66577
0;
#X obj 878 100 cnv 15 130 25 empty r46 DPTH 2 12 0 24 -233017 -66577
0;
#X text 621 -4 GLOBAL!;
#X obj 7 132 cnv 15 460 56 empty empty empty 6 24 0 24 -1 -66577 0
;
#X obj 146 135 cnv 15 260 50 empty rcurrent 0:00.13 16 28 0 50 -233017
-1 0;
#X obj 10 135 cnv 15 132 23 empty rcmd PLAYING 2 11 0 24 -258699 -33289
0;
#X obj 410 135 cnv 15 54 23 empty curcyc 1 20 12 0 24 -233017 -1 0
;
#X obj 410 162 cnv 15 54 23 empty totcyc 1 20 12 0 24 -233017 -1 0
;
#X obj 472 132 cnv 15 539 56 empty rtotal 0:00.18 6 24 0 24 -1 -66577
0;
#X obj 475 135 cnv 15 264 50 empty rtotal 0:00.18 16 28 0 50 -233017
-1 0;
#X obj 743 135 cnv 15 264 50 empty rcycle 0:00.18 16 28 0 50 -233017
-1 0;
#X obj 627 142 cnv 15 30 15 empty empty TOT 0 6 0 14 -233017 -1 0;
#X obj 895 142 cnv 15 30 15 empty empty CYC 0 6 0 14 -233017 -1 0;
#X obj 10 162 cnv 15 132 23 empty rsus SUSTAIN 2 12 0 24 -258699 -33289
0;
#N canvas 50 217 534 335 changecolors 0;
#X obj 80 37 inlet mode;
#X obj 232 37 inlet mute;
#X obj 309 37 inlet sustain;
#X obj 407 37 inlet record;
#N canvas 173 171 735 543 colors 0;
#X obj 54 4 inlet mode;
#X msg 55 300 ; r11 color $1 $2;
#X msg 185 300 ; r12 color $1 $2;
#X msg 315 300 ; r13 color $1 $2;
#X msg 55 360 ; r21 color $1 $2;
#X msg 185 360 ; r22 color $1 $2;
#X msg 315 360 ; r23 color $1 $2;
#X msg 55 420 ; r31 color $1 $2;
#X msg 185 420 ; r32 color $1 $2;
#X msg 315 420 ; r33 color $1 $2;
#X msg 88 91 16;
#X msg 158 91 16;
#X msg 228 91 16;
#X msg 298 91 16;
#X msg 55 480 ; r41 color $1 $2;
#X msg 185 480 ; r42 color $1 $2;
#X msg 315 480 ; r43 color $1 $2;
#X text 449 51 (16 , 13) green , red;
#X obj 372 91 route 11 12 13 21 22 23 31 32 33 41 42 43;
#X obj 342 56 t b l;
#X text 449 33 (10 , 2) grey , black;
#X msg 54 91 10;
#X msg 124 91 10;
#X msg 194 91 10;
#X msg 263 91 10;
#X obj 342 4 inlet pedals;
#X obj 54 56 select 0;
#X obj 124 56 select 1;
#X obj 194 56 select 2;
#X obj 263 56 select 3;
#X obj 55 276 pack 10 12;
#X obj 185 276 pack 10 12;
#X obj 315 276 pack 10 12;
#X obj 315 336 pack 10 12;
#X obj 185 336 pack 10 12;
#X obj 55 336 pack 10 12;
#X obj 55 396 pack 10 12;
#X obj 185 396 pack 10 12;
#X obj 315 396 pack 10 12;
#X obj 55 456 pack 10 12;
#X obj 185 456 pack 10 12;
#X obj 315 456 pack 10 12;
#X connect 0 0 26 0;
#X connect 10 0 30 0;
#X connect 10 0 31 0;
#X connect 10 0 32 0;
#X connect 11 0 33 0;
#X connect 11 0 34 0;
#X connect 11 0 35 0;
#X connect 12 0 36 0;
#X connect 12 0 37 0;
#X connect 12 0 38 0;
#X connect 13 0 39 0;
#X connect 13 0 40 0;
#X connect 13 0 41 0;
#X connect 18 0 30 1;
#X connect 18 1 31 1;
#X connect 18 2 32 1;
#X connect 18 3 35 1;
#X connect 18 4 34 1;
#X connect 18 5 33 1;
#X connect 18 6 36 1;
#X connect 18 7 37 1;
#X connect 18 8 38 1;
#X connect 18 9 39 1;
#X connect 18 10 40 1;
#X connect 18 11 41 1;
#X connect 19 0 30 0;
#X connect 19 0 31 0;
#X connect 19 0 32 0;
#X connect 19 0 33 0;
#X connect 19 0 34 0;
#X connect 19 0 35 0;
#X connect 19 0 36 0;
#X connect 19 0 37 0;
#X connect 19 0 38 0;
#X connect 19 0 39 0;
#X connect 19 0 40 0;
#X connect 19 0 41 0;
#X connect 19 1 18 0;
#X connect 21 0 33 0;
#X connect 21 0 34 0;
#X connect 21 0 35 0;
#X connect 21 0 36 0;
#X connect 21 0 37 0;
#X connect 21 0 38 0;
#X connect 21 0 39 0;
#X connect 21 0 40 0;
#X connect 21 0 41 0;
#X connect 22 0 30 0;
#X connect 22 0 31 0;
#X connect 22 0 32 0;
#X connect 22 0 36 0;
#X connect 22 0 37 0;
#X connect 22 0 38 0;
#X connect 22 0 39 0;
#X connect 22 0 40 0;
#X connect 22 0 41 0;
#X connect 23 0 30 0;
#X connect 23 0 31 0;
#X connect 23 0 32 0;
#X connect 23 0 33 0;
#X connect 23 0 34 0;
#X connect 23 0 35 0;
#X connect 23 0 39 0;
#X connect 23 0 40 0;
#X connect 23 0 41 0;
#X connect 24 0 30 0;
#X connect 24 0 31 0;
#X connect 24 0 32 0;
#X connect 24 0 33 0;
#X connect 24 0 34 0;
#X connect 24 0 35 0;
#X connect 24 0 36 0;
#X connect 24 0 37 0;
#X connect 24 0 38 0;
#X connect 25 0 19 0;
#X connect 26 0 21 0;
#X connect 26 0 10 0;
#X connect 26 1 27 0;
#X connect 27 0 22 0;
#X connect 27 0 11 0;
#X connect 27 1 28 0;
#X connect 28 0 23 0;
#X connect 28 0 12 0;
#X connect 28 1 29 0;
#X connect 29 0 24 0;
#X connect 29 0 13 0;
#X connect 30 0 1 0;
#X connect 31 0 2 0;
#X connect 32 0 3 0;
#X connect 33 0 6 0;
#X connect 34 0 5 0;
#X connect 35 0 4 0;
#X connect 36 0 7 0;
#X connect 37 0 8 0;
#X connect 38 0 9 0;
#X connect 39 0 14 0;
#X connect 40 0 15 0;
#X connect 41 0 16 0;
#X restore 80 299 pd colors;
#N canvas 0 22 469 664 colorchange_mute 0;
#X obj 33 38 inlet mode;
#X obj 59 550 outlet colors;
#X obj 122 120 demux 0 1 2 3;
#X obj 59 314 t b f;
#X obj 59 474 t b f;
#X obj 179 314 t b f;
#X obj 179 474 t b f;
#X obj 110 265 bang;
#X msg 110 289 13;
#X obj 122 38 inlet pedal;
#X obj 230 265 bang;
#X msg 230 289 13;
#X obj 110 415 bang;
#X msg 110 439 13;
#X obj 230 415 bang;
#X msg 230 439 13;
#X obj 122 74 unpack;
#X msg 59 265 12;
#X msg 179 265 12;
#X msg 59 415 12;
#X msg 179 415 12;
#X obj 59 243 select 1;
#X obj 179 243 select 1;
#X obj 59 393 select 1;
#X obj 179 393 select 1;
#X obj 59 344 pack 11 12;
#X obj 179 344 pack 31 12;
#X obj 179 503 pack 41 12;
#X obj 59 503 pack 21 12;
#X connect 0 0 2 1;
#X connect 2 0 21 0;
#X connect 2 1 23 0;
#X connect 2 2 22 0;
#X connect 2 3 24 0;
#X connect 3 0 25 0;
#X connect 3 1 25 1;
#X connect 4 0 28 0;
#X connect 4 1 28 1;
#X connect 5 0 26 0;
#X connect 5 1 26 1;
#X connect 6 0 27 0;
#X connect 6 1 27 1;
#X connect 7 0 8 0;
#X connect 8 0 3 0;
#X connect 9 0 16 0;
#X connect 10 0 11 0;
#X connect 11 0 5 0;
#X connect 12 0 13 0;
#X connect 13 0 4 0;
#X connect 14 0 15 0;
#X connect 15 0 6 0;
#X connect 16 0 2 0;
#X connect 17 0 3 0;
#X connect 18 0 5 0;
#X connect 19 0 4 0;
#X connect 20 0 6 0;
#X connect 21 0 17 0;
#X connect 21 1 7 0;
#X connect 22 0 18 0;
#X connect 22 1 10 0;
#X connect 23 0 19 0;
#X connect 23 1 12 0;
#X connect 24 0 20 0;
#X connect 24 1 14 0;
#X connect 25 0 1 0;
#X connect 26 0 1 0;
#X connect 27 0 1 0;
#X connect 28 0 1 0;
#X restore 104 80 pd colorchange_mute;
#N canvas 0 22 465 660 colorchange_sustain 0;
#X obj 33 38 inlet mode;
#X obj 59 550 outlet colors;
#X obj 122 120 demux 0 1 2 3;
#X obj 59 314 t b f;
#X obj 59 474 t b f;
#X obj 179 314 t b f;
#X obj 179 474 t b f;
#X obj 110 265 bang;
#X msg 110 289 13;
#X obj 122 38 inlet pedal;
#X obj 230 265 bang;
#X msg 230 289 13;
#X obj 110 415 bang;
#X msg 110 439 13;
#X obj 230 415 bang;
#X msg 230 439 13;
#X obj 122 74 unpack;
#X msg 59 265 12;
#X msg 179 265 12;
#X msg 59 415 12;
#X msg 179 415 12;
#X obj 59 243 select 1;
#X obj 179 243 select 1;
#X obj 59 393 select 1;
#X obj 179 393 select 1;
#X obj 59 344 pack 12 12;
#X obj 179 344 pack 32 12;
#X obj 59 503 pack 22 12;
#X obj 179 503 pack 42 12;
#X connect 0 0 2 1;
#X connect 2 0 21 0;
#X connect 2 1 23 0;
#X connect 2 2 22 0;
#X connect 2 3 24 0;
#X connect 3 0 25 0;
#X connect 3 1 25 1;
#X connect 4 0 27 0;
#X connect 4 1 27 1;
#X connect 5 0 26 0;
#X connect 5 1 26 1;
#X connect 6 0 28 0;
#X connect 6 1 28 1;
#X connect 7 0 8 0;
#X connect 8 0 3 0;
#X connect 9 0 16 0;
#X connect 10 0 11 0;
#X connect 11 0 5 0;
#X connect 12 0 13 0;
#X connect 13 0 4 0;
#X connect 14 0 15 0;
#X connect 15 0 6 0;
#X connect 16 0 2 0;
#X connect 17 0 3 0;
#X connect 18 0 5 0;
#X connect 19 0 4 0;
#X connect 20 0 6 0;
#X connect 21 0 17 0;
#X connect 21 1 7 0;
#X connect 22 0 18 0;
#X connect 22 1 10 0;
#X connect 23 0 19 0;
#X connect 23 1 12 0;
#X connect 24 0 20 0;
#X connect 24 1 14 0;
#X connect 25 0 1 0;
#X connect 26 0 1 0;
#X connect 27 0 1 0;
#X connect 28 0 1 0;
#X restore 138 122 pd colorchange_sustain;
#N canvas 438 22 465 660 colorchange_record 0;
#X obj 33 38 inlet mode;
#X obj 59 550 outlet colors;
#X obj 59 314 t b f;
#X obj 59 474 t b f;
#X obj 179 314 t b f;
#X obj 179 474 t b f;
#X obj 110 265 bang;
#X obj 122 38 inlet pedal;
#X obj 179 243 select 0;
#X obj 230 265 bang;
#X msg 230 289 13;
#X obj 59 393 select 0;
#X obj 110 415 bang;
#X msg 110 439 13;
#X obj 179 393 select 0;
#X obj 230 415 bang;
#X msg 230 439 13;
#X obj 122 120 demux 0 1 2 3;
#X obj 122 74 unpack;
#X obj 59 243 select 0;
#X msg 59 265 12;
#X msg 110 289 13;
#X msg 179 265 12;
#X msg 59 415 12;
#X msg 179 415 12;
#X obj 59 344 pack 13 12;
#X obj 180 344 pack 33 12;
#X obj 59 503 pack 23 12;
#X obj 179 503 pack 43 12;
#X connect 0 0 17 1;
#X connect 2 0 25 0;
#X connect 2 1 25 1;
#X connect 3 0 27 0;
#X connect 3 1 27 1;
#X connect 4 0 26 0;
#X connect 4 1 26 1;
#X connect 5 0 28 0;
#X connect 5 1 28 1;
#X connect 6 0 21 0;
#X connect 7 0 18 0;
#X connect 8 0 22 0;
#X connect 8 1 9 0;
#X connect 9 0 10 0;
#X connect 10 0 4 0;
#X connect 11 0 23 0;
#X connect 11 1 12 0;
#X connect 12 0 13 0;
#X connect 13 0 3 0;
#X connect 14 0 24 0;
#X connect 14 1 15 0;
#X connect 15 0 16 0;
#X connect 16 0 5 0;
#X connect 17 0 19 0;
#X connect 17 1 11 0;
#X connect 17 2 8 0;
#X connect 17 3 14 0;
#X connect 18 0 17 0;
#X connect 19 0 20 0;
#X connect 19 1 6 0;
#X connect 20 0 2 0;
#X connect 21 0 2 0;
#X connect 22 0 4 0;
#X connect 23 0 3 0;
#X connect 24 0 5 0;
#X connect 25 0 1 0;
#X connect 26 0 1 0;
#X connect 27 0 1 0;
#X connect 28 0 1 0;
#X restore 185 166 pd colorchange_record;
#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 1 0 5 1;
#X connect 2 0 6 1;
#X connect 3 0 7 1;
#X connect 5 0 4 1;
#X connect 6 0 4 1;
#X connect 7 0 4 1;
#X restore 72 493 pd changecolors;
#N canvas 0 22 161 317 counter 0;
#X obj 57 171 + 1;
#X obj 22 171 f;
#X obj 22 193 mod 4;
#X obj 22 48 unpack;
#X obj 22 70 select 0;
#X obj 50 92 bang;
#X msg 50 115 0;
#X msg 22 115 1;
#X obj 22 147 metro 500;
#X obj 22 17 inlet;
#X obj 22 224 outlet;
#X connect 0 0 1 1;
#X connect 1 0 0 0;
#X connect 1 0 2 0;
#X connect 2 0 10 0;
#X connect 3 0 4 0;
#X connect 4 0 7 0;
#X connect 4 1 5 0;
#X connect 5 0 6 0;
#X connect 6 0 8 0;
#X connect 7 0 8 0;
#X connect 8 0 1 0;
#X connect 9 0 3 0;
#X restore 22 372 pd counter;
#N canvas 0 22 161 317 counter 0;
#X obj 57 171 + 1;
#X obj 22 171 f;
#X obj 22 193 mod 4;
#X obj 22 48 unpack;
#X obj 22 70 select 0;
#X obj 50 92 bang;
#X msg 50 115 0;
#X msg 22 115 1;
#X obj 22 147 metro 500;
#X obj 22 17 inlet;
#X obj 22 224 outlet;
#X connect 0 0 1 1;
#X connect 1 0 0 0;
#X connect 1 0 2 0;
#X connect 2 0 10 0;
#X connect 3 0 4 0;
#X connect 4 0 7 0;
#X connect 4 1 5 0;
#X connect 5 0 6 0;
#X connect 6 0 8 0;
#X connect 7 0 8 0;
#X connect 8 0 1 0;
#X connect 9 0 3 0;
#X restore 72 399 pd counter;
#X obj 18 20 cnv 15 30 15 empty empty LOOP 0 6 0 14 -233017 -1 0;
#N canvas 253 177 507 315 osc_routing 0;
#X obj 76 37 inlet mode;
#X obj 152 37 inlet mute;
#X obj 228 37 inlet sustain;
#X obj 325 37 inlet record;
#X obj 0 37 inlet loop;
#N canvas 464 276 482 482 mute_operations 0;
#X obj 129 17 inlet mode;
#X obj 49 17 inlet loop;
#X obj 43 294 demux 0 1 2 3;
#X obj 209 44 unpack;
#X obj 209 17 inlet pedal;
#X obj 318 17 inlet sustain;
#X obj 43 441 s osc;
#X obj 43 196 f;
#X obj 260 115 demux 0 1;
#X msg 71 341 send $1 reverse;
#X msg 100 361 send $1 trigger;
#X msg 129 381 send $1 oneshot;
#X msg 43 321 send $1 mute;
#X obj 72 244 makefilename /sl/%d/up;
#X text 332 66 0=trigger , 1=rest;
#X obj 209 67 select 0;
#X obj 72 196 f;
#X obj 102 196 f;
#X obj 260 90 bang;
#X obj 43 224 makefilename /sl/%d/down;
#X obj 102 264 makefilename /sl/%d/down;
#X connect 0 0 2 1;
#X connect 1 0 7 1;
#X connect 1 0 16 1;
#X connect 1 0 17 1;
#X connect 2 0 12 0;
#X connect 2 1 9 0;
#X connect 2 2 10 0;
#X connect 2 3 11 0;
#X connect 3 0 15 0;
#X connect 4 0 3 0;
#X connect 5 0 8 1;
#X connect 7 0 19 0;
#X connect 8 0 16 0;
#X connect 8 1 17 0;
#X connect 9 0 6 0;
#X connect 10 0 6 0;
#X connect 11 0 6 0;
#X connect 12 0 6 0;
#X connect 13 0 2 0;
#X connect 15 0 7 0;
#X connect 15 1 18 0;
#X connect 16 0 13 0;
#X connect 17 0 20 0;
#X connect 18 0 8 0;
#X connect 19 0 2 0;
#X connect 20 0 2 0;
#X restore 0 129 pd mute_operations;
#N canvas 43 204 482 482 sustain_operations 0;
#X obj 129 17 inlet mode;
#X obj 49 17 inlet loop;
#X obj 43 294 demux 0 1 2 3;
#X obj 209 44 unpack;
#X obj 209 17 inlet pedal;
#X obj 318 17 inlet sustain;
#X obj 71 441 s osc;
#X obj 43 196 f;
#X obj 260 115 demux 0 1;
#X obj 72 244 makefilename /sl/%d/up;
#X text 332 66 0=trigger , 1=rest;
#X obj 209 67 select 0;
#X obj 72 196 f;
#X obj 102 196 f;
#X obj 260 90 bang;
#X obj 43 224 makefilename /sl/%d/down;
#X obj 102 264 makefilename /sl/%d/down;
#X msg 71 341 send $1 substitute;
#X msg 100 361 send $1 replace;
#X msg 129 381 send $1 insert;
#X obj 259 341 f;
#X obj 289 341 + 1;
#X obj 259 381 s sustain_status;
#X obj 259 361 mod 2;
#X obj 282 264 select 0;
#X msg 282 294 1;
#X obj 333 294 bang;
#X msg 333 319 0;
#X obj 259 319 gate;
#X connect 0 0 2 1;
#X connect 0 0 24 0;
#X connect 1 0 7 1;
#X connect 1 0 12 1;
#X connect 1 0 13 1;
#X connect 2 1 17 0;
#X connect 2 2 18 0;
#X connect 2 3 19 0;
#X connect 3 0 11 0;
#X connect 4 0 3 0;
#X connect 5 0 8 1;
#X connect 7 0 15 0;
#X connect 8 0 12 0;
#X connect 8 1 13 0;
#X connect 9 0 2 0;
#X connect 11 0 7 0;
#X connect 11 0 28 0;
#X connect 11 1 14 0;
#X connect 12 0 9 0;
#X connect 13 0 16 0;
#X connect 14 0 8 0;
#X connect 15 0 2 0;
#X connect 16 0 2 0;
#X connect 17 0 6 0;
#X connect 18 0 6 0;
#X connect 19 0 6 0;
#X connect 20 0 21 0;
#X connect 20 0 23 0;
#X connect 21 0 20 1;
#X connect 23 0 22 0;
#X connect 24 0 25 0;
#X connect 24 1 26 0;
#X connect 25 0 28 1;
#X connect 26 0 27 0;
#X connect 27 0 28 1;
#X connect 28 0 20 0;
#X restore 29 171 pd sustain_operations;
#N canvas 323 189 486 486 record_operations 0;
#X obj 129 17 inlet mode;
#X obj 49 17 inlet loop;
#X obj 43 294 demux 0 1 2 3;
#X obj 209 44 unpack;
#X obj 209 17 inlet pedal;
#X obj 318 17 inlet sustain;
#X obj 43 454 s osc;
#X obj 43 196 f;
#X obj 260 115 demux 0 1;
#X obj 72 244 makefilename /sl/%d/up;
#X text 332 66 0=trigger , 1=rest;
#X obj 209 67 select 0;
#X obj 72 196 f;
#X obj 102 196 f;
#X obj 260 90 bang;
#X obj 43 224 makefilename /sl/%d/down;
#X obj 102 264 makefilename /sl/%d/down;
#X msg 43 321 send $1 record;
#X msg 71 341 send $1 overdub;
#X msg 100 361 send $1 multiply;
#X obj 253 341 f;
#X obj 283 341 + 1;
#X obj 223 361 makefilename /sl/%d/set;
#X obj 223 341 f;
#X obj 223 321 t b b;
#X msg 223 401 send $1 delay_trigger $2;
#X obj 223 381 pack s 0;
#X connect 0 0 2 1;
#X connect 1 0 7 1;
#X connect 1 0 12 1;
#X connect 1 0 13 1;
#X connect 1 0 23 1;
#X connect 2 0 17 0;
#X connect 2 1 18 0;
#X connect 2 2 19 0;
#X connect 2 3 24 0;
#X connect 3 0 11 0;
#X connect 4 0 3 0;
#X connect 5 0 8 1;
#X connect 7 0 15 0;
#X connect 8 0 12 0;
#X connect 8 1 13 0;
#X connect 9 0 2 0;
#X connect 11 0 7 0;
#X connect 11 1 14 0;
#X connect 12 0 9 0;
#X connect 13 0 16 0;
#X connect 14 0 8 0;
#X connect 15 0 2 0;
#X connect 16 0 2 0;
#X connect 17 0 6 0;
#X connect 18 0 6 0;
#X connect 19 0 6 0;
#X connect 20 0 21 0;
#X connect 20 0 26 1;
#X connect 21 0 20 1;
#X connect 22 0 26 0;
#X connect 23 0 22 0;
#X connect 24 0 23 0;
#X connect 24 1 20 0;
#X connect 25 0 6 0;
#X connect 26 0 25 0;
#X restore 103 213 pd record_operations;
#X obj 376 106 bang;
#X obj 325 60 unpack;
#X obj 325 84 select 0;
#X msg 325 106 1;
#X msg 376 129 0;
#X obj 171 60 r sustain_status;
#X connect 0 0 5 1;
#X connect 0 0 6 1;
#X connect 0 0 7 1;
#X connect 1 0 5 2;
#X connect 2 0 6 2;
#X connect 3 0 9 0;
#X connect 4 0 5 0;
#X connect 4 0 6 0;
#X connect 4 0 7 0;
#X connect 8 0 12 0;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X connect 10 1 8 0;
#X connect 11 0 7 2;
#X connect 12 0 7 2;
#X connect 13 0 5 3;
#X connect 13 0 6 3;
#X connect 13 0 7 3;
#X restore 154 526 pd osc_routing;
#X obj 22 210 hradio 15 1 0 8 empty empty empty 0 -6 0 8 -262144 -1
-1 0;
#X obj 225 210 hradio 15 1 0 8 empty empty empty 0 -6 0 8 -262144 -1
-1 0;
#X obj 225 231 nohid;
#X obj 22 242 nohid;
#X msg 176 211 1;
#X connect 0 0 2 0;
#X connect 0 1 1 0;
#X connect 1 0 60 3;
#X connect 1 0 64 4;
#X connect 2 0 61 0;
#X connect 2 1 62 0;
#X connect 2 2 60 1;
#X connect 2 2 64 2;
#X connect 2 3 60 2;
#X connect 2 3 64 3;
#X connect 8 0 9 0;
#X connect 9 0 10 0;
#X connect 11 0 8 0;
#X connect 61 0 11 0;
#X connect 61 0 64 0;
#X connect 61 0 14 0;
#X connect 62 0 60 0;
#X connect 62 0 64 1;
#X connect 65 0 68 0;
#X connect 66 0 67 0;
#X connect 68 0 0 0;
#X connect 69 0 68 0;
#X connect 69 0 67 0;