aboutsummaryrefslogtreecommitdiff
path: root/chord_melo_test3.pd
diff options
context:
space:
mode:
Diffstat (limited to 'chord_melo_test3.pd')
-rwxr-xr-xchord_melo_test3.pd630
1 files changed, 630 insertions, 0 deletions
diff --git a/chord_melo_test3.pd b/chord_melo_test3.pd
new file mode 100755
index 0000000..4b5185a
--- /dev/null
+++ b/chord_melo_test3.pd
@@ -0,0 +1,630 @@
+#N canvas 204 24 1015 713 12;
+#X obj 620 131 metro;
+#N canvas 1 23 466 316 msecs 0;
+#X obj 58 19 inlet;
+#X obj 61 209 outlet;
+#X obj 57 147 /;
+#X obj 57 100 bang;
+#X obj 73 79 t f f;
+#X obj 57 174 / 4;
+#X msg 57 122 60000;
+#X connect 0 0 4 0;
+#X connect 2 0 5 0;
+#X connect 3 0 6 0;
+#X connect 4 0 3 0;
+#X connect 4 1 2 1;
+#X connect 5 0 1 0;
+#X connect 6 0 2 0;
+#X restore 684 102 pd msecs;
+#X obj 683 28 loadbang;
+#X obj 620 108 tgl 15 0 empty empty empty 0 -6 0 8 -258699 -1 -1 0
+1;
+#N canvas 0 22 498 348 graph2 0;
+#X obj 122 9 inlet;
+#X obj 362 255 outlet;
+#X obj 171 33 int;
+#X obj 204 31 + 1;
+#X obj 185 57 % 4;
+#X obj 168 78 sel 0;
+#X obj 168 105 bng 15 250 50 0 empty empty beat 0 -6 0 8 -262144 -1
+-1;
+#X obj 263 86 sel 0;
+#X obj 264 108 bng 15 250 50 0 empty empty bar 0 -6 0 8 -262144 -1
+-1;
+#X obj 262 63 % 16;
+#X obj 69 278 hradio 10 1 0 16 empty empty empty 0 -6 0 8 -262144 -1
+-1 0;
+#X obj 70 64 / 2;
+#X obj 71 87 int;
+#X obj 72 111 hradio 10 1 0 2 empty empty 1/8 0 -6 0 8 -262144 -1 -1
+0;
+#X obj 342 78 int;
+#X obj 73 220 hradio 10 1 0 4 empty empty 1/4 0 -6 0 8 -262144 -1 -1
+0;
+#X obj 341 55 / 4;
+#X obj 70 167 hradio 10 1 0 4 empty empty 1/16 0 -6 0 8 -262144 -1
+-1 0;
+#X connect 0 0 2 0;
+#X connect 2 0 3 0;
+#X connect 3 0 2 1;
+#X connect 3 0 4 0;
+#X connect 3 0 9 0;
+#X connect 4 0 5 0;
+#X connect 4 0 17 0;
+#X connect 4 0 11 0;
+#X connect 5 0 6 0;
+#X connect 7 0 8 0;
+#X connect 9 0 7 0;
+#X connect 9 0 10 0;
+#X connect 9 0 16 0;
+#X connect 9 0 1 0;
+#X connect 11 0 12 0;
+#X connect 12 0 13 0;
+#X connect 14 0 15 0;
+#X connect 16 0 14 0;
+#X coords 0 1 100 -1 200 140 1;
+#X restore 379 92 graph;
+#X floatatom 706 127 5 0 0 0 - - -;
+#X obj 632 169 delay;
+#X obj 667 148 / 2;
+#X text 296 172 this delay is to center the quantization;
+#X obj 685 78 nbx 5 14 30 1000 0 0 empty empty empty 0 -6 0 10 -258699
+-1 -1 120 256;
+#X text 29 30 test1: detect rhythmic pattern and proposes a counterpoint
+;
+#N canvas 0 22 458 308 valori 0;
+#X obj 57 40 inlet;
+#X obj 136 42 inlet;
+#X obj 229 42 inlet;
+#X obj 58 215 outlet;
+#X msg 60 112 fitness1 \$1;
+#X msg 136 74 fitness2 \$1;
+#X msg 231 133 fitness3 \$1;
+#X connect 0 0 4 0;
+#X connect 1 0 5 0;
+#X connect 2 0 6 0;
+#X connect 4 0 3 0;
+#X connect 5 0 3 0;
+#X connect 6 0 3 0;
+#X restore 713 532 pd valori;
+#X obj 713 378 vsl 15 128 0 1 0 0 empty empty 1st 0 -8 0 8 -262144
+-1 -1 12700 1;
+#X obj 760 380 vsl 15 128 0 1 0 0 empty empty 2nd 0 -8 0 8 -262144
+-1 -1 12700 1;
+#X obj 800 383 vsl 15 128 0 1 0 0 empty empty 3rd 0 -8 0 8 -262144
+-1 -1 12700 1;
+#X floatatom 700 515 5 0 0 0 - - -;
+#X floatatom 750 513 5 0 0 0 - - -;
+#X floatatom 800 522 5 0 0 0 - - -;
+#X obj 719 49 s sampleinit;
+#X obj 726 294 loadbang;
+#N canvas 105 213 716 372 initMelody 0;
+#X obj 79 28 loadbang;
+#X msg 18 132 \; src_played const 1 \;;
+#X msg 29 261 \; src_passing const 0 \;;
+#X msg 260 69 \; src_note 0 0 1 2 2 1 1 0 0 0 2 2 2 0 2 1 0 \;;
+#X msg 235 143 \; src_passing 0 0 0 0 -2 0 -2 0 -1 0 0 2 4 0 0 0 0
+\;;
+#X msg 247 107 \; src_octave 0 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 \;;
+#X connect 0 0 3 0;
+#X connect 0 0 1 0;
+#X connect 0 0 5 0;
+#X connect 0 0 4 0;
+#X restore 57 108 pd initMelody;
+#X obj 153 586 noteout;
+#X obj 153 562 makenote;
+#X msg 238 539 60;
+#X msg 270 539 100;
+#X obj 244 517 loadbang;
+#X msg 684 49 120;
+#X msg 712 328 1;
+#X obj 770 119 table src_octave;
+#X obj 769 96 table src_note;
+#X obj 770 141 table src_passing;
+#X obj 770 165 table src_played;
+#N canvas 14 41 980 629 play_melody 0;
+#X obj 58 50 t f f f f;
+#X obj 58 116 tabread dest_note;
+#X obj 225 79 tabread dest_octave;
+#X obj 186 153 tabread dest_passing;
+#X obj 2 290 tabread dest_played;
+#X obj 1 315 select 1;
+#X obj 259 -4 inlet;
+#X obj 659 8 inlet;
+#X floatatom 710 68 5 0 0 0 - - -;
+#X text 729 52 base midi note;
+#X obj 225 103 * 12;
+#X obj 57 144 select 0 1 2;
+#X msg 57 186 0;
+#X msg 103 184 4;
+#X msg 150 185 7;
+#X obj 159 266 +;
+#X obj 170 303 +;
+#X obj 180 344 + 36;
+#X text 245 344 default C;
+#X obj 275 535 outlet;
+#X floatatom 204 390 5 0 0 0 - - -;
+#X obj 95 451 int 0;
+#X obj 2 339 bang;
+#X obj 435 50 t f f f f;
+#X obj 372 332 select 1;
+#X obj 596 120 * 12;
+#X obj 428 161 select 0 1 2;
+#X msg 428 203 0;
+#X msg 474 201 4;
+#X msg 521 202 7;
+#X obj 530 283 +;
+#X obj 541 320 +;
+#X obj 551 361 + 36;
+#X text 616 361 default C;
+#X floatatom 575 407 5 0 0 0 - - -;
+#X obj 466 468 int 0;
+#X obj 373 356 bang;
+#X obj 373 307 tabread dest_played2;
+#X obj 429 133 tabread dest_note2;
+#X obj 596 96 tabread dest_octave2;
+#X obj 557 170 tabread dest_passing2;
+#X obj 883 242 inlet;
+#X obj 235 491 spigot;
+#X msg 221 455 1;
+#X msg 256 456 0;
+#X obj 318 492 spigot;
+#X msg 297 455 1;
+#X msg 332 456 0;
+#X obj 258 19 t f f;
+#X obj 247 430 select 0 1;
+#X floatatom 373 533 5 0 0 0 - - -;
+#X floatatom 195 539 5 0 0 0 - - -;
+#X connect 0 0 4 0;
+#X connect 0 1 1 0;
+#X connect 0 2 3 0;
+#X connect 0 3 2 0;
+#X connect 1 0 11 0;
+#X connect 2 0 10 0;
+#X connect 3 0 15 1;
+#X connect 4 0 5 0;
+#X connect 5 0 22 0;
+#X connect 6 0 48 0;
+#X connect 7 0 8 0;
+#X connect 7 0 17 1;
+#X connect 7 0 32 1;
+#X connect 10 0 16 1;
+#X connect 11 0 12 0;
+#X connect 11 1 13 0;
+#X connect 11 2 14 0;
+#X connect 12 0 15 0;
+#X connect 13 0 15 0;
+#X connect 14 0 15 0;
+#X connect 15 0 16 0;
+#X connect 16 0 17 0;
+#X connect 17 0 20 0;
+#X connect 17 0 21 1;
+#X connect 21 0 42 0;
+#X connect 22 0 21 0;
+#X connect 23 0 37 0;
+#X connect 23 1 38 0;
+#X connect 23 2 40 0;
+#X connect 23 3 39 0;
+#X connect 24 0 36 0;
+#X connect 25 0 31 1;
+#X connect 26 0 27 0;
+#X connect 26 1 28 0;
+#X connect 26 2 29 0;
+#X connect 27 0 30 0;
+#X connect 28 0 30 0;
+#X connect 29 0 30 0;
+#X connect 30 0 31 0;
+#X connect 31 0 32 0;
+#X connect 32 0 34 0;
+#X connect 32 0 35 1;
+#X connect 35 0 45 0;
+#X connect 36 0 35 0;
+#X connect 37 0 24 0;
+#X connect 38 0 26 0;
+#X connect 39 0 25 0;
+#X connect 40 0 30 1;
+#X connect 41 0 49 0;
+#X connect 42 0 19 0;
+#X connect 42 0 51 0;
+#X connect 43 0 42 1;
+#X connect 44 0 45 1;
+#X connect 45 0 19 0;
+#X connect 45 0 50 0;
+#X connect 46 0 45 1;
+#X connect 47 0 42 1;
+#X connect 48 0 0 0;
+#X connect 48 1 23 0;
+#X connect 49 0 43 0;
+#X connect 49 0 44 0;
+#X connect 49 1 46 0;
+#X connect 49 1 47 0;
+#X restore 153 432 pd play_melody;
+#X floatatom 264 313 5 0 0 0 base_midi_note - -;
+#N canvas 80 41 790 533 test_src_melody 0;
+#X obj 64 33 t f f f f;
+#X obj -17 299 select 1;
+#X obj 67 3 inlet;
+#X obj 418 160 inlet;
+#X floatatom 442 209 5 0 0 0 - - -;
+#X text 461 193 base midi note;
+#X obj 268 125 * 12;
+#X obj 57 144 select 0 1 2;
+#X msg 57 186 0;
+#X msg 103 184 4;
+#X msg 150 185 7;
+#X obj 159 266 +;
+#X obj 170 303 +;
+#X obj 180 344 + 36;
+#X text 245 344 default C;
+#X obj 120 482 outlet;
+#X floatatom 204 390 5 0 0 0 - - -;
+#X obj 116 450 int 0;
+#X obj -16 323 bang;
+#X obj -16 274 tabread src_played;
+#X obj 58 116 tabread src_note;
+#X obj 267 102 tabread src_octave;
+#X obj 186 153 tabread src_passing;
+#X connect 0 0 19 0;
+#X connect 0 1 20 0;
+#X connect 0 2 22 0;
+#X connect 0 3 21 0;
+#X connect 1 0 18 0;
+#X connect 2 0 0 0;
+#X connect 3 0 4 0;
+#X connect 3 0 13 1;
+#X connect 6 0 12 1;
+#X connect 7 0 8 0;
+#X connect 7 1 9 0;
+#X connect 7 2 10 0;
+#X connect 8 0 11 0;
+#X connect 9 0 11 0;
+#X connect 10 0 11 0;
+#X connect 11 0 12 0;
+#X connect 12 0 13 0;
+#X connect 13 0 16 0;
+#X connect 13 0 17 1;
+#X connect 17 0 15 0;
+#X connect 18 0 17 0;
+#X connect 19 0 1 0;
+#X connect 20 0 7 0;
+#X connect 21 0 6 0;
+#X connect 22 0 11 1;
+#X restore 26 383 pd test_src_melody;
+#N canvas 0 22 462 312 chords 0;
+#X obj 146 45 select 0;
+#X obj 147 17 inlet;
+#X obj 150 255 outlet;
+#X msg 123 193 36;
+#X msg 177 193 41;
+#X msg 232 191 36;
+#X msg 286 191 43;
+#X obj 142 96 int 0;
+#X obj 144 69 bang;
+#X obj 202 99 + 1;
+#X obj 141 122 % 4;
+#X obj 137 147 select 0 1 2 3;
+#X connect 0 0 8 0;
+#X connect 1 0 0 0;
+#X connect 3 0 2 0;
+#X connect 4 0 2 0;
+#X connect 5 0 2 0;
+#X connect 6 0 2 0;
+#X connect 7 0 9 0;
+#X connect 7 0 10 0;
+#X connect 8 0 7 0;
+#X connect 9 0 7 1;
+#X connect 10 0 11 0;
+#X connect 11 0 3 0;
+#X connect 11 1 4 0;
+#X connect 11 2 5 0;
+#X connect 11 3 6 0;
+#X restore 265 290 pd chords;
+#X obj 102 619 outlet;
+#X obj 14 619 outlet;
+#X obj 569 246 outlet;
+#X obj 379 233 t a a a a;
+#X obj 607 56 inlet;
+#X obj 80 181 tgl 15 0 toggleSRC empty src 0 -6 0 8 -262144 -1 -1 0
+1;
+#X obj 78 215 tgl 15 0 toggleOUT empty out 0 -6 0 8 -262144 -1 -1 0
+1;
+#N canvas 0 22 650 510 toggle 0;
+#X obj 170 119 r toggleSRC;
+#X obj 136 144 int 0;
+#X obj 136 168 select 1;
+#X obj 137 192 bang;
+#X obj 154 20 inlet;
+#X obj 197 270 outlet;
+#X obj 203 231 int 0;
+#X obj 86 104 bang;
+#X obj 201 60 t a a;
+#X connect 0 0 1 1;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 3 0 6 0;
+#X connect 4 0 8 0;
+#X connect 6 0 5 0;
+#X connect 7 0 1 0;
+#X connect 8 0 7 0;
+#X connect 8 1 6 1;
+#X restore 33 414 pd toggle;
+#N canvas 0 22 662 522 toggle 0;
+#X obj 136 144 int 0;
+#X obj 136 168 select 1;
+#X obj 137 192 bang;
+#X obj 154 20 inlet;
+#X obj 197 270 outlet;
+#X obj 203 231 int 0;
+#X obj 86 104 bang;
+#X obj 201 60 t a a;
+#X obj 170 119 r toggleOUT;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 0 5 0;
+#X connect 3 0 7 0;
+#X connect 5 0 4 0;
+#X connect 6 0 0 0;
+#X connect 7 0 6 0;
+#X connect 7 1 5 1;
+#X connect 8 0 0 1;
+#X restore 155 495 pd toggle;
+#N canvas 0 22 778 359 read-tables 0;
+#X obj 93 110 tabread dest_note;
+#X floatatom 96 147 5 0 0 0 - - -;
+#X floatatom 341 44 5 0 0 0 - - -;
+#X floatatom 244 147 5 0 0 0 - - -;
+#X floatatom 388 146 5 0 0 0 - - -;
+#X floatatom 532 143 5 0 0 0 - - -;
+#X obj 243 91 tabread dest_octave;
+#X obj 386 109 tabread dest_passing;
+#X obj 529 89 tabread dest_played;
+#X obj 514 175 print;
+#X connect 0 0 1 0;
+#X connect 2 0 0 0;
+#X connect 2 0 6 0;
+#X connect 2 0 7 0;
+#X connect 2 0 8 0;
+#X connect 6 0 3 0;
+#X connect 7 0 4 0;
+#X connect 8 0 5 0;
+#X connect 8 0 9 0;
+#X restore 847 310 pd read-tables;
+#X msg 866 529 mutation \$1;
+#X msg 883 549 crossover \$1;
+#X obj 865 373 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 899 371 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X floatatom 845 507 5 0 0 0 - - -;
+#X floatatom 900 505 5 0 0 0 - - -;
+#X msg 791 327 1;
+#N canvas 0 22 923 490 chord_melo1 0;
+#X obj 94 49 inlet;
+#X obj 349 58 inlet;
+#X obj 123 264 bang;
+#X obj 140 116 select 0;
+#X obj 185 256 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 191 187 int 0;
+#X obj 240 188 + 1;
+#X floatatom 191 211 5 0 0 0 generation - -;
+#X obj 191 164 bang;
+#X msg 23 270 init a;
+#X obj 22 227 select 1;
+#X obj 23 248 bang;
+#X obj 222 344 chord_melo src_note src_octave src_passing src_played
+dest_note dest_octave dest_passing dest_played;
+#X obj 415 139 table dest_note;
+#X obj 416 162 table dest_octave;
+#X obj 415 184 table dest_passing;
+#X obj 415 208 table dest_played;
+#X connect 0 0 3 0;
+#X connect 1 0 12 0;
+#X connect 2 0 12 0;
+#X connect 3 0 2 0;
+#X connect 3 0 8 0;
+#X connect 4 0 12 0;
+#X connect 5 0 6 0;
+#X connect 5 0 7 0;
+#X connect 5 0 10 0;
+#X connect 6 0 5 1;
+#X connect 8 0 5 0;
+#X connect 9 0 12 0;
+#X connect 10 0 11 0;
+#X connect 11 0 9 0;
+#X restore 667 589 pd chord_melo1;
+#N canvas 0 22 923 490 chord_melo2 0;
+#X obj 94 49 inlet;
+#X obj 349 58 inlet;
+#X obj 123 264 bang;
+#X obj 140 116 select 0;
+#X obj 185 256 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 191 187 int 0;
+#X obj 240 188 + 1;
+#X floatatom 191 211 5 0 0 0 generation - -;
+#X obj 191 164 bang;
+#X msg 23 270 init a;
+#X obj 22 227 select 1;
+#X obj 23 248 bang;
+#X obj 415 139 table dest_note2;
+#X obj 416 162 table dest_octave2;
+#X obj 415 184 table dest_passing2;
+#X obj 415 208 table dest_played2;
+#X obj 222 344 chord_melo src_note src_octave src_passing src_played
+dest_note2 dest_octave2 dest_passing2 dest_played2;
+#X connect 0 0 3 0;
+#X connect 1 0 16 0;
+#X connect 2 0 16 0;
+#X connect 3 0 2 0;
+#X connect 3 0 8 0;
+#X connect 4 0 16 0;
+#X connect 5 0 6 0;
+#X connect 5 0 7 0;
+#X connect 5 0 10 0;
+#X connect 6 0 5 1;
+#X connect 8 0 5 0;
+#X connect 9 0 16 0;
+#X connect 10 0 11 0;
+#X connect 11 0 9 0;
+#X restore 473 628 pd chord_melo2;
+#X obj 339 336 manager;
+#N canvas 0 22 698 589 sum 0;
+#X obj 116 64 inlet;
+#X obj 150 338 outlet;
+#X obj 278 36 inlet;
+#X obj 265 72 select 0;
+#X obj 264 124 int 0;
+#X obj 312 123 + 1;
+#X obj 266 96 bang;
+#X obj 86 202 spigot;
+#X obj 147 203 int;
+#X obj 104 236 + 0;
+#X obj 124 99 t f f;
+#X obj 211 126 bang;
+#X text 383 222 not working yet;
+#X text 337 254 it should join the two statements;
+#X text 326 277 join means make the first interval small;
+#X text 400 192 TODO;
+#X obj 204 295 spigot;
+#X obj 251 201 bang;
+#X msg 246 223 1;
+#X obj 257 247 -;
+#X obj 253 177 t a a;
+#X obj 254 147 % 2;
+#X connect 0 0 10 0;
+#X connect 2 0 3 0;
+#X connect 3 0 6 0;
+#X connect 3 0 11 0;
+#X connect 4 0 5 0;
+#X connect 4 0 21 0;
+#X connect 5 0 4 1;
+#X connect 6 0 4 0;
+#X connect 7 0 9 0;
+#X connect 8 0 9 1;
+#X connect 9 0 1 0;
+#X connect 10 0 8 1;
+#X connect 10 0 7 0;
+#X connect 10 1 16 0;
+#X connect 11 0 8 0;
+#X connect 16 0 1 0;
+#X connect 17 0 18 0;
+#X connect 18 0 19 0;
+#X connect 19 0 16 1;
+#X connect 20 0 17 0;
+#X connect 20 1 19 1;
+#X connect 21 0 20 0;
+#X connect 21 0 7 1;
+#X restore 224 468 pd sum;
+#N canvas 0 22 458 308 valori 0;
+#X obj 57 40 inlet;
+#X obj 136 42 inlet;
+#X obj 229 42 inlet;
+#X obj 58 215 outlet;
+#X msg 60 112 fitness1 \$1;
+#X msg 136 74 fitness2 \$1;
+#X msg 231 133 fitness3 \$1;
+#X connect 0 0 4 0;
+#X connect 1 0 5 0;
+#X connect 2 0 6 0;
+#X connect 4 0 3 0;
+#X connect 5 0 3 0;
+#X connect 6 0 3 0;
+#X restore 511 539 pd valori;
+#X obj 511 385 vsl 15 128 0 1 0 0 empty empty 1st 0 -8 0 8 -262144
+-1 -1 12700 1;
+#X obj 558 387 vsl 15 128 0 1 0 0 empty empty 2nd 0 -8 0 8 -262144
+-1 -1 12700 1;
+#X obj 598 390 vsl 15 128 0 1 0 0 empty empty 3rd 0 -8 0 8 -262144
+-1 -1 12700 1;
+#X floatatom 498 522 5 0 0 0 - - -;
+#X floatatom 548 520 5 0 0 0 - - -;
+#X floatatom 598 529 5 0 0 0 - - -;
+#X obj 524 301 loadbang;
+#X msg 510 335 1;
+#X msg 589 334 1;
+#X msg 423 568 mutation \$1;
+#X msg 440 588 crossover \$1;
+#X obj 422 412 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 456 410 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X floatatom 402 546 5 0 0 0 - - -;
+#X floatatom 457 544 5 0 0 0 - - -;
+#X floatatom 344 439 5 0 0 0 - - -;
+#X obj 304 614 outlet;
+#X connect 0 0 6 0;
+#X connect 1 0 0 1;
+#X connect 1 0 5 0;
+#X connect 1 0 7 0;
+#X connect 2 0 26 0;
+#X connect 2 0 18 0;
+#X connect 3 0 0 0;
+#X connect 4 0 39 0;
+#X connect 6 0 4 0;
+#X connect 7 0 6 1;
+#X connect 9 0 1 0;
+#X connect 11 0 53 1;
+#X connect 12 0 11 0;
+#X connect 12 0 15 0;
+#X connect 13 0 11 1;
+#X connect 13 0 16 0;
+#X connect 14 0 11 2;
+#X connect 14 0 17 0;
+#X connect 19 0 27 0;
+#X connect 19 0 52 0;
+#X connect 22 0 21 0;
+#X connect 22 1 21 1;
+#X connect 23 0 22 1;
+#X connect 24 0 22 2;
+#X connect 25 0 24 0;
+#X connect 25 0 23 0;
+#X connect 26 0 9 0;
+#X connect 27 0 12 0;
+#X connect 27 0 13 0;
+#X connect 32 0 36 0;
+#X connect 32 0 44 0;
+#X connect 33 0 34 1;
+#X connect 33 0 32 1;
+#X connect 34 0 37 0;
+#X connect 34 0 43 0;
+#X connect 35 0 33 0;
+#X connect 39 1 32 0;
+#X connect 39 1 34 0;
+#X connect 39 2 35 0;
+#X connect 39 2 53 0;
+#X connect 39 2 54 0;
+#X connect 39 3 38 0;
+#X connect 39 3 55 0;
+#X connect 39 3 56 1;
+#X connect 40 0 3 0;
+#X connect 43 0 22 0;
+#X connect 44 0 22 0;
+#X connect 46 0 53 1;
+#X connect 47 0 53 1;
+#X connect 48 0 46 0;
+#X connect 48 0 50 0;
+#X connect 49 0 47 0;
+#X connect 49 0 51 0;
+#X connect 52 0 14 0;
+#X connect 55 0 32 2;
+#X connect 55 0 73 0;
+#X connect 55 0 74 0;
+#X connect 57 0 54 1;
+#X connect 58 0 57 0;
+#X connect 58 0 61 0;
+#X connect 59 0 57 1;
+#X connect 59 0 62 0;
+#X connect 60 0 57 2;
+#X connect 60 0 63 0;
+#X connect 64 0 65 0;
+#X connect 64 0 66 0;
+#X connect 65 0 58 0;
+#X connect 65 0 59 0;
+#X connect 66 0 60 0;
+#X connect 67 0 54 1;
+#X connect 68 0 54 1;
+#X connect 69 0 67 0;
+#X connect 69 0 71 0;
+#X connect 70 0 68 0;
+#X connect 70 0 72 0;