By Stanko Juzbasic
based on Ceres
Help by Oyvind Hammer and Ceres2 Help by Jonathan
This is the help file for versions 0.27.xx. Some of the functionality may not apply to older versions (0.25 and 0.26.xx). If you have any comments about Ceres3, please
send them here.
A nasty bug, which accumulated phase errors in in successive overlap/add resyntheses, has been crushed. You'll see no more "low quality" warnings in Settings-Resynthesis
Dave L. Phillips, the undisputed promoter of free Linux audio and music software has recently published a useful Ceres3 mini-tutorial, with many interesting examples. You can visit it here.
Ceres3 is a free cut-and-paste sound editor which works in the frequency domain. It is currently supporting SGI-IRIX Linux and LinuxPPC platforms. My work on it has been inspired by its older siblings, Ceres and Ceres2, to which it owes most of its basic concept and framework, and to whose authors I dedicate and return my work as "practical feed-back". This program includes new functionality, extending some of the Ceres & Ceres2 implicit potentials to full features.
Instead of concentrating this writing on the changes and modifications to other "Cereses", I've decided to compose this help file as brief reference for anyone interested in trying out the program.
Please, once again, bear in mind - this help file is for version (0.27), it does not apply completely to the earlier versions. Get the new version of the program (it's free), rather than dealing with information which doesn't deal with your app.
Ceres3 is started by (double)clicking its icon or from unix shell, by typing in the "ceres3" command. You may give additional parameters as command-line options, but these are not necessary just to make the program start. An empty menu-bar will appear on your screen, reading File, Edit, Transform, Settings and Help.
Select "Load & Analyze" in the
"File" menu, and select a sound file. Ceres3 accepts mono
and stereo 16-bit, 24-bit and 32-bit integer files in AIFF format, at 22.05k, 44.1k and 48k sampling rate, so far. However, stereo files will be converted to mono during analysis, according to user's selection in the Load file dialog (L, R or L+R). One could eventually argue in favor of
the comfort of rather working with stereo files, however the theory behind the
phase vocoding (that's the name of the analysis-resynthesis core atop of which
Ceres3 is built) really works only if the sound source model can be
approximated with a point.
In common sense words, harmonic relationship within the spectral content of a
sound only works with monophonic audio signals. In other words, plain phase-vocoder technology does not support stereo processing. Therefore, once you let load, analyze, edit and transform your file, it will ALWAYS be resynthesized as a monophonic file, no mater if the original sond file was stereo. However, all other file attributes (sampling rate, bit depth) will be preserved.
The file will then undergo an FFT analysis with default analysis values, unless you choose something else in the Settings>Analysis, Settings>FFT/Play and Settings>Display menu items. The analysis image will than be stored in the memory and displayed in the main window which opens on screen. However, if sound files are huge, analysis data are much huger, therefore Ceres3 is a memory-hungry and processor power demanding program. It is not recommended to work with sound files longer than 60 seconds, unless you have a lot of RAM and you know what you're doing.
You may try to test the "Sieve..." option from the "Transform" menu for example just to have a taste of what it does to your sound. A dialog-box will appear. Just check the "Invert" button and press OK. The program will change spectral data by eliminating ten strongest spectral contours.
If you wish to hear the results of your work, first you have to resynthesize the sound by pressing the "Synth & Save" button in the "File" menu. Choose and type appropriate name for the resynthesized file into the dialog box, then press OK. After this has been done, you can listen to the current sound either by selecting the "Play Current" option in the "File" menu , or by pressing the 'p' key on your computer's keyboard. If you'd like to play the original sound for comparison with the current, select "Play" from the "File" menu. A file selection box will appear, letting you choose the original file. Pressing OK will paly it back.
You may wish to play around with other
"Transform" menu options and try how they sound. Take care to
synth&save the transformed sounds. Else you
won't hear how they sound, because the program does not do it automatically.
As most UNIX programs do, Ceres3 graphical user interface also has a main window with a menu-bar and a number of dialog boxes which let you communicate with the program. In the main window you can draw curves, shapes and paint spots useful for editing a sound. You can also choose among processes from the menus. Those of the menu items which, once selected, open their corresponding dialog-boxes into which you can type additional parameters and select commands, are marked on the menu-bar with an elipse (...) character following the name.
This is a standard main-window appearance of Ceres3 (in KDE 1.2). Ascending spectral frequencies (in kiloHertz) are shown linearly from bottom upward. Time development (in secs.) is displayed from left to right. Please remark the control function layout:
Dialog box is another standard feature of Ceres3. What is particularly nice about UNIX dialog boxes is that you can keep multiple boxes open at the same time if you need them (e.g. to change settings from process to precess) and neither would block the program. Many dialogs can also be invoked by kewboard shortcuts - e.g. Edit control function dialog from the Edit menu can also be invoked by pressing ^f (control-key and f-key together). This is the layout of a typical Ceres3 dialog-box:
Tracking filter - a typical Ceres3 dialog-box
Even though most of Ceres3 works throuhgh the GUI and relays on it, it is still worth knowing about the few command line arguments with which one can start Ceres3 from console (it's better to do so).
1st argument : program name (in
lowercase letters, that's ceres3)
2nd argument: FFT size (must be a power of 2 i.e. 256 or 512 or 1024
or 2048 or 4096 or 8192)
3rd argument: window size
4th argument: window step (must be a fraction of window size)
5th argument: display width (any number btw. 500 and 1600)
This is how it works:
This number is technically very important because it determins how many frequency channels your analysis will have. Number of channels always equals one half of the FFT size + 1. What is this number of frequency channels? - A straightforward value of spectral resolution. Therefore, higher resolution also requires larger FFT size.
This value is closely related to the FFT.
It determins the lowest frequency that can get detected.
is a fraction of the window size. It determins the time resoultion of your analysis.
is the with of the window to display the sonogram.
Default values for the program (unless you start with command line arguments are the following:
FFT size = 1024; Window size = 1024; Window step = 128; Display width = 700;
This is the brief Ceres3 Functionality overview in terms of menus, menu items and dialogs:
A frequency domain analysis need not be started from a real sound file (Load&Analyze)but can be also made from scratch (New). You can enter the desired length of the analysis and either of two spectral scratch-pads:
It opens a standard file-selection dialog-box to pick the sound file you'd like to edit in the frequency domain. Above the file name text field you will see the file info. This is very useful if you want to pick a sound from a folder with a mess of files, not all of which are sounds. If you select a stereo file, a sub-window will open with radio-buttons, to let you choose which trach you want to import. Once you select your sound file, click "Ok". Then the program performs the frequency-domain analysis of the chosen file, in order to render it frequency-domain-editable. Finaly, it displays this analysis graphically, in a form which is called sonogram. In common-sense words, the program decomposes your sound into an image which is suitable for spectral editing.
Hint: Check the analysis settings in "Settings->Analysis" and "Settings->FFT/Play"
It performs the oposite action than Load &Analyze. Once the frequency-domain editing is completed, the sound has to be composed back together into a form which is playable. This process is called resynthesis. Then the sound sets saved to file, as you name it in file-save dialog-box, which tho program opens for you.
Hint: Check the resynthesis settings in"Settings->Resynthesis"
Any file can be played-back using standard file-selection dialog-box, which the program opens for you.
Current file can be played without entering file-replies or clicking dialog-boxes.
Control function data
Control function data (see below) make possible to manipulate one sound with parameters of another one, or even multiple sounds. For Control function file data format see Export.
Editing areas need not be drawn by hand each time. For editing of multiple files one can export, than import area data as well.
Reads an FFT analysis text file which is interchangeable with IRCAM's AudioSculpt and SVP format and draws the sonogram representation on screen. For file format details see information in Export sub-menu's paragraph of this file.
PBM ascii image
Reads and displays any Portable BitMap image file
saved as ASCII text. These files can be generated by IRIX system (SGI) or by
programs such as GIMP (all platforms). It is an experimental feature with no
explicit musical meaning, because images which make sense to one's eye may "sound" very unatractive to one's ear. By cheching appropriate toggles in the
file-select-box you can select what and how the image will be displayed:
Neg. toggles between positive and negative display
Full displays file on full screen height
R,G and B display respective intensities of red, green & blue color components
The Export sub-menu lets you save various analysis data to text files for later processing in Ceres3 or in other programs.
Control functions can also be exported to file .
The format is a text file with <x y> pairs,
both normalized to the range 0-1.
Editing areas are rectangles, on how to use them you can read later in this text. Specifying the two diagonal points is enough for export and re-import:
This sends the complete spectral analysis to a Csound score file. Each line represents a "pixel" as shown in the sonogram, and is formatted as follows:
i1 Starting_time Duration Frequency Amplitude
Note that "Duration" will always have the same value.
This specialized export was made by Oyvind Hammer for the Swedish composer Aake Parmerud. The frequency axis is divided into a number of "strings". As soon as the amplitude in a frequency band corresponding to a string exceeds the Trigger value, a new Csound note is written with a duration given by the Resonance value. After a number of seconds (Hysteresis), the string will again enter a trigger mode, waiting for the amplitude to exeed the threshold.
It is somewhat like sympathetic resonance generator.
Writes all spectral peaks as
This type of file is being used in IRCAM's
AudioSculpt, PatchWork, SVP but also in Columbia CMC's RTcmix.
This is the format of IRCAM's "partials" text file - it's actually a LISP-list:
<time> <freq> <amp>
... ... ...
Writes an FFT analysis text file which is interchangeable with IRCAM's AudioSculpt and SVP format. This file is extremely huge. It can be used in Source Filter command of the Transform menu and it looks like this:
<time> <number of bands>
... <Nyquist freq>
<time> <number of bands>
Writes an Inventor ASCII file with a 3D model of the spectral landscape. This can be viewed with any program compatible with the "Ivview" program for SGI computers. Also, the format is largely compatible with VRML, and can be viewed in a Web browser with the appropriate plug-in. This file can also get surprisingly large, in terms of megabytes.
Writes a single FFT frame taken from a time point in the middle of the sound. Useful to extract the spectrum following an "Average" spectrum. (LTAS is short for Long Time Average Spectrum).
This command will close the analysis window and destroy all the information from your analysis. Before doing it, the program will post a question dialog to remind you if you have saved all you needed from this session. If you haven't, just press the "Cancel" button, and save or export whatever you have to.
This command will post a dialog which will give you a last chance to make up your mind before quitting the program.
Edit menu options (Copy, Cut and Paste) deal with actual spectral data. In case you make a mistake in the middle of creating a marvellous sound you can still undo your edit. However, to perrforme pasting and multiple pasting "Settings -> Edit/Display -> Allow Undo" must be checked.Undo Ceres3 currently supports only one level of undo.
Redo Ceres3 currently supports only one level of redo.
Copy places all spectral data within selected area to the clip file.
Cut copies, then clears the spectral data within the selection. Please note that there is no separate "Clear" menu item - it just makes no sense in spectral editing. You can use "Gain" from "Transform" menu and set the factor to zero.
Paste replaces selected area with spectral data from the clip file by finding frequency channels that match. Only the part of the target area containing common frequency analysis channels will be affected. Only as much time will get affected as allowed by either the length of the clip-file or the length of the edit area. The rest of the sound will be left unchanged.
Certain time-varying and frequency-varying qualities from the sound analysis can be extracted into control functions. These control function can be edited, applied in the frequency-domain transforms as control data, or exported into text files for further processing. This can be accessed by selecting "Extract" in the "Edit" menu.
It will pop open a dialog-box titled "Extract". You have choice to select:
Hint: These settings will largely vary for different characters of the sound. By chosing low probability, large number of partials and high error margin on noisy sounds, you let the progtam actually extract the maximum of spectral activity. To extract pitch on smooth sounds, choose a rather low number of partials, low error margin and high probability rate. If you deal with complex sounds, plot the estimated fundamental with Control function 2, than select the Read frequency from CF2 button.
Further, the amplitude and average spectrum extraction work either on the entire sound or on pre-selected active Edit Areas (see: Settings -> Edit/Display).
Algorithmic editing of the control functions (breakpoint curves or graphs)can also be accessed from the "Edit" menu, taken the following steps:
Select "Settings->Edit/Display->Edit control function...." to manually or algorithmically edit any of the three breakpoint curves. You can edit them using the middle mouse button, or by pressing <Alt-2> while clicking a single-button muuse (press Backspace or Delete to remove a node). Thus, any of the control functions first has to be activated in order to become editable either manually or algorithmically.
The selection "Control function" in the "Edit" menu will pop open a dialog box titled "Edit active control function" containing two text fields and ten radio-buttons...
Paint (Restart, Keep, Remove)
Select "Settings->Display->Allow paint" to switch into the painting mode. Instead of marking rectangular areas, the right mouse button can now be used to paint squares and lines in the spectrum (Size of those spots can be entered in the "Settings>Display" dialog). Selecting "Keep" or "Remove" in the Paint menu will then keep the selected squares (discarding all others) or remove them (keeping all others). An interesting granular effect can be achieved by painting a lot of little squares at random, and then selecting "Keep".
Select "Restart" to remove all paint
and start anew.
Hint: Even though edit squares will stop showing once "Allow Paint" selected, they will stay effective unlsee unchecked. This means that you can choose either to restrict the "Paint" editing to a designated area, or apply it to the full screen.
Most of the transform parameters can be controlled over time using three available control functions. Two of them, control function 1 and control function 2 can be assigned to control sound parameters which develop in time. The third control function, the vertical one can take over qualities of sound which span across the spectrum.
All of the transform options can be made to work either on the entire file or on a rectangular patch of it. Any of these three patches, or edit areas can be made active by being selected in "Settings">"Edit/Display">"Activate/edit area ___". Then, the area itself can be drawn by using the right mouse button. Following transforms will then only apply to the designated area.
Menu options whose names are followed by elipsis
character (...) are those which will open dialog boxes.
Sieve is an operation which will only retain or eliminate the N strongest frequency components for each resynthesis window. Apart from using it to reduce the amount of data with "Sieve" before you export the analysis to a Csound score file (see below), there are many other ways for using it creatively.
If you type a number other than 1 into the field "Multiplication per sec" the value N ("Number of harmonics") will be multiplied continuously by this factor . A 0.5 factor will half the number of "surviving" harmonics each following second.
The value N (number of harmonics) can be also controlled via control function 1 (you have to check it in the dialog-box).
By choosing "Invert" in the dialog box, you generate a process which is an exact negative of the normal sieve. Thus you can make sounds appear and dissappear in a very curious and elegant way. This can be great for morphing.
You can also control the number of harmonics N from the control function 1 by checking its box.
"High frequency boost " will accentuate high frequencies prior to the sieve operation. Unless "Invert" is selected, much more high-end will be preserved.
will add the specified number of Hz (positive or negative) to each
frequency component. This will upset the harmonic relationship, and
sounds somewhat like ring modulation. The Multiplication pr. sec works
as for Sieve. The Control function 1 is now interactive
with the shift value and acts as a multiplier (0 to 1) for the shift
value. Control function 2 makes the process affect loud spectral
bands more than soft ones. Control function 3 can make the
shift value also frequency dependant. However, frequency components
which will get moved below 0 Hz or beyond half of the sampling rate
will be removed.
Spectrum shape is a unique Ceres3 process. It will reorganize (selected or all) spectral data in such a way that average spectrum and variation from this average (spectral dynamics) will be computed for each frequency channel separately. By substitutinmg these averages with conmtrol function 3 values, the basic timbre of the sound will get changed. Control function 2 can make exaggerate or reduce the spectral dynamics. Control function 1 affects the modification depth, or how much the original sound will be modified.
DynamicBlur will low-pass-filter or hi-pass-filter the amplitude and frequency values along the time axis, blurring or sharpening the spectral development, depending on whether you type positive or negative value into the "Blur (-1 to 1):" text field. Values close to zero vill produce very subtle changes. More extreme values, close to 1 (or -1) will also give more radical results (such as spectral freezing for the blur value of 1.0).
You can switch Control function 1 -> Blur button to make the blur development time dependent rather than static. However, please observa that blur values go between -1 and 1. Therefore, the zero blur value is located in the middle of the sonogram, half-way between the top and bottom of the drawind area.
Further, by switching Control function 3 -> Blur scaler you can make the blur value frequency dependent.
Finally, the filter may be reset to the original
spectrum at a fixed frequency, to produce a sample-and-hold effect.
Band filter is a completely new filtering option which allows for a number of filtering methods:
*Low-pass/High-pass filtering: If
high-pass frequency is set to zero no the entire sound will go
through. If lower than the low pass, this will produce a band-pass
effect. If opposite, a band-stop filter will be produced.
-For musical convenience, freauencies can also be entered in terms of pitch.
*Bandwidth control , how it changes in time - can be modulated by control function 1.
*Stop-band gain can be modulated by control function 2.
*Frequencies file format:
stop <if stop-band, else nothing>
freq_1 <or pitch_1>
freq_2 <or pitch_2>
freq_p <or pitch_p>
freq_q <or pitch_q>
Ceres3 will also accept file format of Ceres2.
*Hint: The filter-frequencies file can bear any name - you can type it into the dialog-box.It only has to stay in the working directory. Else, the program won't be able to find it.
Breakpoint filter is a newly implemented feature
which lets you filter the spectral data either in-between two
breakpoint curves (control function 1 and control function 2)
or outside their boundaries, depending on whether pass-band or stop-band
mode is being selected in its dialog-box.
Further on the amount of stop-band attenuation can be entered in its text-field.
Pass-band equalization can be controlled by control function 3. (Tip: if both control functions 1 and2 are off and the filter is in pass-band mode, the control function 3 makes it work as graphic equalizer, turn it on).
keeps or removes only partials with frequencies that are integer
multiples of the given fundamental frequency/pitch, or less than
one half FFT channel away from such a multiple. Control function 1
can supply information for such a fundamental, while control
function 2 can control the depth of the filtering process.
Please remark that control function 1 in this filter covers values between 0 and 1000 Hertz.
In addition, Inverted comb filter mode will rather remove than keep the matching frequencies.
This is an experimental feature of Ceres3. The program simulates sympathetic resonance by low-pass filtering those energy-bands which which fall within the range of a pitch grid. You must specify this grid in Setings>Pitch Grid menu. The resonance factor varies from zero (no resonance) to one (infinite resonance). It can be also controled by control function 1.
This is one of the most powerful Ceres3 tools. It
lets you cross-synthesize two different sounds by independently
manipulating amplitude and frequency information. It bears such a name
because it deals with two files: the source (the one which has
been loaded and analyzed in memory of Ceres3) and the filter
(which had been previously exported to FFT analysis text file). Control
function 1 controls the interchange of frequency information while control
function 2 controls the amplitude information (most of filter data
comes in at uppermost position of either). The loopback toggle
lets the program loop back to the begining of the filter file if it s
shorter than the source. Interpolation method option menu lets
you choose the transition morphing among aritmetic, geometric and
harmonic mean value interpolation. Experiment, so you can get the best results for your particular needs with
your specific sounds.
Caution: Both source and filter file must have the same FFT size and must originate from files with equal sampling rates.
This is another Ceres3 experimental feature. It
is actually a generalized model of a frequency-domain comb filter with
a few tweaks, which give it a bit more human sound.
The filter actually tracks and extracts the strongest spectral activity in the very neighbourhood of the entered fundamental value or control function 2 plot. Then it manipulates amplitude and phase data of the channels harmonically related to this activity.
You can also use the option to track a previously extracted fundamental directly. This will give more precise result, bacause the control function is only an approximation.
fold all frequency components around the specified mirror frequency -
those below it will flip above, and vice versa.
It supports three control functions, each of which controls a mirror. The control functions operate sequentially, so that the second mirror inverts the result of the first mirror, and the third mirror inverts the result of the the second mirror (which itself is an inversion of the first mirror). This allows the user to preserve sequential inversion operations for use among soundfiles.
stochastically scatter frequency and amplitude data of each channel
back and forth in time, together or independently.
It is a granular synthesis which treats amplitude and frequency information individually. If 'Warp' factor is set to 1, spectral information is shuffled through entire active edit area, 0.5 across one halfth, etc. Negative values have no meaning.Control function3 interactively modifies this factor, while control function2 interpolates between processed and original information.
will raise each of the channel frequencie to the power which you
either specify in athe uppermost text-field or plot in the control
function 1. It works best with values btw. 0.8 and 1.2. If you want
more control over the proces you can use two extra text fields: Multiplication
factor weighs the original frequencies, while Slope factor
weighs the exponent extracted from the control function by making the
If you work on a selected edit area it will most likely happen that the processed frequencies leak out of the designated vertical portion of your rectangle. If you don't like it you can prevent it by checking the "Area Strict" button.
scatters the frequency components randomly. Using the "Amplitude
sensitivity" parameter, you may enforce increased spreding for
larger amplitudes. Using the "Control function 3 -> Frequency
sensitivity" may selectively use "Amplitude sensitivity"
on certain frequency bands.
If you work on a selected edit area it will most likely happen that the processed frequencies leak out of the designated vertical portion of your rectangle. It is bad, unless you want it. You can still prevent it by checking the "Area Strict" button.
Pitch shift will multiply each frequency with the specified factor, so that 0.5 will drop you one octave, 1.5 will increase the pitch by a fifth, etc. Again, you may specify an exponential envelope for glissando effects. A=1.05946, for example, will increase the pitch by one semitone each second. "Static frequency" is rather fun. This specifies the frequency which will remain stationary (normally 0 Hz). If you set this to 800 Hz, you may let all harmonics converge to (A<1) or diverge from (A>1) 800 Hz.
Gain allows you to scale all or selected portions of spectra (edit area) with either a factor or an envelope (control function 1), depending on how you select the treshold value (in % of average bin amplitude). The "Below" toggle determines if the gain change will affect amplitudes above or below theshold value. In other words you can configure the "Gain" module to act as dynamic time-varying compressor/expander as well. Even more, the control function 3 can be used for equalization.
Null phase zeroes all phase (and therefore frequency) information by reseting it to a multiple of bin frequency for each analysis channel. Control function1 is the interactive modifier of the multiplying factor. Control functions 2 and 3 control the interpolation between original and processed sound horizontally and vertically. Area Strict in and Area Srtrict out toggles restrict either of the source or result data to the selected active edit area.
Keep peaks only will remove all spectral activity except for the peaks. This is useful to limit the amount of data for export, and may also be used as a pre-processing step to improve the quality of some transforms.
Average just averages the spectra over time, making one continuous note. Useful for extracting the "mean" frequency characteristic of a person talking, for instance.
Move to pitch grid is an option which lets you move the frequency components to a fixed set of frequencies (a chord) called a "pitch grid". Choose "Settings-> Edit/Display-> Show pitch grid" to display the grid. The grid can be programmed in "Settings->Pitch grid". You may there select among different preset modes, or you may activate your own intervals, or choose to read the frequencies or pitches from a text file. The last option works well with microtonal stuff and scals which don't repeat on the octave (multiply file frequencies) - See Settings: Pitch Grid.
The "Probability" field gives the probability (0-1) that a given frequency component at a given point in time will be moved to the nearest frequency in the grid.
For each additional voice, each frequency in the specified frequency grid will be multiplied by the "spread of voices" factor. The spread factor is progressively increased for each additional voice. If the spread factor has a minus flag (for example, -1.00125), the extra grids will alternate from those that contain frequencies above the original grid and those containing frequencies below the original grid. Even numbers of voices will have more additional grids above the original, while odd numbers of voices will have an equal number of additional grids above and below the original grid. The maximum number of additional voices is fifteen. The second control function behaves as a multiplying factor (0 to 1) for the spread factor value (INACTIVE). The third control function controls the tendency of each pixel to move to the specified grid. At the highest value every pixel will move to the exact grid frequency, while a lower values, the pixels will move toward but not exactly to the grid frequency. The third control function interacts with the probability function in that at higher probability values, a corresponding percentage of pixels will move towards the grid frequency at the value specified by the third control function.
Setting additional voices within the critical band of a pitch (in theory) will create chorus-like and beating effects, while setting the voice spread function to higher values will create transpositions of the original frequency grid.
The third control function is useful for establishing a smooth transition between the spectrum of the original sound and the spectrum of the spectrum of the frequency grid. For example, try manipulating white noise as a way to see how the move tendency function operates.
The frequency grid function has also been
slightly modified so that the function does not compute values larger
than the Nyquist frequency, thereby preventing any visual
"foldover" in the "display grid" option with low
fundamental frequencies and also reducing the amount of excess data.
The increase in the maximum number of grid frequencies should in almost
all cases allow the grid to cover the spectrum up to the nyquist
Convolve is an experimental function which is probably of little use. You may select different standard convolution operators (3X3 masks) used in digital image processing.
Many of the options here have been also described in their proper context under Edit and Transforms above. So, this is more as a reference.
Here you can select any of the eight types
of window function to use both in analysis and resynthesis:
Hanning, Hamming, Bartlett, Kaiser, Rectangular, Gauss, Blackmann and Welch.
It is recommended to use the the same type of window for resynthesis which had been used for analysis.
This dialog has a double purpose: To set the audio playback engine and FFT analysis parameters. The name of the system-installed Sound playback engine (sndplay, cmixplay, sfplay, or whatsoever) can now be entered in its text-field.
The FFT size toggles let you select the FFT size only for the first run. Later it cannot be altered, unless restarting the program. The window size can be either selected from preset values, or entered exactly in the text field, both in terms of lowest detectable frequency or pitch. If you enter an integer value, eg. 440 the program will interpret it as window size and try to find the closest suitable window size. If you enter a floating point value, eg. 440.0, the program will understand it as frequency in cps and take care to adjust the window size so this frequency would be detected. If you enter a symbolic value, such as A3, G#2 or Bb1, the program will look for a matching window size to accomodate this pitch.
Time stretch factor can be either fixed (typed
into text field) or time-varying in itself (managed by control function
Most of the functionallity of this dialog box has been covered in appropriate "Edit" and "Transform" topics. This is the brief summary:
This is probably the most sophisticated part of
Ceres3's functionallity, it has been developed to the extent of
becoming also musically attractive. Pitch grids can now be generated
from Preset scales, User defined intervals
and File imported frequencies, by checking the respective
toggles in the uppermost part of the big dialog box..
The grid frequencies can also be written as pitches, where eg. C# and Db work as each others enharmonic substitutions. As such they can be both typed in the dialog as starting pitches or throughout the file..
The program currently supports around fifty
different preset grid-scales or modes. All presetes are tuned to the
Traditional modes: which are diatonic transpositions of traditional seven-tone western scale. These transpositions can be entered into th respective text field in numbers (starting degree), as well as actual names of the scales: major, minor, and old church modes (ionian, dorian, phrygian, lydian, mixolydian, aeolian, locrian - never mind the synonimes - the program will recognize them).
Example: If we select "Traditional Modes", type C4 in the upper text field and minor in the second we shall get a C-natural-minor scale starting on the middle C.
Harmonic minor can also be used in its root position and its transpositions.
Heptatonic Altered: It is an asymetrical scale with four lower notes as in Second mode of limited transposition and the three upper notes from First mode of limited. transposition. It has been systematically used in Jazz improvisations by Charlie Parker. It is also curious about this scale, that when started on its second degree - it (enharmonically) gives the ascending melodic minor.
Pentatonic traditional scale: is an equally tempered sibling of the old scale which is being used in folkloric music of many european and asian countries. It can be started on any degree, by typing in the appropriate number into the corresponding text field.
Modes of limited transposition:
These modern scales with high degree of internal symetry have been discovered, theoretically described and systematically used in compositional practice by the french composer Olivier Messiaen. They give a very distinct impression of tonal ambiguity without really being bi-tonal. Any of the modes can be selected through its option-menu, the degree on which the scale starts can be typed into the same text field as for other scales.
(Olivier Messiaen's modes of limited transposition First through Seventh , each starting on C4 as root degree in the same order that they can be selected in Ceres3)
This option works with five different types of harmonic series built on the starting frequency (pitch).
These series are: all, even, odd, prime and non-prime and be selested in the corresponding option-menu.
Twelve toggle-buttons define which intervals shall be set to the starting pitch (1 = root; m2 = minor second; M2 = major second etc) Example: C4 in the text-field and all twelve buttons checked will give the chromatic scale starting on middle C.
This option can be attractive if you infer microtonal structures, or other out-of-time structures which don't repeat on the octave. Option has to be made active by ckecking the "File" button at top of the dialog box. The program will let you select the file upon closing the dialog-box by pushing OK. File format is quite straightforward:
or in terms of pitch values
Multiply file frequencies:
Check the button to make it active. Then open its option menu to select the interval on which the file frequencies repeat (tritone, octave, twelfth, double octave).
There are a few questions I would like to share and discuss, as I don't have a definite answers which would satisfy me:
If you have any feedback, please send e-mail to me
These are Dr. Oyvind Hammer's words:
"Much of the functionality in this program (in particular the Sieve, Move To Pitch Grid and Export functions) regard the FFT as a granular sound processing method, where individual pixels in the sonogram can be considered to be discrete grains placed in time and frequency.
The name Ceres was therefore chosen in allusion
to the Roman goddess of grain. So now you know!"
"Special thanks to Oyvind Hammer for the source code for the original version of Ceres and the educational and inspirational value it provided and continues to offer. In this modified version I have tried to preserve the layout and method of operation of the original version of Ceres as much as possible.
Thanks to all those involved at the Columbia University Computer Music Center for helping a programming neophyte. Thanks to R. Luke Dubois, Paul Feuer, Brad Garton, Fernando Gomez-Evelson and Doug Geers for major help and suggestions in my hacking endeavors, without whom these modifications would not exist."
July 1997 Johnathan F. Lee
top of document