| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730 | 
							- // ph_pashto - Phoneme table for Pashto language
 - // Created: March 2025 by Hanif Rahman
 - // Updated: March 2025 - Fixed vowel formants, improved retroflex consonants, corrected stress patterns
 - // This file defines phonemes specific to Pashto language
 - 
 - 
 - //====================================================
 - // VOWELS
 - //====================================================
 - 
 - phoneme a    // َ (zabar/fatha) - short 'a' as in "man"
 -   vwl starttype #a endtype #a
 -   length 180
 -   ipa a
 -   FMT(vowel/a)
 - endphoneme
 - 
 - phoneme a:   // ا - long 'aa' as in "father"
 -   vwl starttype #a endtype #a
 -   length 280
 -   ipa aː
 -   FMT(vowel/a)  // Keeping formant consistent with short 'a'
 - endphoneme
 - 
 - phoneme e    // ِ (zer/kasra) - short 'e' as in "bed" "ketab"
 -   vwl starttype #e endtype #e
 -   length 170
 -   ipa e
 -   FMT(vowel/e)
 - endphoneme
 - 
 - phoneme e:   // ې - long 'ee' as in "bait" "peshawar"
 -   vwl starttype #e endtype #e
 -   length 250
 -   ipa eː
 -   FMT(vowel/e_mid)  // Using e_mid for better long vowel quality
 - endphoneme
 - 
 - phoneme i    // ِ (zer/kasra) - short 'i' as in "sit" same as e?
 -   vwl starttype #i endtype #i
 -   length 170
 -   ipa i
 -   IfNextVowelAppend(;)
 -   FMT(vowel/i)
 - endphoneme
 - 
 - phoneme i:   // ي - long 'ee' as in "see"
 -   vwl starttype #i endtype #i
 -   length 250
 -   ipa iː
 -   IfNextVowelAppend(;)
 -   FMT(vowel/i)  // Using standard i vowel
 - endphoneme
 - 
 - phoneme o    // ُ (pesh/damma) - short 'o' as in "pot"
 -   vwl starttype #o endtype #o
 -   length 170
 -   ipa o
 -   FMT(vowel/o)
 - endphoneme
 - 
 - phoneme o:   // و - long 'o' as in "go"
 -   vwl starttype #o endtype #o
 -   length 250
 -   ipa oː
 -   FMT(vowel/o)  // Using standard o vowel
 - endphoneme
 - 
 - phoneme u    // ُ (pesh/damma) - short 'u' as in "put"
 -   vwl starttype #u endtype #u
 -   length 170
 -   ipa u
 -   FMT(vowel/u)
 - endphoneme
 - 
 - phoneme u:   // و - long 'oo' as in "moon"
 -   vwl starttype #u endtype #u
 -   length 250
 -   ipa uː
 -   FMT(vowel/u)  // Using standard u vowel
 - endphoneme
 - 
 - phoneme @    // ə - schwa sound as in "about"
 -   vwl starttype #@ endtype #@
 -   length 130
 -   ipa ə
 -   unstressed
 -   FMT(vowel/@)
 - endphoneme
 - 
 - // Add unstressed variants of vowels for better prosody
 - phoneme a#   // َ (zabar/fatha) - unstressed short 'a'
 -   vwl starttype #a endtype #a
 -   length 140  // shorter than stressed version
 -   ipa a
 -   unstressed
 -   FMT(vowel/a_8)
 - endphoneme
 - 
 - phoneme i#   // ِ (zer/kasra) - unstressed short 'i'
 -   vwl starttype #i endtype #i
 -   length 130  // shorter than stressed version
 -   ipa i
 -   unstressed
 -   IfNextVowelAppend(;)
 -   FMT(vowel/i_6)
 - endphoneme
 - 
 - phoneme u#   // ُ (pesh/damma) - unstressed short 'u'
 -   vwl starttype #u endtype #u
 -   length 130  // shorter than stressed version
 -   ipa u
 -   unstressed
 -   FMT(vowel/u_6)
 - endphoneme
 - 
 - //====================================================
 - // CONSONANTS SPECIFIC TO PASHTO
 - //====================================================
 - 
 - phoneme ts
 -   // څ in Pashto - voiceless alveolar affricate
 -   vls alv afr
 -   lengthmod 2
 -   ipa ts
 -   Vowelin f1=0  f2=1700 -300 300  f3=-100 80
 -   Vowelout f1=0 f2=1700 -300 250  f3=-100 80  rms=20
 -   WAV(ustop/ts)
 - endphoneme
 - 
 - phoneme dz
 -   // ځ in Pashto - voiced alveolar affricate
 -   vcd alv afr
 -   lengthmod 5
 -   ipa dz
 -   voicingswitch ts
 -   Vowelin f1=1  f2=1700 -300 300  f3=-100 80
 -   Vowelout f1=1 f2=1700 -300 300  f3=-100 80  brk
 -   WAV(ustop/ts) addWav(x/d, 70)  // Using standard WAV files
 - endphoneme
 - 
 - phoneme t.
 -   // ټ in Pashto - retroflex/plosive t
 -   vls rfx stp
 -   lengthmod 2
 -   ipa ʈ
 -   voicingswitch d.
 -   Vowelin f1=0  f2=1800 -300 300  f3=-200 80 colr=2
 -   Vowelout f1=0 f2=1800 -300 250  f3=-200 80 colr=2 rms=20
 -   WAV(ustop/t_)  // Using standard t_ WAV
 - endphoneme
 - 
 - phoneme d.
 -   // ډ in Pashto - retroflex/plosive d
 -   vcd rfx stp
 -   lengthmod 5
 -   ipa ɖ
 -   voicingswitch t.
 -   Vowelin f1=2  f2=1800 -300 300  f3=-200 80 colr=2
 -   Vowelout f1=2 f2=1800 -300 300  f3=-200 80 colr=2 brk
 -   WAV(ustop/t_) addWav(x/d, 60)  // Using standard WAV files
 - endphoneme
 - 
 - phoneme r.
 -   // ړ in Pashto - retroflex flap
 -   vcd rfx flp
 -   lengthmod 6
 -   ipa ɽ
 -   Vowelin f1=3  f2=1200 -400 -100  f3=-400 80 colr=2
 -   Vowelout f1=3 f2=1200 -400 -100  f3=-400 80 colr=2
 -   FMT(r3/r_) addWav(r3/rx, 80)  // Using standard FMT
 - endphoneme
 - 
 - phoneme n.
 -   // ڼ in Pashto - retroflex nasal
 -   vcd rfx nas
 -   lengthmod 4
 -   ipa ɳ
 -   Vowelin f1=2  f2=1200 -500 -300  f3=-400 80 colr=2
 -   Vowelout f1=2 f2=1200 -500 -300  f3=-400 80 colr=2
 -   FMT(n/n_)  // Using standard FMT
 - endphoneme
 - 
 - phoneme S.
 -   // ښ in Pashto - retroflex fricative
 -   vls rfx frc sib
 -   lengthmod 3
 -   ipa ʂ
 -   voicingswitch Z.
 -   Vowelin  f1=0  f2=1800 -100 300  f3=-400 80 colr=2
 -   Vowelout f1=0  f2=1800 -100 300  f3=-400 80 colr=2
 -   WAV(ufric/sh)  // Using standard sh WAV
 - endphoneme
 - 
 - phoneme Z.
 -   // ژ in Pashto - voiced retroflex fricative
 -   vcd rfx frc sib
 -   lengthmod 6
 -   ipa ʐ
 -   voicingswitch S.
 -   Vowelin  f1=0  f2=1800 0 300  f3=-400 80 colr=2
 -   Vowelout f1=2  f2=1800 0 300  f3=-400 80 colr=2 brk
 -   FMT(voc/zh) addWav(vocw/zh, 110)  // Using standard zh WAV
 - endphoneme
 - 
 - phoneme Z
 -   // ژ in Pashto - voiced post-alveolar fricative (like French j)
 -   vcd pla frc sib
 -   lengthmod 6
 -   ipa ʒ
 -   voicingswitch S
 -   Vowelin  f1=0  f2=2000 0 300  f3=-200 80
 -   Vowelout f1=2  f2=2000 0 300  f3=-200 80 brk
 -   FMT(voc/zh) addWav(vocw/zh, 130)
 - endphoneme
 - 
 - phoneme Q
 -   // غ in Pashto - voiced uvular fricative
 -   vcd uvl frc
 -   lengthmod 6
 -   ipa ʁ
 -   voicingswitch X
 -   Vowelin f1=2  f2=1000 -500 -350  f3=-200 80
 -   Vowelout f1=2 f2=1000 -500 -350  f3=-200 80 brk
 -   FMT(voc/Q) addWav(vocw/Q, 60)  // Increased WAV amplitude for better voicing
 - endphoneme
 - 
 - phoneme X
 -   // خ in Pashto - voiceless uvular fricative
 -   vls uvl frc
 -   lengthmod 3
 -   ipa χ
 -   voicingswitch Q
 -   Vowelin f1=0  f2=1000 -500 -350  f3=-200 80
 -   Vowelout f1=0 f2=1000 -500 -350  f3=-200 80
 -   WAV(ufric/xx, 90)  // Adjusted amplitude for better contrast with Q
 - endphoneme
 - 
 - phoneme g
 -   // ګ in Pashto - voiced velar stop
 -   vcd vel stp
 -   lengthmod 5
 -   ipa ɡ
 -   voicingswitch k
 -   Vowelin f1=2  f2=2300 200 300  f3=-300 80
 -   Vowelout f1=2  f2=2300 250 300  f3=-300 80 brk
 -   IF PreVoicing THEN
 -     FMT(g/xg)
 -   ENDIF
 -   IF nextPh(isPause2) THEN
 -     FMT(g/g_) addWav(x/g_)
 -   ENDIF
 -   FMT(g/g) addWav(x/g2, 150)
 - endphoneme
 - 
 - //====================================================
 - // CONSONANTS SHARED WITH OTHER LANGUAGES
 - //====================================================
 - 
 - phoneme p
 -   vls blb stp
 -   voicingswitch b
 -   lengthmod 2
 -   ipa p
 -   Vowelin  f1=0  f2=1000 -50  -100  f3=-200 80 amp=11
 -   Vowelout f1=0  f2=1000 -500 -350  f3=-300 80 rms=22
 -   WAV(ustop/p)
 - endphoneme
 - 
 - phoneme b
 -   vcd blb stp
 -   voicingswitch p
 -   lengthmod 5
 -   ipa b
 -   Vowelin  f1=2  f2=1000 -500 -300  f3=-300 80
 -   Vowelout f1=2  f2=1000 -500 -300  f3=-300 80 brk
 -   IF PreVoicing THEN
 -     FMT(b/xb)
 -   ENDIF
 -   IF nextPh(isPause2) THEN
 -     FMT(b/b_) addWav(x/b_)
 -   ENDIF
 -   FMT(b/b) addWav(x/b)
 - endphoneme
 - 
 - phoneme t
 -   vls alv stp
 -   voicingswitch d
 -   lengthmod 2
 -   ipa t
 -   Vowelin f1=0  f2=1700 -300 300  f3=-100 80
 -   Vowelout f1=0 f2=1700 -300 250  f3=-100 80  rms=20
 -   WAV(ustop/t)
 - endphoneme
 - 
 - phoneme d
 -   vcd alv stp
 -   voicingswitch t
 -   lengthmod 5
 -   ipa d
 -   Vowelin f1=1  f2=1700 -300 300  f3=-100 80
 -   Vowelout f1=1 f2=1700 -300 300  f3=-100 80 brk
 -   IF PreVoicing THEN
 -     FMT(d/xd)
 -   ENDIF
 -   IF nextPh(isPause2) THEN
 -     FMT(d/d_) addWav(x/d_)
 -   ENDIF
 -   FMT(d/d) addWav(x/d)
 - endphoneme
 - 
 - phoneme k
 -   vls vel stp
 -   voicingswitch g
 -   lengthmod 2
 -   ipa k
 -   Vowelin f1=0  f2=2300 200 300  f3=-200 80
 -   Vowelout f1=0 f2=2300 300 400  f3=-200 80  rms=20
 -   IF nextPh(isPause2) THEN
 -     WAV(ustop/k_)
 -   ENDIF
 -   WAV(ustop/k)
 - endphoneme
 - 
 - phoneme tS
 -   // چ in Pashto - voiceless post-alveolar affricate
 -   vls pla afr sib
 -   voicingswitch dZ
 -   lengthmod 2
 -   ipa t͡ʃ
 -   Vowelin f1=0  f2=2300 200 400  f3=-100 80
 -   Vowelout f1=0 f2=2300 300 400  f3=-100 80
 -   WAV(ustop/tsh)
 - endphoneme
 - 
 - phoneme dZ
 -   // ج in Pashto - voiced post-alveolar affricate
 -   vcd pla afr sib
 -   voicingswitch tS
 -   lengthmod 5
 -   ipa d͡ʒ
 -   Vowelin f1=2  f2=2300 200 400  f3=-100 80
 -   Vowelout f1=2 f2=2300 250 300  f3=-100 80 brk
 -   IF PreVoicing THEN
 -     FMT(dzh/xdzh)
 -   ENDIF
 -   IF nextPh(isPause2) THEN
 -     FMT(dzh/dzh_) addWav(x/dzh_)
 -   ENDIF
 -   FMT(dzh/dzh) addWav(x/dzh)
 - endphoneme
 - 
 - phoneme f
 -   vls lbd frc
 -   voicingswitch v
 -   lengthmod 3
 -   ipa f
 -   Vowelin  f1=0  f2=1000 -500 -350  f3=-200 80
 -   Vowelout f1=0  f2=1000 -500 -350  f3=-200 80
 -   WAV(ufric/f)
 - endphoneme
 - 
 - phoneme v
 -   vcd lbd frc
 -   voicingswitch f
 -   lengthmod 6
 -   ipa v
 -   Vowelin  f1=0  f2=1000 -300 -200  f3=-300 100
 -   Vowelout f1=0  f2=1000 -500 -300  f3=-300 60  len=50
 -   IF nextPh(isPause2) THEN
 -     FMT(voc/v_) addWav(vocw/v)
 -   ENDIF
 -   FMT(voc/v) addWav(vocw/v)
 - endphoneme
 - 
 - phoneme s
 -   vls alv frc sib
 -   voicingswitch z
 -   lengthmod 3
 -   ipa s
 -   Vowelin  f1=0  f2=1700 -300 300  f3=-100 80
 -   Vowelout f1=0  f2=1700 -300 300  f3=-100 80
 -   WAV(ufric/s)
 - endphoneme
 - 
 - phoneme z
 -   vcd alv frc sib
 -   voicingswitch s
 -   lengthmod 6
 -   ipa z
 -   Vowelin  f1=0  f2=1700 -300 300  f3=-100 80
 -   Vowelout f1=0 f2=1700 -300 300  f3=-100 80 brk
 -   IF nextPh(isPause2) THEN
 -     FMT(voc/z_) addWav(ufric/s_, 70)
 -   ENDIF
 -   FMT(voc/z) addWav(ufric/s_, 85)
 - endphoneme
 - 
 - phoneme S
 -   vls pla frc sib
 -   voicingswitch Z
 -   lengthmod 3
 -   ipa ʃ
 -   Vowelin  f1=0  f2=2100 100 300  f3=-100 80
 -   Vowelout f1=0  f2=2100 100 300  f3=-100 80
 -   WAV(ufric/sh)
 - endphoneme
 - 
 - phoneme x
 -   vls vel frc
 -   voicingswitch Q
 -   lengthmod 3
 -   ipa x
 -   Vowelin  f1=0  f2=2300 200 400  f3=-200 80
 -   Vowelout f1=0  f2=2300 300 400  f3=-200 80
 -   WAV(ufric/x_hr, 30)  // Increased amplitude for better clarity
 - endphoneme
 - 
 - phoneme h
 -   vls glt frc
 -   lengthmod 3
 -   ipa h
 -   Vowelin  f1=0  f2=2300 200 400  f3=-200 80  // Added Vowelin parameters
 -   Vowelout f1=0  f2=2300 300 400  f3=-200 80
 -   IF nextPh(#@) THEN
 -     WAV(h/h@)
 -   ELIF nextPh(#a) THEN
 -     WAV(h/ha)
 -   ELIF nextPh(#e) THEN
 -     WAV(h/he)
 -   ELIF nextPh(#i) THEN
 -     WAV(h/hi)
 -   ELIF nextPh(#o) THEN
 -     WAV(h/ho)
 -   ELIF nextPh(#u) THEN
 -     WAV(h/hu)
 -   ENDIF
 -   WAV(h/h_, 70)
 - endphoneme
 - 
 - phoneme m
 -   vcd blb nas
 -   lengthmod 4
 -   ipa m
 -   Vowelin  f1=0  f2=1000 -50 -200  f3=-200 80  // Moved Vowelin before Vowelout for consistency
 -   Vowelout f1=2  f2=1000 -500 -350  f3=-200 80 brk
 -   
 -   IF KlattSynth THEN
 -     IF nextPh(isPause2) THEN
 -       FMT(klatt/m_)
 -     ENDIF
 -     FMT(klatt/m)
 -   ENDIF
 - 
 -   NextVowelStarts
 -     VowelStart(m/m@)
 -     VowelStart(m/ma)
 -     VowelStart(m/me)
 -     VowelStart(m/mi)
 -     VowelStart(m/mo)
 -     VowelStart(m/mu)
 -   EndSwitch
 - 
 -   IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN
 -     FMT(m/mj)
 -   ELIF prevPh(isPause) THEN
 -     FMT(m/_m)
 -   ELIF nextPh(isNotVowel) THEN
 -     FMT(m/m_)
 -   ENDIF
 - endphoneme
 - 
 - phoneme n
 -   vcd alv nas
 -   lengthmod 4
 -   ipa n
 -   Vowelin f1=0 f2=1500 -200 200 f3=0 80  // Moved Vowelin before Vowelout for consistency
 -   Vowelout f1=2 f2=1500 -300 250  f3=-100 80  rms=20 brk
 - 
 -   IF KlattSynth THEN
 -     FMT(klatt/n)
 -   ENDIF
 - 
 -   NextVowelStarts
 -     VowelStart(n/n@)
 -     VowelStart(n/na)
 -     VowelStart(n/ne)
 -     VowelStart(n/ni)
 -     VowelStart(n/no)
 -     VowelStart(n/nu)
 -   EndSwitch
 - 
 -   IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN
 -     FMT(n/nj)
 -   ELIF prevPh(isPause) OR prevPh(n) THEN
 -     FMT(n/_n)
 -   ELIF nextPh(isNotVowel) THEN
 -     FMT(n/n_)
 -   ENDIF
 - endphoneme
 - 
 - phoneme N
 -   vcd vel nas
 -   lengthmod 8
 -   ipa ŋ
 -   Vowelin f1=0 f2=2100 50 300 f3=0 80  // Moved Vowelin before Vowelout for consistency
 -   Vowelout f1=3 f2=2300 300 400  f3=-200 80  len=40 rms=20 brk
 - 
 -   IF KlattSynth THEN
 -     IF nextPh(isPause2) THEN
 -       FMT(klatt/nn_)
 -     ENDIF
 -     FMT(klatt/nn)
 -   ENDIF
 - 
 -   NextVowelStarts
 -     VowelStart(nn/nn@)
 -     VowelStart(nn/nna)
 -     VowelStart(nn/nne)
 -     VowelStart(nn/nni)
 -     VowelStart(nn/nno)
 -     VowelStart(nn/nnu)
 -   EndSwitch
 - 
 -   IF prevPh(#i) THEN
 -     VowelEnding(nn/inn, -40)
 -   ENDIF
 - 
 -   IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN
 -     FMT(nn/nnj)
 -   ELIF prevPh(isPause) THEN
 -     FMT(nn/_nn)
 -   ELIF nextPh(isNotVowel) THEN
 -     FMT(nn/nn_)
 -   ENDIF
 - endphoneme
 - 
 - phoneme l
 -   liquid
 -   lengthmod 7
 -   ipa l
 - 
 -   IF nextPh(isNotVowel) THEN
 -     ChangePhoneme(l/)
 -   ENDIF
 - 
 -   CALL vowelstart_l
 - 
 -   IF prevPh(#@) THEN
 -     VowelEnding(l/xl, -50)
 -   ELIF prevPh(isVowel) THEN
 -     VowelEnding(l/xl, -40)
 -   ENDIF
 - 
 -   IF prevPh(isPause) THEN
 -     FMT(l/_l)
 -   ENDIF
 - 
 -   IF prevPh(t) THEN
 -     FMT(l/tl)
 -   ENDIF
 - 
 -   IF prevPh(l/) THEN
 -     FMT(l/l_long)    // double l, make it longer
 -   ENDIF
 - 
 -   FMT(l/l)
 - endphoneme
 - 
 - phoneme l/
 -   liquid
 -   lengthmod 7
 -   ipa l̥ 
 - 
 -   IF nextPh(isVowel) THEN
 -     ChangePhoneme(l)
 -   ENDIF
 - 
 -   PrevVowelEndings
 -     VowelEnding(l/L1_@L, -60)
 -     VowelEnding(l/L1_aL, -40)
 -     VowelEnding(l/L1_eL, -30)
 -     VowelEnding(l/L1_iL, -30)
 -     VowelEnding(l/L1_oL, -40)
 -     VowelEnding(l/L1_uL, -40)
 -   EndSwitch
 - 
 -   IF prevPhW(j) THEN
 -     FMT(l/L1_eL)
 -   ENDIF
 -   IF prevPhW(w) THEN
 -     FMT(l/L1_eL)
 -   ENDIF
 - 
 -   FMT(l/l_)
 - endphoneme
 - 
 - phoneme r
 -   liquid rhotic
 -   lengthmod 7
 -   ipa r
 - 
 -   IF nextPh(isNotVowel) THEN
 -     ChangePhoneme(r/)
 -   ENDIF
 - 
 -   NextVowelStarts
 -     VowelStart(r/r@, -15)
 -     VowelStart(r/ra, -15)
 -     VowelStart(r/re, -15)
 -     VowelStart(r/ri, -15)
 -     VowelStart(r/ro, -15)
 -     VowelStart(r/ru, -15)
 -   EndSwitch
 - 
 -   IF prevPh(isVowel) THEN
 -     VowelEnding(r/xr, -50)
 -   ENDIF
 - 
 -   IF prevPh(isPause) THEN
 -     FMT(r/_r)
 -   ELIF prevPh(t) OR prevPh(p) OR prevPh(k) THEN
 -     FMT(r/tr)
 -   ENDIF
 - 
 -   FMT(r/r)
 - endphoneme
 - 
 - phoneme r/
 -   liquid rhotic
 -   lengthmod 2
 -   ipa r̥
 - 
 -   IF prevPh(t) OR prevPh(p) OR prevPh(k) THEN
 -     FMT(r/trr)
 -   ENDIF
 - 
 -   IF prevPh(isNotVowel) THEN
 -     FMT(r/rr)
 -   ENDIF
 - 
 -   FMT(r3/r_) addWav(r3/rx)
 - endphoneme
 - 
 - phoneme j
 -   liquid pal starttype #i
 -   lengthmod 7
 -   ipa j
 - 
 -   IF nextPhW(isVowel) THEN
 -     NextVowelStarts
 -       VowelStart(j/j@)
 -       VowelStart(j/ja)
 -       VowelStart(j/je)
 -       VowelStart(j/ji)
 -       VowelStart(j/jo)
 -       VowelStart(j/ju)
 -     EndSwitch
 - 
 -     VowelEnding(j/xj, -30)
 - 
 -     IF prevPh(isPause) THEN
 -       FMT(j/_j)
 -     ENDIF
 -   ELSE
 -     // no vowel follows
 -     Vowelout len=70
 -     FMT(j/j_)
 -   ENDIF
 - endphoneme
 - 
 - phoneme w
 -   liquid
 -   lengthmod 7
 -   starttype #u
 -   ipa w
 -   
 -   IF nextPh(isVowel) THEN
 -     NextVowelStarts
 -       VowelStart(w/w@)
 -       VowelStart(w/wa)
 -       VowelStart(w/we)
 -       VowelStart(w/wi)
 -       VowelStart(w/wo)
 -       VowelStart(w/wu)
 -     EndSwitch
 - 
 -     VowelEnding(w/xw, -30)
 - 
 -     IF prevPhW(isNasal) THEN
 -       FMT(w/w)
 -     ELSEIF prevPhW(h) THEN
 -       // none,  [hw]
 -     ELSE
 -       FMT(w/_w)
 -     ENDIF
 -   ELSE
 -     // no vowel follows
 -     Vowelout len=50
 -     IF prevPh(#i) THEN
 -       FMT(w/iw_)
 -     ENDIF
 -     FMT(w/w_)
 -   ENDIF
 - endphoneme
 - 
 - phoneme q
 -   vls uvl stp
 -   lengthmod 2
 -   ipa q
 -   Vowelin f1=1  f2=1700 0 200  f3=-300 80 gpaus f4 rms=30
 -   Vowelout f1=1 f2=1700 -100 200  f3=-300 80  f4 rms=35
 - 
 -   IF nextPh(isPause2) THEN
 -     WAV(ustop/q, 40)
 -   ELIF nextPh(#u) THEN
 -     WAV(ustop/q_u, 80)
 -   ENDIF
 -   WAV(ustop/q, 48)
 - endphoneme
 - 
 - phoneme ?
 -   vls glt stp
 -   lengthmod 3
 -   ipa ʔ
 -   nolink
 -   Vowelin  glstop
 -   Vowelout glstop
 -   WAV(ustop/null)
 - endphoneme
 
 
  |