Computer Music Languages, Kyma, and The Future - Carla Scaletti
Computer Music Languages, Kyma, and The Future - Carla Scaletti
JSTOR is a not-for-profit service that helps scholars, researchers, and students discover, use, and build upon a wide
range of content in a trusted digital archive. We use information technology and tools to increase productivity and
facilitate new forms of scholarship. For more information about JSTOR, please contact [email protected].
Your use of the JSTOR archive indicates your acceptance of the Terms & Conditions of Use, available at
https://about.jstor.org/terms
The MIT Press is collaborating with JSTOR to digitize, preserve and extend access to Computer
Music Journal
Eric Lyon organized this symposium around the they have had a longer-lasting and deeper influence
following two questions. Why has some computer on the evolution of music.
music software survived and developed a follow- This article is organized into three sections. The
ing? Where is computer music software today, and first section is an identification and discussion of
where might it be headed in the future? Acknowl- factors that can contribute to the success and lon-
edging that the term "computer music" is by now gevity of a computer music language. In the middle
redundant, since virtually all music involves the section, I try to illustrate some of those factors
use of computers in some form or another, he (like extensibility) using specific examples from the
posed these questions with respect to computer Kyma language. The last section is a speculation on
music software that supports experimental music. the role computer music languages could play in a
Experimental music is not limited to any specific future world where art, the economy, and human
musical style or genre. An experimental musician beings are very different from the way they are
is one who approaches each act of musical creation today.
in a spirit of exploration and innovation, often with
the goal of inventing new kinds of music that have
never been heard before. Factors Contributing to the Success
I would like to take Eric Lyon's refinement a step of a Language
further by observing that all of the software exam-
ples included in this symposium (along with some
Why have some computer music languages sur-
others that are not represented here) belong to a
vived over the years and attracted a sizeable num-
special category of computer music software called
ber of users? Although we would like to believe
computer music languages. Most software packages
that the only reasons for the success of these lan-
can be classified as utilities; they perform a well-
guages are their inherent attributes, many of the
defined, familiar function that is needed by a large
factors contributing to success have little to do
number of people. A software package that emu-
lates all the functions of the traditional multi-track
with the language or technology itself. There are,
for example, the lucky accidents of geography,
recording studio would be one example of a utility.
economic/social class, and chromosomal makeup.
But the pieces of software that Eric Lyon has cho-
Given these "accidents" of birth and fortune, what
sen to include in this symposium are different;
other necessary (but not sufficient) factors can con-
they are examples of computer music languages.
tribute to the longevity and acceptance of a com-
A language provides one with a finite set of
puter music language?
"words" and a "grammar" for combining these
words into phrases, sentences, and paragraphs to
express an infinite variety of ideas. A language does
not do anything on its own; one uses a language to Reasons Intrinsic to the Language
express one's own thoughts and ideas. This is what
makes these particular software packages so open,Several factors intrinsic to a language contribute to
extensible, and useable in ways unanticipated by its relative success. A language is successful if peo-
their authors. And that is why, although they mayple are using it successfully. It does not matter how
never command the same market share as utilities, elegant or beautiful a language is in theory or on
paper if no one is using it. Any language that has
longevity and a following also has a corresponding
Computer Music Journal, 26:4, pp. 69-82, Winter 2002 list of creative projects that have been successfully
C 2002 Massachusetts Institute of Technology. completed using that language.
Scaletti 69
Scaletti 71
Scaletti 73
. . .,. ...
P....u , i. A * 1,,4
. ..k ...... .... . .
..... .. . . . .. . . . . . . .. . .. . . . . . . . .. +i
_ . . . . . .. .. . . . .. . . : . ... . . . . . ... . . _ . ........ . ~ i + .; : . ..i.
? . . .. ..: .. . ? .. . 1..: 1.1.i . l .W,. u+ ~ ..+ . d,~ b..+ + s . .. .
h .. i .1
S.. ' . S b
.FrrA.
awr*n.4W ,6441 .... "N T7
.. t
Vea n:.
Fit
Fr410
in which one could select a class and its creation been right at my fingertips (literally) all along.
method from lists, and they would then be auto- Every time I tried to describe the structure of a
matically typed into a window. Previously created Kyma Sound, I always drew a picture like the one
Sounds appeared in lists on either side of the codein Figure 3.
window, so they could be used as arguments to All this time, I had been describing Sounds in
new Sounds. Its indentation level represented the one way but representing them on the computer
position of a Sound in the hierarchical structure, screen in a different way. It finally occurred to me
and one could select any level and listen to it atthat a drawing of the Sound structure could be
that point. more than just a tool for describing and under-
In an attempt to further reduce the need for typ- standing the Sounds: it might also be the most di-
ing, I changed the interface to the "Russian doll" rect way for people to create and manipulate the
style interface shown in Figure 2, where Sounds are Sounds. In other words, the same representation
represented as "containers" of other Sounds. could be used for both analysis (i.e., a description
Double-clicking on a Sound opened a window after the fact) and synthesis (i.e., creating and modi-
showing the Sound's input(s) and parameter values, fying the structures). For me, at least, this was an
double clicking on those inputs revealed their in- important conceptual breakthrough. It was the first
puts, and so on. time I realized that synthesis is just one specific
This succeeded in revealing the recursive nature case of analysis.
of the structure but was not very good at showing I changed the graphical representation of Sounds
the overall structure and the connections between from boxes-within-boxes to something that looked
the Sounds. Finally, I realized something that had like the screen shot in Figure 4, a graphical repre-
+
Mixer
Name twoVoices
Scale SubSounds
1.0
0.6
-0.2
-0,n
Name [U]
Sp"[U] bandwidthl
inHertz" i "[U] bandwidth2 pc
70 pitch inHertz" 45 pitch
play replay help save replace fullReplace
unit generators).
The direction of signal flow was user-selectable,
so one could reverse the signal flow direction or Delayed
Scaletti 75
parameterlzedPluck
flow had a noticeable effect on the way people un- I also noticed that whenever I wanted to create a
derstood and manipulated that underlying structure. parameter control function, I would first draw the
desired control function on paper and then work
Evolution of the Graphical Timeline out the arithmetic combination of functions to
Kyma's Timeline editor is yet another view of that generate that shape. That is why the Kyma.5 time-
same underlying data structure. Kyma Sounds have line (shown in Figure 6) allows one to draw the
always been able to represent time-varying signal control functions.
flow architectures through the use of the Time- The Timeline was not so much a change to
Offset and SetDuration modules. These represent Kyma as it was the addition of an alternate view on
changes to the structure of the signal flow itself, the original underlying Sound structure. (And, judg-
not "events" in the sense of parameter updates. I ing from the number of complex, multi-layered
noticed that whenever I wanted to explain the ef- sounds and performances that have been created
fects of the TimeOffset and SetDuration in a Sound using the Timeline, it must have been a closer
(see Figure 5a), I would illustrate it using bars and match to the way people conceive of time varying
vertical time markers (see Figure 5b). structures).
Similarly, whenever I wanted to create a time-
varying synthesis architecture, I would always start Evaluating the Appropriateness
by sketching it out as a timeline on paper first. It of a Representation
was another case of finally realizing that the best At the risk of belaboring the point, all of these ex-
representation for specifying and manipulating a amples illustrate that there can be multiple ways of
structure was the one that I, along with everyone viewing and manipulating a single abstract struc-
else, had already been using on paper. ture. Each alternative can reveal or emphasize dif-
I I I I I
I II I I
Mixer
I I2 S53
I I I I I
0 1 2 3 4
S1Si
delay I D2= 2 from event sources like MIDI controllers and
= 1 delay MIDI-generating software. So in Kyma version 4.5,
we added an event language, including internal and
external sources of asynchronous events and real-
time expression evaluation, on the Capybara. The
improvement in the quality of the sounds people
made in the new version demonstrated the power
of event-driven live interaction. And we were
S2 S3 pleasantly surprised that the original data structure
had been robust enough to accommodate this kind
of major shift.
Sometimes symbols are the clearest and One mostof the ideas behind the Kyma framework (and
direct representation, and sometimes a graphical indeed behind any "modular" software or hard-
representation can be clearer and more compact. ware) is that one can easily plug new sound synthe-
Kyma provides both graphical and symbolicsis and processing algorithms into the existing
inter-
face elements, depending on the context. Arrivingstructure and immediately use them in conjunction
at the most appropriate representation nearly withal-
existing ones. Kyma has proven itself open
ways requires some experimentation and a few enough
in- to accommodate several new synthesis and
spired realizations. In the Kyma language, that processing algorithms that we have developed over
evolution is still in progress and is part of thethe years.
fun The most recent example is the addition
of participating in a living language. in 2001 of a new family of synthesis and processing
algorithms called Aggregate Synthesis.
Aggregate Synthesis is an extension to the classic
Extending the Data Structure "additive synthesis" algorithm in which complex
timbres are created by adding together the outputs
Sound objects have also proven to be extensible in of sine wave oscillators. Aggregate
of hundreds
ways I had not originally anticipated. In theSynthesis
first extends this idea by using elements other
version of Kyma, for example, although the than oscillators as the basic generators. Besides the
struc-
tures could be time-varying, the parameterclassic values"oscillator bank," one can also use a bank
were all constants. As we and other users worked of band-pass filters, a bank of impulse response
with the language, we came to realize that by mak-
generators, or a bank of grain cloud generators.
ing the parameters event-driven, we would not These alternative generator banks are controlled by
only be making the language more interactive, wethe same analysis file (or live spectral analysis) as
would also be opening it up to external control the classic oscillator bank, so Aggregate Synthesis
Scaletti 77
? i : i. . . . . "- I f i i .i l '" : i :i.... :..:... . . . ... . ... .. . :. . . : . " " . . ; . .:. ." , " ' . ? . ... . . . .. : N. . .. . : : " . .. . .: . . ..... . : ".. . . ... .. :.: : . ... ......
F
..
...........?r
i
.
.
... .. . - . ..C.. --,:, .... :, ..
.
.
'..::i.. " ........ .
. ..-
% :....:.:5:...:...::..".....:..::.....
.. . 11k .:1 :- . ......... .
....
. . - - -4.:..:: ?:.,:. ::.c....... .. .., . . . : ..: . .:.. - ...:.. . . . ...:.,-..::...-. .-.. .........!. ..'.. ...... . A .:!.:...:X:, -:. - :.........:: .:..... :.... %.. .
. ::
;4:--'',7 ... ......... .. .... ;.::?X .... . :::--.:--..1l..-:: -........'.: . : ,:Z.. 7::.:,?:.,? ... . ? .
.... ... .. .. - . . . . . .. . . . : . . -,::: ii: : : ::R !i X -: :-j::-l:: -.::-1: : :: , : :! :
!.?..
ii . . . ?. . . .. . :.. .: : . . ..
. . . . .. . , I.,
lNl : ::::X .::: .?
::::;::' : I .."... .... I'll..... . .. . .... ... . . :.:i
.:X...."....., .. ............ ,.,.:..
,, ,,,---,:
.. . : : .. .. ; - .::--;XmX::::X:::X ... ; ... : . .
.......N? :::-::1,`:%::-.-. :!:
.i I 1. , N.""...
.. . . . . .: :l::..
. .: :...X::-..:
. ... ... : ..X...
: ......
- . ......
. ,.? .4S
.. ... ......
. . ...:: .. . . . . . .. ..".. :ii:. -'::: " ".
... 5m::%: . ..: A K ......
... . , . . .. . .:.: :: .. . ..:-..:. : :. -- . :. : ' 1BPid?: .... B .."ON&O",~~il ?
:: ,
" . , ,: . . ... ."M
. .W**000..
..... I.
% . . .. . . .. .?:?
.. . W ...
. - -...
- . ..
, . ...
. .. .:
. .. .. .
. -. .. . ! . . . . . .. : :
.. . .. - -. : : .. . . n ...:.. :.::... - :. .N.... ?
. .... ...... . ........'.4 ...
.: .. ........
.. : : - ..:,- -.::.:.: - - . .. .. .... :::. .. : ..: ..... . . :... .7. . ..: .. .... :. ...U :: N .. -- .... x: I
..- .. ... ... .. ..:: : . .:.::...
...i?..n.... .: - .-
. .:- .:.::::,
;I
:
00*! ?:--O-j~ .i6" : ...
,. . . .. .:"
.. .... :........:.. . ......:
:" ..:: .:: ? .::.:. :. b g* -bo: ' ..-
"
iii ..
.. ; ::.? ?: :% . .. .. -..... ...
:.. ,....4.....:: :
. .: :- ..n~ ~?? ?? Ilg
-:,::. ; a. :. .:: .::. .?:? : ,' " .: - ' ., : I',E?,?a:;i-i;B..,.4,kS?".,--?... ?,.- X.. :
... . . . .. ...... .. ...
......
. . ... ..D
... .........::
Irr .::: ..... . .,.. .: - - ... X.N.
, , : . . . . . . . : .:: - . . I ?.,-'.- -
: I I.I. 1..
... " -_'. - - . .. . .. - . . ?..: .:. .N. ..:.: :.::.::::::l??i .jib . . .. . .. . . ... j. : . . .. ...
., ....... . .. ....... ..-..."I.... . ::---.--:.-.;:-. I, ..... .. .... m.... :..;.........
------ Ep -- " ------_ _ ....
-- I 111I I...... iii????????????????????????????????
- ."...-..----l.,,--?.??.w?..,-.?4.;:.x?::,?-,-,,..?,.,..?.?:.:..?...?x.?:.-:?:44:..!:-".:.?L::%L?..?:.:.-.:...:Z:-?.z
.. .... ..
Scaletti 79
Scaletti 81