
CERES
_A _F_R_E_Q_U_E_N_C_Y-_D_O_M_A_I_N _S_O_U_N_D _T_R_A_N_S_F_O_R_M_E_R _F_O_R _S_G_I

Oyvind Hammer  -  oyvind@notam.uio.no

_1.  _I_n_t_r_o_d_u_c_t_i_o_n

     _C_e_r_e_s is a simple program for display of sonograms  and
for  sound  effects  in the frequency domain. The program is
distributed with a binary executable for the  SGI  Indy  and
compatibles.  Porting to other platforms should be perfectly
possible; the only problem is the use of the SGI audio  file
library.   If you try a port, please mail me. The program is
based on the phase vocoder in F.Richard Moore's  book  "Ele-
ments  of Computer Music", which is not free-ware.  However,
I have used a slightly modified version from the "PV"  pack-
age  which is publicly available at ftp princeton.edu. Hope-
fully, this is legal.

     At the time of writing (June 1994), Ceres is very  much
a  prototype. Much of it works badly or in a cumbersome way.
Many planned features are still lacking. The code at our FTP
site notam.uio.no, in pub/unix, will be updated from time to
time.

_2.  _U_s_i_n_g _C_e_r_e_s

Ceres is started simply with the command "ceres". There  are
no  command-line  options (yet). An empty window will appear
with a menu bar at the top.  Select _L_o_a_d &  _A_n_a_l_y_z_e  in  the
_F_i_l_e  menu,  and select a sound file. There is unfortunately
no way  to  change  the  default  directory  /_s_o_u_n_d_s.  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
complains 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.

You may change the color map of the display in the  _S_e_t_t_i_n_g_s
menu.

You may now use the options in the _T_r_a_n_s_f_o_r_m menu to  change
the spectral data, as described below.

To hear the result, you must resynthesize the sound with the
_S_y_n_t_h  &  _S_a_v_e  button  in  the _F_i_l_e menu, and then play the
sound either with the _P_l_a_y option or with the  _p_l_a_y  command
in  your  UNIX  shell.  Sorry about the directories and file
names not updating in the Play file selector.

In the _S_e_t_t_i_n_g_s menu, you may control the way the  sound  is
resynthesized.   _T_i_m_e  _s_t_r_e_t_c_h does what it says. To avoid a
"gritty" sound that may result from some transforms,  select
_A_d_d_i_t_i_v_e _s_y_n_t_h_e_s_i_s.

_3.  _T_r_a_n_s_f_o_r_m_s

_S_i_e_v_e is a useful operation which will  only  retain  the  N
strongest freqency 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).  You may select
any  N  ("Number  of harmonics"). This value N may be multi-
plied continuously by a factor which you select for exponen-
tial 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.   A  composer  here wanted more "life in the top",
and so you can weight  high  frequencies  with  the  "Boost"
parameter.  Try  the  value  1.  Also, you may select a com-
pletely random selection of partials, without minding ampli-
tudes.

_S_p_e_c_t_r_u_m _s_h_i_f_t 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.

_P_i_t_c_h _s_h_i_f_t 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 con-
verge to (A<1) or diverge from (A>1) 800 Hz.

_F_i_l_t_e_r will remove  all  frequencies  between  the  two  you
specify.

_N_u_l_l _p_h_a_s_e is an experimental feature which zeroes all phase
(and  therefore  frequency) information. You may try it, but
the result is not sensational.

_A_v_e_r_a_g_e just averages the spectra over time, making one con-
tinuous  note.   Useful for subsequent LPC analysis etc., to
extract the "mean"  frequency  characteristic  of  a  person
talking, for instance.

_M_o_v_e _t_o _p_i_t_c_h _g_r_i_d will move grains to a set of  fixed  fre-
quencies (to use this, you should first select a set of fre-
quencies in the "Pitch grid scale" dialogue under the  "Set-
tings"  menu).  The  _P_r_o_b_a_b_i_l_i_t_y value is between 0 and 1, 0
meaning that no grains are moved to the nearest frequency, 1
meaning that all grains are moved.

_4.  _E_x_p_o_r_t

In the _E_x_p_o_r_t menu you may send the  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 _D_u_r_a_t_i_o_n will always have the same value.

_S_T_F _v_i_s_u_a_l_i_z_a_t_i_o_n writes an ASCII file which  is  compatible
with  the  scientific  visualization  program  "SciAn"  from
Florida State University.  We have experimented with showing
sonograms  in  3D  with  lighting,  fly-by  etc., and that's
really beautiful!

_5. _A _f_i_n_a_l _w_o_r_d

I repeat that _C_e_r_e_s 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.

Oyvind Hammer
oyvindha@notam.uio.no
NoTAM  -  Norwegian  network  for  Technology,  Acoustics  & Music
University of Oslo
