// use 'flag1' for front vowels, 'flag2' for back vowels

phoneme i
  vwl flag1 starttype #i endtype #i
  length 180
  FMT(vowel/i)
endphoneme

phoneme y
  vwl flag1 starttype #u endtype #u
  length 180
  FMT(vowel/y)
endphoneme

phoneme u
  vwl flag2 starttype #u endtype #u
  length 180
  FMT(vowel/u)
endphoneme


phoneme e
  vwl flag1 starttype #@ endtype #@
  length 110
  FMT(vowel/ii#)
endphoneme


phoneme W
  vwl flag1 starttype #@ endtype #@
  length 110
  FMT(vowel/oe)
endphoneme

phoneme o
  vwl flag2 starttype #o endtype #o
  length 110
  FMT(vowel/o_mid)
endphoneme

phoneme V
  vwl flag2 starttype #@ endtype #@
  length 110
  ipa ɯ
  FMT(vowel/@_2)
endphoneme


phoneme &
  vwl flag1 starttype #e endtype #e
  length 180
  FMT(vowel/ee)
endphoneme

phoneme A
  vwl flag2 starttype #a endtype #a
  length 180
  IF NOT nextPhW(w) AND NOT thisPh(isTranslationGiven) THEN
    IF thisPh(isFirstVowel) THEN
      ChangePhoneme(0)
    ENDIF
    IF prevVowel(0) AND thisPh(isSecondVowel) THEN
      ChangePhoneme(0)
    ENDIF
  ENDIF
  FMT(vowel/aa_8)
endphoneme

phoneme 0
  vwl flag2 starttype #o endtype #o
  length 180
  FMT(vowel/0_3)
endphoneme


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

phoneme I
  vwl flag1 starttype #i endtype #i
  length 110
  FMT(vowel/ii)
endphoneme

phoneme a  // letter 'я'
  vwl starttype #a endtype #a
  length 180
  IF prevVowel(isFlag1) OR nextVowel(isFlag1) THEN   // front vowels
    ChangePhoneme(&)
  ENDIF
  ChangePhoneme(A)
endphoneme

phoneme u2   // letter 'ю'
  vwl starttype #u endtype #u
  length 180
  IF prevVowel(isFlag1) OR nextVowel(isFlag1) THEN
    ChangePhoneme(y)
  ELSE
    ChangePhoneme(u)
  ENDIF
endphoneme

phoneme e2    // 'e' at start of word
  vwl starttype #@ endtype #@
  length 100
  IF nextVowel(isFlag2) THEN
    ChangePhoneme(V)
  ELSE
    ChangePhoneme(e)
  ENDIF
endphoneme



// Consonants

phoneme r
  import_phoneme base1/R2
endphoneme

phoneme t
  import_phoneme base2/t
endphoneme

phoneme d
  import_phoneme base1/d[
endphoneme

phoneme k
  vls vel stp
  IF prevVowel(isFlag2) OR nextVowel(isFlag2) THEN   // back vowels
    ChangePhoneme(q)
  ENDIF
  CALL base1/k
endphoneme

phoneme G
  import_phoneme base1/Q"
endphoneme

phoneme g
  vcd vel frc
  IF prevVowel(isFlag2) OR nextVowel(isFlag2) THEN
    ChangePhoneme(G)
  ELSE
    ChangePhoneme(Q)
  ENDIF 
endphoneme


phoneme l
  liquid
  IF prevVowel(isFlag2) OR nextVowel(isFlag2) THEN
    ChangePhoneme(L)
  ENDIF
  CALL base1/l
endphoneme