From eb9ef05774af20edb43118182834c18a4ac70707 Mon Sep 17 00:00:00 2001 From: Davide Morelli Date: Tue, 18 Oct 2005 23:10:53 +0000 Subject: initial checkin svn path=/trunk/externals/frankenstein/; revision=3734 --- chord_melo_test3.pd | 630 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 630 insertions(+) create mode 100755 chord_melo_test3.pd (limited to 'chord_melo_test3.pd') 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; -- cgit v1.2.1