| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355 | // Phoneme table for Scottish Gaelic (lang=gd)
// Vowels
phoneme I
  vwl starttype #i endtype #i
  unstressed
  length 130
  FMT(vowel/ii)
endphoneme
phoneme @
  vwl starttype #@ endtype #@
  unstressed
  length 130
  FMT(vowel/@_6)
endphoneme
phoneme i:
  vwl starttype #i endtype #i lng
  length 240
  ChangeIfUnstressed(i)
  FMT(vowel/i)
endphoneme
phoneme i
  vwl starttype #i endtype #i
  length 130
  ChangeIfUnstressed(I)
  FMT(vowel/i_6)
endphoneme
phoneme e:
  vwl starttype #e endtype #e lng
  length 240
  ChangeIfUnstressed(@)
  FMT(vowel/e)
endphoneme
phoneme e
  vwl starttype #e endtype #e
  length 130
  ChangeIfUnstressed(@)
  FMT(vowel/e)
endphoneme
phoneme E:
  vwl starttype #e endtype #e lng
  length 240
  FMT(vowel/ee)
endphoneme
phoneme E
  vwl starttype #e endtype #e
  length 130
  FMT(vowel/ee)
endphoneme
phoneme a:
  vwl starttype #a endtype #a lng
  length 240
  ChangeIfUnstressed(a)
  FMT(vowel/aa_8)
endphoneme
phoneme a
  vwl starttype #a endtype #a
  length 130
  ChangeIfUnstressed(@)
  FMT(vowel/a)
endphoneme
phoneme a2  // doesn't reduce to [@]
  vwl starttype #a endtype #a
  length 130
  FMT(vowel/a)
endphoneme
phoneme O:
  vwl starttype #o endtype #o lng
  length 240
  FMT(vowel/oo_2)
endphoneme
phoneme O
  vwl starttype #o endtype #o
  length 130
  FMT(vowel/oo_2)
endphoneme
phoneme o:
  vwl starttype #o endtype #o lng
  length 240
  FMT(vowel/o)
endphoneme
phoneme o
  vwl starttype #o endtype #o
  length 130
  FMT(vowel/o_2)
endphoneme
phoneme u:
  vwl starttype #u endtype #u lng
  length 240
  ChangeIfUnstressed(u)
  FMT(vowel/u_bck2)
endphoneme
phoneme u
  vwl starttype #u endtype #u
  length 130
  FMT(vowel/u_bck2)
endphoneme
phoneme u-
  vwl starttype #@ endtype #@
  ipa ɯ
  length 240
  FMT(vowel/u_bck2)
endphoneme
phoneme u-
  vwl starttype #@ endtype #@ lng
  ipa ɯ
  length 130
  FMT(vowel/u_bck2)
endphoneme
phoneme o-
  vwl starttype #@ endtype #@ lng
  ipa ɤ
  length 240
  ChangeIfUnstressed(@)
  FMT(vowel/8_7)
endphoneme
phoneme o-
  vwl starttype #@ endtype #@
  ipa ɤ
  length 130
  ChangeIfUnstressed(@)
  FMT(vowel/8_7)
endphoneme
// Diphthongs
phoneme i@
  vwl starttype #i endtype #@ lng
  length 240
  ChangeIfNotStressed(@)
  FMT(vdiph2/i@)
endphoneme
phoneme ia
  vwl starttype #i endtype #@ lng
  length 240
  ChangeIfNotStressed(@)
  FMT(vdiph2/i@_3)
endphoneme
phoneme u@
  vwl starttype #u endtype #@ lng
  length 240
  FMT(vdiph2/u@)
endphoneme
phoneme aI
  vwl starttype #a endtype #i lng
  length 240
  ChangeIfUnstressed(@)
  FMT(vdiph/ai)
endphoneme
phoneme eI
  vwl starttype #e endtype #i lng
  length 240
  FMT(vdiph/ei)
endphoneme
phoneme @I
  vwl starttype #@ endtype #i lng
  length 240
  FMT(vdiph/@i)
