 

//=========================================================
// Icelandic
//=========================================================

phoneme : //  Lengthen previous vowel by "length"
  virtual
  length 110
endphoneme


// Vowels
//=======

phoneme i
  vowel starttype #i endtype #i
  length 130
  IfNextVowelAppend(;)
  FMT(vowel/i_4)
endphoneme


phoneme I
  vowel starttype #i endtype #i
  length 130
  IfNextVowelAppend(;)
  FMT(vowel/ii)
endphoneme


phoneme e
  vowel starttype #e endtype #e
  length 130
  ChangeIfNotStressed(E)
  FMT(vowel/e_e)
endphoneme


phoneme E
  vowel starttype #e endtype #e
  length 130
  FMT(vowel/e_mid)
endphoneme


phoneme a
  vowel starttype #a endtype #a
  length 130
  ChangeIfNotStressed(&)
  FMT(vowel/a_3)
endphoneme


phoneme &
  vowel starttype #@ endtype #@
  length 130
  FMT(vowel/a#_2)
endphoneme


phoneme o
  vowel starttype #o endtype #o
  length 130
  ChangeIfNotStressed(O)
  FMT(vdiph2/o_oo)
endphoneme


phoneme O
  vowel starttype #o endtype #o
  length 130
  FMT(vowel/oo_5)
endphoneme


phoneme u
  vowel starttype #u endtype #u
  length 130
  FMT(vowel/u_bck)
endphoneme


phoneme y
  vowel starttype #i endtype #i
  length 130
  FMT(vowel/yy_4)
endphoneme

phoneme y#
  vowel starttype #@ endtype #@
  length 130
  FMT(vowel/y##)
endphoneme

phoneme W
  vowel starttype #@ endtype #@
  length 130
  FMT(vowel/y#_3)
endphoneme


phoneme aI
  vowel starttype #a endtype #i
  length 170
  FMT(vdiph/ai_7)
endphoneme

phoneme eI
  vowel starttype #e endtype #i
  length 170
  FMT(vdiph/ei)
endphoneme

phoneme aU
  vowel starttype #a endtype #u
  length 170
  FMT(vdiph/au_4)
endphoneme

phoneme oU
  vowel starttype #o endtype #u
  length 170
  FMT(vdiph/ou_3)
endphoneme

phoneme oU2    // long version for  óf
  vowel starttype #o endtype #u
  length 230
  FMT(vdiph/ou_3)
endphoneme

phoneme Yy
  vowel starttype #@ endtype #i
  length 150
  FMT(vdiph/y#i_2)
endphoneme



// Consonants
//===========

phoneme m#
  vcd blb nasal
  lengthmod 6
  Vowelout f1=2  f2=1000 -500 -350  f3=-200 80 brk
  FMT(m/m#_)
endphoneme


phoneme n#
  vcd alv nasal
  lengthmod 6
  Vowelout f1=2 f2=1700 -300 250  f3=-100 80  rms=20 brk

  NextVowelStarts
    VowelStart(n/n@)
    VowelStart(n/na)
    VowelStart(n/ne)
    VowelStart(n/ni)
    VowelStart(n/no)
    VowelStart(n/nu)
  EndSwitch

  FMT(n/n#_)
endphoneme


phoneme n^#
  vcd pal nasal palatal
  lengthmod 6
  Vowelout f1=3 f2=2300 300 400  f3=100 80  brk rate
  FMT(n^/n^#_)
endphoneme



phoneme N#
  vcd vel nasal
  lengthmod 6
  Vowelout f1=3 f2=2300 300 400  f3=-200 80  len=40 rms=20 brk

  NextVowelStarts
    VowelStart(nn/nn@)
    VowelStart(nn/nna)
    VowelStart(nn/nne)
    VowelStart(nn/nni)
    VowelStart(nn/nno)
    VowelStart(nn/nnu)
  EndSwitch

  FMT(nn/nn#_)
endphoneme


phoneme l#
  vls alv frc
  lengthmod 3
  WAV(ufric/ll, 25)
endphoneme


phoneme tl#
  vls alv stop
  lengthmod 2
  Vowelin f1=0  f2=1700 -300 300  f3=-100 80
  Vowelout f1=0 f2=1700 -300 250  f3=-100 80  rms=20
  WAV(ufric/tl#, 50)
endphoneme


phoneme r#   // used for [r] when not preceding a vowel
  liquid
  lengthmod 2   //
  FMT(r3/r#_) addWav(r3/rx)
//  before n   r3/r_n+r3/rx
endphoneme


phoneme b
  vls blb stop
  lengthmod 5
  Vowelin  f1=1  f2=1000 -300 -200  f3=-200 80 amp=11
  Vowelout f1=2  f2=1000 -300 -300  f3=-300 80 brk
  WAV(x/b)
endphoneme


phoneme d
  vls alv stop
  lengthmod 5
  Vowelin f1=2  f2=1700 -300 300  f3=-100 80
  Vowelout f1=2 f2=1700 -300 300  f3=-100 80
  IF nextPh(isPause2) THEN
    WAV(x/d_)
  ENDIF
  WAV(x/d, 80)
endphoneme


phoneme g
  vls vel stop
  lengthmod 5
  Vowelin f1=2  f2=2300 200 300  f3=-300 80
  Vowelout f1=2  f2=2300 250 300  f3=-300 80 brk
  IF nextPh(isPause2) THEN
    WAV(x/g_)
  ENDIF
  WAV(x/g2, 150)
endphoneme


phoneme v        // no fricative noise
  import_phoneme base/v#
  voicingswitch f
endphoneme


phoneme s2       // 2nd part of geminated s
  import_phoneme consonants/s2
endphoneme

