Composing Sound Structures With Rules
Composing Sound Structures With Rules
Composing Sound Structures With Rules
bung (1969/70), the score provides three variants for each of the twelve
sections of the piece. The performer is free to choose which variant to use for
each section.
Contemporary Music Review 79
D
o
w
n
l
o
a
d
e
d
b
y
[
N
e
w
c
a
s
t
l
e
U
n
i
v
e
r
s
i
t
y
]
a
t
1
1
:
0
3
1
2
A
p
r
i
l
2
0
1
3
POD
Barry Truax developed the computer composition/sound synthesis programs POD5
and POD6 at the Institute of Sonology in the period 19711973 (Truax, 1973). POD5
worked with xed waveforms and POD6 with frequency modulation. His aims
included:
1. Doing as much real-time synthesis as possible with the limited computer
facilities.
2. Allowing the composer to direct the development activity from the teletype.
3. Operating at a higher, syntactical level than the separate specication of
events.
4. Allowing the composer to build a more personal version of the
materials available to him, particularly on the level of sound data (Truax,
1973, p. i).
5. Stimulating the development of sound comprehending programs.
Sound objects were denitions with a few parameters, relevant to the means of sound
production. For POD5, the object denition included a waveform, envelope values,
and an amplitude modulation frequency. For POD6, up to thirty frequency
modulation objects could be dened, each including envelope data, carrier
modulator ratios, and a maximum modulation index.
These objects were assigned to the frequency-time points calculated by the
program using some of the selection principles Koenig described for PR2: sequence,
alea, ratio, and tendency.
The most important feature was the higher-level control that produced the
frequency-time points associated with the sound objects. Central to this was the
specication of event densities within prescribed frequency-time areas. To do this,
ideas from Koenig and Xenakis were combined.
The concept of using several tendency masks to describe a frequency-time area was
adapted from Koenig to the needs of Truaxs system. From Xenakis came the use of a
Poisson distribution (Xenakis, 1992) to choose values within the boundaries of a
tendency mask. Because Poissons theorem was not intended for use in areas with
changing boundaries, a certain tension between the user specication and the
computed result appeared.
The output of the program was a monophonic composition section. The statistical
calculations either determined the starting time of an event or the time after an event
had nished sounding. The rst case was more reminiscent of a Xenakis-like
structure.
Truaxs concerns were multi-faceted but included an explicit cognitive aspect.
If one is to become involved with complex sound production and at the same time
be concerned with its result being understood as musical, it does not seem
80 P. Berg
D
o
w
n
l
o
a
d
e
d
b
y
[
N
e
w
c
a
s
t
l
e
U
n
i
v
e
r
s
i
t
y
]
a
t
1
1
:
0
3
1
2
A
p
r
i
l
2
0
1
3
inappropriate to use statistical distributions of events or parameters since it can be
supposed that most observers are capable of sonological strategies arriving at the
recognition of such structures. (Truax, 1973, pp. vvi)
The issue of compositional and user strategies was important in the POD programs.
The user was a catalyst for the compositional decisions made by the program.
Given the rules, guide the program. The distinction of sound objects and their
control was, however, unlike some later work done at the Institute.
ASP
Given my experience using the POD programs and my pre-sonological experience
with Music Vstyle programs, I decided in 1974 to try to write some synthesis
programs which allowed me more and less control. More control because I would
write the program, but less control because the only possible user interaction would
be to set an initial condition, then start, and later turn off the program. This
collection of programs was called ASP (Automated Sound Programs) (Berg, 1975; see
also Berg, 1979).
I had a background as an instrumentalist and was familiar with the concept of
examining the idiom of a particular instrument. For a PDP-15, I decided an
idiomatic usage would be producing numbers quickly and sending then to a digital-
to-analog converter (DAC). To produce sound, a bit more work was required but the
idea was clear: try and develop series of computer instructions that would produce
sound but would not be based on unit generators that I knew from Music V, such as
oscillators and lters, or based on the kind of sound objects and control I knew from
the POD programs.
A simple starting point was to produce random numbers and send them to a DAC.
Fortunately, the Institute had a hardware random-number generator that could
produce a random number in one machine cycle (of about 4 microseconds). It also
had a programmable clock with which each sample could be delayed a variable
amount.
Writing in Macro-15, the assembly language of the PDP-15, 22 programs were
made in 19741975 and joined in a library exploring the idea of producing sound in
real time without using a known acoustic model. These programs were rather
idiosyncratic programs based on counting, comparing, arithmetic and logical
operations, choosing among possible loops, lling buffers and changing single values,
sending part of a number to a DAC and the other part to a clock, and varying the
sample rate at arbitrary moments. These numbers were sent to a 12-bit DAC which
was often manually disconnected from its smoothing lter since smooth was not part
of the concept.
Because the programs could run for ever, mechanisms had to be programmed to
provide change. A very useful technique was to derive values by masking a random
number using a logical AND. This operation could produce a discontinuous range of
numbers, depending on the bits chosen for the mask. This mask could be changed at
Contemporary Music Review 81
D
o
w
n
l
o
a
d
e
d
b
y
[
N
e
w
c
a
s
t
l
e
U
n
i
v
e
r
s
i
t
y
]
a
t
1
1
:
0
3
1
2
A
p
r
i
l
2
0
1
3
certain moments, usually chosen by counting program cycles. The value for that mask
could be determined by yet another mask. This might give the impression of some
kind of long-term developmental control. The double-layered change mechanism is
reminiscent of the second-order random walks Xenakis later used in his Dynamic
Stochastic Synthesis (Luque, 2006).
This uid control at the middle level dees Roads classication of time levels.
Between the macro and micro level he places the meso level with groupings of sound
objects into hierarchies of phrase structures of various sizes, measured in minutes or
seconds and the sound object a basic unit of musical structure, generalizing the
traditional concept of note to include complex and mutating sound events on a time
scale ranging from a fraction of a second to several seconds (Roads, 2001, p. 3).
Although ASP programs tended to change at different rates on different levels, there
was no concept of a sound object and therefore no grouping of sound objects into
phase structures. Sample values were programmed which just happened to produce
sound. Sample values did not necessarily have a xed time interval between them.
Repetitions of the same value produced silence.
These programs were quite compact. The shortest was 70 lines of assembler code
and the longest was 340 lines. The conciseness of the code was possibly because
Digital Signal Processing (DSP) concerns such as producing a desired frequency value
or a specic envelope were ignored.
To give an impression of an ASP program, here is a description of ASP18 (the
shortest of the programs):
One number of clock pulses is chosen in the program and maintained. An 11-bit
number N is chosen and an 8-bit factor. The factor is either added or subtracted to
N, the result becoming the new value of N. Twelve bits of this N are sent to the
converter. The program either repeats the addition subtraction process with the
new value of N and the same factor, or a new factor is calculated, or a new factor
mask and factor are calculated. (Berg, 1975, p. 7)
Since it may be hard to imagine what such a program would sound like (modulo the
18-bit word size), the programs (the material) were necessarily developed in a
feedback process of editing, compiling, listening. The results were too unpredictable
to work any other way. Give the rules, hope for sound.
The output could be used unedited and considered a composition, or moments of
output could be gathered and mixed into a composition. Alternatively, the output
could just be considered a sound generator, in need of further manipulation.
The programs were gathered into a library for consultation, and a monitor
program was written to allow the execution of the programs in a (random) sequence.
The next ASP program started when a computer switch was hit. Given the programs,
enjoy the result.
Although I developed certain insights into what might happen with the use of
various instructions, it was very hard to explain the process to other people. The
description of ASP18 above demonstrates the problem. I also noticed that some
82 P. Berg
D
o
w
n
l
o
a
d
e
d
b
y
[
N
e
w
c
a
s
t
l
e
U
n
i
v
e
r
s
i
t
y
]
a
t
1
1
:
0
3
1
2
A
p
r
i
l
2
0
1
3
groups of instructions appeared often. These were two of the reasons that led to my
abstracting ideas from these programs and including them in a language design called
PILE.
PILE
PILE (Berg, 1979) was a higher-level language than Macro-15 assembler though not
full-featured. It was designed and implemented in 19761977. It did not support any
common unit-generators but continued the ASP tradition of manipulating numerical
systems to produce sound. Curtis Roads (1996) suggested the term instruction
synthesis to describe this approach. Sound was described purely in terms of
computer instructions without reference to other models. As an alternative to the
term instruction synthesis, the term non-standard synthesis (Holtzman, 1978) is
also often applied to ASP and PILE.
In PILE, more concise syntactic versions of the operations found in ASP were
available in addition to explicit instructions for manipulating lists and controlling
program ow. ASP provided a starting point for PILE, but the use of PILE suggested
its own developments. Four channels of DAC output were supported and several
layers of sounds could be produced simultaneously in real time.
Unlike an ASP program, a program written in PILE could stop. A possible
scenario for developing a composition was to develop a section by writing code,
listening, and rening. The program was deterministic, such that given the same
initial values, the same result would always be reproduced. Several sections could
be developed independently and their code concatenated to create larger
structures. Different sections could be variants of a previous section but with
different initial conditions. The nal result (a complete composition) would be
produced in real time.
PILE and ASP reect the same mindset. But since PILE was a language, it provided
a means to explore additional aspects in a more convenient way and it provided
opportunities for others to develop compositions.
A positive aspect of this approach to non-standard synthesis was a refreshingly
noisy sound output generated by syntactic relationships. The material produced by
exploring with PILE was both the instructions and the sound output. The
composition was the material from which form emerged. A more challenging aspect
was the heuristic nature of the working process.
SSP
Koenig designed his sound synthesis program SSP in 1972 (Koenig, 1978), though
he had begun talking about and planning a synthesis program in the mid-
1960s. A working implementation was available in 1977 (Berg et al., 1980; see
also Banks et al., 1979). SSP is another example of a non-standard synthesis
program.
Contemporary Music Review 83
D
o
w
n
l
o
a
d
e
d
b
y
[
N
e
w
c
a
s
t
l
e
U
n
i
v
e
r
s
i
t
y
]
a
t
1
1
:
0
3
1
2
A
p
r
i
l
2
0
1
3
For SSP, amplitude values (sample values) and time values were the raw material.
In this discussion of SSP, the term amplitude values will be used since that is the
term Koenig used. The possible inappropriateness of that usage from a DSP
perspective will be ignored. Similar to the ListTable-Ensemble principle of PR2,
amplitude and time values were specied and selected. The 12-bit DAC allowed
4096 amplitude values. Time was expressed in microseconds with a minimum value
of 38 microseconds. Specied values could also include tables created in another
program and sample values from an analog-to-digital converter. Amplitude and
time values were then joined into (waveform) segments which started with zero
(2048). Segments could be permuted into various sequences. The selection
principles which were available in PR2 for composition on the macro-level
(tendency, alea, series, etc.) were available for composing the micro-structure of a
sound. The selection principles could be used, for example, in picking amplitude
and time values for a segment or for determining the order of segments in a
permutation.
The program was conversational. The users task could be described as: list the
source material (amplitude and time values); select all or part of that material;
construct segments with material from the selection; order the segments; listen to the
chosen order; and return to any of the preceding steps for further renement. Given
the rules, pick, choose, and permute.
The program produced one layer of sound output. To listen to the
permutation, segments were represented in core memory as breakpoints. A
permutation was played in real time, producing a continuous, composed
waveform by interpolating between these breakpoints. The number and length
of the segments was limited by available memory, but a varied sound output of a
few minutes was possible.
The ordering of segments using tendency masks was particularly successful.
A wide selection of segments would result in a noisy sound structure. Narrow
masks led to unstable sounds within a conned frequency region. Masks moving
from narrow to wide could produce dramatic transitions between these two
extremes.
The selection principle group was also very useful for permutations. Group would
allow a random choice of segment to repeat some random number of times.
Repeating a segment in effect treats it as a waveform with a certain perceptible
duration.
In these successful cases, permutation was as an effective generative mechanism.
Users willing to accept this as a feature could compose interesting sound structures
by creating strings of waveform segments. These monophonic outputs were later
mixed in another studio into compositions.
A problem arose for those concerned with Koenigs original concept. The List
SelectSegment hierarchy, if considered as an analogy to PR2s ListTableEnsemble
principle, would require parameters to have a recognizable identity. For singular
amplitude and time values, this is not possible. Segments typically had short
84 P. Berg
D
o
w
n
l
o
a
d
e
d
b
y
[
N
e
w
c
a
s
t
l
e
U
n
i
v
e
r
s
i
t
y
]
a
t
1
1
:
0
3
1
2
A
p
r
i
l
2
0
1
3
individual durations which meant that permutations could be heard not as an
arrangement of known events in a variant (as was the requirement in PR2), but as
something new, generated with these segments. This led Koenig to bemoan ten years
later that:
this shifted the form question into a twilight zone which lack of facilities and time
prevented me from exploring properly. It would have taken bigger computers . . . to
exploit the potential of such a methodespecially in terms of musical language.
Scrutiny of the method on which SSP is based reveals a chasm between the
relatively simple strategy for describing the sound signal and the aural impression it
creates. (Koenig, 1987, p. 173)
Spa
A last example of the guerilla sound synthesis (Rowe, 2008) activities at Sonology is
Robert Rowes Spa project from 1980 (Rowe, 1980a,b). It was a collection of
assembly-language programs intended for personal use which operated in real ime.
The nal program, Spa14, produced the composition Spattering . . . a Shower without
additional mixing or editing. Notable features included the fact that it did not use
random numbers and the conscious attempt to utilize some computer science
concepts involving structured programming. It did maintain the crunchy surface
structure common to many sonological activities of that decade. The approach to
rhythm, in retrospect, has similarities with some outputs of his later Cypher system
(Rowe, 1993).
The most general description of Spa14 is that three lists are sampled for various
purposes including envelope shaping, waveform production and increment
selection. A controlling routine organizes several subroutines, some of which are
executed to update global variables, some of which may call other subroutines. The
controlling routine directs the subroutines to the appropriate memory areas,
initializes output channels, and alters computational variants through the search of
an event list. This event list is checked periodically and changes either the operation
of some subroutines, or the logical structure by which they are called. At the end of
the event list the program exists. (Rowe, 1980a, p. 3)
The tool was programmed during a few months and then the composition was
made with it in a relatively short time. Spas real-time sound production allowed
a very immediate contact with the work in progress, and encouraged a kind of
composition one is tempted to call improvisation (Rowe, 1980b, p. 2). Given the
rules, improvise.
Conclusion
Notable in the work presented here is an interest in the rule-based generation of
musical structures, in particular sound structures. The application of and response to
Contemporary Music Review 85
D
o
w
n
l
o
a
d
e
d
b
y
[
N
e
w
c
a
s
t
l
e
U
n
i
v
e
r
s
i
t
y
]
a
t
1
1
:
0
3
1
2
A
p
r
i
l
2
0
1
3
the rules show a certain variety of compositional and musical approaches. During the
decade, a shift from the macro-level organization of parameter distributions in time
(PR1 and PR2) to the meso-level organization of POD to the organization of the
macro level by explicitly dealing with the micro level (ASP, PILE, SSP, SPA) can be
discerned.
Aspects of the working method, such as the renement of real-time generative
processes by listening and programming, are now commonplace. Interest in
composing with microsound (including noises and glitches) is a presence in certain
scenes. The awareness of the compositional signicance of programming material, in
particular as part of the process which creates musical form, is deserving of continued
attention.
References
Banks, J. D., Berg, P., Rowe, R. & Theriault, D. (1979). SSP a bi-parametric approach to sound
synthesis. Sonological Reports, 5. Utrecht: Institute of Sonology.
Berg, P. (1975). ASP report. Utrecht: Institute of Sonology.
Berg, P. (1979). PILE a language for sound synthesis. Computer Music Journal, 3(1), 3041.
Revised and updated version in C. Roads & J. Strawn (Eds.), Foundations of computer music
(pp. 160190). Cambridge, MA: MIT Press.
Berg, P., Rowe, R. & Theriault, D. (1980). SSP and sound description. Computer Music Journal,
4(1), 2535.
Chowning, J. (2007). Fifty years of computer music: Ideas of the past speak to a future immersed
in rich detail. In Proceedings of the International Computer Music Conference 2007
(pp. 169175). San Francisco: International Computer Music Association.
Holtzman, S. R. (1978). A description of an automatic digital sound synthesis instrument. DAI
Research Report No. 59. Edinburgh: Department of Articial Intelligence.
Kaegi, W. & Tempelaars, S. (1978). VOSIM a new sound synthesis system. Journal of the Audio
Engineering Society, 26(6), 418426.
Koenig, G. M. (1970a). Project 1. Electronic Music Reports, 2Utrecht: Institute of Sonology.
Koenig, G. M. (1970b). Project 2 a programme for musical composition. Electronic Music Reports.
3. Utrecht: Institute of Sonology.
Koenig, G. M. (1971). Summary observations on compositional theory. Utrecht: Institute of
Sonology.
Koenig, G. M. (1978). Composition processes. Paper presented at the UNESCO Workshop on
Computer Music, Aarhus, Denmark. Also published in M. Battier & B. Truax (Eds.),
Computer music. Canadian Commission for UNESCO.
Koenig, G. M. (1987). Genesis of form in technically conditioned environments. Interface, 16(3),
165175.
Koenig, G. M. (1991). Working with Project 1: My experiences with computer composition.
Interface, 20(34), 175180.
Koenig, G. M. (1992). Segmente a structured landscape. Interface, 21(1), 4351.
Luque, S. (2006). Stochastic synthesis: Origins and extensions. Masters thesis, Institute of Sonology,
The Hague.
Roads, C. (1996). The computer music tutorial. Cambridge, MA: MIT Press.
Roads, C. (2001). Microsound. Cambridge, MA: MIT Press.
Rowe, R. (1980a). The Spa story. Utrecht: Institute of Sonology.
Rowe, R. (1980b). The Spa project: An overview. Utrecht: Institute of Sonology.
86 P. Berg
D
o
w
n
l
o
a
d
e
d
b
y
[
N
e
w
c
a
s
t
l
e
U
n
i
v
e
r
s
i
t
y
]
a
t
1
1
:
0
3
1
2
A
p
r
i
l
2
0
1
3
Rowe, R. (1993). Interactive music systems. Cambridge, MA: MIT Press.
Rowe, R. (2008). Presentation at the conference Live Electronics and the Traditional Instrument,
March 29, Amsterdam, the Netherlands.
Thomson, P. (2004). Atoms and errors: Towards a history and aesthetics of microsound. Organised
Sound, 9(2), 207218.
Truax, B. (1973). The computer composition sound synthesis programs POD4, POD5, POD6.
Sonological Reports. 2. Utrecht: Institute of Sonology.
Xenakis, I. (1992). Formalized music. (Rev. ed). New York: Pendragon Press.
Contemporary Music Review 87
D
o
w
n
l
o
a
d
e
d
b
y
[
N
e
w
c
a
s
t
l
e
U
n
i
v
e
r
s
i
t
y
]
a
t
1
1
:
0
3
1
2
A
p
r
i
l
2
0
1
3