cSounds.com - tutorials - An Instrument Design TOOTorial
Toot 13: Spectral Fusion

For our final instrument, we will employ three unique synthesis methods: Physical Modeling, Formant-Wave Synthesis, and Non-linear Distortion. Three of Csound's more powerful unit generators - pluck, fof, and foscil, make this complex task a fairly simple one. The Reference Manual describes these as follows:


ar pluck kamp, kcps, icps, ifn, imeth\\

[, iparm1, iparm2]

pluck 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.


ar fof xamp, xfund, xform, koct, kband, kris,\\

kdur, kdec, iolaps, ifna, ifnb, itotdur\\

[, iphs[, ifmode]]

fof 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.


ar foscil xamp, kcps, kcar, kmod, kndx, ifn\\

[, iphs]

foscil is a composite unit which banks two oscillators in a simple FM configuration, wherein the audio-rate output of one (the "modulator") is used to modulate the frequency input of another (the "carrier.")


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:



 
Navi

[index] [prev] [next]


cSounds.com

[+] Home

Csound Manual

[+] fof
[+] foscil
[+] pluck

Listen

[+] Toot13.mp3 204k

 
Toot13.orc

          instr 13

iamp      =         ampdb(p4) / 2       ;amp scaled for two sources

ipluckamp =         p6                  ;p6: % of total amplitude, 1=dB amp as in p4

ipluckdur =         p7*p3               ;p7: % of total duration, 1=entire note duration

ipluckoff =         p3 - ipluckdur



ifmamp    =         p8                  ;p8: % of total amplitude, 1=dB amp as in p4

ifmrise   =         p9*p3               ;p9: % of total duration, 1=entire note duration

ifmdec    =         p10*p3              ;p10: % of total duration

ifmoff    =         p3 - (ifmrise + ifmdec)

index     =         p11

ivibdepth =         p12

ivibrate  =         p13

ifrmntamp =         p14                 ;p14: % of total amplitude, 1=dB amp as in p4

ifrmntris =         p15*p3              ;p15: % of total duration, 1=entire note duration

ifrmntdec =         p3 - ifrmntris



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)



kformant linseg     0, ifrmntris, ifrmntamp, ifrmntdec, 0

kvib      oscil     ivibdepth, ivibrate, 1

afrmt1    fof       iamp, p5+kvib, 650, 0, 40, .003,.017,.007,4,1,2,p3

afrmt2    fof       iamp, (p5*1.001)+kvib*.009, 650, 0, 40, .003,.017,.007,10,1,2,p3

aformant  =         kformant * (afrmt1+afrmt2)



          out       apluck + afm + aformant

          endin

Toot13.sco

f1   0    8192 10   1                   ; Sine

f2   0    2048 19   0.5    1  270 1     ; Sine quadrant rise



;ins st dur amp frq plkmp plkdr fmmp  fmrs   fmdc indx vbdp      vbrt frmp fris

i13  0   5  80  200  .8   .3     .7   .2     .35    8     1      5      3   .5

i13  5   8  80  100  .    .4     .7   .35    .35    7     1      6      3   .7

i13 13  13  80   50  .    .3     .7   .2     .4     6     1      4      3   .6

Figure 13: Spectral Fusion


[+] Any questions, comments or suggestions? please let us know:
support@csounds.com