What is Csound, how does it relate to BP2?

Csound is a program for the design and transformation of digitised sounds. A public domain software currently developed at the MIT, it can be compiled to run on various platforms, notably Unix, NeXT and MacOS. The current PowerPC version may be retrieved from <ftp://notam.uio.no/pub/mac/audio/csound.ppc.sea.hqx>. The Csound front page is <http://www.leeds.ac.uk/music/Man/c_front.html>.

Unlike hardware sound processors, Csound puts no limitation to the number of instruments and the complexity of their processes. Indeed, a sophisticated orchestra file would request a great deal of computation time, but it remains workable on small computers whenever speed is not critical.

With recent hardware enhancements (multiprocessing, RISC...) Csound has become fast enough for real-time synthesis, making it possible to adjust various sound parameters interactively. In other words, musicians can explore sound spaces rather than rely on speculations as to what a certain formula would yield. This shift from theory to practice is giving Csound a second life at a time computer users feel allergic to batch-processing techniques and dream of immediate feed-back and interactive systems.

Csound works with two input files, the "orchestra file" and the "score" file, both in comprehensive text format. This makes it easy to musicians to share a broad library of sound design "recipes", a sample of which is supplied with the software itself.

BP2 may create a piece of music in the real-time MIDI environment and then enhances it with Csound. Csound and BP2 are similar and complementary in their text-oriented, programming approach, with respective emphasis on sound and musical structures. None of these programs make assumptions on the musical system even though they optionally accept practical conventions such as "octave point pitch-class" representation in Csound, or "simple notes" in BP2.

A Csound instrument is the procedural representation of computational processes at the lowest level; conversely, a BP2 sound-object is a declarative representation of elementary events and properties at a more abstract level.

While Csound is quite user-friendly for the description of instruments (the "orchestra file"), it does not offer any in-built facility for the design of event lists (the "score" file). Score files are usually typed or produced with higher-level algorithms such as the ones programmed with Cscore, a utility supplied on the same site. But not every musician is a C programmer... A convenient way of generating Csound scores is to convert them from MIDI files, but this limitates Csound parameters to the very few ones implemented in MIDI. BP2 handles any number of parameters (with arbitrary names) that may be assigned any position among Csound instrument arguments.

(Subject to confirmation by Csound folks ) BP2 is to-date the most advanced program for the creation of Csound score files. BP2's input may be comprehensive text scores (with an alphabet of simple notes and sound-objects) or music production processes such as grammars or scripts. BP2 attempts to take full advantage of the versatility of Csound, by-passing the limitations of MIDI.

In the following examples (except §17.5) we are using imaginary orchestra files and proposing a visual, rather than sonic, verification. The reason is that we intend to demonstrate a great variety of parameter formats.