max v2;
#N vpatcher 93 144 1258 834;
#P origin 0 107;
#P window setfont "Sans Serif" 12.;
#P window linecount 1;
#P comment 661 193 82 196620 Example;
#P window setfont "Sans Serif" 9.;
#P newex 661 239 45 196617 pcontrol;
#P message 661 218 108 196617 load StreamAlg03.txt;
#P comment 19 537 224 196617 Life Tools (see externals);
#P window linecount 2;
#P message 114 346 288 196617 \; max launch_browser http://en.wikipedia.org/wiki/L-system;
#P window linecount 1;
#N vpatcher 10 59 823 712;
#P window setfont "Fixedwidth Serif" 18.;
#P window linecount 1;
#P comment 171 460 151 1441810 LindenMusic 2;
#P window setfont "Sans Serif" 9.;
#P hidden newex 618 46 45 196617 loadbang;
#P comment 303 404 52 196617  volume.;
#P comment 423 32 95 196617  pick an L-system.;
#P window linecount 3;
#P comment 141 65 88 196617  bang out a few productions of the L-system.;
#P window linecount 1;
#P comment 22 410 94 196617  start/stop audio.;
#P comment 31 177 89 196617  start the music.;
#P newex 237 338 45 196617 loadbang;
#P message 237 375 39 196617 steal 1;
#P newex 122 374 84 196617 prepend midinote;
#P flonum 240 403 61 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P toggle 98 425 15 0;
#P newex 122 426 27 196617 *~;
#P newex 122 456 29 196617 dac~;
#P newex 122 397 91 196617 poly~ fmthing~ 16;
#P newex 122 342 45 196617 pack 0 0;
#P window linecount 8;
#P message 423 349 142 196617 \; axiom 0 30 47 52 \; p1a 255 30 255 52 1 1 70 \; p1b 255 47 255 65 1 1 1 30 \; p1c 255 52 255 1 47 1 1 58 \; p2a 255 30 255 1 47 1 1 58 \; p2b 255 47 255 52 1 1 70 \; p2c 255 52 255 65 1 1 1 30;
#P message 423 450 151 196617 \; axiom 0 60 63 65 \; p1a 255 60 255 63 1 1 65 \; p1b 255 63 255 65 1 1 1 60 \; p1c 255 65 255 60 1 1 1 1 63 \; p2a 255 60 255 63 1 1 60 \; p2b 255 63 255 65 1 1 1 63 \; p2c 255 65 255 60 1 1 1 1 65;
#P message 423 248 181 196617 \; axiom 0 60 64 65 \; p1a 255 60 255 56 1 1 1 64 62 1 67 \; p1b 255 67 255 1 65 72 69 \; p1c 255 65 255 60 62 1 59 1 \; p2a 255 60 255 56 1 1 64 1 62 1 67 \; p2b 255 67 255 65 72 1 69 \; p2c 255 65 255 60 1 62 59 1 \;;
#P message 423 147 181 196617 \; axiom 0 40 43 45 \; p1a 255 40 255 36 1 1 1 43 42 1 47 \; p1b 255 43 255 1 45 52 48 \; p1c 255 47 255 40 42 1 38 1 \; p2a 255 40 255 1 43 1 1 42 \; p2b 255 38 255 1 1 48 1 45 42 47 \; p2c 255 45 255 40 38 1 52 48;
#P window linecount 1;
#N vpatcher 65 177 1034 749;
#P window setfont "Sans Serif" 9.;
#P newex 762 126 43 196617 r axiom;
#P newex 709 153 44 196617 t l clear;
#P newex 709 126 49 196617 r axiom2;
#P outlet 90 300 15 0;
#P inlet 90 53 15 0;
#P newex 658 153 44 196617 t l clear;
#P newex 658 126 49 196617 r axiom1;
#P newex 741 429 32 196617 r p2c;
#P newex 619 429 32 196617 r p2b;
#P newex 497 429 32 196617 r p2a;
#P newex 741 327 32 196617 r p1c;
#P newex 619 327 32 196617 r p1b;
#P newex 497 327 32 196617 r p1a;
#N vpatcher 40 55 440 355;
#P outlet 60 151 15 0;
#P window setfont "Sans Serif" 9.;
#P newex 305 60 27 196617 t b l;
#P newex 183 60 27 196617 t b l;
#P newex 60 106 35 196617 zl join;
#P newex 60 82 35 196617 zl join;
#P newex 60 128 93 196617 prepend production;
#P inlet 305 36 15 0;
#P inlet 183 36 15 0;
#P inlet 60 36 15 0;
#P connect 0 0 4 0;
#P fasten 6 0 4 0 188 79 65 79;
#P connect 4 0 5 0;
#P fasten 7 0 5 0 310 102 65 102;
#P connect 5 0 3 0;
#P connect 3 0 8 0;
#P fasten 6 1 4 1 205 79 90 79;
#P fasten 7 1 5 1 327 102 90 102;
#P connect 1 0 6 0;
#P connect 2 0 7 0;
#P pop;
#P newobj 497 479 255 196617 p packit;
#P newex 741 454 45 196617 numprod;
#P newex 619 454 45 196617 numprod;
#P newex 497 454 45 196617 numprod;
#P newex 497 506 50 196617 s totune2;
#P newex 434 220 72 196617 jit.fill tune2 0;
#P newex 373 245 134 196617 jit.matrix tune2 1 char 400;
#P newex 373 96 81 196617 jit.matrix tune2;
#P newex 419 124 50 196617 r totune2;
#P newex 373 151 281 196617 jit.linden @wildcard 255 @leftbranch 199 @rightbranch 200;
#P newex 90 272 95 196617 jit.pack 2 char 400;
#N vpatcher 40 55 440 355;
#P outlet 60 151 15 0;
#P window setfont "Sans Serif" 9.;
#P newex 305 60 27 196617 t b l;
#P newex 183 60 27 196617 t b l;
#P newex 60 106 35 196617 zl join;
#P newex 60 82 35 196617 zl join;
#P newex 60 128 93 196617 prepend production;
#P inlet 305 36 15 0;
#P inlet 183 36 15 0;
#P inlet 60 36 15 0;
#P fasten 6 0 4 0 188 79 65 79;
#P connect 0 0 4 0;
#P fasten 7 0 5 0 310 102 65 102;
#P connect 4 0 5 0;
#P connect 5 0 3 0;
#P connect 3 0 8 0;
#P fasten 6 1 4 1 205 79 90 79;
#P fasten 7 1 5 1 327 102 90 102;
#P connect 1 0 6 0;
#P connect 2 0 7 0;
#P pop;
#P newobj 497 375 255 196617 p packit;
#P newex 151 220 72 196617 jit.fill tune1 0;
#P newex 90 245 134 196617 jit.matrix tune1 1 char 400;
#P newex 90 96 81 196617 jit.matrix tune1;
#P newex 136 124 50 196617 r totune1;
#P newex 741 350 45 196617 numprod;
#P newex 619 350 45 196617 numprod;
#P newex 497 350 45 196617 numprod;
#P newex 90 151 281 196617 jit.linden @wildcard 255 @leftbranch 199 @rightbranch 200;
#P newex 497 402 50 196617 s totune1;
#P connect 29 0 6 0;
#P fasten 5 0 1 0 141 146 95 146;
#P connect 6 0 1 0;
#P connect 1 0 7 0;
#P fasten 8 0 7 0 156 241 95 241;
#P fasten 28 1 7 0 697 205 95 205;
#P connect 7 0 10 0;
#P connect 10 0 30 0;
#P fasten 28 0 8 0 663 193 156 193;
#P fasten 14 0 10 1 378 267 180 267;
#P fasten 29 0 13 0 95 82 378 82;
#P connect 13 0 11 0;
#P fasten 12 0 11 0 424 146 378 146;
#P connect 11 0 14 0;
#P fasten 15 0 14 0 439 241 378 241;
#P fasten 32 1 14 0 748 205 378 205;
#P fasten 32 0 15 0 714 193 439 193;
#P connect 21 0 2 0;
#P connect 2 0 9 0;
#P connect 9 0 0 0;
#P connect 24 0 17 0;
#P connect 17 0 20 0;
#P connect 20 0 16 0;
#P connect 22 0 3 0;
#P connect 3 0 9 1;
#P connect 25 0 18 0;
#P connect 18 0 20 1;
#P fasten 27 0 28 0 663 148 663 148;
#P fasten 33 0 28 0 767 148 663 148;
#P fasten 31 0 32 0 714 148 714 148;
#P fasten 33 0 32 0 767 148 714 148;
#P connect 23 0 4 0;
#P connect 4 0 9 2;
#P connect 26 0 19 0;
#P connect 19 0 20 2;
#P pop;
#P newobj 123 107 54 196617 p Lsystem;
#P window linecount 8;
#P message 423 46 181 196617 \; axiom 0 60 63 65 \; p1a 255 60 255 56 1 1 1 63 62 1 67 \; p1b 255 63 255 1 65 72 68 \; p1c 255 65 255 60 62 1 58 1 \; p2a 255 60 255 1 63 1 1 62 \; p2b 255 63 255 1 1 68 1 65 62 67 \; p2c 255 65 255 60 58 1 72 68;
#P button 220 203 15 0;
#P window linecount 1;
#P newex 122 225 27 196617 b;
#P newex 122 317 85 196617 makenote 64 500;
#P number 163 282 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 122 282 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 122 200 55 196617 metro 125;
#N vpatcher 40 55 519 446;
#P window setfont "Sans Serif" 9.;
#P message 311 80 14 196617 1;
#P inlet 311 59 15 0;
#P outlet 395 282 15 0;
#P outlet 366 282 15 0;
#P newex 336 193 40 196617 sel 0 1;
#P newex 276 171 72 196617 unpack s 0 s 0;
#P newex 205 148 81 196617 jit.matrix tune2;
#P outlet 256 282 15 0;
#P message 207 215 14 196617 1;
#P message 226 215 14 196617 0;
#P newex 226 192 40 196617 sel 0 1;
#P newex 166 170 72 196617 unpack s 0 s 0;
#P newex 95 125 75 196617 prepend getcell;
#N counter 1 399;
#X flags 0 0;
#P newobj 95 103 72 196617 counter 1 399;
#P newex 95 147 81 196617 jit.matrix tune1;
#P inlet 95 47 15 0;
#P connect 0 0 2 0;
#P connect 2 0 3 0;
#P connect 3 0 1 0;
#P fasten 15 0 2 2 316 98 130 98;
#P fasten 7 0 2 2 212 241 38 241 38 98 130 98;
#P connect 1 1 4 0;
#P fasten 3 0 9 0 100 145 210 145;
#P fasten 5 0 7 0 231 212 212 212;
#P fasten 11 0 7 0 341 212 212 212;
#P connect 4 3 5 0;
#P fasten 11 0 6 0 341 212 231 212;
#P connect 5 0 6 0;
#P connect 5 2 8 0;
#P connect 9 1 10 0;
#P connect 14 0 15 0;
#P connect 10 3 11 0;
#P connect 11 2 12 0;
#P fasten 6 0 13 0 231 257 400 257;
#P pop;
#P newobj 122 251 65 196617 p lindencanon;
#P toggle 122 176 15 0;
#P user jit.pwindow 122 129 277 23 0 1 0 0 1 0;
#P button 123 64 15 0;
#P comment 237 203 118 196617  re-start the sequence.;
#P window linecount 2;
#P comment 12 497 401 196617  an example of using L-systems to generate music. the jit.linden object is adapted for custom wildcards so that the string data can be interpreted directly as MIDI values.;
#P fasten 5 2 4 0 181 272 196 272 196 168 127 168;
#P connect 4 0 6 0;
#P connect 6 0 10 0;
#P connect 10 0 5 0;
#P connect 5 0 7 0;
#P connect 7 0 9 0;
#P fasten 8 0 9 0 168 307 127 307;
#P connect 9 0 18 0;
#P connect 18 0 24 0;
#P fasten 25 0 19 0 242 393 127 393;
#P connect 24 0 19 0;
#P connect 19 0 21 0;
#P connect 21 0 20 0;
#P fasten 22 0 20 0 103 448 127 448;
#P connect 2 0 13 0;
#P connect 13 0 3 0;
#P fasten 23 0 21 1 245 422 144 422;
#P fasten 21 0 20 1 127 449 146 449;
#P fasten 9 1 18 1 202 338 162 338;
#P fasten 5 1 8 0 154 275 168 275;
#P fasten 11 0 5 1 225 234 182 234;
#P connect 26 0 25 0;
#P hidden connect 32 0 12 0;
#P pop;
#P newobj 22 393 81 196617 p Lindenmayer2;
#P comment 19 504 227 196617 http://www.peterbatchelor.com/max.html;
#P window setfont "Sans Serif" 12.;
#P comment 18 482 115 196620 To Investigate;
#P window setfont "Sans Serif" 9.;
#N vpatcher 10 59 896 691;
#P window setfont "Sans Serif" 9.;
#P comment 461 97 239 196617  open the subpatch 'thesynth' to see how it works.;
#P comment 622 259 115 196617  re-start the sequence.;
#P button 623 274 15 0;
#P comment 465 248 72 196617  start music.;
#P comment 657 304 52 196617  volume.;
#P comment 443 364 94 196617  start/stop audio.;
#P comment 43 102 140 196617  bang out a few productions.;
#P button 205 126 15 0;
#P newex 205 99 45 196617 loadbang;
#N vpatcher 40 55 869 722;
#P inlet 438 33 15 0;
#P window setfont "Sans Serif" 9.;
#P message 605 557 14 196617 0;
#P outlet 605 599 15 0;
#P newex 440 258 30 196617 sel 0;
#P message 667 415 26 196617 200;
#P message 550 415 26 196617 600;
#P message 631 415 20 196617 20;
#P newex 550 36 45 196617 loadbang;
#P newex 460 428 72 196617 clip 125 3000;
#P flonum 460 530 40 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 359 428 32 196617 % 48;
#P flonum 504 530 40 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 417 530 40 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 718 415 83 196617 steal 1 \, target 0;
#P newex 342 531 65 196617 prepend note;
#P newex 342 557 149 196617 poly~ synthstrings~ 16 down 2;
#P newex 381 507 28 196617 - 12;
#P newex 381 484 45 196617 pipe 500;
#P message 460 191 26 196617 500;
#P newex 460 398 40 196617 accum;
#P newex 560 349 27 196617 t b i;
#P message 594 322 26 196617 125;
#P message 560 322 31 196617 -125;
#P button 438 66 15 0;
#P message 361 348 58 196617 43 \, 50 \, 57;
#P message 438 191 14 196617 0;
#P message 342 324 58 196617 40 \, 47 \, 54;
#P newex 342 458 27 196617 +;
#P newex 359 402 40 196617 accum;
#P newex 463 352 27 196617 t b i;
#P message 480 332 14 196617 7;
#P message 463 332 19 196617 -7;
#P newex 429 290 114 196617 sel 70 71 45 43 81 89;
#P message 400 113 14 196617 1;
#P newex 335 206 81 196617 jit.matrix chord;
#P newex 406 229 72 196617 unpack s 0 s 0;
#N counter 1 399;
#X flags 0 0;
#P newobj 335 149 72 196617 counter 1 399;
#P newex 335 182 75 196617 prepend getcell;
#P outlet 481 599 15 0;
#P outlet 342 599 15 0;
#P inlet 335 77 15 0;
#P connect 0 0 4 0;
#P connect 4 0 3 0;
#P connect 3 0 6 0;
#P fasten 8 0 14 0 434 315 347 315;
#P connect 14 0 13 0;
#P fasten 16 0 13 0 366 374 347 374;
#P connect 13 0 26 0;
#P fasten 24 0 26 0 386 527 347 527;
#P connect 26 0 25 0;
#P fasten 27 0 25 0 723 551 347 551;
#P connect 25 0 1 0;
#P fasten 11 0 12 0 468 385 364 385;
#P fasten 15 0 12 0 443 255 364 255;
#P connect 12 0 30 0;
#P connect 30 0 13 1;
#P fasten 8 1 16 0 451 343 366 343;
#P fasten 7 0 4 2 405 138 370 138;
#P fasten 11 1 12 1 485 385 379 385;
#P fasten 28 0 25 1 422 551 381 551;
#P fasten 13 0 23 0 347 479 386 479;
#P connect 23 0 24 0;
#P fasten 17 0 7 0 443 97 405 97;
#P connect 6 1 5 0;
#P fasten 31 0 25 2 465 551 415 551;
#P fasten 32 0 23 1 465 464 421 464;
#P fasten 35 0 28 0 555 480 422 480;
#P fasten 37 1 8 0 465 282 434 282;
#P fasten 33 0 17 0 555 59 443 59;
#P fasten 37 0 17 0 445 282 280 282 280 57 443 57;
#P connect 40 0 17 0;
#P connect 17 0 15 0;
#P fasten 5 3 37 0 471 252 445 252;
#P fasten 29 0 25 3 509 551 449 551;
#P fasten 17 0 22 0 443 136 465 136;
#P fasten 20 0 21 0 565 391 465 391;
#P connect 22 0 21 0;
#P connect 21 0 32 0;
#P fasten 34 0 31 0 636 480 465 480;
#P connect 8 2 9 0;
#P connect 9 0 11 0;
#P fasten 10 0 11 0 485 349 468 349;
#P fasten 20 1 21 1 582 391 480 391;
#P connect 8 3 10 0;
#P connect 25 1 2 0;
#P fasten 36 0 29 0 672 480 509 480;
#P connect 33 0 35 0;
#P fasten 8 4 18 0 502 314 565 314;
#P fasten 19 0 20 0 599 343 565 343;
#P connect 18 0 20 0;
#P fasten 8 5 19 0 519 314 599 314;
#P fasten 37 0 39 0 445 473 610 473;
#P connect 39 0 38 0;
#P fasten 33 0 34 0 555 234 636 234;
#P fasten 33 0 36 0 555 234 672 234;
#P fasten 33 0 27 0 555 234 723 234;
#P pop;
#P newobj 541 307 55 196617 p thesynth;
#P toggle 511 382 15 0;
#P flonum 658 320 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 541 406 29 196617 dac~;
#P newex 569 357 27 196617 *~;
#P newex 541 358 27 196617 *~;
#P toggle 541 247 15 0;
#P newex 541 274 55 196617 metro 125;
#P button 111 121 15 0;
#P message 250 235 31 196617 clear;
#P user jit.pwindow 110 319 374 34 0 1 0 0 1 0;
#P message 205 235 30 196617 " F  ";
#P newex 205 261 114 196617 jit.str.fromsymbol 400;
#P newex 111 204 315 196617 jit.linden @production * F * +GQ * G * FY-F * Q * -FG+ * Y * +GF-;
#P newex 111 164 81 196617 jit.matrix chord;
#P newex 111 290 135 196617 jit.matrix chord 1 char 400;
#P comment 225 126 181 196617  clear and re-initialize the L-system.;
#P comment 447 79 283 196617  an example of using L-systems to create generative music.;
#P window setfont "Fixedwidth Serif" 18.;
#P comment 443 142 151 1441810 LindenMusic 1;
#P connect 10 0 4 0;
#P connect 4 0 5 0;
#P connect 5 0 3 0;
#P fasten 9 0 3 0 255 260 116 260;
#P fasten 6 0 3 0 210 284 116 284;
#P connect 3 0 8 0;
#P connect 19 0 20 0;
#P connect 20 0 7 0;
#P connect 7 0 6 0;
#P fasten 20 0 9 0 210 188 255 188;
#P fasten 18 2 12 0 590 336 613 336 613 238 546 238;
#P connect 12 0 11 0;
#P connect 11 0 18 0;
#P connect 18 0 13 0;
#P fasten 17 0 15 0 516 401 546 401;
#P connect 13 0 15 0;
#P fasten 16 0 13 1 663 346 563 346;
#P fasten 14 0 15 1 574 390 565 390;
#P fasten 18 1 14 0 568 340 574 340;
#P fasten 25 0 18 1 628 298 591 298;
#P fasten 16 0 14 1 663 346 591 346;
#P pop;
#P newobj 23 369 75 196617 p Lindenmayer;
#P window setfont "Sans Serif" 12.;
#P comment 22 345 82 196620 Lindenmayer;
#P user panel 13 338 431 127;
#X brgb 191 191 191;
#X frgb 0 0 0;
#X border 1;
#X rounded 0;
#X shadow 0;
#X done;
#P window setfont "Sans Serif" 9.;
#P newex 270 267 64 196617 prepend help;
#P newex 270 287 45 196617 pcontrol;
#P message 270 248 33 196617 Lmap;
#P newex 197 267 64 196617 prepend help;
#P newex 197 287 45 196617 pcontrol;
#P message 197 248 33 196617 Lgrid;
#P window setfont "Sans Serif" 12.;
#P comment 197 194 82 196620 LObjects;
#P window setfont "Sans Serif" 9.;
#P window linecount 2;
#P message 197 215 406 196617 \; max launch_browser http://arts.ucsc.edu/ems/music/research/Lobjects.readme.html;
#P window linecount 1;
#P message 41 236 77 196617 RTC-Overview;
#P hidden newex 41 259 64 196617 prepend help;
#P hidden newex 41 279 45 196617 pcontrol;
#P button 13 94 15 0;
#P message 13 73 118 196617 # 20071106 191433;
#P hidden newex 14 73 56 196617 datestamp;
#P message 29 94 179 196617 http://rhoadley.net - latest versions;
#P hidden button 13 94 15 0;
#P hidden newex 13 73 48 196617 loadbang;
#P window linecount 2;
#P hidden message 13 73 269 196617 MacBook:/Users/Rich/Documents/Documentation/ACMP/Algorithmic/MaxAlgorithmic/MaxAlgorithmic.txt;
#P window linecount 3;
#P hidden message 13 112 257 196617 \; max launch_browser http://rhoadley.net/cgi/courses/tech_resources/acmp/tasks/Algorithmic.php;
#P window setfont "American Typewriter" 18.;
#P window linecount 1;
#P comment 13 34 271 199491602 MaxAlgorithmic;
#P window setfont "Sans Serif" 9.;
#P comment 13 58 100 196617 v 0.01;
#P window setfont "Sans Serif" 12.;
#P comment 22 194 82 196620 RTC Library;
#P user panel 13 187 158 137;
#X brgb 191 191 191;
#X frgb 0 0 0;
#X border 1;
#X rounded 0;
#X shadow 0;
#X done;
#P window setfont "Sans Serif" 9.;
#P window linecount 10;
#P comment 311 35 171 196617 You need to think about the following: What do you want to control - for instance when sounds happen OR what the sounds are - you might try both but its difficult!? How do you want to control it - set it going and let it go \, or set it going and tweak it \, or perform it? If you want to perform it \, how do you want to do this?;
#P user panel 188 187 431 127;
#X brgb 191 191 191;
#X frgb 0 0 0;
#X border 1;
#X rounded 0;
#X shadow 0;
#X done;
#P window linecount 1;
#P comment 19 520 224 196617 http://web.media.mit.edu/~tristan/;
#P user panel 13 474 431 127;
#X brgb 191 191 191;
#X frgb 0 0 0;
#X border 1;
#X rounded 0;
#X shadow 0;
#X done;
#P user panel 650 186 431 127;
#X brgb 191 191 191;
#X frgb 0 0 0;
#X border 1;
#X rounded 0;
#X shadow 0;
#X done;
#P hidden connect 16 0 10 0;
#P hidden connect 11 0 10 0;
#P hidden connect 14 0 15 0;
#P hidden connect 13 0 12 0;
#P hidden connect 12 0 9 0;
#P hidden connect 10 0 14 0;
#P hidden connect 19 0 18 0;
#P hidden connect 18 0 17 0;
#P connect 22 0 24 0;
#P hidden connect 24 0 23 0;
#P connect 25 0 27 0;
#P hidden connect 27 0 26 0;
#P connect 36 0 37 0;
#P pop;
