File: specfus.html

package info (click to toggle)
csound-doc 3.47b2-2
  • links: PTS
  • area: non-free
  • in suites: woody
  • size: 1,492 kB
  • ctags: 272
  • sloc: makefile: 36
file content (108 lines) | stat: -rw-r--r-- 4,975 bytes parent folder | download | duplicates (6)
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
<HTML>
<TITLE>SPECTRAL_FUSION</TITLE>
<CENTER><P><A NAME="Spectral_Fusion"></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="./TUTORIALS.html">Top of this section</A></B> - <A HREF="./tabslabs.html">Previous</A>
- <A HREF="../CONTENTS.html">Contents</A> - <A HREF="../INDEX.html">Index</A>
- <A HREF="./wrong.html">Next</A> 
<HR></P></CENTER>

<H2>Toot 13: Spectral Fusion</H2>

<P>For our final instrument, we will employ three unique synthesis methods-Physical
Modeling, Formant-Wave Synthesis, and Non-linear Distortion. Three of Csound's
most powerful unit generators-<A HREF="./../Generate/pluck.html">pluck</A>,
<A HREF="./../Generate/fof.html">fof</A>, and <A HREF="./../Generate/oscil.html">foscil</A>,
make this complex task a fairly simple one. The Reference Manual describes
these as follows: </P>

<PRE><TT>     a1    pluck   kamp, kcps, icps, ifn, imeth [, iparm1, iparm2]</TT>
</PRE>

<P><B><A HREF="./../Generate/pluck.html">pluck</A></B> simulates the sound
of naturally decaying plucked strings by filling a cyclic decay buffer
with noise and then smoothing it over time according to one of several
methods. The unit is based on the Karplus-Strong algorithm. </P>

<PRE><TT>     a2    fof    xamp, xfund, xform, koct, kband, kris, kdur kdec,
                   iolaps, ifna, ifnb, itotdur[, iphs][, ifmode]</TT>
</PRE>

<P><B><A HREF="./../Generate/fof.html">fof</A></B> simulates the sound of
the male voice by producing a set of harmonically related partials (a formant
region) whose spectral envelope can be controlled over time. It is a special
form of granular synthesis, based on the CHANT program from IRCAM by Xavier
Rodet et al. </P>

<PRE><TT>     a1    foscil   xamp, kcps, kcar, kmod, kndx, ifn [, iphs]</TT>
</PRE>

<P><B><A HREF="./../Generate/oscil.html">foscil</A></B> is a composite unit
which banks two oscillators in a simple FM configuration, wherein the audio-rate
output of one (the &quot;modulator&quot;) is used to modulate the frequency
input of another (the &quot;carrier.&quot;) </P>

<P>The plan for our instrument is to have the plucked string attack dissolve
into an FM sustain which transforms into a vocal release. The orchestra
and score are as follows:</P>

<PRE><TT> instr 13                         ; toot13.orc
    iamp         = ampdb(p4) / 2  ; amplitude, scaled for two sources
    ipluckamp    = p6             ; % of total amp, 1=dB amp as in p4
    ipluckdur    = p7*p3          ; % of total dur, 1=entire dur of note
    ipluckoff    = p3 - ipluckdur
    ifmamp       = p8             ; % of total amp, 1=dB amp as in p4
    ifmrise      = p9*p3          ; % of total dur, 1=entire dur of note
    ifmdec       = p10*p3         ; % of total duration
    ifmoff       = p3 - (ifmrise + ifmdec)
    index        = p11
    ivibdepth    = p12
    ivibrate     = p13
    iformantamp  = p14            ; % of total amp, 1=dB amp as in p4
    iformantrise = p15*p3         ; % of total dur, 1=entire dur of note
    iformantdec  = p3 - iformantrise

    kpluck       linseg    ipluckamp, ipluckdur, 0, ipluckoff, 0
    apluck1      pluck     iamp, p5, p5, 0, 1
    apluck2      pluck     iamp, p5*1.003, p5*1.003, 0, 1
    apluck       =         kpluck * (apluck1+apluck2)

    kfm          linseg    0, ifmrise, ifmamp, ifmdec, 0, ifmoff, 0
    kndx         =         kfm * index
    afm1         foscil    iamp, p5, 1, 2, kndx, 1
    afm2         foscil    iamp, p5*1.003, 1.003, 2.003, kndx, 1
    afm          =         kfm * (afm1+afm2)

    kfrmnt       linseg    0, iformantrise, iformantamp, iformantdec, 0
    kvib         oscil     ivibdepth,ivibrate,1
    afrmnt1      fof       iamp, p5+kvib, 650, 0, 40, .003, .017, .007, 4, 1, 2, p3
    afrmnt2      fof       iamp, (p5*1.001)+kvib*.009, 650, 0, 40, .003,.017,.007, 10,1,2,p3
    aformnt      =         kfrmnt * (afrmnt1+afrmnt2)

                 out       apluck + afm + aformnt
 endin

 f1  0  8192   10   1                     ; sine wave
 f2  0  2048   19  .5  1  270  1         ; sigmoid rise

;ins st   dr   mp   frq  plkmp plkdr fmp fmris fmdec indx vbdp vbrt  frmp fris
 i13 0    5    80   200  .8   .3    .7   .2   .35    8    1    5     3     .5
 i13 +    8    80   100  .    .4    .7   .35  .35    7    1    6     3     .7
 i13 .   13    80   50   .    .3    .7   .2   .4     6    1    4     3     .6</TT>

</PRE>

<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="./TUTORIALS.html">Top of this section</A></B> - <A HREF="./tabslabs.html">Previous</A>
- <A HREF="../CONTENTS.html">Contents</A> - <A HREF="../INDEX.html">Index</A>
- <A HREF="./wrong.html">Next</A> 
<HR></P></CENTER>


<P><CENTER>
<B><I><FONT COLOR="#006600">HTML Csound Manual - <FONT SIZE=-1>&copy;
Jean Pich&eacute; &amp; Peter J. Nix, 1994-97</FONT></FONT></I></B>&nbsp;
</CENTER>
</HTML>