[N.B. This article appears here as published in the proceedings of the 1995 International Computer Music Conference. The contact information for Christopher Dobrian shown in this document is now obsolete.]

Algorithmic Generation of Temporal Forms:
Hierarchical Organization of Stasis and Transition

Christopher Dobrian
iEAR Studios, Rensselaer Polytechnic Institute
Troy, New York 12180-3590 USA
Tel.: 1 (518) 276-4032 / Email: dobrian@rpi.edu


I propose herein an algorithm for generating temporal forms based on the hierarchical organization of two types of activity: stasis and transition. These can be applied to sonic parameters or to attributes of musical materials over any time span. I present a compositional application of such formal structures, in which they control the prominence of different characteristics of a musical composition.

Theoretical Premise

A common device in music is the ornamentation of a structural element by means of departure and return. This device is exemplified on the note level by a neighboring tone, on the phrase level by a tonic-dominant-tonic harmonic progression, and on the formal level by the A-B-A organization of sections. The ornamental element (the neighboring tone or dominant chord, for example) can also be considered a lower-level structural element, which might in turn be ornamented (with a secondary neighboring tone, a secondary dominant chord, etc.).

This nested hierarchy of structure and ornament is one of the more obvious implications of Schenkerian analysis. Even when dealing with music in which harmonic function and melodic themes are not essential delineators of formal structure, we need not completely abandon this underlying idea of the Schenker system. One can easily extend the idea to other musical parameters besides pitch and harmony, such as dynamics or tempo.

The transition away from and back to a structural element need not always be abrupt and discrete. It may involve intermediate steps (such as passing tones, passing chords, etc.) or may be gradual and continuous (as in the case of the diminuendo in the preceding example). Such transitions, if clear in their direction and not too lengthy relative to the structural elements, do not detract from the basic sense of structural hierarchy.

One can further extend this idea of structure and ornament beyond traditional musical parameters and apply it to global attributes of a section of music--degree of dissonance, density of events in time or pitch space, orchestration, etc.--or even to more abstract descriptors such as level of tension, energy, and so on. We can certainly perceive transitions from dense to sparse, consonant to dissonant, etc., and one may very well treat contrast in any such dimension as being ornamental to (i.e., providing variety from) an established norm.

Extending the hierarchical model to other musical dimensions besides pitch is a fruitful means of analyzing and organizing music. It is likely that we in fact hear formal structure as a complex combination of the structure of all dimensions at once. The task of composing, of course, is managing and correlating those dimensions to create a rich and coherent whole.

Function Generation

If we are no longer talking about key centers or melodic motives when we talk about form, the question arises "The form of what?" John Cage remained sagely ambiguous in this regard by defining form as "the morphology of the continuity", one interpretation of which might be "the shape of the passing of time". If we separate the individual musical parameters, or focus variously on particular musical attributes, form appears to exist as an abundance of simultaneous morphologies in different (but related) dimensions.

As implied by the line segments above the musical examples on the preceding page, structure and ornament can be depicted graphically as a function over time. Once so depicted, the form becomes generalizable--it could be the morphology of anything over time. A single such form can be applied to the composition of all musical characteristics, or a variety of related forms can be applied simultaneously to the different dimensions of the music.

According to the hierarchical view of structure and ornament, in which an ornament can always be viewed as a structural element in the next level of detail, one is always either in an important place or heading there: in stasis or in transition. We can use stasis and transition as the elements to be ornamented. One ornaments (varies from) stasis by going somewhere else, and one ornaments transition by pausing en route.

Ornamentation of stasis involves up to three intermediate stages--the ornament, and the (possibly immediate) transition to and from it--as shown on the left. Ornamentation of a transition involves only one intermediate stage--the stasis that interrupts the transition--as shown on the right. In each case, the ornamentation process produces more instances of the same two elements--stasis and transition--of progressively shorter duration.

A function of any degree of intricacy can be created simply by recursively ornamenting line segments (representing stability or change over time) in this fashion.

Each static segment is ornamented with a transition to another level, and each transition is ornamented with a static segment. The degree of intricacy is limited by a minimum length on the x axis, less than which the function will not be further ornamented. As the function is more intricately ornamented, its Ursatz becomes less recognizable as such (compare examples B and D), but does not totally disappear.

This function-generating algorithm is easily implemented in C using a doubly-linked list of points on a two-dimensional plane. Additional points are added--in accordance with the ornamentation scheme described on the preceding page--between any two adjacent points whose x coordinates are further apart than a specified minimum. If the y coordinates of two adjacent points are equal, they are endpoints of a static segment; if they are unequal, they are endpoints of a transitional segment.

