Granular Synthesis with Cmix and Max

Granular Synthesis with Cmix and Max

Mara Helmuth
Columbia University
Music Department
New York, NY 10027

Texas A & M University
Music Department
College Station, TX 77843
mara@woof.music.columbia.edu, mara@silvertone.princeton.edu
Abstract:
Several granular synthesis programs on the NeXT will be shown. StochGran is an Interface Builder Objective C interface to several Cmix instruments. In this new version, sampling granular synthesis, more graphical features, and in-phase correlation of grains have been added. The second part of the demonstration features a granular sampling MAX patches running in real time on the IRCAM Signal Processing Workstation. Excerpts from a composition by the author for eight instruments and ISPW, Evolutions, which was created with both StochGran and Max, will be discussed.

1 Introduction

Construction of complex sound from grains, or small units of sound is known as granular synthesis. Probability equations are often used to contol the large amount of parameter data for the grains. This technique was first described by Iannis Xenakis [1971] in his discussion of stochastic music. Barry Truax [1988] and Curtis Roads [1988] have both explored these techniques. StochGran is a NeXTstep interface to a Cmix implementation of granular synthesis instruments. The current version of StochGran incorporates new graphical features for more spontaneous control over sound creation, and the granulation of sampled sound. Real time granular synthesis is possible with the IRCAM workstation. The MAX graphical programming language has been used to create stochastic granular sampling patches for composition and improvisation. The computer part of Evolutions, a piece for eight live instruments and computer is created by MAX patches both playing Cmix- created sound files, and performing granular sampling in real time on sampled acoustic instrument sounds. 2 Cmix under NeXTstep Implementation: StochGran StochGran allowed the composer to control a large number of grain parameters stochastically and independently. In the original version the parameters were typed in manually for each of the thirty-six fields. A Cmix score or data file was written out, the sgran stochastic granular synthesis instrument was run with these parameters, and a sound file was written to the disk. The sound file could be played within the program. The details are described in Helmuth [1991]. Because the program was non-real time, an unlimited number of grains could be layered, the grains could be any duration, and control functions could be as complex as necessary. Several features have been added to aid composition, including sampling sound files and graphical editing of control functions.

2.1 Granular Sampling

StochGran has been modified to read sound files, as well as synthesizing from waveforms. Using sampled sound as the basic unit of construction has been termed granular sampling [Lippe, 1992]. The amount of time to skip into the file, and rate at which to proceed through the file while writing out processed grains was specifiable. As in the synthesis version, the probabilities of various pitches, rates and durations to occur at each point in the event were all controllable. In this case, grain frequency was a result of a transposition. Because the phase of the grain affects how the timbre of the resulting sound will be perceived (adjacent grains with widely varying phases can sometimes produce a noisy sound), control over phase was important. An algorithm to line up the phases of overlapping grains described by Jones et al., [1988] has been implemented in the new version.

2.2 Graphical Function Editing

Control functions determine the shape of change of grain parameters over the course of an event. In Cmix, one types the function parameters into a line of data. Previously StochGran allowed one to select linear or exponential shapes. To create complex functions one had to return to line editing. All four control functions have been made editable graphically. This feature was easily implemented due to Fernando Lezcano's program, EnvelopeEd, which provided the EnvelopeView graphical object. While the previous version of StochGran was a vast improvement over tedious data file editing, with the graphical function editor the composer has been able to think more clearly and specifically about the shape of parameter changes in phrases and musical gestures.

3 MAX/ISPW Implementation

MAX patches have been constructed to do granular sampling on the IRCAM Workstation (ISPW) in real time. The music programming language MAX allows the user to connect signal processing object graphically, [Puckette, et al., 1990]. The goal was to create the sames types of sounds as with StochGran, but in real time. This would allow improvisation, and facilitate performance with instrumentalists. While I had attempted improvisation with my PieceNow interface, alternately digitizing live acoustic performers and then processing the sounds and playing them, and even before that with a set of shell scripts, the results depended more on the live component than the labored computer part. To improvise with granular synthesis sounds required the ISPW, and a set of controls with which one could manipulate a number of parameters simultaneously. The possibility of having instrumental and computer parts interact freely in time was attractive. Several important issues came up in the translation of the Cmix programs to MAX. It was necessary to change the method of grain calculation to create the stochastic sounds in real time. The compositional process was somewhat different, and choices about how to trigger events in performance had to be made.

3.1 Description of the Patches

Space does not allow a detailed description of the Max patches. The algorithm is similar to the one described for the Cmix StochGran sgran instrument, with exceptions made for the real time aspects discussed below. A simple probability table representing a quasi-normal distribution was used instead of the equation in sgran. Grain parameters were sent in either with beginning and ending event settings to move between over a particular time, or ending settings to move toward. The settings were sent either from specific buttons designed for a certain sound, or manipulated individually with sliders and sent when desired in the testparams patch. The parameters were received by a patch which applied the event amplitude envelope and the voice volume. This patch in turn sent the data to a subpatch which calculated the incremental change in parameters throughout the event. This patch sent the information to the lowest level patch, which read the sample table at the appropriate rate, duration and transposition, and applied the grain envelope. The highest level patch had the user controls for reading sound files from the disk, master volume, reverb amplitude and time, and buttons to initiate events in various sections of a piece.

