1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
|
<HTML>
<TITLE>FOF</TITLE>
<CENTER><A NAME="fof"></A>
<HR><B><A HREF="../REFER.html">QUICK-REF</A></B> - <B><A HREF="../TITLE.html"><FONT SIZE=+1>C</FONT>soundManual</A></B>
- <B><A HREF="./SIG_GENS.html#">Top of this section</A></B> - <A HREF="./pvread.html">Previous</A>
- <A HREF="../CONTENTS.html">Contents</A> - <A HREF="../INDEX.html">Index</A>
- <A HREF="./fog.html">Next</A>
<HR></CENTER>
<H2>
fof, fof2</H2>
<PRE> ar <B>fof</B> xamp, xfund, xform, koct, kband, kris, kdur, kdec, \
iolaps, ifna, ifnb, itotdur[, iphs][, ifmode]
ar <B>fof2</B> xamp, xfund, xform, koct, kband, kris, kdur, kdec, \
iolaps, ifna, ifnb, itotdur, kphs, kgliss</PRE>
<HR>
<H4>
<U>DESCRIPTION</U></H4>
Audio output is a succession of sinusoid bursts initiated at frequency
<I>xfund</I> with a spectral peak at <I>xform</I>. For <I>xfund</I> above
25 Hz these bursts produce a speech-like formant with spectral characteristics
determined by the k-input parameters. For lower fundamentals this generator
provides a special form of granular synthesis.
<P><B>fof2</B> implements k-rate incremental indexing into <I>ifna</I>
function with each successive burst.
<H4>
<U>INITIALIZATION</U></H4>
<I>iolaps</I> - number of preallocated spaces needed to hold overlapping
burst data. Overlaps are frequency dependent, and the space required depends
on the maximum value of <I>xfund * kdur</I>. Can be over-estimated at no
computation cost. Uses less than 50 bytes of memory per <I>iolap</I>.
<P><I>ifna, ifnb</I>- 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 ( <A HREF="../Function/gen05.html">GEN07</A>)
or perhaps a sigmoid ( <A HREF="../Function/gen09.html">GEN19</A>).
<P><I>itotdur</I> - total time during which this <B>fof</B> will be active.
Normally set to p3. No new sineburst is created if it cannot complete its
<I>kdur</I> within the remaining <I>itotdur</I>.
<P><I>iphs</I> (optional) - initial phase of the fundamental, expressed
as a fraction of a cycle (0 to 1). The default value is 0.
<P><I>ifmode</I> (optional) - formant frequency mode. If zero, each sineburst
keeps the <I>xform</I> frequency it was launched with. If non-zero, each
is influenced by <I>xform</I> continuously. The default value is 0.
<H4>
<U>PERFORMANCE</U></H4>
<I>xamp</I> - peak amplitude of each sineburst, observed at the true end
of its rise pattern. The rise may exceed this value given a large bandwidth
(say, Q < 10) and/or when the bursts are overlapping.
<P><I>xfund</I> - the fundamental frequency (in Hertz) of the impulses
that create new sinebursts.
<P><I>xform</I> - the formant frequency, i.e. freq of the sinusoid burst
induced by each <I>xfund</I> impulse. This frequency can be fixed for each
burst or can vary continuously (see <I>ifmode</I>).
<P><I>koct</I> - octaviation index, normally zero. If greater than zero,
lowers the effective <I>xfund</I> frequency by attenuating odd-numbered
sinebursts. Whole numbers are full octaves, fractions transitional.
<P><I>kband</I> - 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.
<P><I>kris, kdur, kdec</I> - 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 <B><A HREF="#linen">linen</A></B>
generator but with rise and decay shapes derived from the <I>ifnb</I> input.
<I>kris</I> inversely determines the skirtwidth (at -40 dB) of the induced
formant region. <I>kdur</I> affects the density of sineburst overlaps,
and thus the speed of computation. Typical values for vocal imitation are
.003,.02,.007.
<P>In the <B>fof2</B> implementation, <I>kphs</I> allows k-rate indexing
of function table <I>ifna</I> with each succesive burst, making it suitable
for time-warping applications. Values of for <I>kphs</I> are normalized
from 0 to 1, 1 being the end of the function table <I>ifna</I>. <I>kgliss</I>
- sets the end pitch of each grain relative to the initial pitch, in octaves.
Thus <I>kgliss</I> = 2 means that the grain ends two octaves above its
initial pitch, while <I>kgliss</I> = -5/3 has the grain ending a perfect
major sixth below. <B>Note</B>: There are no optional parameters in <B>fof2</B>
<P>Csound's <B>fof</B> 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. <B>fof</B> synthesis is a special form of granular
synthesis, and this implementation aids transformation between vocal imitation
and granular textures. Computation speed depends on <I>kdur, xfund</I>,
and the density of any overlaps.
<CENTER><P>
<HR><B><A HREF="../REFER.html">QUICK-REF</A></B> - <B><A HREF="../TITLE.html"><FONT SIZE=+1>C</FONT>soundManual</A></B>
- <B><A HREF="./SIG_GENS.html#">Top of this section</A></B> - <A HREF="./pvread.html">Previous</A>
- <A HREF="../CONTENTS.html">Contents</A> - <A HREF="../INDEX.html">Index</A>
- <A HREF="./fog.html">Next</A>
<HR></CENTER>
<P><CENTER>
<B><I><FONT COLOR="#006600">HTML Csound Manual - <FONT SIZE=-1>©
Jean Piché & Peter J. Nix, 1994-97</FONT></FONT></I></B>
</CENTER>
</HTML>
|