Once the breakpoints have been established, a table of any number of y values can be generated by interpolating between points. The functions can be used to shape sonic characteristics in a synthesis program such as Csound, to control musical parameters in a MIDI program such as Max, or indeed to control parameters of a graphic display in animation software.

Compositional Application

Most experimentation in algorithmic composition has dealt with the generation or transformation of notes and phrases. Such "phrase level" algorithms tend to move the majority of the composer's intuitive work to a higher formal level, one of assembling these computer-composed phrases to form larger compositions. This indicates that the composition of larger temporal forms--either by judiciously ordering already-composed phrases, or by composing phrases designed to play a specific role in a larger form--is fertile terrain for systematic and algorithmic cultivation.

Just as the basic device of departure and return can operate at any level of a composition--from the microcosmic (neighboring tone) to the macrocosmic (A-B-A form)--so can a hierarchical, recursive, or self-similar function be applied with good effect over any duration of time. Over the course of a few seconds, a function lends a characteristic gesture to a phrase. Over the course of several minutes, the proportions of the function are heard as form.

Rather than a simplistic mapping of these generated functions to musical parameters such as pitch, loudness, duration, etc., it is much more intriguing to apply them to attributes or tendencies of music during a segment of time. Instead of a point on the y axis corresponding to a fixed loudness, for example, it may correspond to a tendency to be that loud--a predominance of sounds suggesting that loudness. Or instead of corresponding to a particular harmony, it may simply indicate the use of a weighted pitch set most suggestive of that harmony. In this way the formal design remains apparent without being overly obvious.

These functions have been used to generate music of diverse character and duration. After generating a linked list of function breakpoints or a table of interpolated values in C, the values are used in Max to control musical parameters or to guide probabilistic decisionmaking algorithms. The following is a description of one application scheme.

Eight musical dimensions were specified for the computer to control in the composition of an eight-voice piece: polyphony (how many voices perform at a given moment), modality (relative prominence of pitch classes), octave registration (predominance of activity in regions of pitch space), loudness (weighting of the relative prominence of loud and soft sounds), orchestration (predominance of one timbre or another), underlying pulse rate (base tempo), rhythmic values employed (number of pulses between note onsets), and legato (amount of overlap of sounds within a single voice). Each dimension was ascribed a function to shape its activity over time. The functions determine which table of probabilities--chosen from an array of different tables for each dimension--should be used at a given moment to make stochastic decisions regarding low-level note composition (pitch, loudness, duration, and timbre).

The speed at which one steps through the temporal functions determines the duration of the composition. The exact same parameters can be used to compose a few seconds of music with a distinctive gestural quality derived from the form (and multiple passes can be used to produce variations on the same gesture) or to compose several minutes of music in which the shapes of the functions are heard as contrasting or transitioning formal sections.

Widely divergent compositions can be created with the same temporal functions, simply by replacing the content of the probability tables. The pieces evidence a strong similarity in formal structure, as one would expect, even though the musical "materials" are completely different. Conversely, one can leave the probability tables constant while changing the functions that select them. In that way, a variety of formal structures can be applied to the same musical materials.

Other Compositional Applications

The above explanation describes the use of algorithmically generated forms to generate notes which will, in their totality, delineate the desired form. The functions can equally well be used to organize already-composed sections of music into a larger form that best conforms to the shape of the function. Composed sections can be analyzed and ranked in a variety of ways (e.g., from slowest to fastest, most sparse to most dense, etc.), either subjectively by a human or statistically by a computer, and then ordered in time according to the requirements of the formal shapes being applied to each musical dimension. The "fitness" of a given pre-composed section is determined by how closely it matches the formal needs of the moment in a particular musical dimension, and the section with the highest total fitness (when all dimensions are considered together) is used. Thus, the steps are as follows: 1) sections of music are composed, 2) they are ranked several ways, according to different criteria, 3) the functions provide a target value for each dimension at a given time in the piece, 4) a "fitness" value is assigned to each section in each dimension, 5) the weighted sum of fitness values of each section is computed, 6) the section with the highest total fitness is used.

The concept of structure and ornament, abstracted from the specific world of musical pitch and harmony, is a useful organizational concept for any musical attribute, and indeed is transferable to any art form. The hierarchical, self-similar nature of the concept makes it applicable at any formal level.


I owe thanks to David Cope and John Felder for (many years ago) providing the initial impetuses that led to these ideas. I would also like to acknowledge a work of music that must surely have influenced this line of thought, Joji Yuasa's Chronoplastic.