From 50a389bea35a91ddae1394c5d35a6f1c703f5bdd Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Tue, 9 Mar 2004 03:51:28 +0000 Subject: Checked in Olaf's 1.5.2 sources. Here are the changes: v 1.5.2 (17. december 2003): - modified netclient for not to drop received data: use of syspollfn instead of clock to poll for incoming data, circular recv buffer v 1.5 (18. october 2003): - added some usefull features to arraycopy (i.e. copying just parts of an array and copying to specified position in destination array) - new object: nchange - IRIX 6.5 port (for GCC 3.3) - OS X binary (Jaguar 10.2.6) v 1.4 (22. may 2003): - updated sources to compile with Pd0.37-test4 - new object: arraycopy v 1.3 (12. april 2003): - new objects: sync listfifo - all setup routines renamed to maxlib__setup() to avoid name clashes, old names still work via class_addcreator() - some improvements for the help files svn path=/trunk/externals/maxlib/; revision=1394 --- help/automata.txt | 356 +++++++++++++++++++++++++------------------------- help/examplescore.txt | 48 +++---- help/help-maxlib.pd | 242 +++++++++++++++++----------------- 3 files changed, 325 insertions(+), 321 deletions(-) (limited to 'help') diff --git a/help/automata.txt b/help/automata.txt index afa5e9e..3f5ff21 100644 --- a/help/automata.txt +++ b/help/automata.txt @@ -1,178 +1,178 @@ -[The following note originally appeared on the emusic-l mailing list. It is -reprinted here with the author's permission] - -From xrjdm@FARSIDE.GSFC.NASA.GOV Wed Nov 23 11:26:39 1994 -Date: Tue, 4 Oct 1994 15:09:23 -0500 -From: Joe McMahon -Reply to: Electronic Music Discussion List -To: Multiple recipients of list EMUSIC-L -Subject: Automata: the long-awaited summary - -Back in August, I think, I promised to post a quick intro to cellular -automata and how they can be used as a sound-generation tool. Since I'm -going to take a couple of different sources and sum them up with little or -no direct attribution, combined with my own opinions, I'll give everybody -my references *first* so they can delete the article and draw their own -conclusions if they so prefer. - -The primary reference that got me started on all this is one in the CMJ: -Vol 14, No. 4, Winter 1990: "Digital Synthesis of Self-modifying Waveforms -by Means of Cellular Automata" (Jacques Chareyon). Those who are already -familiar with automata may just skip to that article and forget about the -rest of this one. -Note: the article gives a mail address for M. Chareyon, but he did not -answer an inquiry about any available recordings using this technique in -1990. - -So. Anyone still here? Good. - -Cellular automata are a mathematical concept first introduced in the late -1940's. Generally speaking, a cellular automaton consists of a grid of -cells. Each cell may take on any of a number of values - binary automata -(cell on or cell off) are the most commonly studied. Each cell has a -neighborhood, defined more simply as other cells which influence its state. -The exact nature of this influence is defined by what are called transition -rules. The cellular automaton starts off with some cells in any of the -allowable states. for each "step" in the automaton's history, the -neighborhood of every cell is checked, and the state of the cell is -updated. All updates occur simultaneously. - -The transition rule must describe the resulting state of a cell for every -possible configuration of other cells in the neighborhood. For large -numbers of states, the amount of memory required to hold the transition -rule becomes increasingly large, Therefore, some automata use what is known -as a "totalistic" rule. These rules simply sum the values of the cells in -the neighborhood and then assign a result on this basis. The resulting -tables are far smaller. - -Many readers may already be familiar with John Horton Conway's game of -"Life". This is a two-dimensional binary automaton with a totalistic rule. -This makes for a very small rule set: - - i) If fewer than two filled cells (cells with value 1) surround a cell, - it becomes empty next generation. - ii) If more than three filled cells surround a cell, it becomes empty - next generation. -iii) If exactly three cells filled cells surround a cell, it becomes - filled on the next generation. - -This corresponds to a totalistic rule set with a total of 8(2-1)+1 or 9 -rules (one each for the sum values of 0 (no cells with a value) through 9 -(all cells with a value) ).If the transition rule were represented as a -non-totalistic one, the rule set would need 2**8 or 256 entries. There are -many interesting totalistic automata, so giving up detailed description of -every nuance of the transitions to save memory space isn't a big sacrifice. - -Interesting as two dimensional automata are, they really aren't terribly -useful for music making. There have been some experiments which have -attempted to use a two-dimensional automaton to generate MIDI events - -synthesis at the note level, using : - -Battista, T. and M. Giri, 1988. "Composizione Tramite Automi Cellulari." -Atti del VII Cooloquio di Informatica Musicale. Rome, Italy: Edizione Arti -Grafiche Ambrosini, pp. 181-182. - -Edgar, R. and J. Ryan, 1986. "LINA" Exhibition of the 1986 International -Computer Music Conference, San Francisco: Computer Music Association. - -I have not heard any of the music from these efforts, so I certainly can't -pass any judgement on them. For the purposes of this summary, we'll just -look at one-dimensional automata. These use a linear array of cells, with -the neighborhood generally being one or two cells on either side of each -cell. -(This is the type of automaton dealt with in M. Chareyon's article, which I -will be paraphrasing broadly hereafter). - -M. Chareyon's automata are wavetables. A digitized signal is stored as a -linear array of numbers in memory. A totalistic rule is used to determine a -lookup value which indexes into an array containing the resulting value; -this is saved into a second array. After the first array is completely -processed, the roles of the two are swapped and the process is repeated. - -The limiting factor in this process is the number of bits of resolution -being used to generate the sound. For a totalistic rule using a two-cell -neighborhood and 12-bit individual samples, we have 3*(2*12) = 12288 -entries in the rule table. At 2 bytes each, this is 24K of storage. If we -go to 16-bit sample resolution, we have 196608 entries at 2 bytes each for -a total of 393216 bytes, or 384K. - -The key point of M. Charyeon's method is the use of small neighborhoods -with large numbers of cellular states. Since the computation of the new -wavetable is all table lookup, very complex transition rules can be -precomputed and loaded into the tables, allowing the synthesis to -essentially be a fast sum-and-lookup loop to calculate each new wavesample. ->From the article, it appears that M. Chareyon was able to produce 2 or 3 -voices in realtime on a Mac II with a Digidesign Sound Accelerator board. -It seems that it would probably be possible to use an AV Mac to do it -without the board. - -This LASy (Linear Automaton Synthesis) method is closely related to the -Karplus-Strong plucked-string algorithm, in that a wavesample is run -through an algorithm which recirculates the samples to "self-modify" the -wave. In fact, a judicious choice of table entries allows one to very -simply simulate the K-S algoritm directly. - -So what are the sounds like? Some automata produce waveforms which quickly -"ramp-up" to complex spectra and then drop off quickly. Others move to a -steady state and then remain there. Yet others produce never-ending and -unpredictable waveforms, whose harmonic content is constantly changing. - -Obviously enough, the original wavesample can be obtained mathematically, -or by actual sampling and using LASy as a waveshaper. As M. Chareyon notes, -a quick estimate of the number of possible automata for a 2-neighbor -totalistic rule using a 256-entry wavetable with 12-bit entries is -(2**12)**256 * (2**12)**(3*2**12) or about 10**4500 possible automata. Of -course, many, many of these would not be suitable for music (e.g., the 4096 -automata in which all values go to one vlaue in one step, etc.); however, -the number of musically useful automata is still likely to be an immense -number. - -M. Chareyon provides a number of examples of ways to fill out the rule -tables and a number of hints on creating wave tables - generally speaking, -one can create a function which is used to compute the values to be placed -into the table and then fill it so it can simply be loaded and used by the -basic algorithm. His experience in using LASy is that he manages -approximately 50% of the time to produce sounds with the desired -characteristics, and that about 10% of the remaining time he gets -unexpected but useful results which can be used as starting points for -further exploration. - -Again, the important point is that the basic automaton uses wavesamples at -full resolution, calculating a new wavesample for each step of the -automaton; the next wavesample can be played while the new one is being -calculated. Because of the large number of states, mathematical tools for -the analysis of automata and the construction of automata with specifically -desired qualities require too much storage and compute time to make them -useful for LASy purposes. - -Again, much of this article is paraphrased from M. Chareyon's article; I -take no credit for any of the work in this note. I'm just summarizing. - -The following other articles were referenced by M. Chareyon's article: - -Burks, A., ed. 1970. Essays on Cellular Automata. Champaign/Urbana, IL: -University of Illinois Press. - -Chareyon, J. 1988a. "Sound Synthesis and Processing by Means of Linear -Cellular Automata." Proceedings of the 1988 Internation Computer Music -Conference. San Francisco: Computer Music Association. - -Chareyon, J. 1988b. "Wavetable come Automa Cellulare: una Nuova Tecnica di -Sintesi." Atti del VII Colloquio di Informatica Musicale, Rome, Italy: -Edizioni Arti Grafiche Ambrosini, pp. 174-177. - -Farmer, D., T. Toffoli, and S. Wolfram, eds. 1984. Cellular Automata. -North-Holland Physics Publishing. [One of the definitive works on cellular -automata - fairly heavy math, not a popular presentation - JM] - -Gardner, M. 1970. "The Fantastic Combinations of John Conway's New Solitare -Game 'Life'". Scientific American 223(4) 120-123. [A good introduction to -cellular automata, focusing on 'life' in specific. Useful intro if my -1-paragraph summary of automata was confusing :) - JM] - - --- Joe M. - --- -"At the end of the hour, we'll have information on the sedatives used by -the artists,,," (MST3K) - +[The following note originally appeared on the emusic-l mailing list. It is +reprinted here with the author's permission] + +From xrjdm@FARSIDE.GSFC.NASA.GOV Wed Nov 23 11:26:39 1994 +Date: Tue, 4 Oct 1994 15:09:23 -0500 +From: Joe McMahon +Reply to: Electronic Music Discussion List +To: Multiple recipients of list EMUSIC-L +Subject: Automata: the long-awaited summary + +Back in August, I think, I promised to post a quick intro to cellular +automata and how they can be used as a sound-generation tool. Since I'm +going to take a couple of different sources and sum them up with little or +no direct attribution, combined with my own opinions, I'll give everybody +my references *first* so they can delete the article and draw their own +conclusions if they so prefer. + +The primary reference that got me started on all this is one in the CMJ: +Vol 14, No. 4, Winter 1990: "Digital Synthesis of Self-modifying Waveforms +by Means of Cellular Automata" (Jacques Chareyon). Those who are already +familiar with automata may just skip to that article and forget about the +rest of this one. +Note: the article gives a mail address for M. Chareyon, but he did not +answer an inquiry about any available recordings using this technique in +1990. + +So. Anyone still here? Good. + +Cellular automata are a mathematical concept first introduced in the late +1940's. Generally speaking, a cellular automaton consists of a grid of +cells. Each cell may take on any of a number of values - binary automata +(cell on or cell off) are the most commonly studied. Each cell has a +neighborhood, defined more simply as other cells which influence its state. +The exact nature of this influence is defined by what are called transition +rules. The cellular automaton starts off with some cells in any of the +allowable states. for each "step" in the automaton's history, the +neighborhood of every cell is checked, and the state of the cell is +updated. All updates occur simultaneously. + +The transition rule must describe the resulting state of a cell for every +possible configuration of other cells in the neighborhood. For large +numbers of states, the amount of memory required to hold the transition +rule becomes increasingly large, Therefore, some automata use what is known +as a "totalistic" rule. These rules simply sum the values of the cells in +the neighborhood and then assign a result on this basis. The resulting +tables are far smaller. + +Many readers may already be familiar with John Horton Conway's game of +"Life". This is a two-dimensional binary automaton with a totalistic rule. +This makes for a very small rule set: + + i) If fewer than two filled cells (cells with value 1) surround a cell, + it becomes empty next generation. + ii) If more than three filled cells surround a cell, it becomes empty + next generation. +iii) If exactly three cells filled cells surround a cell, it becomes + filled on the next generation. + +This corresponds to a totalistic rule set with a total of 8(2-1)+1 or 9 +rules (one each for the sum values of 0 (no cells with a value) through 9 +(all cells with a value) ).If the transition rule were represented as a +non-totalistic one, the rule set would need 2**8 or 256 entries. There are +many interesting totalistic automata, so giving up detailed description of +every nuance of the transitions to save memory space isn't a big sacrifice. + +Interesting as two dimensional automata are, they really aren't terribly +useful for music making. There have been some experiments which have +attempted to use a two-dimensional automaton to generate MIDI events - +synthesis at the note level, using : + +Battista, T. and M. Giri, 1988. "Composizione Tramite Automi Cellulari." +Atti del VII Cooloquio di Informatica Musicale. Rome, Italy: Edizione Arti +Grafiche Ambrosini, pp. 181-182. + +Edgar, R. and J. Ryan, 1986. "LINA" Exhibition of the 1986 International +Computer Music Conference, San Francisco: Computer Music Association. + +I have not heard any of the music from these efforts, so I certainly can't +pass any judgement on them. For the purposes of this summary, we'll just +look at one-dimensional automata. These use a linear array of cells, with +the neighborhood generally being one or two cells on either side of each +cell. +(This is the type of automaton dealt with in M. Chareyon's article, which I +will be paraphrasing broadly hereafter). + +M. Chareyon's automata are wavetables. A digitized signal is stored as a +linear array of numbers in memory. A totalistic rule is used to determine a +lookup value which indexes into an array containing the resulting value; +this is saved into a second array. After the first array is completely +processed, the roles of the two are swapped and the process is repeated. + +The limiting factor in this process is the number of bits of resolution +being used to generate the sound. For a totalistic rule using a two-cell +neighborhood and 12-bit individual samples, we have 3*(2*12) = 12288 +entries in the rule table. At 2 bytes each, this is 24K of storage. If we +go to 16-bit sample resolution, we have 196608 entries at 2 bytes each for +a total of 393216 bytes, or 384K. + +The key point of M. Charyeon's method is the use of small neighborhoods +with large numbers of cellular states. Since the computation of the new +wavetable is all table lookup, very complex transition rules can be +precomputed and loaded into the tables, allowing the synthesis to +essentially be a fast sum-and-lookup loop to calculate each new wavesample. +>From the article, it appears that M. Chareyon was able to produce 2 or 3 +voices in realtime on a Mac II with a Digidesign Sound Accelerator board. +It seems that it would probably be possible to use an AV Mac to do it +without the board. + +This LASy (Linear Automaton Synthesis) method is closely related to the +Karplus-Strong plucked-string algorithm, in that a wavesample is run +through an algorithm which recirculates the samples to "self-modify" the +wave. In fact, a judicious choice of table entries allows one to very +simply simulate the K-S algoritm directly. + +So what are the sounds like? Some automata produce waveforms which quickly +"ramp-up" to complex spectra and then drop off quickly. Others move to a +steady state and then remain there. Yet others produce never-ending and +unpredictable waveforms, whose harmonic content is constantly changing. + +Obviously enough, the original wavesample can be obtained mathematically, +or by actual sampling and using LASy as a waveshaper. As M. Chareyon notes, +a quick estimate of the number of possible automata for a 2-neighbor +totalistic rule using a 256-entry wavetable with 12-bit entries is +(2**12)**256 * (2**12)**(3*2**12) or about 10**4500 possible automata. Of +course, many, many of these would not be suitable for music (e.g., the 4096 +automata in which all values go to one vlaue in one step, etc.); however, +the number of musically useful automata is still likely to be an immense +number. + +M. Chareyon provides a number of examples of ways to fill out the rule +tables and a number of hints on creating wave tables - generally speaking, +one can create a function which is used to compute the values to be placed +into the table and then fill it so it can simply be loaded and used by the +basic algorithm. His experience in using LASy is that he manages +approximately 50% of the time to produce sounds with the desired +characteristics, and that about 10% of the remaining time he gets +unexpected but useful results which can be used as starting points for +further exploration. + +Again, the important point is that the basic automaton uses wavesamples at +full resolution, calculating a new wavesample for each step of the +automaton; the next wavesample can be played while the new one is being +calculated. Because of the large number of states, mathematical tools for +the analysis of automata and the construction of automata with specifically +desired qualities require too much storage and compute time to make them +useful for LASy purposes. + +Again, much of this article is paraphrased from M. Chareyon's article; I +take no credit for any of the work in this note. I'm just summarizing. + +The following other articles were referenced by M. Chareyon's article: + +Burks, A., ed. 1970. Essays on Cellular Automata. Champaign/Urbana, IL: +University of Illinois Press. + +Chareyon, J. 1988a. "Sound Synthesis and Processing by Means of Linear +Cellular Automata." Proceedings of the 1988 Internation Computer Music +Conference. San Francisco: Computer Music Association. + +Chareyon, J. 1988b. "Wavetable come Automa Cellulare: una Nuova Tecnica di +Sintesi." Atti del VII Colloquio di Informatica Musicale, Rome, Italy: +Edizioni Arti Grafiche Ambrosini, pp. 174-177. + +Farmer, D., T. Toffoli, and S. Wolfram, eds. 1984. Cellular Automata. +North-Holland Physics Publishing. [One of the definitive works on cellular +automata - fairly heavy math, not a popular presentation - JM] + +Gardner, M. 1970. "The Fantastic Combinations of John Conway's New Solitare +Game 'Life'". Scientific American 223(4) 120-123. [A good introduction to +cellular automata, focusing on 'life' in specific. Useful intro if my +1-paragraph summary of automata was confusing :) - JM] + + --- Joe M. + +-- +"At the end of the hour, we'll have information on the sedatives used by +the artists,,," (MST3K) + diff --git a/help/examplescore.txt b/help/examplescore.txt index 78afd45..27002f1 100644 --- a/help/examplescore.txt +++ b/help/examplescore.txt @@ -1,25 +1,25 @@ -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -71 -70 -69 -68 -67 -66 -65 -64 -63 -62 -61 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +71 +70 +69 +68 +67 +66 +65 +64 +63 +62 +61 60 \ No newline at end of file diff --git a/help/help-maxlib.pd b/help/help-maxlib.pd index dfe8564..4beb23d 100644 --- a/help/help-maxlib.pd +++ b/help/help-maxlib.pd @@ -1,119 +1,123 @@ -#N canvas 11 6 1106 717 12; -#X obj 274 260 average; -#X obj 18 150 beat; -#X obj 18 175 borax; -#X obj 18 125 chord; -#X obj 15 551 dist; -#X obj 274 155 divide; -#X obj 274 129 divmod; -#X obj 599 149 fifo; -#X obj 274 286 history; -#X obj 601 503 ignore; -#X obj 601 477 iso; -#X obj 598 123 lifo; -#X obj 274 312 match; -#X obj 274 180 minus; -#X obj 600 257 mlife; -#X obj 274 207 multi; -#X obj 15 576 netdist; -#X obj 18 251 pitch; -#X obj 274 234 plus; -#X obj 601 425 pulse; -#X obj 15 600 remote; -#X obj 18 200 rhythm; -#X obj 18 225 score array01; -#X obj 601 451 speedlim; -#X obj 601 529 step; -#X obj 600 232 subst; -#X text 140 44 written by Olaf Matthes ; -#X text 71 125 chord detection; -#X text 68 150 beat tracking; -#X text 77 201 beat detection; -#X text 72 176 music analysis; -#X text 135 225 score following; -#X text 72 251 pitch information; -#X text 19 94 MUSIC / MIDI ANALYSIS; -#X text 274 93 MATH; -#X text 341 130 calculate / and %; -#X text 339 155 / for several inputs; -#X text 333 235 + for several inputs; -#X text 333 207 * for several inputs; -#X text 337 181 - for several inputs; -#X text 345 259 average of last N values; -#X text 346 285 average over last N seconds; -#X text 329 312 match input to list of numbers; -#X text 601 399 TIME; -#X text 678 452 lets input through every N milliseconds; -#X text 640 479 play sequence of MIDI notes; -#X text 662 504 ignore too fast changing input; -#X text 63 550 send to list of receive objects; -#X text 84 574 same for netreceive; -#X text 74 599 send to one receive object; -#X text 597 96 BUFFER; -#X text 648 531 a line object that steps; -#X text 599 208 OTHER / EXPERIMENTAL; -#X text 657 231 self-similar substitution; -#X text 656 257 cellular automaton; -#X obj 274 338 scale; -#X text 656 425 a 'better' metro; -#X obj 601 555 history; -#X obj 601 581 velocity; -#X text 670 555 average over last N milliseconds; -#X text 677 581 velocity of input in digits per second; -#X obj 15 624 netrec; -#X text 74 625 netreceive with extra info about sender; -#X obj 274 364 delta; -#X text 139 61 download at http://www.akustische-kunst.org/puredata/maxlib -; -#X obj 599 174 listfifo; -#X text 677 173 first in first out for lists; -#X text 646 148 first in first out for floats; -#X text 643 123 last in first out for floats; -#X obj 600 607 sync; -#X text 645 609 extended trigger object; -#X text 328 338 scale input to output range; -#X text 13 528 (REMOTE)CONTROL; -#X obj 16 649 netserver; -#X obj 16 676 netclient; -#X text 103 654 bidirectional communication; -#X text 112 669 (client / server based); -#X obj 274 392 wrap; -#X obj 274 419 rewrap; -#X text 320 392 warp a number in a range; -#X text 337 420 warp it back and forth; -#X text 30 26 maxlib 1.3 :: Music Analysis eXtensions LIBrary; -#X text 328 364 calculate 1st or 2nd order diff.; -#X text 600 288 RANDOM; -#X obj 600 312 gauss; -#X obj 600 337 poisson; -#X obj 666 312 linear; -#X obj 666 337 bilex; -#X obj 736 311 expo; -#X obj 785 311 beta; -#X obj 834 312 cauchy; -#X obj 737 338 arbran array01 array02; -#X obj 18 278 gestalt; -#X obj 18 303 edge; -#X text 56 306 detect rising/falling edge; -#X text 84 278 'gestalt' of music; -#X obj 599 365 urn; -#X text 632 366 urn selection model; -#X obj 601 635 timebang; -#X text 680 635 send a bang at given time of day; -#X obj 15 390 split; -#X obj 15 439 unroute; -#X text 81 440 opposit to route; -#X text 67 392 split according to range; -#X obj 15 463 limit; -#X text 63 464 limiter for floats; -#X obj 15 415 nroute; -#X text 69 416 r. according to Nth elem.; -#X text 24 363 ROUTING / CHECKING; -#X obj 600 661 pong; -#X obj 18 330 tilt; -#X obj 600 686 temperature; -#X text 698 687 amount of input changes per time; -#X text 646 662 a bouncing ball model; -#X text 66 333 meassure tilt of input; -#X obj 16 489 listfunnel; -#X text 107 490 Max's funnel for lists; +#N canvas 75 -12 1161 819 10; +#X obj 307 260 average; +#X obj 18 150 beat; +#X obj 18 175 borax; +#X obj 18 125 chord; +#X obj 14 588 dist; +#X obj 307 155 divide; +#X obj 307 129 divmod; +#X obj 656 148 fifo; +#X obj 307 286 history; +#X obj 403 577 ignore; +#X obj 403 552 iso; +#X obj 655 122 lifo; +#X obj 307 312 match; +#X obj 307 180 minus; +#X obj 660 343 mlife; +#X obj 307 207 multi; +#X obj 14 613 netdist; +#X obj 18 251 pitch; +#X obj 307 234 plus; +#X obj 403 499 pulse; +#X obj 14 637 remote; +#X obj 18 200 rhythm; +#X obj 18 225 score array01; +#X obj 403 525 speedlim; +#X obj 403 603 step; +#X obj 660 318 subst; +#X text 140 44 written by Olaf Matthes ; +#X text 71 125 chord detection; +#X text 68 150 beat tracking; +#X text 77 201 beat detection; +#X text 72 176 music analysis; +#X text 135 225 score following; +#X text 72 251 pitch information; +#X text 19 94 MUSIC / MIDI ANALYSIS; +#X text 310 91 MATH; +#X text 374 130 calculate / and %; +#X text 372 155 / for several inputs; +#X text 366 235 + for several inputs; +#X text 366 207 * for several inputs; +#X text 370 181 - for several inputs; +#X text 378 259 average of last N values; +#X text 379 285 average over last N seconds; +#X text 362 312 match input to list of numbers; +#X text 403 473 TIME; +#X text 480 526 lets input through every N milliseconds; +#X text 442 553 play sequence of MIDI notes; +#X text 464 578 ignore too fast changing input; +#X text 62 587 send to list of receive objects; +#X text 83 611 same for netreceive; +#X text 73 636 send to one receive object; +#X text 654 95 BUFFER; +#X text 450 605 a line object that steps; +#X text 659 294 OTHER / EXPERIMENTAL; +#X text 717 317 self-similar substitution; +#X text 716 343 cellular automaton; +#X obj 307 338 scale; +#X text 458 499 a 'better' metro; +#X obj 403 629 history; +#X obj 403 655 velocity; +#X text 472 629 average over last N milliseconds; +#X text 479 655 velocity of input in digits per second; +#X obj 14 661 netrec; +#X text 73 662 netreceive with extra info about sender; +#X obj 307 364 delta; +#X text 139 61 download at http://www.akustische-kunst.org/puredata/maxlib +; +#X obj 656 173 listfifo; +#X text 734 172 first in first out for lists; +#X text 703 147 first in first out for floats; +#X text 700 122 last in first out for floats; +#X obj 402 681 sync; +#X text 447 683 extended trigger object; +#X text 361 338 scale input to output range; +#X text 12 565 (REMOTE)CONTROL; +#X obj 15 686 netserver; +#X obj 15 713 netclient; +#X text 102 691 bidirectional communication; +#X text 111 706 (client / server based); +#X obj 307 392 wrap; +#X obj 307 419 rewrap; +#X text 353 392 warp a number in a range; +#X text 370 420 warp it back and forth; +#X text 361 364 calculate 1st or 2nd order diff.; +#X text 660 374 RANDOM; +#X obj 660 398 gauss; +#X obj 660 423 poisson; +#X obj 726 398 linear; +#X obj 726 423 bilex; +#X obj 796 397 expo; +#X obj 845 397 beta; +#X obj 894 398 cauchy; +#X obj 797 424 arbran array01 array02; +#X obj 18 278 gestalt; +#X obj 18 303 edge; +#X text 66 307 detect rising/falling edge; +#X text 84 278 'gestalt' of music; +#X obj 659 452 urn; +#X text 692 452 urn selection model; +#X obj 403 709 timebang; +#X text 482 709 send a bang at given time of day; +#X obj 15 390 split; +#X obj 15 439 unroute; +#X text 81 440 opposit to route; +#X text 74 392 split according to range; +#X obj 15 463 limit; +#X text 63 464 limiter for floats; +#X obj 15 415 nroute; +#X text 80 414 r. according to Nth elem.; +#X text 24 363 ROUTING / CHECKING; +#X obj 402 735 pong; +#X obj 18 330 tilt; +#X obj 402 760 temperature; +#X text 500 761 amount of input changes per time; +#X text 448 736 a bouncing ball model; +#X text 66 333 meassure tilt of input; +#X obj 16 489 listfunnel; +#X text 107 490 Max's funnel for lists; +#X text 30 26 maxlib 1.5 :: Music Analysis eXtensions LIBrary; +#X obj 656 201 arraycopy; +#X text 741 202 copy from one array to another; +#X obj 17 525 nchange s; +#X text 89 526 change that exepts any kind of input; -- cgit v1.2.1