Apr 1, 1999 - by bubu from bubulandOn the way to Cecilia, a graphic interface for C-Sound...
This little talk has for object to introduce you to Cecilia, a great software developed by Jean Piche, from the Montreal University. Cecilia is a free software, extremely powerful to treat sounds or to synthesize scores.
If some parts may seem a little hard to understand, the whole thing is accessible to everyone, it just needs a little time and obstination.
For the "moneyless" musicians, that's the good way to approach one of the most powerful treament and synthesis tools up to date. For the passionate ones, I hope it will be the beginning of a cool trip in the land of incredible sounds.
On the menu :
After Cecilia install and config, we'll go through some audio treatments which are fully handled by Cecilia, and then we'll make up together a simple but adjustable doopler effect.
Finally, we'll experience the various formant synthesis settings, based on the "Chant" algorithm developed by Ircam, and derived from the granular synthesis.
|Daddy synthesis vs computer synthesis|
If the first synthesizers were electronic or even mechanical, it's been a while since the researchers have turned to computers to create strange sounds.
The good point is the opportunity to avoid every physical bind. A synthetizer has quantity of oscillators, quantity of filters, quantity of enveloppe points limits… Computer has no limits at all, and one can think of a sound provided by 72000 oscillators, filtred by 3000 filters, etc…
Only the computing power and composer's patience limit the exploration. The compu-monsters we use nowadays maintain us far away from those limits. CSound is now able to torture a sound or to create a real time sequence (using a PowerPC).
The down side is that it's a little hard to play with black and white hotkeys while turning random buttons at the same time ! It's more of a researcher's job than a musician's.
Nonetheless, between synthesizing in the unbending architecture framework and experiencing the freedom provided by programming, there's no need to decide ! On one side, you "set", on the other side, you build up stuff directly from the synthesizer. Of course it needs more attention, but it's totally worth it. So…
|What is Cecilia ?|
CSound is a programming language sound-creation oriented, refering to commands compiled in assembly language, sign of efficiency.
CSound seems to be a Universities favorites. Its syntax sometimes reminds of C. It's quite hard to go through but also quite economical (few code lines for many many operations) and regularly, new algorithms feed the vocabulary of the program.
At first sight, CSound required big systems (Unix), but generous computer scientists exported it to several systems : PC, BeOS, Amiga and, of course, Macintosh.
CSound compiles two files :
-The orchestra : definition of instruments, file ".ORC"
-The score : list of parameters which will play instruments, file ".SCO".
After compiling, you get an audio file, mono, stereo, or quadriphonic (yep, indeed). CSound can calculate entire parts.
Cecilia is a graphic interface which uses CSound to be piloted. The advantage Cecilia provides is to be able to follow the evolution of parameters sent to CSound through time, and to calculate the result with no need to enter a programming line at all.
Moreover, Cecilia eases considerably the development of CSound scripts and the making of new audio process or new virtual instruments, since you can easily create a graphic interface for each one of the parameters and you can also experience the result very simply.
|Cecilia : install|
You can download Cecilia at the following URL:
After unstuffing, no need to restart, Cecilia doesn't install extensions.
The "Cecilia 2.02" folder contains :
- Cecilia application itself
- the Perf application, which is in fact a CSound engine that provides the sound from the data sent from Cecilia.
- a Files folder which includes the different Cecilia modules, plus the documentation.
Just remember to allocate memory to "Perf", the Cecilia CSound engine, especially if you wish to manipulate big sounds files.
Netscape is also required to access the CSound documentation on line..
|Cecilia : settings|
First of all, you need to set Cecilia preferences.
Click on the "set" items to set parameters for applications you wish to use for :
- listening to a sound
- editing a sound
- converting a sound
- editing a text
- visualising HTML files (CSound helper guide is HTML format)
- editing a midifile.
Besides, you need to create or define 5 folders for Cecilia to refer to :
- one to contain sounds you want to treat
- a second one to handle sounds that Cecilia create
- another one to receive the sound analysis files
- another one to organize your modules
- a last one for temporary items
Once that done, you need to specified the path to Cecilia, this way :
Disk_Name : Folder_Name : Sub_Folder_Name : etc...
Thoses settings are a little harsh (feels like Unix or Dos), but you only have to do that once.
Notes: If Cecilia gets crashed, the temp items are not erased automatically, so take a look sometimes, before filling up your hard disk. And if you use the "write on disk" sounds option, each process will add a file in the Soundout folder. Remember to purge it regularly to only keep the interesting outputs.
Follows in Cecilia :
The CSound menu contains different settings : At this time, we're going to focus on these settings :
- DAC Buffer Soft, and Hard : audio buffers size for the sound real-time output. I noticed that the real time output worked better with high values ; Lower values result in a distorted sound. My settings are 16384 for the Soft and Hard buffer. Do not misunderstand with Disk buffer, which concerns the audio disk output, which I didn't alter
- Default Header/Sampling Rates : sampling rates of generated sounds : 44100
- Default Header / Channels : channels number, a priori 2 (stereo)
- Autorename : activate or inactivate the rename option for the audio output files. If this option is disabled, each calculated file is incremented by one number, and does not erase the former output. Otherwise, the former output is erased by the new one. I chose to disable this option to avoid filling the disk with my blind searching, but if you wish to conserve all the files CSound generates, you can activate this function, and clean the whole stuff later.
- Autoplay : once activated, the sound will be played as soon as the calculation is over.
- Remember input file : allow to memorize the file name(s) once you've changed modules. Actually, I'm kind of a lazy person (specially to use the mouse), so I activated this option.
|My first audio treatment with Cecilia|
It's time to get ready for the operation; let's open the beast!
We're going to explore the way Cecilia works from an example. To do so, you need a sound in the AIFF format, 16 bits (that's better) mono or stereo.
Open Cecilia, and choose "New -> Pitch ->Transposer" in the "file" menu.
A really pretty window appears on the screen :
That's where we're going to set the effect.
Graphic parameters :
"Transposition Factor" is activated as default.
On top left, the "Transposition Factor" square is colored in green. Its curve (which is activated, as you can see because of its visible points) will also be green. The small square beside is checked.
Unchecking it will make the curve disappear. Uncheck the other curves only to see the transposition one.
Clicking wherever you want beside the curve will add points to it.
Clicking on a point with the Command key holded (Command-Click) will delete the point.
When the mouse steps over the curve (without clicking), the curve appears in white color. You can thus click on it, and holding the click will let you move it up and down.
Notice the display and zoom faders that let you change the display.
Checking the boxes Amp Modulation, Freq Modulation, Anti-Alias and Loop sound, will active or not the functions.
On bottom right, the Total Duration fader changes the length of the sound to be created. Notice that the X scale (on the graph top) is also modified this way.
Please also notice that the Y scale changes with the settings. If Frequency is activated, the vertical scale is Hz displayed.
Last subtlety, which requires some fingers skills : clicking on a curve (which becomes white) while a sec, releasing and then quickly clicking again, will make the segments turn to smooth curve, whose points are inflection ones.
Explore the inferface and make your own settings.
You can save your settings using the traditionnal command-s, which will save the module you used and the way the parameters were set.
|And to listen ?|
All of this is cool, but that would be even cooler to calculate and to listen to the result…
To do so, the "Main" window needs to be displayed on screen (Windows Menu).
Here, the DAC button (Digital Audio Converter) indicates that I wish to calculate sounds in real time. Click on the "Disk->" button and the operation will start ; you will only hear the sound after that. If your machine is not a fast Mac, you should choose the second option.
The name of the output file (Transposer.aiff here) can be edited.
You can choose the sampling frequency, 44100 for 44.1 kHz here.
The kr value corresponds to the precision of your settings through time. The more high it will be, the smooth the evolution of the parameters will be.
I don't know what ksmps is in reference to…
Finally, Genzise determines the number of function points generated by CSound. In this case, it means that the modulation of the transposition frequency will be based on a 8192 point sinusoid curve.
You can keep the default settings of these two last parameters.
The "stereo" button indicates that you wish a stereo output for the treated sound.
This module works with only one audio entry. Clicking on the "toload" button will allow you to choose the file to work on.
Remember : Cecilia does not recognize the SD2 files. You have to use AIFF files solely.
Once the sound is chosen (testone.aiff here), two buttons appear on the right side. The small loudspeaker will let you listen to the sound via the program you chose in the preferences, soundApp for example.
The Offset setting let you abridge the beginning of the audio file.
You just have to start the monster, by clicking on the big "Send to CSound" button, or by pressing command-space.
The Perf program immediately lauches, a window gets full of text, and a little scoreboard appears :
That means CSound calculates the sound required.
If you activated the "DAC" option in the Main window, you should hear the calculated sound.
If you chose the "Disk->" option, you can interrupt the process and listen to what has already been calculated by clicking on the Pause button (the one in the middle).Then the dashboard becomes:
Click on the left button and you'll listen to the treated sound. Clicking on "cont" (continue) will let the calculation go on. Finally, the "kill" button 'undoes' everything and quits the program to come back to Cecilia.
If you don't press any button, the sound will be played at the end of the process and you'll obtain the following window:
Click on "play" to hear it again or on "close" to quit.
You'll then come back to Cecilia ; you'll be able to modify the settings and to start another calculation...
That's all for that first part.
Do not hesitate to explore the different Cecilia modules, and especially those from the Time folder (File->New->Time), which are amazing.
Soon, we'll open the cover and make together a doopler effect.
translated by TheAmbassador