The files in  the  _m_i_d_i_f_u_n_c_s  subdirectory  of  the  _E_a_s_t_m_a_n
_C_s_o_u_n_d  _L_i_b_r_a_r_y contain pre-defined sets of _f_u_n_c_t_i_o_n defini-
tions that are included within _C_s_o_u_n_d score files. The argu-
ment  data  within these function definitions enables _C_s_o_u_n_d
to compute and then load into RAM  tables  of  numbers.  The
numbers  within  these  tables  can provide various types of
input data, and may represent
     o+ one cycle of a synthetic periodic wave shape, such as
     a sinusoid; or
     o+ all of the samples from one or more  complete  sound-
     files ; or
     o+ various types of curves or shapes, such  as  envelope
     attack and decay trajectories, and cruves that map MIDI
     velocity values to amplitude output levels  and  attack
     times; or`
     o+ MIDI keyboard mappings, specifying that a  particular
     soundfile  is to be used, and transposed in pitch, over
     a particular portion of a MIDI keyboard range; or
     o+ simply a series of raw numbers required for a partic-
     ular signal processing operation.

To obtain a list of currently available function  definition
files in the _m_i_d_i_f_u_n_c_s directory, type
                        _l_s_m_i_d_i_f_u_n_c_s

Most of the _m_i_d_i_f_u_n_c_s files contain  all  of  the  functions
needed by a particular signal generating or processing algo-
rithm in the _m_i_d_i_i_n_s directory.   When  using  most  of  the
_m_i_d_i_i_n_s  algorithms,  one  can choose from among alternative
_m_i_d_i_f_u_n_c_s files, each of which  will  produce  a  particular
type  of  timbre.  When using the _m_i_d_i_i_n_s _w_a_v_e "instrument,"
for example, the user can choose to use the  _m_i_d_i_f_u_n_c_s  _s_i_n_e
wave function file, or the _t_r_i_a_n_g_l_e file, or any other _m_i_d_i_-
_f_u_n_c_s file that creates a synthetic audio wave  form.   With
the  _m_i_d_i_s_a_m_p  algorithms,  one  can  select from among many
_m_i_d_i_f_u_n_c_s files that incorporate  groups  of  related  _s_f_l_i_b
soundfiles.

For more information on how the _m_i_d_i_f_u_n_c_s definitions can be
used, see the helpfile _m_i_d_i_i_n_s.

                  -----------------------

_1.  _S_y_n_t_h_e_t_i_c _f_i_x_e_d _w_a_v_e _f_o_r_m _f_u_n_c_t_i_o_n_s :

Any of the files within this group  can  be  used  with  the
_m_i_d_i_i_n_s _w_a_v_e algorithm. Each file contains a function defin-
ition that creates one cycle of a particular wave form (tim-
bre).   The  simple,  non-varying  timbres produced by these
fixed wave forms were the principal  sound  source  material
(often  subsequently filtered) on analog synthesizers of the
1960s and 70s. With the exception  of  the  sinusoid,  these
waveforms  are  not  band-limited in frequency content.  The
_s_a_w_t_o_o_t_h and _p_u_l_s_e wave forms, in particular,  include  very
high  frequency  components that will alias when they exceed
the  Nyquist  frequency,  producing  spurious,   inharmonic,
"buzzy"  or  "whistling" frequencies within the tone.  Using
either of these two wave forms in a  high  pitched  keyboard
register with a low sampling rate will produce severe alias-
ing.

_s_i_n_e : Function number _1 within this file creates a table of
numbers  that  represent  one  period of a sinusoid. Another
function within the file creates a curve used  to  map  MIDI
_v_e_l_o_c_i_t_y  values to particular output amplitude levels. Most
of  the  _m_i_d_i_f_u_n_c_s  files  include  a  similar  velocity-to-
amplitude mapping function.

_t_r_i_a_n_g_l_e : The principal function definition  in  this  file
creates  a  triangular-shaped audio waveform, which contains
only odd numbered harmonics, with relative  amplitudes  that
decrease  by  the  square of the harmonic number.  Thus, the
amplitude of the third harmonic is 1/9 that of the fundamen-
tal, the amplitude of the fifth harmonic is 1/25 that of the
fundamental, and so on. About 90 % of the total amplitude is
localized in the fundamental frequency.

_s_q_u_a_r_e : This function definition  creates  a  square  wave,
which, like a triangle wave, contains only odd-numbered har-
monics (1, 3, 5, 7, 9 etc.) of  decreasing  intensity.  How-
ever,  in  a square wave, the relative intensities of all of
the  non-fundamental  harmonics  is   considerably   higher,
resulting  in  a much brighter sound somewhat like that of a
stopped pipe (e.g. somewhat like a clarinet or stopped organ
pipe).  The  intensity  of the third harmonic is 1/3 that of
the fundamental, the intensity of the fifth harmonic is  1/5
that of the fundamental, and so on.

_p_u_l_s_e :  Pulse train wave  forms,  in  which  the  vibrating
object  "opens"  briefly, then abruptly "closes" and remains
"closed" for most of each period, are  similar  to  the  raw
wave  forms  produced  by  voiced speech or the buzzing of a
brass player's lips.  The "duty cycle" (positive, or "open")
portion  of  each  period  here  has  been set, rather arbi-
trarily, to 10 % of  the  cycle.   The  resulting  frequency
spectrum  may  include 50 or more harmonics, with each ninth
harmonic missing. The relative intensity of each harmonic is
roughly  the  inverse  of  the harmonic number (that is, the
second harmonic has half the intensity of  the  fundamental,
the third harmonic one third the intensity, and so on).  The
timbre is similar to, but even  brighter  than,  that  of  a
sawtooth wave.

_s_a_w_t_o_o_t_h : a sawtooth (or ramp)  wave  ascends  or  descends
linearly  throughout  an entire cycle, followed by an abrupt
discontinuity between each cycle as  the  waveform  "instan-
taneously"  returns  to  its  starting point.  The resulting
timbre contains "all" (40 or more measurable) even  and  odd
numbered  harmonics,  resulting  in  a very bright and buzzy
timbre.
                       --------------

_2.  _s_f_l_i_b soundfile functions:

All of the _m_i_d_i_f_u_n_c_s files with names similar  to  those  of
groups  of  _s_f_l_i_b  soundfiles,  such  as  _b_a_s_s_1, _p_n, _x_y_l_o or
_v_l_n._m, create tables that read in  the  samples  from  these
collections  of  (usually  related) _s_f_l_i_b soundfiles.  These
tables then are resampled by an instrument algorithm such as
_m_i_d_i_s_a_m_p  to  produce  a  complete  chromatic  collection of
pitches usable throughout all or a portion of the  range  of
the keyboard.  The file _p_n, for example, reads all twenty of
the _p_n (piano) soundfiles from  the  _s_f_l_i_b/_s_t_r_i_n_g  directory
into  RAM.   The file _v_c._p, using the eleven _v_c._p soundfiles
in the _s_f_l_i_b/_s_t_r_i_n_g directory, provides a homogenious timbre
of  cello  pizzicato  tones.   Also  included within each of
these files is a MIDI keyboard split  points  function  that
determines  which  soundfile  will be triggered by each MIDI
note number (Clavinola key) input, and necessary pitch tran-
spositions  of the source soundfiles so that all 88 notes of
the keyboard can be played.

     => Note: Currently, no  loop  point  data  is  included
     within   any of the _s_f_l_i_b soundfiles, so they cannot be
     sustained beyond the (transposed) original duration  of
     the  soundfile. When the end of a soundfile is reached,
     the note will terminate, even if you continue  to  hold
     down  the key that initiated the note, or have the Cla-
     vinola "sustain" pedal down.

Some of the _s_f_l_i_b function files include families of instru-
mental,  vocal  or environmental  samples. The files _s_t_r_i_n_g_s
and _s_t_r_i_n_g_s._p, for example, both include double bass, cello,
viola  and  violin  soundfiles,  mapped  with keyboard split
points, to produce  a  generic  string  timbre  usable  over
almost  the  full range of the keyboard.  Similarly, a _m_i_d_i_-
_f_u_n_c_s file such as _c_l_a_r_a_l_l includes contrabass, bass and  b-
flat  clarinet soundfiles, mapped with split points, to pro-
vide a generic clarinet timbre over a wide pitch range.

Your ear may discern changes in  timbre,  either  subtle  or
fairly  obvious, at some of the split points. If you want to
play a conjunct melody, it generally  is  better  to  use  a
homogenious function file such as _v_l_n. On the other hand, if
you want to play some widely spaced chords, the _s_t_r_i_n_g_s file
probably  will  produce  better  results  than the _v_l_n file.
Transposing a sound with strong formants, such as a vocal or
violin tone, up or down by more than a few scale steps often
results in the notorious "munchkin" or  "sick  cow"  effect,
since  the  original formants will be shifted into an "unna-
tural" register.

                  -----------------------

_3.  _S_t_e_r_e_o _i_n_p_u_t _f_u_n_c_t_i_o_n _f_i_l_e_s

The great majority  of  the  _s_f_l_i_b  function  files  contain
definitions  for  _m_o_n_o_p_h_o_n_i_c  input soundfiles, suitable for
use with a _m_i_d_i_n_s instrument  algorithm  such  as  _m_i_d_i_s_a_m_p.
However,  a  few  of these functions files, which begin with
the character string _S_T, such as _S_T_w_i_n_d_s, define  groups  of
stereo  input soundfiles, which are required by such instru-
ment algorithms as _S_T_m_i_d_i_s_a_m_p.   Note,  howeer,  that  there
also is a _m_i_d_i_f_u_n_c_s file called _w_i_n_d_s, which is identical to
_S_T_w_i_n_d_s except that it incorporates  mono  versions  of  the
same  _s_f_l_i_b  source  soundfiles,  suitable  for use with the
mono-input _m_i_d_i_s_a_m_p algorithm.

                  -----------------------

_4.  _N_o_t_e_s _o_n _s_o_m_e _s_p_e_c_i_a_l _f_u_n_c_t_i_o_n _f_i_l_e_s:

_S_T_w_i_n_d_s and _w_i_n_d_s : These files  incorporate,  respectively,
stereo  and  mono _s_f_l_i_b input soundfile definitions for four
"wind" sounds from the /_s_f_l_i_b/_e_n_v  directory.  The  keyboard
mappings,  and  "center keys" (keys which, when played, will
cause the source soundfile to  be  played  at  its  original
pitch level) are as follows:

      source soundfile:   keyboard range   center key
      (ST)wind.polar      a0 through b1        f1
      (ST)wind.low        c2 through b3        c3
      (ST)wind.high       c4 through b5        c5
      (ST)wind.howling    c6 through c8        c7

