#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;