endphoneme
phoneme u-I
  vwl starttype #@ endtype #i lng
  ipa ɯɪ
  length 240
  FMT(vdiph/u-i)
endphoneme
phoneme aU
  vwl starttype #a endtype #u lng
  length 240
  ChangeIfUnstressed(@)
  FMT(vdiph/aau_4)
endphoneme
phoneme OU
  vwl starttype #@ endtype #u lng
  length 240
  FMT(vdiph/Vu)
endphoneme
// Consonants
phoneme b
  import_phoneme is/b
endphoneme
phoneme d
  import_phoneme is/d
endphoneme
phoneme d;
  import_phoneme hi/c
endphoneme
phoneme g
  import_phoneme is/g
endphoneme
phoneme g;
  vls vel stp
  Vowelin f1=0  f2=2700 400 600  f3=300 80 rate len=70
  Vowelout f1=1  f2=2700 400 600  f3=200 70 len=50 colr=1
  WAV(ustop/ki_ejc, 130)
endphoneme
phoneme k;
  vls vel stp
  Vowelin f1=0  f2=2700 400 600  f3=300 80 rate len=70
  Vowelout f1=1  f2=2700 400 600  f3=200 70 len=50 colr=1
  WAV(ustop/ki)
endphoneme
phoneme t
  import_phoneme hi/t#
endphoneme
phoneme t;
  import_phoneme hi/c#
endphoneme
phoneme S
  import_phoneme base1/S;
endphoneme
phoneme n[   // temporary
  import_phoneme n
endphoneme
phoneme *    // reduced [t] as in "city"
  vcd alv stp
  ipa ɾ
  lengthmod 5
  Vowelin f1=1  f2=1700 -300 300  f3=-100 80
  Vowelout f1=2 f2=1700 -300 300  f3=-100 80
  IF KlattSynth THEN
    IF PreVoicing THEN
      FMT(klatt/x_tap)
    ENDIF
    FMT(klatt/tap2) addWav(x/d, 70)
  ENDIF
  IF PreVoicing THEN
    FMT(d/x_tap)
  ENDIF
  FMT(d/tap2) addWav(x/d, 25)
endphoneme
phoneme *;
  import_phoneme D
endphoneme
phoneme R
  import_phoneme R2
endphoneme
phoneme &  // the epenthetic vowel
  vwl starttype #@ endtype #@
  unstressed
  length 130
  IF prevVowel(a) THEN
    ChangePhoneme(a)
  ELSEIF prevVowel(E) THEN
    IF prevPh(*) THEN
      ChangePhoneme(a)
    ELSE
      ChangePhoneme(E)
    ENDIF
  ELSEIF prevVowel(O) THEN
    ChangePhoneme(O)
  ELSEIF prevVowel(i) THEN
    ChangePhoneme(i)
  ELSEIF prevVowel(e) THEN
    ChangePhoneme(e)
  ELSEIF prevVowel(u) THEN
    ChangePhoneme(u)
  ELSEIF prevVowel(u-) THEN
    ChangePhoneme(u-)
  ELSEIF prevVowel(o-) THEN
    ChangePhoneme(o-)
  ENDIF
  ChangePhoneme(NULL)
endphoneme
phoneme #  // used for pre-aspiration
  vls glt apr
  IF NOT prevPhW(isVowel) OR thisPh(isNotStressed) OR prevVowel(isLong) THEN
    ChangePhoneme(NULL)
  ELSE
    IF nextPhW(g;) OR nextPhW(k;) THEN
      ChangePhoneme(C)
    ELSEIF nextPhW(g) OR nextPhW(k) THEN
      ChangePhoneme(x)
    ELSE
      ChangePhoneme(h)
    ENDIF
  ENDIF
endphoneme
// [h] only if followed by a vowel
phoneme h#
  vls glt apr
  IF nextPh(isVowel) THEN
    ChangePhoneme(h)
  ELSE
    ChangePhoneme(NULL)
  ENDIF
endphoneme
 |