Csound Csound-dev Csound-tekno Search About

Sounding Vowels with FOF

Date2006-01-20 19:39
From"Robson Cozendey"
SubjectSounding Vowels with FOF
   Hello everyone,

  I executed the Fof's manual example to produce an alto "a", and besides it 
doesnt seems much like an "a", I thought of an  orchestra of five 
instruments to make the a-e-i-o-u choral. So I looked up the Appendice from 
the manual with the Formant Frequencies and bandwidth. Ok, the Appendice 
table give us the formant frequency, the bandwidth and the amplitude for 
each component of each vowel, but how to know the "fundamental" frequency 
for a vowel? The table didn't have to have four components: fundamental, 
formant, bandwidth and amplitude, instead of just four?
  I tried to use the fundamental from the vowel "a" manual example, using 
the same fundamental to all the vowels and modifying the components 
following the Formant Appendice for each vowel, but it resulted in inaudible 
es, is, os and us.
  What fundamental we need to use for the other vowels? There is other FOF 
parameters we have to modify? The Formant Frequencies Appendice is 
incomplete?
  Below is my modified manual example for all the vowels:

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




-o fof.wav





sr = 44100
kr = 4410
ksmps = 10
nchnls = 1

; alto com o som de "a"
instr 1

  kfund = 261.659
  koct = 0
  kris = 0.003
  kdur = 0.02
  kdec = 0.007
  iolaps = 14850
  ifna = 1
  ifnb = 2
  itotdur = p3

  kamp1 = ampdb(0)
  kform1 = 800
  kband1 = 80

  kamp2 = ampdb(-4)
  kform2 = 1150
  kband2 = 90

  kamp3 = ampdb(-20)
  kform3 = 2800
  kband3 = 120


  kamp4 = ampdb(-36)
  kform4 = 3500
  kband4 = 130

  kamp5 = ampdb(-60)
  kform5 = 4950
  kband5 = 140

  a1 fof kamp1, kfund, kform1, koct, kband1, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a2 fof kamp2, kfund, kform2, koct, kband2, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a3 fof kamp3, kfund, kform3, koct, kband3, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a4 fof kamp4, kfund, kform4, koct, kband4, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a5 fof kamp5, kfund, kform5, koct, kband5, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur

  out (a1+a2+a3+a4+a5) * 16384
endin

; alto com o som de "e"
instr 2

  kfund = 200
  koct = 0
  kris = 0.003
  kdur = 0.02
  kdec = 0.007
  iolaps = 14850
  ifna = 1
  ifnb = 2
  itotdur = p3

  kamp1 = ampdb(0)
  kform1 = 400
  kband1 = 60

  kamp2 = ampdb(-24)
  kform2 = 1600
  kband2 = 80

  kamp3 = ampdb(-30)
  kform3 = 2700
  kband3 = 120


  kamp4 = ampdb(-35)
  kform4 = 3300
  kband4 = 150

  kamp5 = ampdb(-60)
  kform5 = 4950
  kband5 = 200

  a1 fof kamp1, kfund, kform1, koct, kband1, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a2 fof kamp2, kfund, kform2, koct, kband2, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a3 fof kamp3, kfund, kform3, koct, kband3, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a4 fof kamp4, kfund, kform4, koct, kband4, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a5 fof kamp5, kfund, kform5, koct, kband5, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur

  out (a1+a2+a3+a4+a5) * 16384
endin

; alto com o som de "i"
instr 3

  kfund = 261.659
  koct = 0
  kris = 0.003
  kdur = 0.02
  kdec = 0.007
  iolaps = 14850
  ifna = 1
  ifnb = 2
  itotdur = p3

  kamp1 = ampdb(0)
  kform1 = 350
  kband1 = 50

  kamp2 = ampdb(-20)
  kform2 = 1700
  kband2 = 100

  kamp3 = ampdb(-30)
  kform3 = 2700
  kband3 = 120


  kamp4 = ampdb(-36)
  kform4 = 3700
  kband4 = 150

  kamp5 = ampdb(-60)
  kform5 = 4950
  kband5 = 200

  a1 fof kamp1, kfund, kform1, koct, kband1, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a2 fof kamp2, kfund, kform2, koct, kband2, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a3 fof kamp3, kfund, kform3, koct, kband3, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a4 fof kamp4, kfund, kform4, koct, kband4, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a5 fof kamp5, kfund, kform5, koct, kband5, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur

  out (a1+a2+a3+a4+a5) * 16384
endin

