Next: 1.1. Problem Description
For more than twenty years, composers have been using general-purpose computers to compute a stream of digital samples from a musical score. General-purpose computers are too slow to realize interesting music in real-time, meaning that the composer has endured a tedious composition al process: compute the samples, listen to the result, modify the score, and compute again. This can seriously inhibit creativity and productivity.
Sample generation has branched in many different directions, investigating many alternatives. Some research ers concentrate on single-chip digital signal processors (DSP's) while others vectorize their existing software for use on supercomputers like the Cray. Multiprocessors, usually groups of DSP chips, are being used to synthesize sound in real time. While it is important and necessary for computer music researchers to investigate concurrent hardware, many underestimate the importance of new software abstractions to control these new machines.
Almost all sound synthesis software is written in a procedural language -- either FORTRAN or C. These applications (known collectively as the MUSICN languages specify timbres by plugging together instances of unit generators from a pre-compiled library. This scheme emulates the analog synthesizers which were controlled by connecting hardware modules like filters and oscillators together with wires, a view of th e synthesis problem well-matched to the object-oriented programming model of C++ or Smalltalk-80. Unit generators were first implemented in a object-oriented language by Carla Scaletti in Kyma [Scaletti]. Kyma is a Smalltalk-80 system based on sounds, which are a generalization of unit generators.
1.2. Where is the parallelism in sample generation?