Csound for Linux

Mr. Phillips discusses some history as well as what's happening now in the Linux Csound world.

At the other end of the scale is developer Matti Koskinen's rain, a GIF-to-Csound score converter. A Csound score is the control file for a Csound instrument, providing it with such values as event start times, durations, amplitudes and frequencies, waveform selection and so forth. Matti's utility simply takes a GIF image, applies some user-defined values and magically translates it into a Csound score. The score can then be synthesized and played from within the application, or it can be saved to disk for later processing (perhaps in Cecilia). (See Figure 2.)

Figure 2. Rain


Adsyn is a graphic editor for Csound “hetro” analysis data files. hetro is one of the Csound sound file utility programs and its operation is quite simple. Using a heterodyne filter bank, it analyzes a sound file and creates a data file of separated frequency and amplitude values. That data file can be read and graphically represented by Adsyn and the frequency and amplitude components can be freely altered using the mouse. Csound's resynthesis opcode (adsyn) can be called; the edited file can then be synthesized and played from within Adsyn. Professor Oyvind Hammer originally wrote Adsyn for SGI machines at NoTAM, a Norwegian center for music and acoustics research. With his good graces, I began the port to Linux. It was finished with much assistance from Nicola Bernardini. (See Figure 3.)

Figure 3. Adsyn


Ceres2 is Johnathan Lee's enhanced version of Oyvind Hammer's Ceres, described in my September 1998 LJ article “Porting SGI Audio Applications to Linux”. Johnathan greatly extended the editing capabilities of the original software engine, which essentially performs a Fast Fourier Transform (FFT) on a sound file and renders a graphic representation of its frequency content and activity. The graphic display can be edited in various ways, a large number of transforms (spectral mutations) are available, up to three graphic linear control functions may be specified and a variety of output formats are supported, including two types of Csound scores. Ceres2 also extends some of the command-line analysis variables such as FFT size, analysis window size and window overlap. The Linux port was done by me, but it was dependent on work already done on the original Ceres with great help from Richard Kent, who also supplied the invaluable tichstuff libraries which replace the SGI libs. (See Figure 4.)

Figure 4. Ceres2


The Rosegarden suite includes a MIDI sequencer, a common-practice music notation display and the very nice feature of being able to save your work as a Csound score file. Such a tool is especially helpful for users most comfortable with standard notation conventions, allowing them to compose with their familiar symbols and then easily convert their creations for use with Csound instruments. (See Figure 5.)

Figure 5. Rosegarden


The Java programming language lends itself to the easy creation of platform-neutral user interfaces. Jean-Pierre Lemoine's HPKComposer is an excellent example of a “pure Java” application, running under Windows, Mac OS and UNIX variants. Preparation for Linux is straightforward, depending upon successful installation of the Java development environment (JDK) in version 1.1.6 or higher, the Swing class libraries (version 1.1 beta3) from Sun Microsystems and Csound. HPKComposer blends aspects of the CMask program with the synthesis and DSP methods of Csound: tendency masks are used to create composition algorithms, which are realized by the synthesis engines (opcodes) of Csound. VRML displays are supported, the program is user-extensible, and although Java's current sound support is limited to 8-bit 8 kHz audio, when JDK 1.2 arrives it will support 16-bit 44.1 kHz CD-quality sound. (See Figure 6.)

Figure 6. HPKComposer