3.2 Differences in Musical Strategy using a Real-Time Platform

The most obvious difference between real time and non-real time systems was in performance. A strategy was needed for making the computer events happen, either under human or program control, or some combination of the two. How were the computer and live performers to interact? The design of this aspect had profound consequences for a composition. Another important difference is the limitation on processor power. While the ISPW is extremely powerful, layering thousands of simultaneous grains with several different types of room simulation, as I have done in Cmix, was beyond even the capabilities of the ISPW. To make efficient use of resources, different patches were set up for different situations which emphasize the techniques currently needed, rather than relying upon one or two multipurpose programs. Phase correlation was not used; a low pass filter removed noise. Four to eight or more "voices" were created, and each calculated grains linearly, without overlaps, rather than allowing stochastically-made decisions to generate grains in a more random order. The start times were delayed stochastically, and the musical effects of the sounds were similar to many of the Cmix- created files. Metronomes for each voice triggered the sending of new grain parameters on the millisecond level, so that complex changing arrangements of grains were possible. Where extremely dense layerings were needed, sound files were written to the disk and read back. A third contrast in working with a real time system was the compositional process. When composing with Cmix (after the instrument was created), a pattern of waiting for the sound to be created, playing, and editing the data was established. Because it took from a few seconds to hours for a dense mass of grains with long durations, a thoughtful approach was encouraged. There was a definite joy to being able to design the processing effect of a button on a sound, and test it out immediately in MAX. With MAX, however, the delay was in the programming, not the realization of sound. Complex programs were more time consuming to write in MAX than in C, as the handling of strings and messages was difficult.

4 A Compositional Example: Evolutions

Evolutions, for flute, clarinet, alto saxaphone, two percussion, ISPW, harp, violin and cello, was written to make use of a wide variety of the granular synthesis sounds, using instrumental sounds as the source, to produce timbral evolutions and gestures.

4.1 Timbral Evolution

Granular synthesis allows one precise control over a very wide range of timbres. In this composition the source sounds were sampled instrumental sounds. Sound files were read onto the hard disk and read into tables as needed. Sampling the instruments live would have required more rehearsal time than was feasible. There were about two hundred three-second files, including a hundred percussion sounds. Each instrument was sampled at pitch intervals of a second or third, and some were sampled at different tone colors such as violin played sul ponticello, or clarinet played very softly. Any of these files could be read into any of the voice tables stored in memory on the processor, at any time. Since events of changing parameters are created independently on any of the voices, the timbral and textural variety was large, and the ability to move from any tone color to another was unlimited, at any rate or shape of change. Parameters such as pitch depended on the interaction of several parameters, sound file frequency and grain rate, which allowed for interesting variations as the rate and frequency could change independently.

4.2 Musical Gesture

With the changing parameters one can specify contrasting and similar movements throughout an event. An internal timbral counterpoint can be described as a musical gesture. This term is appropriate because it refers to an unity of conception of the sound. A physical gesture made by a living organism may seem one connected movement, although it involves the individual movements of many muscles. Similarly, the timbral gesture may be composed of many gradual parameter changes in grain rate, duration and transposition, but still heard as one unique musical unit.

5 Summary

Two different implementations of granular synthesis techniques on the NeXT have been constructed. StochGran, a NeXT interface to a Cmix instrument, is available for anonymous ftp at the Princeton.edu archive site. The MAX patches performed granular sampling in real time using the IRCAM Signal Processing Workstation. The composition Evolutions illustrated the use of both techniques in a composition for instruments and real time signal processing. The MAX patches are available if a request is sent to the email address above.

References

[Helmuth, 1991] Helmuth, Mara. Patchmix And StochGran. Proceedings of the International Computer Music Conference. Montreal: McGill University. 1991.
[Jones, et al., 1988] Jones, D. and Parks, T. Generation and Combination of Grains for Music Synthesis. Computer Music Journal 12(2):27 - 34, 1988.
[Lansky, 1990] Lansky, Paul. The Architecture and Musical Logic of Cmix. Proceedings of the International Computer Music Conference. Glasgow: ICMC Glasgow 1990, 1990.
[Lippe, 1993] Lippe, Cort. A Musical Application Using the IRCAM Signal Processing Workstation. Talk given at the 1993 Science and Music Conference. London.
[Puckette, 1988] Puckette, Miller. Combining Event and Signal Processing in the MAX Graphical Programming Environment. Computer Music Journal 15(3):68 - 77, 1988. Cambridge, MA: Massachusetts Institute of Technology.
[Roads, 1988] Roads, Curtis. Introduction to Granular Synthesis. Computer Music Journal, 12(2), 1988. Cambridge, MA: Massachusetts Institute of Technology.
[Truax, 1988] Truax, Barry. Real-Time Granular Synthesis with a Digital Signal Processor. Computer Music Journal, 12(2), 1988. Cambridge, MA: Massachusetts Institute of Technology.
[Xenakis, 1971] Xenakis, Iannis. 1971. Formalized Music. Bloomington, IN: Indiana University Press.