| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282 | 
							- 
 - //====================================================
 - //  Catalan valencian - based on Catalan (and Spanish and Base2)
 - //====================================================
 - 
 - // vowels 
 - //=============
 - 
 - phoneme a
 -   vwl starttype #a endtype #a
 -   length 180
 -   FMT(vowel/a_6)
 - endphoneme
 - 
 - phoneme a2 // does not change in central accent
 -   vwl starttype #a endtype #a
 -   length 180
 -   FMT(vowel/a_6)
 - endphoneme
 - 
 - phoneme e
 -   vwl starttype #e endtype #e
 -   length 170
 -   IF thisPh(isUnstressed) THEN
 -     IF thisPh(isWordStart) THEN
 -         IF nextPh(s) OR nextPh(n) OR nextPh(m) OR nextPh(**) OR nextPh(R) THEN
 -             ChangePhoneme(a)
 -         ELIF nextPh(j) AND next2Ph(S) THEN
 -             ChangePhoneme(a)
 -         ENDIF
 -     ENDIF
 -   ENDIF
 -   FMT(vowel/e)
 - endphoneme
 - 
 - phoneme e2 // don't reduce
 -   vwl starttype #e endtype #e
 -   length 170
 -   FMT(vowel/e)
 - endphoneme
 - 
 - phoneme E
 -   vwl starttype #e endtype #e
 -   length 180
 -   IF thisPh(isUnstressed) THEN
 -     IF thisPh(isWordStart) THEN
 -         IF nextPh(s) OR nextPh(n) OR nextPh(m) OR nextPh(**) OR nextPh(R) THEN
 -             ChangePhoneme(a)
 -         ELIF nextPh(j) AND next2Ph(S) THEN
 -             ChangePhoneme(a)
 -         ELSE 
 -             ChangePhoneme(e)
 -         ENDIF
 -     ELSE
 -         ChangePhoneme(e)
 -     ENDIF
 -   ENDIF
 -   FMT(vowel/e_mid)
 - endphoneme
 - 
 - phoneme E2    // don't reduce
 -   vwl starttype #e endtype #e
 -   length 180
 -   ChangeIfUnstressed(e2)
 -   FMT(vowel/e_mid)
 - endphoneme
 - 
 - phoneme O
 -   vwl starttype #o endtype #o
 -   length 170 
 -   ChangeIfUnstressed(o)
 -   FMT(vowel/oo)
 - endphoneme
 - 
 - phoneme o2
 -   vwl starttype #o endtype #o
 -   length 170
 -   ChangeIfStressed(O)
 -   FMT(vowel/o)
 - endphoneme
 - 
 - phoneme o
 -   vwl starttype #o endtype #o
 -   length 170  
 -   FMT(vowel/o)
 - endphoneme
 - 
 - phoneme u
 -   vwl starttype #u endtype #u
 -   length 160
 -   IF thisPh(isUnstressed) THEN
 -     IF thisPh(isWordEnd) THEN
 -         IF nextPh(isVowel) THEN
 -             IF nextPh(u) OR nextPh(w) THEN
 -             ELSE
 -                 ChangePhoneme(w)
 -             ENDIF
 -         ENDIF
 -     ELIF thisPh(isWordStart) THEN
 -         IF prevPh(isVowel) THEN
 -             ChangePhoneme(w)
 -         ENDIF
 -     ENDIF
 -   ENDIF  
 -   FMT(vowel/u_bck)
 - endphoneme
 - 
 - phoneme i
 -   vwl starttype #i endtype #i
 -   length 170
 -   IF thisPh(isUnstressed) AND nextPh(isVowel) THEN
 -       ChangePhoneme(j)
 -   ENDIF
 -   FMT(vowel/i)
 - endphoneme
 - 
 - // nasals
 - //==============
 - 
 - phoneme n
 -   vcd alv nas
 -   Vowelout f1=2 f2=1500 -300 250  f3=-100 80  rms=20 brk
 -   lengthmod 4
 - 
 -   IF KlattSynth THEN
 -     Vowelin f1=0 f2=1500 -200 200 f3=0 80
 -     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 nextPh(f) OR nextPh(v) THEN
 -     ChangePhoneme(M)
 -   ELIF nextPh(k) OR nextPh(g) THEN
 -       ChangePhoneme(N)
 -   ELIF nextPh(p) OR nextPh(b) OR nextPh(m) THEN
 -       ChangePhoneme(m)
 -   ENDIF
 - 
 -   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
 - 
 - // R
 - //=====================
 - phoneme R
 -   liquid trl
 -   lengthmod 6
 -   ipa r
 -   IF thisPh(isWordEnd) THEN
 -     ChangePhoneme(**)
 -   ENDIF
 -   Vowelin  f1=0  f2=1600 -300 300  f3=-200 80
 -   Vowelout f1=2  f2=1600 -300 300  f3=-200 80 brk
 -   FMT(r3/r_trill2) addWav(r3/r_trill2.wav, 65)
 - endphoneme
 - 
 - // affricates
 - //================ 
 - 
 - phoneme Z
 -   vcd pla frc sib
 -   voicingswitch S
 -   lengthmod 6
 -   Vowelin  f1=0  f2=2000 0 300  f3=-200 80
 -   Vowelout f1=2  f2=2000 0 300  f3=-200 80 brk
 -   ChangePhoneme(dZ)
 - endphoneme
 - 
 - phoneme S 
 -   vls pla frc sib
 -   voicingswitch Z
 -   lengthmod 3
 -   Vowelin  f1=0  f2=2100 100 300  f3=-100 80
 -   Vowelout f1=0  f2=2100 100 300  f3=-100 80
 -   IF prevPh(i) OR prevPh(j) THEN
 -     IF thisPh(isWordEnd) AND nextPh(isVoiced) THEN
 -         ChangePhoneme(Z)
 -     ENDIF
 -   ELSE
 -     ChangePhoneme(tS)
 -   ENDIF
 -   WAV(ufric/sh)
 - endphoneme
 - 
 - 
 - phoneme v
 -   vcd lbd frc
 -   voicingswitch f
 -   lengthmod 6
 -   Vowelin  f1=0  f2=1000 -300 -200  f3=-300 100
 -   Vowelout f1=0  f2=1000 -500 -300  f3=-300 60  len=50
 - 
 -   IF KlattSynth THEN
 -     Vowelout f1=1  f2=1000 -500 -300  f3=-300 60  len=50 brk
 -     IF nextPh(isPause2) THEN
 -       FMT(klatt/v_) addWav(vocw/v)
 -     ENDIF
 -     FMT(klatt/v) addWav(vocw/v, 150)
 -   ENDIF
 - 
 -   IF nextPh(isPause2) THEN
 -     FMT(voc/v_) addWav(vocw/v)
 -   ENDIF
 -   IF thisPh(isWordStart) AND nextPhW(isLiquid) THEN
 -     length 70
 -   ENDIF
 -   FMT(voc/v) addWav(vocw/v)
 - endphoneme
 - 
 - // Occlusive stops
 - //================= 
 - 
 - phoneme b
 -   vcd blb stp
 -   IF thisPh(isWordEnd) THEN
 -     IF nextPh(isVoiced) AND nextPh(isNotVowel) THEN
 -     ELIF prevPh(m) THEN
 -     ELSE
 -       ChangePhoneme(p)
 -     ENDIF
 -   ELIF nextPh(s) AND nextPh(isWordEnd) AND next2Ph(isVoiced) THEN // keep sonority 
 -   ELIF nextPh(isVoiced) THEN
 -     IF nextPh(isVowel) OR nextPh(isRhotic) OR nextPh(l) OR nextPh(j) OR nextPh(w) THEN
 -       IF prevPh(isVowel) OR prevPh(isLiquid) OR prevPh(isVFricative) THEN
 -         IF prevPh(**) OR prevPh(R) THEN //***"embarbussa"***
 -         ELSE
 -             ChangePhoneme(B)
 -         ENDIF
 -       ENDIF
 -     ENDIF  
 -   ELSE
 -     ChangePhoneme(p)
 -   ENDIF
 - 
 -   CALL base1/b
 - 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 thisPh(isWordEnd) THEN
 -     IF nextPh(isVoiced) AND nextPh(isNotVowel) THEN
 -     ELSE
 -       ChangePhoneme(k)
 -     ENDIF
 -   ELIF nextPh(s) AND nextPh(isWordEnd) AND next2Ph(isVoiced) THEN // keep sonority 
 -   ELIF nextPh(isVoiced) THEN
 -     IF nextPh(isVowel) OR nextPh(isRhotic) OR nextPh(l) OR nextPh(j) OR nextPh(w) THEN
 -       IF prevPh(isVowel) OR prevPh(isLiquid) OR prevPh(isVFricative) THEN
 -            ChangePhoneme(Q)
 -       ENDIF
 -     ELIF nextPh(n) THEN
 -         ChangePhoneme(N)
 -     ENDIF  
 -   ELSE
 -     ChangePhoneme(k)
 -   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)      
 - endphoneme
 
 
  |