| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 | 
// 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
 |