; alto com o som de "o"
instr 4

  kfund = 261.659
  koct = 0
  kris = 0.003
  kdur = 0.02
  kdec = 0.007
  iolaps = 14850
  ifna = 1
  ifnb = 2
  itotdur = p3

  kamp1 = ampdb(0)
  kform1 = 450
  kband1 = 70

  kamp2 = ampdb(-9)
  kform2 = 800
  kband2 = 80

  kamp3 = ampdb(-16)
  kform3 = 2830
  kband3 = 100


  kamp4 = ampdb(-28)
  kform4 = 3500
  kband4 = 130

  kamp5 = ampdb(-55)
  kform5 = 4950
  kband5 = 135

  a1 fof kamp1, kfund, kform1, koct, kband1, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a2 fof kamp2, kfund, kform2, koct, kband2, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a3 fof kamp3, kfund, kform3, koct, kband3, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a4 fof kamp4, kfund, kform4, koct, kband4, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a5 fof kamp5, kfund, kform5, koct, kband5, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur

  out (a1+a2+a3+a4+a5) * 16384
endin

; alto com o som de "u"
instr 5

  kfund = 261.659
  koct = 0
  kris = 0.003
  kdur = 0.02
  kdec = 0.007
  iolaps = 14850
  ifna = 1
  ifnb = 2
  itotdur = p3

  kamp1 = ampdb(0)
  kform1 = 325
  kband1 = 50

  kamp2 = ampdb(-12)
  kform2 = 700
  kband2 = 60

  kamp3 = ampdb(-30)
  kform3 = 2530
  kband3 = 170


  kamp4 = ampdb(-40)
  kform4 = 3500
  kband4 = 180

  kamp5 = ampdb(-64)
  kform5 = 4950
  kband5 = 200

  a1 fof kamp1, kfund, kform1, koct, kband1, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a2 fof kamp2, kfund, kform2, koct, kband2, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a3 fof kamp3, kfund, kform3, koct, kband3, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a4 fof kamp4, kfund, kform4, koct, kband4, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur
  a5 fof kamp5, kfund, kform5, koct, kband5, kris, \
         kdur, kdec, iolaps, ifna, ifnb, itotdur

  out (a1+a2+a3+a4+a5) * 16384
endin




f 1 0 4096 10 1
f 2 0 1024 19 0.5 0.5 270 0.5

i 1 0 1
i 2 1 1
i 3 2 1
i 4 3 1
i 5 4 1
e




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

_________________________________________________________________
  
http://signup.alerts.msn.com/alerts/login.do?PINID=2430448&returnURL=http://copa.br.msn.com/

Date2006-01-20 20:57
FromErik Spjut
SubjectRe: Sounding Vowels with FOF
You can use any fundamental you desire.

I've posted an example at http://www.eng.hmc.edu/Csound/SingAve.csd  
of using the formants and fof to create a singing voice. The  
soundfile is at  http://www.eng.hmc.edu/Csound/SingAve.mp3 The  
example also has examples of using buzz and filters as well as using  
the voice and the fmvoice opcodes to compare synthesized singing in  
Csound. By picking the instrument and formant table you can choose  
gender and vowel for any of the four and compare them. Fof usually,  
but not always sounds best.


On Jan 20, 2006, at 11:39 AM, Robson Cozendey wrote:

>   Hello everyone,
>
>  I executed the Fof's manual example to produce an alto "a", and  
> besides it doesnt seems much like an "a", I thought of an   
> orchestra of five instruments to make the a-e-i-o-u choral. So I  
> looked up the Appendice from the manual with the Formant  
> Frequencies and bandwidth. Ok, the Appendice table give us the  
> formant frequency, the bandwidth and the amplitude for each  
> component of each vowel, but how to know the "fundamental"  
> frequency for a vowel? The table didn't have to have four  
> components: fundamental, formant, bandwidth and amplitude, instead  
> of just four?
>  I tried to use the fundamental from the vowel "a" manual example,  
> using the same fundamental to all the vowels and modifying the  
> components following the Formant Appendice for each vowel, but it  
> resulted in inaudible es, is, os and us.
>  What fundamental we need to use for the other vowels? There is  
> other FOF parameters we have to modify? The Formant Frequencies  
> Appendice is incomplete?
>  Below is my modified manual example for all the vowels:
>
> ---------------------
> -------------------
>
> _________________________________________________________________
>  http://signup.alerts.msn.com/alerts/login.do? 
> PINID=2430448&returnURL=http://copa.br.msn.com/
>
> -- 
> Send bugs reports to this list.
> To unsubscribe, send email to csound-unsubscribe@lists.bath.ac.uk

----
Prof. R. Erik Spjut (spyoot rhymes with cute)
Engineering Department, Harvey Mudd College, Claremont, CA 91711
erik_spjut@hmc.edu   Ph. (909) 607-3890  Fax (909) 621-8967