//=========================================================
// Swedish
//=========================================================
// Improved prosody: longer stressed vowels, shorter unstressed,
// better long/short distinction

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

phoneme i:
  vwl starttype #i endtype #i
  length 210
  IfNextVowelAppend(;)
  IF prevPh(w) THEN
    VowelStart(w/wi2)
  ENDIF
  FMT(vowel/i_2)
endphoneme

phoneme I
  vwl starttype #i endtype #i
  length 110
  IfNextVowelAppend(;)
  FMT(vowel/ii_3)
endphoneme

phoneme e:
  vwl starttype #e endtype #e
  length 240
  FMT(vowel/e_2)
endphoneme

phoneme E
  vwl starttype #e endtype #e
  length 120
  ChangeIfUnstressed(E-)
  FMT(vowel/ee)
endphoneme

phoneme E:
  vwl  starttype #e  endtype #@
  length 250
  FMT(vowel/ee_1)
endphoneme

phoneme E3
  vwl starttype #e endtype #e
  length 120
  ChangeIfDiminished(@)
  FMT(vowel/ee_6)
endphoneme

phoneme E-
  vwl starttype #@ endtype #@
  ipa ə
  unstressed
  length 100
  FMT(vowel/ee#_2)
endphoneme



phoneme y:
  vwl starttype #u endtype #u
  length 250
  FMT(vowel/y_5)
endphoneme

phoneme y
  vwl starttype #u endtype #u
  length 120
  FMT(vowel/yy_3)
endphoneme

phoneme u-
  vwl starttype #u endtype #u
  ipa ʉː
  length 240
  FMT(vowel/u#_2)
endphoneme


phoneme Y:
  vwl starttype #@ endtype #@
  length 250
  FMT(vowel/y#_2)
endphoneme

phoneme W
  vwl starttype #@ endtype #@
  length 120
  FMT(vowel/oe_4)
endphoneme

phoneme 8
  vwl starttype #u endtype #u
  length 120
  FMT(vowel/8_2)
endphoneme



phoneme a
  vwl starttype #a endtype #a
  length 130
  IF thisPh(isNotStressed) AND thisPh(isWordEnd) THEN
    FMT(vowel/a#_2)
  ENDIF
  FMT(vowel/a_5)
endphoneme

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

phoneme A:
  vwl starttype #a endtype #a
  length 280
  FMT(vowel/aa_4)
endphoneme

phoneme O
  vwl starttype #o endtype #o
  length 120
  FMT(vowel/oo)
endphoneme

phoneme o:
  vwl starttype #o endtype #o
  length 240
  FMT(vowel/o)
endphoneme

phoneme U
  vwl starttype #u endtype #u
  length 120
  FMT(vowel/uu_4)
endphoneme

phoneme u:
  vwl starttype #u endtype #u
  length 240
  FMT(vowel/u_bck)
endphoneme


//===================================================

// CONSONANTS
//===========


phoneme sx        // Swedish "sj" sound
  vls vel frc
  ipa ɧ
  lengthmod 3
  Vowelin f1=0  f2=2300 300 400  f3=200 100
  Vowelout f1=0 f2=2300 300 400  f3=200 100  rms=20
  WAV(ufric/sx_sv, 60)
endphoneme



// Retroflex consonants for Swedish
// Swedish retroflexes occur when /r/ precedes /d/, /t/, /n/, /l/, /s/
// e.g., "bord" [buːɖ], "barn" [bɑːɳ], "kort" [kɔʈ]

phoneme t.
  vls rfx stp
  lengthmod 2
  ipa ʈ
  voicingswitch d.
  Vowelin f1=0  f2=1800 -300 300  f3=-400 80
  Vowelout f1=0 f2=1800 -300 250  f3=-400 80  rms=20 colr=2
  WAV(ustop/t_short)
endphoneme

phoneme d.
  vcd rfx stp
  lengthmod 5
  voicingswitch t.
  ipa ɖ
  Vowelin f1=1  f2=1800 -300 300  f3=-400 80
  Vowelout f1=1 f2=1800 -300 300  f3=-400 80 colr=2

  IF PreVoicing THEN
    FMT(d/xdr)
  ENDIF

  IF nextPh(isPause2) THEN
    FMT(d/d_) addWav(x/d_)
  ENDIF

  FMT(d/dr) addWav(x/d)
endphoneme
