
//====================================================
//  Spanish  - based on Base2
//====================================================


phoneme a
  vwl starttype #a endtype #a
  length 190
  ChangeIfNotStressed(a/)
  FMT(vowel/a_4)
endphoneme

phoneme a/
  vwl starttype #a endtype #a
  length 155
  IF thisPh(isWordEnd) THEN
    FMT(vowel/a_4, 85)
  ENDIF
  FMT(vowel/a_4, 95)
endphoneme

phoneme e
  vwl starttype #e endtype #e
  length 190
  ChangeIfNotStressed(e/)
  FMT(vowel/e_mid2)
endphoneme

phoneme e/
  vwl starttype #e endtype #e
  length 150
  FMT(vowel/e_mid2, 90)
endphoneme

phoneme E
  vwl starttype #e endtype #e
  length 175
  ChangeIfNotStressed(e/)
  FMT(vowel/e_mid2)
endphoneme

phoneme i
  vwl starttype #i endtype #i
  length 190
  IfNextVowelAppend(;)
  FMT(vowel/i)
endphoneme

phoneme o
  vwl starttype #o endtype #o
  length 195
  ChangeIfNotStressed(o/)
  IF nextPhW(n) THEN
    length 160
    FMT(vowel/o_mid2)
  ENDIF
  FMT(vowel/oo)
endphoneme

phoneme o/
  vwl starttype #o endtype #o
  length 155
  IF thisPh(isWordEnd) THEN
    FMT(vwl_es/oo_)
  ENDIF
  FMT(vowel/oo, 90)
endphoneme

phoneme u
  vwl starttype #u endtype #u
  length 200
  FMT(vowel/u_bck2)
endphoneme

phoneme oI
  vwl starttype #o endtype #i
  length 245
  IF thisPh(isWordEnd) OR prevPh(r) THEN
    length 260
    FMT(vwl_es/ooi_)
  ENDIF
  FMT(vwl_es/ooi)
endphoneme


phoneme g
  vcd vel stp
  lengthmod 5
  voicingswitch k
  Vowelin  f1=2  f2=2300 200 300  f3=-300 80
  Vowelout f1=2  f2=2300 250 300  f3=-300 80 brk

  IF nextPh(isVowel) OR nextPh(isRhotic) OR nextPh(isLiquid) THEN
    IF prevPh(isPause) OR prevPh(isNasal) THEN
    ELSE
      ChangePhoneme(Q)
    ENDIF
  ENDIF

  IF PreVoicing THEN
    FMT(g/xg)
  ENDIF

  IF nextPh(isPause2) THEN
    FMT(g/g_) addWav(x/g_)
  ENDIF
  FMT(g/g) addWav(x/g2)        // weaker [g]
endphoneme

phoneme d
  vcd dnt stp

  IF nextPh(isVowel) OR nextPh(isRhotic) OR nextPh(j) THEN
    IF prevPh(isPause) OR prevPh(isNasal) OR prevPh(l) THEN
    ELSE
      ChangePhoneme(D)
    ENDIF
  ENDIF

  CALL base2/d
endphoneme

phoneme b
  vcd blb stp

  IF nextPh(isVowel) OR nextPh(isRhotic) OR nextPh(isLiquid) THEN
    IF prevPh(isPause) OR prevPh(isNasal) THEN
    ELSE
      ChangePhoneme(B)
    ENDIF
  ENDIF

  CALL base1/b
endphoneme


phoneme D
  vcd dnt frc
  lengthmod 6
  voicingswitch T
  CALL base1/D
  IF nextPh(isPause2) THEN
    FMT(voc/dh_) addWav(vocw/dh, 35)   // weaker 
  ENDIF
endphoneme


phoneme s
  vls alv frc sib
  lengthmod 3
  voicingswitch  z
  Vowelin  f1=0  f2=1700 -300 300  f3=-100 80
  Vowelout f1=0  f2=1700 -300 250  f3=-100 80  rms=20

  IF nextPh(isPause) THEN
    WAV(ufric/s_, 60)    // quieter 's' at end of word
  ELIF nextPh(p) OR nextPh(t) OR nextPh(k) THEN
    WAV(ufric/s!)
  ENDIF
  WAV(ufric/s, 80)
endphoneme


phoneme v#   // a shorter [v], a little towards [b]
  vcd lbd frc
  ipa ʋ
  lengthmod 6
  voicingswitch f
  Vowelin  f1=1  f2=1000 -300 -200  f3=-300 100
  Vowelout f1=0  f2=1000 -500 -300  f3=-300 60  len=10

  IF nextPh(isPause2) THEN
    FMT(voc/v_) addWav(vocw/v, 80)
  ENDIF
  FMT(voc/v2) addWav(vocw/v, 80)
endphoneme


phoneme r
  vcd alv flp rhotic
  brkafter
  ipa ɾ
  lengthmod 3

  IF nextPhW(isVowel) THEN
    ChangePhoneme(**)
  ENDIF

  CALL base1/*
endphoneme


