Page  475 ï~~Mapping Complex Systems Using Granular Synthesis Michael Hamman School of Music University of Illinois 1114 W. Nevada Urbana, IL 61820 hamman@cmp-rt. music.uiuc.edu A software system has been developed which uses complex systems to generate compositions for tape. Complex systems utilize non-linear functions to generate structures whose behavior ranges from highly periodic and predictible to non-periodic and unpredictable. At the lowest level of structure, a single grain is generated through the implementation of independently applied non-linear functions; a single function determines each defined parameter of a grain. At higher levels, overlapping sequences of events, consisting of large constellations of such grains, are composed using different applications of these same systems. BACKGROUND Study of dynamic systems over the past 20 years has focused largely on non-linear systems which exhibit highly complex behavior. My own interest centers around systems used to model phenomena related to populational biology (Gleick 1987; May 1976). Non-linear systems have attracted the attention of composers. Jeff Pressing (Pressing 1988) developed a set of experiments in which non-linear functions were mapped to various parameters using the Csound synthesis program. Agostino DiScipio (DiScipio 1990) developed compositions in which the output of a particular non-linear function was used as the mean for gaussian distributions for various sonic events. Moreover, efforts were made to utilize such systems in the creation of timbres. Barry Truax has proposed the use of granular synthesis as a means of projecting the behavior of non-linear systems (Truax 1990). Truax makes note of the revolutionary impact of non-linear systems on physics and biology and contends that the "unsolved problems in the field of acoustics seem as ripe for such basic re-examination as those in other fields." SPECIFICATION OF THE FUNCTIONS USED Wave is a computer program used to generate compositions. It employs non-linear functions in defining many of the parameters of a given grain. The ICMC 475

Page  477 ï~~While TimePoint < durationOfComposition Do Get sound parameters for an "event" Get a range of variances used by functions in defining an "event" Get the number of grains to be generated Generate a sequence of grains defining this "event" Get the next TimePoint End Do. End Program. All initial parameters are obtained from a set of data files prepared by the composer for a given composition or set of compositions. Each iteration of the loop applies selected functions (also determined by the composer for each composition) to six parameters: frequency, amplitude, stereo placement, amount of time separating successive grains, envelope of the grain, and duration of the grain. In the outer loop these parameters are only of general significance: they are initial values for parameters that are particularly defined within the inner loop which determines each grain. A range of variances, applicable to each general parameter is determined through the implementation, once again, of selected functions. These variances are used within the inner loop to control the range of movement for a given parameter of the currently generated event. Finally, the number of grains to be generated for the current event is calculated according to a selected function, and the event is generated through implementation of the inner loop. When this is accomplished, a value for TimePoint is computed using a "brownian" function which provides for variation in the density of overlapping events. The following pseudo-code describes the basic algorithm of the inner loop: Begin Function Initialize local variables For i = 0 to numberOfGrainsForThisEvent Do Get local variables Factor these variables with their global counterparts Place these values into an array End Do. Write the array of grain definitions to disk End Function. ICMC 477

Page  478 ï~~Once again, a set of functions is used to determine the "local variables" for a particular grain. These are factored with the six parameters defined in the outer loop and within the range of variances also defined there. This set of six values is placed in an array at index i. Once the number of grains determined in the outer loop has been attained, another function is called to write the corresponding grains to disk at the file offset associated with the global variable "TimePoint" (also defined within the outer loop). CONCLUSION Three compositions for tape have been made with this program. The design of Wave is such that each time a composition is to be performed, a new version is made. As such, a structure is not fixed to a single composition; rather it is variable and abstract. Further variance can be introduced through the open nature of the software. New functions can be written and used by the basic program. Such functions can include all manner of non-linear and even linear functions. The system is written in C and runs on a NeXT cube in the Computer Music Project at the University of Illinois at Urbana-Champaign. REFERENCES DiScipio, A. 1990. "Composition by Exploration of Non-Linear Dynamic Systems." Proceedings of the 1990 International Computer Music Conference: 324 - 327. Gleick, J. 1987. Chaos: Making a New Science. New York: Viking. May, R. M. 1976. "Simple Mathematical Models with Very Complicated Dynamics." Nature 261 (6): 459 - 467. Pressing, J. 1988. "Nonlinear Maps as Generators of Musical Design." Computer Music Journal:12 (2):35 - 45. Truax, B. 1990. "Chaotic Non-Linear Systems and Digital Synthesis: an Exploratory Study." Proceedings of the 1990 International Computer Music Conference:100 - 103. ICMC 478