#N canvas 463 81 557 515 10;
#X obj 0 0 cnv 15 552 40 empty empty subst 3 12 0 18 -204280 -1 0;
#X obj 0 340 cnv 3 550 3 empty empty inlets 8 12 0 13 -228856 -1 0
;
#X obj 0 468 cnv 3 550 3 empty empty outlets 8 12 0 13 -228856 -1 0
;
#X obj 0 537 cnv 3 550 3 empty empty arguments 8 12 0 13 -228856 -1
0;
#X obj 79 355 cnv 17 3 50 empty empty 0 5 9 0 16 -228856 -162280 0
;
#X obj 0 585 cnv 15 552 21 empty empty empty 20 12 0 14 -233017 -33289
0;
#N canvas 236 350 428 75 Related_objects 0;
#X obj 0 0 cnv 15 425 20 empty empty empty 3 12 0 14 -204280 -1 0;
#X text 6 1 Related Objects;
#X restore 206 589 pd Related_objects;
#N canvas 481 591 379 261 META 0;
#X text 12 179 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
Wilkes for Pd version 0.42. Updated by Fred Jan Kraan 2016-02.;
#X text 12 141 AUTHOR Olaf Matthes;
#X text 12 25 LICENSE GPL v2;
#X text 12 5 KEYWORDS control list_op;
#X text 12 45 DESCRIPTION self-similar substitution / diminuition of
rows -- play it and you'll never get a note repetition;
#X text 12 80 INLET_0 list load order set interval bang;
#X text 12 100 OUTLET_0 list;
#X text 12 120 OUTLET_1 float;
#X text 12 160 MAINTAINER Fred Jan Kraan <fjkraan@xs4all.nl>;
#X restore 502 588 pd META;
#X obj 79 484 cnv 17 3 17 empty empty 0 5 9 0 16 -228856 -162280 0
;
#X obj 79 509 cnv 17 3 17 empty empty 1 5 9 0 16 -228856 -162280 0
;
#X text 107 510 float;
#X text 107 374 list;
#X text 14 23 self-similar substitution / diminuition of rows, f 86
;
#X obj 497 4 subst;
#X text 107 354 bang;
#X text 172 354 - substitute now \, choose interval by chance;
#X text 172 373 - list of note numbers;
#X text 107 410 load a;
#X text 172 409 - load values from array a;
#X text 107 392 interval n;
#X text 172 391 - substitute the Nth interval;
#X text 107 427 order n;
#X text 172 426 - minimum order of substitution;
#X text 107 444 set a;
#X text 172 444 - set array a for processing and output;
#X text 159 510 - length of row;
#X text 107 483 list;
#X text 157 483 - processed row of note numbers;
#X msg 311 146 bang;
#X msg 98 120 order 2;
#X msg 83 53 72 68 67 64 69 71 77 75 70 73 74 78;
#X msg 153 120 interval 4;
#X obj 83 206 maxlib/subst 2;
#X obj 83 311 print;
#X floatatom 164 311 5 0 0 0 - - -, f 5;
#X obj 116 75 \$0;
#X obj 97 76 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 118 97 \$0;
#X obj 99 98 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#N canvas 0 50 450 300 (subpatch) 0;
#X array \$0-input-array 12 float 1;
#A 0 72 68 67 64 69 71 77 75 70 73 74 78;
#X coords 0 127 11 0 140 100 1 0 0;
#X restore 397 117 graph;
#N canvas 0 50 450 300 (subpatch) 0;
#X array \$0-output-array 100 float 0;
#X coords 0 127 99 0 140 100 1 0 0;
#X restore 397 233 graph;
#X msg 143 75 load \$1-input-array;
#X msg 144 97 set \$1-output-array;
#N canvas 23 469 450 300 playback 0;
#X obj 0 0 cnv 15 425 20 empty empty empty 3 12 0 14 -204280 -1 0;
#X text 6 1 Play back;
#X obj 148 51 inlet;
#X obj 148 260 outlet;
#X obj 175 238 noteout;
#X obj 187 51 tgl 20 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
;
#X obj 148 104 int 0;
#X obj 188 104 + 1;
#X obj 148 157 sel 0;
#X obj 175 184 tabread array01;
#X msg 148 184 0;
#X obj 148 78 metro 250;
#X obj 175 211 makenote 100 250;
#X obj 253 52 inlet;
#X connect 2 0 11 0;
#X connect 5 0 11 0;
#X connect 6 0 7 0;
#X connect 6 0 8 0;
#X connect 7 0 6 1;
#X connect 8 0 10 0;
#X connect 8 1 9 0;
#X connect 9 0 12 0;
#X connect 10 0 6 1;
#X connect 10 0 3 0;
#X connect 11 0 6 0;
#X connect 12 0 4 0;
#X connect 12 1 4 1;
#X connect 13 0 8 1;
#X restore 311 122 pd playback;
#X obj 292 123 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X text 80 557 1: [<output array>] \, 2: <substitution order>;
#X connect 28 0 32 0;
#X connect 29 0 32 0;
#X connect 30 0 32 0;
#X connect 31 0 32 0;
#X connect 32 0 33 0;
#X connect 32 1 34 0;
#X connect 32 1 43 1;
#X connect 35 0 41 0;
#X connect 36 0 35 0;
#X connect 37 0 42 0;
#X connect 38 0 37 0;
#X connect 41 0 32 0;
#X connect 42 0 32 0;
#X connect 43 0 28 0;
#X connect 44 0 43 0;
