arfofxamp, xfund, xform, koct, kband, kris, kdur, kdec, \ iolaps, ifna, ifnb, itotdur[, iphs][, ifmode] arfof2xamp, xfund, xform, koct, kband, kris, kdur, kdec, \ iolaps, ifna, ifnb, itotdur, kphs, kgliss

**fof2** implements k-rate incremental indexing into *ifna*
function with each successive burst.

*ifna, ifnb*- table numbers of two stored functions. The first
is a sine table for sineburst synthesis (size of at least 4096 recommended).
The second is a rise shape, used forwards and backwards to shape the sineburst
rise and decay; this may be linear ( GEN07)
or perhaps a sigmoid ( GEN19).

*itotdur* - total time during which this **fof** will be active.
Normally set to p3. No new sineburst is created if it cannot complete its
*kdur* within the remaining *itotdur*.

*iphs* (optional) - initial phase of the fundamental, expressed
as a fraction of a cycle (0 to 1). The default value is 0.

*ifmode* (optional) - formant frequency mode. If zero, each sineburst
keeps the *xform* frequency it was launched with. If non-zero, each
is influenced by *xform* continuously. The default value is 0.

*xfund* - the fundamental frequency (in Hertz) of the impulses
that create new sinebursts.

*xform* - the formant frequency, i.e. freq of the sinusoid burst
induced by each *xfund* impulse. This frequency can be fixed for each
burst or can vary continuously (see *ifmode*).

*koct* - octaviation index, normally zero. If greater than zero,
lowers the effective *xfund* frequency by attenuating odd-numbered
sinebursts. Whole numbers are full octaves, fractions transitional.

*kband* - the formant bandwidth (at -6dB), expressed in Hz. The
bandwidth determines the rate of exponential decay throughout the sineburst,
before the enveloping described below is applied.

*kris, kdur, kdec* - rise, overall duration, and decay times (in
seconds) of the sinusoid burst. These values apply an enveloped duration
to each burst, in similar fashion to a Csound **linen**
generator but with rise and decay shapes derived from the *ifnb* input.
*kris* inversely determines the skirtwidth (at -40 dB) of the induced
formant region. *kdur* affects the density of sineburst overlaps,
and thus the speed of computation. Typical values for vocal imitation are
.003,.02,.007.

In the **fof2** implementation, *kphs* allows k-rate indexing
of function table *ifna* with each succesive burst, making it suitable
for time-warping applications. Values of for *kphs* are normalized
from 0 to 1, 1 being the end of the function table *ifna*. *kgliss*
- sets the end pitch of each grain relative to the initial pitch, in octaves.
Thus *kgliss* = 2 means that the grain ends two octaves above its
initial pitch, while *kgliss* = -5/3 has the grain ending a perfect
major sixth below. **Note**: There are no optional parameters in **fof2**

Csound's **fof** generator is loosely based on Michael Clarke's C-coding
of IRCAM's CHANT program (Xavier Rodet et al.). Each fof produces a single
formant, and the output of four or more of these can be summed to produce
a rich vocal imitation. **fof** synthesis is a special form of granular
synthesis, and this implementation aids transformation between vocal imitation
and granular textures. Computation speed depends on *kdur, xfund*,
and the density of any overlaps.