Kyma

Kyma is a visual programming language for sound design used by musicians, researchers, and sound designers. In Kyma, a user programs a multiprocessor DSP by graphically connecting modules on the screen of a Macintosh or Windows computer.

Background
Kyma has characteristics of both object-oriented and functional programming languages. The basic unit in Kyma is the "Sound" object, not the "note" of traditional music notation. A Sound is defined as:

i) a Sound atom ii) a unary transform T(s) where s is a Sound iii) an n-ary transform T(s1, s2,.., sn), where s1,s2,..sn are Sounds

A Sound atom is a source of audio (like a microphone input or a noise generator), a unary transform modifies its argument (for example, a LowpassFilter might take a running average of its input), and an n-ary transform combines two or more Sounds (a Mixer, for example, is defined as the sum of its inputs).

History
The first version of Kyma, which computed digital audio samples on a Macintosh 512K was written in the Smalltalk programming language in 1986 by Carla Scaletti in Champaign, Illinois. In May 1987, Scaletti had partitioned Kyma into graphics and sound generation engines and ported the sound generation code to a digital signal processor called the Platypus designed by Lippold Haken and Kurt J. Hebel of the CERL Sound Group.

In 1987, Scaletti presented a paper on Kyma and demonstrated live digital sound generation on the Platypus at the International Computer Music Conference where it was identified by electronic synthesis pioneer Bob Moog as a technology to watch in his conference report for Keyboard Magazine:

One new language that acknowledges no distinction between sound synthesis and composition is Kyma, a music composition language for the Macintosh that views all elements in a piece of music, from the structure of a single sound to the structure of the entire composition, as objects to be composed.