If you have any comments on Ceres, send a mail to
Ceres is started simply with the command "ceres". You may give an
FFT size parameter as a command-line parameter (for advanced users!). An empty
window will appear with a menu bar at the top.
Select "Load & Analyze" in the "File" menu, and select a sound file. There
is unfortunately no way to change the default directory "/sounds". Ceres
accepts files in AIFF or AIFC format, any sampling rate, mono or stereo
(stereo files will be treated as mono).
The file will then undergo a phase vocoder FFT analysis with N=1024, and the
analysis will be stored in memory. This means that there is a limit on the
size of the sound file, because the analysis data size will be huge. If
the program crashes for sounds shorter than 30 seconds at 44.1 kHz sampling
frequency, your computer has a too small swap space anyway, and your swap space
should be increased. A sonogram is drawn as the analysis progresses.
At any time, you may change the color map of the display in the
"Settings->Display" dialogue.
You may now use the options in the "Transform" menu to change the spectral
data, as described below.
To hear the result, you must resynthesize the sound with the "Synth & Save"
button in the "File" menu, and then play the sound either with the "Play"
option or with the "sfplay" command in your UNIX shell. Sorry 'bout the
directories and file names not updating in the Play file selector.
In the "Settings->Resynthesis" dialogue, you may control the way the sound is
resynthesized. "Resynth time stretch" does what it says, but the result may
have irritating pulsation in it. To avoid this, and to avoid a "gritty" sound
that may result from some transforms, select "Additive synthesis". This will
select an additive synthesis method instead of inverse FFT.
Using the right mouse button, you may select a rectangular area in the
spectrum. Consecutive transforms and exports will then only apply to
this area.
You may select any N ("Number of harmonics"). This value N may be
multiplied continuously by a factor which you select for exponential increase
(A>1) or decrease (A<1). A=0.5 will thus apply an envelope in such a way that N
is halved each second. This is great for "morphing", because you can let one
sound "desintegrate" and another "integrate", and then mix the two together.
You can also control N from the control function by ticking the box.
A composer here wanted more "life in the top", and so you can weight high
frequencies with the "Boost" parameter. Try the value 1.
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.
i1 Starting_time Duration Frequency Amplitude
Note that "Duration" will always have the same value.
Warning! The Csound score file may become ***huge***. It is
strongly recommended to do a Sieve operation first, to reduce the
number of non-zero pixels.
Select "Restart" to remove all paint and start anew.
The name Ceres was therefore chosen in allusion to the Roman goddess
of grain. So now you know!
Introduction
Ceres is a simple program for displaying sonograms and for sound effects in
the frequency domain.
3. Transforms
Many of the transform parameters can be controlled over time using
a control function. Select "Settings->Display->Show control function" to
display a breakpoint curve which can be edited using the middle mouse
button (press Backspace or Delete to remove a node).
Sieve
Sieve is a useful operation which will only retain the N strongest
frequency components for each analysis window. This makes an interesting sound
in itself for N less than about 20, and it can be used as an effective noise
reduction method for larger N. Also, it is often necessary to reduce the amount
of data with "Sieve" before you export the analysis to a Csound score file (see
below).
Spectrum shift
Spectrum shift 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" and
"Control function" fields work as for Sieve. Frequency components which
fall below 0 Hz or above Fs/2 will be removed.
Mirror
Mirror
Mirror will fold all frequency components around the specified
mirror frequency - those below it will flip above, and vice versa.
Pitch shift
Pitch shiftwill 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.
Filter
Filter will remove all frequencies between the two you specify.
Null phase
Null phase is an experimental feature which zeroes all phase (and therefore
frequency) information. You may try it, but the result is not sensational.
You will get some kind of deep "robot" sound.
Average
Average just averages the spectra over time, making one continuous note.
Useful for subsequent LPC analysis etc., to extract the "mean" frequency
characteristic of a person talking, for instance.
Move to pitch grid
Move to pitch grid is a function which lets you move the frequency
components to a fixed set of frequencies (a chord) called a "pitch grid".
Choose "Settings->Display->Show grid" to display the grid. The chord is
selected in "Settings->Grid Scale". You may there select different standard
scales, or you may choose to read the frequencies (in Hz) from a user-defined
text file which must reside in the directory from which you started Ceres,
and which must have the name "frequencies".
Convolve
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.
4. Export
The Export functions let you send analysis data to text files
for later processing in other programs.
Parmerud Csound scorefile
This specialized export was made 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.
Spectral peaks
Writes all spectral peaks as time-amplitude-frequency triples.
Csound scorefile
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:
STF visualization
Writes an ASCII file which is compatible with the
scientific visualization program "SciAn" from Florida State University.
The format is really simply a matrix with amplitude as a function of
time (rows) and frequency (columns).
Single LTAS frame
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).
5. Settings
Most of the options here have been described in their proper context under
Introduction and Transforms above.
Analysis
Here you can select the type of window function to use both in analysis
and resynthesis. It is recommended to use the default (Hanning). Because
the Rectangular and Hamming windows do not taper down to zero in the ends,
they may cause clicks for certain transform operations.
Paint
Select "Settings->Display->Show paint" to turn on the painting modus.
Instead of marking rectangular areas, the right mouse button can now
be used to paint small squares in the spectrum. Selecting "Keep"
or "Remove" in the Paint menu will then keep the selected pixels
(discarding all others) or remove them (keeping all others).
6. A final word
I repeat that Ceres is under development. Please be patient with its flaws.
And yes, it's slow, I know.
If you have bug reports, things you want to see added, or even want to take
part in the programming, please mail me.
Why Ceres?
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.
FTP
The latest version of Ceres is available by anonymous FTP from
ftp://notam.uio.no/pub/sgi/ceres/