Design pointer linux
Burton And Pichececilia 2.04 - MAC/WIN/LINUX
Byline: Dennis Miller
Many desktop musicians are familiar with MIT's sound-programming language, Csound. What they might not know is that it's no longer necessary to type code to work with the software. A number of new helper applications have appeared that provide graphical interfaces for Csound, making the language much easier to work with (see "Csound Comes of Age" in the July 2002 EM). One application, Alexandre Burton and Jean Piche's Cecilia, has been available for Mac and Linux for some time but was only recently ported to Windows by UC Davis faculty member Bill Beck. Like all things Csound, Cecilia is in the public domain and is free of charge.
Cecilia offers access to all of Csound's features but extends the language in unique and exciting ways. It runs "on top" of Csound - you can use Cecilia without any knowledge of what's happening under the hood, though the more you know about Csound and sound synthesis, the more you'll get from the program.
I'll review Cecilia 2.04 running under Windows, but the feature set is nearly identical on the other platforms. First, just a few words of introduction about Csound itself.
FROM C TO SHINING C
Csound is a programming language for generating and processing sound that has its roots at Bell Labs, where, in the late 1950s, many of the most significant developments in computer-generated sound first occurred. Like any programming language, Csound supplies a library of functions with which the user builds the types of sound-generating and -processing algorithms desired. Most functions have one or more parameters that the user must supply, and a complex design (which Csound calls an Instrument) can require dozens of parameters. Though it was originally developed as a non-real-time application, several new versions of Csound allow you to hear your sounds as they compile (see the Csound home page at http://csounds.com for further details).
Cecilia's main job is to help you avoid the extensive typing that is typically required to work with Csound. Using its large and colorful main screen, called the Grapher (see Fig. 1), you enter values for the various parameters of the included Csound Instruments by drawing large sweeping arcs with your mouse or using the various data-input tools Cecilia provides.
Before you start making sound, you'll need to set up various preferences to optimize Cecilia for use on your computer. There are numerous adjustable settings: you designate the version of Csound you want Cecilia to call upon (a real-time version is included), choose folders for the various types of files you'll use and create, and identify external audio and MIDI programs to play those types of data.
Inside Cecilia, you can also tweak all of Csound's own settings; you can, for example, adjust the buffer size for real-time playback, pick the default sampling rate and output file type (WAV, AIFF, or RAW), and choose how much memory to allocate to the program. With just a little effort, you can tweak Cecilia for optimal performance within nearly any computing environment.
JOB ONE
If you're inclined to run through the presets when first checking out a new piece of gear, you can start right in by testing Cecilia's existing Modules to see how they sound. Modules are text files that contain complete Csound Instrument designs along with additional information that determines how the Modules look when first loaded (see the sidebar "Module Building" for more details).
Included with Cecilia for Windows are several dozen Modules that are grouped by category. Among these are spectral effects (equalizers and filters), dynamics processors (distortion and compression/expansion), additive- and granular-synthesis processes, time-based routines (delays and time compression/expansion), and a number of processing functions that defy categorization (including my favorite, Singin-in the-Fog). There are also Modules for performing LPC- and additive-based analysis/resynthesis and several that serve a variety of utility purposes.
To run a Module, load it from the New menu and specify the name of an audio file for processing (if needed), then click on the Play button to hear the sound using the Module's default values. To record the sound, choose Disk as the output before pressing Play and supply a name for the new file that will be created. "Playing" the Modules feels very much like working with a soft synth or sampler, but there is one major difference: you can't change parameter settings while a sound is playing back.
DIGGING IN
When you're ready to dig a bit deeper, maximize the Grapher window, and you'll find a very intuitive and efficient interface. The main area of the screen contains envelopes (or "Graphs," as they're termed in Cecilia) and sliders that control the various parameters of the Csound Instrument being used by the current Module. Along the left of the window are buttons that you use to switch among the parameters - click the Density button in the StochasticGrains Module shown in Fig. 1, for example, and the envelope for that parameter will be highlighted. Once highlighted, you can edit the envelope by adding or deleting breakpoints or moving existing ones.
The number of breakpoints an envelope can have is unlimited, and you can use both linear and nonlinear curves. Also, when you add a new breakpoint or select an existing one, a small display appears showing you the exact value for that point and its position in time. It's hard to enter specific values - even with the screen zoomed all the way in, the cursor still jumps to nonconsecutive values.
Working with the sliders is a bit easier; clicking on the blank space on either side of a slider increments the value by its smallest amount. You can also change a slider's resolution by editing its Module. Still, it would be useful to have a separate dialog box available in which you could type an exact value for either a slider or an envelope.
Once you've created all the control data for the parameters of a Module, you can change the amount of time over which the sound will evolve by using the Duration slider at the bottom of the screen. That feature, reminiscent of Xenakis's UPIC system and U&I Software's MetaSynth, offers tremendous potential for creating a vast range of sounds from a single Instrument design and cries out for experimentation. You might, for example, create an evolving additive or FM sound, then recompile the sound after having scaled it to 25 times its original length. See the EM Web site for an example of this and other sounds created in Cecilia.
You'll be happiest using a large monitor or high screen resolution, because Cecilia's modular windows - the Grapher in particular - take up a lot of real estate.
ENTER HERE
One of the most extraordinary features of Cecilia is the toolkit it provides for manipulating and generating control data. In the Tools window, you'll find buttons for importing and exporting Grapher data to or from a text file; cutting, copying, or pasting existing data to the Clipboard; resetting the graph to its default value; and scaling existing data (see Fig. 2). You can also copy the envelope of one parameter onto another.
The five buttons found in the center column of the Tools window are perhaps the most useful and interesting, however, as they allow you to generate entirely new data in unique ways. For example, the Sine tool lets you quickly create sine curves to control a parameter, and like the others, it provides precise control over the type of curve that will be generated. You can set the number of control points on the curve (from 2 through 150 in increments of 1), as well as its frequency (0.01 to 20 in increments of 0.1 Hz), amplitude (values are normalized between 0.01 and 1 and are adjustable in increments of 0.01), and phase (0 to 360 in 1-degree increments).
Among the other tools are a pulse- and ramp-waveform generator complete with controls for frequency, amplitude, and pulse width; a noise generator, which offers control over the number of points and the noise's overall amplitude; and a scatter tool that will sprinkle breakpoints all over the screen. The final tool is called Drunk, and the name gives a pretty clear indication of the effect this tool has.
MIGHTY MODULES
As mentioned above, Modules are at the heart of the Cecilia universe. The included Modules cover only a fraction of the vast range of functions Csound provides, so many more Modules are likely to appear at the Cecilia Web site (and, of course, you can create your own!).