% VocalTract.sty
% Release version 1
%------------------------------------------------------------
% Vocal Tract Animation package for Latex:
% - for upper and lower respiration system
% - with Matlab Interoperability
%
% Copyright:
%
% This material is subject to the LaTeX Project Public License.
% See
http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html
% for the details of that license.
%
% Thermi, Greece, 13-03-2012
%-------------------------------------------------------------
% Required Packages
\usepackage{color}
\definecolor{pink}{rgb}{.7,.7,.7}
\usepackage{multimedia,multido,animate,fp}
\usepackage{pstricks,pst-coil}
\usepackage{arrayjob,ifthen}
% After fp
\usepackage[point]{fltpoint}
%%=====================================================
%% Maeda Coordinates
%%=====================================================
\@ifundefined{SpeakVec}{
\newarray\SpeakVec
\readarray{SpeakVec}{%
%%========================================================================================
%% 1. Jaw Position 4. Tongue Apex 7. Larynx Height 10. Nasal Cavity
%% 2. Tongue Position 5. Lip Aperture 8. Glottal Aperture 11. Phoneme Label
%% 3. Tongue Shape 6. Lip Protrusion 9. Glottal Frequency
%%========================================================================================
%% 1 2 3 4 5 6 7 8 9 10 11
%% JW TP TS TA LA LP LH GA FX NS
%% 3 3 3 3 3 3 3 3 3 3 Max
%% 0 0 0 0 0 0 0 0 0 0 Relax
%% -3 3 -3 -3 -3 -3 -3 -3 -3 -3 Min
%%========================================================================================
%------------------------------------------------------------ Vowels -------------
0.5 &-2 & 1 &-2 & 1 & -1 & 0 & 0 & 0 & 0 &i& % 1
0.5 &-2 & 1 &-2 & 0 & 2 & 0 & 0 & 0 & 0 &y& % 2 (\"u)
-1 &-1 & 1 &-2 & 1 & -0.5 & 0 & 0 & 0 & 0 &e& % 3
-1 &-1 & 1 &-2 & 0 & 2 & 0 & 0 & 0 & 0 &2& % 4 (\"o)
-1.5 & 2.5 & 0 &-0.5 & 0 & 2 & 0 & 0 & 0 & 0 &E& % 5 (\"a)
-1.5 & 1.5 & 0 & 0.5 & 0.5& -0.5 & 0 & 0 & 0 & 0 &@& % 6 (Schwa)
-1.5 & 2.5 & 0 &-0.5 & 0.5& -0.5 & 0 & 0 & 0 & 0 &a& % 7
0.5 & 2 & 1.5 &-2 &-1 & 1.5 & 0 & 0 & 0 & 0 &u& % 8
-0.4 & 3.0 & 1.5 & 0 &-0.3& 0 & 0 & 0 & 0 & 0 &o& % 9
%-------------------------------------------------------------------Unvoiced Cons.--------
0 & 0 & 0 & 0 &-3 & 0 & 0 &-3 & -3 & -3 &p& % 10 % UPlosives
0 & -0.5 &-1 & 2.3 & 0 & 0 & 0 &-3 & -3 & -3 &t& % 11
0 & -1.5 & 3 & -3 & 0 & 0 & 0 &-3 & -3 & -3 &k& % 12
2 & 1 & 0 & 0 &-1.5& -2 & 0 &-3 & -3 & -3 &f& % 13 % UFricatives
2.5 & 0 & 0 & 0.4 & 0 & 0 & 0 &-3 & -3 & -3 &s& % 14
0 & -1 & 3 & -3 & 0 & 0 & 0 &-3 & -3 & -3 &x& % 15
%----------------------------------------------------------------- Voiced Cons. --------
0 & 0 & 0 & 0 &-3 & 0 &-1 & -1 & 0 & -3 &b& % 16 % VPlosives
0 & -0.5 &-1 & 2.3 & 0 & 0 & 0 & -1 & 0 & -3 &d& % 17
0 & -1.5 & 3 & -3 & 0 & 0 & 0 & -1 & 0 & -3 &g& % 18
1 & 0 & 0 & 3 & 0 & 0 & 0 & -1 & 0 & 0 &r& % 19 % Rolled
0 & -2 & 3 & 3 & 0 & 0 & 0 & -1 & 0 & 0 &l& % 20 % Lateral
0 & 2.3 & 2.5 & -2 & 0 & 0 & 0 & -1 & 0 & 0 &R& % 21 % Approximants
1 & 0 & 2 & 0 & 0 & 0 & 0 & -1 & 0 & 0 &j& % 22
2 & 1 & 0 & 0 &-1.5& -2 & 0 & -1 & 0 & 0 &v& % 23 % VFricatives
2.5 & 0 & 0 & 0.4 & 0 & 0 & 0 & -1 & 0 & 0 &z& % 24
0 & 0 & 0 & 0 &-3 & -1 & 0 & -1 & 0 & 0 &m& % 25 % Nasals
0.5 & 0 & 0 & 3 & 0 & 0 & 0 & -1 & 0 & 0 &n& % 26
}
\dataheight=11
\def\Nframes{27}
}{}
%--------------------------------------------------------------------------------------
% Maeda Loading Factors for
% Tongue Larynx Lips
% A[i][0] A[i][1] A[i][2] A[i][3] s_tng[i] u_tng[i vtos[i].x vtos[i].y igd[i].x igd[i].y | A_lrx[i][0,1] s_rlx[i] u_lrx[i] | A_lip[i][0,1,2] s_lip[i] u_lip[i]
% 10 11,12 13 14 15,16,17 18 19
\newarray\AMaeda
\readarray{AMaeda}{%
1.000000 & 0.000000 & 0.000000 & 0.000000 & 0.293351 & 1.105280 & 0 & 0 & 0 & 0 & 1.000000 & 0.000000 & 0.293351 & 1.105280 & 1.000000 & 0.000000 & 0.000000 & 0.293351 & 1.105280 &%
-0.464047 & 0.098776 & -0.251690 & 0.228351 & 0.317448 & 4.706277 & 0.980785 &-0.195090 & 10.634367 & 5.134503 & -0.208338 & 0.262446 & 0.440889 & 1.517271 & 0.178244 & -0.395733 & 0.888897 & 0.350522 & 1.301809 &%
-0.328015 & 0.337579 & -0.283667 & 0.568234 & 0.473761 & 4.775106 & 0.980785 &-0.195090 & 10.829458 & 6.115289 & 0.127814 & 0.991798 & 0.694961 & -10.051230 & -0.154638 & 0.987971 & 0.000000 & 1.053558 & 1.440946 &%
-0.213039 & 0.485565 & -0.283533 & 0.653696 & 1.052688 & 4.239388 & 0.980785 &-0.195090 & 11.024549 & 7.096074 & -0.131840 & 0.300784 & 0.470351 & 4.289589 & -0.217332 & 0.825187 & -0.303429 & 2.268359 & 4.880673 &%
-0.302565 & 0.705432 & -0.379044 & 0.392917 & 1.026836 & 3.695193 & 0.980785 &-0.195090 & 11.219639 & 8.076859 & 0.097688 & 0.934267 & 0.701163 & -10.207126 & 0 & 0 & 0 & 0 & 0 &%
-0.327806 & 0.786897 & -0.388116 & 0.245703 & 0.891888 & 3.722520 & 0.980785 &-0.195090 & 11.414729 & 9.057644 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 &%
-0.325065 & 0.852409 & -0.285125 & 0.176843 & 0.830590 & 3.873289 & 0.980785 &-0.195090 & 11.609819 & 10.038429 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 &%
-0.325739 & 0.904725 & -0.142602 & 0.138558 & 0.777910 & 3.925084 & 0.980785 &-0.195090 & 11.804910 & 11.019215 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 &%
-0.313741 & 0.926339 & 0.021042 & 0.122976 & 0.773024 & 3.775744 & 0.980785 &-0.195090 & 12.000000 & 12.000000 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 &%
-0.288138 & 0.924019 & 0.131949 & 0.116762 & 0.757404 & 3.624036 & 1.000000 & 0.000000 & 12.000000 & 12.000000 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 &%
-0.249008 & 0.909585 & 0.250320 & 0.112433 & 0.734461 & 3.520446 & 0.980785 & 0.195090 & 12.000000 & 12.000000 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 &%
-0.196936 & 0.882236 & 0.369083 & 0.112396 & 0.706124 & 3.464362 & 0.923880 & 0.382684 & 12.000000 & 12.000000 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 &%
-0.128884 & 0.830243 & 0.499894 & 0.115700 & 0.674199 & 3.461033 & 0.831470 & 0.555570 & 12.000000 & 12.000000 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 &%
-0.040825 & 0.730520 & 0.651662 & 0.112048 & 0.635628 & 3.515299 & 0.707107 & 0.707107 & 12.000000 & 12.000000 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 &%
0.073420 & 0.543080 & 0.807947 & 0.126204 & 0.600972 & 3.637658 & 0.555570 & 0.831470 & 12.000000 & 12.000000 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 &%
0.202726 & 0.230555 & 0.919065 & 0.163735 & 0.598000 & 3.829419 & 0.382684 & 0.923880 & 12.000000 & 12.000000 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 &%
0.298853 & -0.162541 & 0.899074 & 0.213884 & 0.657375 & 4.083451 & 0.195090 & 0.980785 & 12.000000 & 12.000000 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 &%
0.332785 & -0.491647 & 0.748869 & 0.243163 & 0.776293 & 4.365362 & 0.000000 & 1.000000 & 12.000000 & 12.000000 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 &%
0.349955 & -0.681313 & 0.567615 & 0.245295 & 0.890489 & 4.618332 & -0.195090 & 0.980785 & 12.000000 & 12.000000 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 &%
0.377277 & -0.771200 & 0.410502 & 0.249425 & 0.969776 & 4.823429 & -0.382684 & 0.923879 & 12.000000 & 12.000000 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 &%
0.422713 & -0.804874 & 0.270513 & 0.274015 & 0.997716 & 4.905002 & -0.382684 & 0.923880 & 11.076120 & 11.617316 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 &%
0.474635 & -0.797704 & 0.129324 & 0.314454 & 1.009611 & 4.802065 & -0.382684 & 0.923880 & 10.152241 & 11.234632 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 &%
0.526087 & -0.746938 & -0.026201 & 0.366149 & 0.991273 & 4.581855 & -0.382684 & 0.923880 & 9.228361 & 10.851950 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 &%
0.549466 & -0.643572 & -0.190005 & 0.422848 & 0.985804 & 4.317999 & -0.382684 & 0.923880 & 8.304482 & 10.469266 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 &%
0.494200 & -0.504012 & -0.350434 & 0.488056 & 1.069908 & 4.076241 & -0.382683 & 0.923880 & 7.380602 & 10.086582 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 &%
0.448797 & -0.417352 & -0.445410 & 0.500909 & 1.129032 & 3.856664 & -0.382684 & 0.923880 & 6.456723 & 9.703898 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 &%
}
\dataheight=19
%---------------------------------------------------------------------------------------
% Recall values from array
\def\RdVal#1#2#3{%
\dataheight=11
\checkSpeakVec(#2,#3)
\edef#1{\cachedata}}
\def\RdValM#1#2#3{%
\dataheight=19
\checkAMaeda(#2,#3)
\edef#1{\cachedata}}
% -- Tongue -- 1 2 3 4 5 6 7
% {\vtngCx}{\vtngCy}{\JW}{\TP}{\TS}{\TA}{3}
\def\TongDepolarLinSys#1#2#3#4#5#6#7{
% Maeda Linear Transformations by Factor Analysis
% vA vB vC vD
%1 = \ATongA*2 + \ATongB*3 + \ATongC*4 + \ATongD*5
\RdValM{\ATongA}{#7}{1}
\RdValM{\ATongB}{#7}{2}
\RdValM{\ATongC}{#7}{3}
\RdValM{\ATongD}{#7}{4}
\fpMul\vA{\ATongA}{#3}
\fpMul\vB{\ATongB}{#4}
\fpMul\vC{\ATongC}{#5}
\fpMul\vD{\ATongD}{#6}
\fpAdd\v\vA\vB
\fpAdd\v\v\vC
\fpAdd\v\v\vD
%------ Depolarize --------
\RdValM{\stng}{#7}{5}
\RdValM{\utng}{#7}{6}
\RdValM{\vtosx}{#7}{7}
\RdValM{\vtosy}{#7}{8}
\RdValM{\igdx}{#7}{9}
\RdValM{\igdy}{#7}{10}
%
% Estimate v_tng[i] from v
\fpMul\vtng{\stng}{\v}
\fpAdd\vtng\vtng{\utng}
% Estimate x1 y1 from vtos[i].x vtos[i].y igd[i].x igd[i].y
% x1
\fpMul{#1}\vtosx\vtng
\fpAdd{#1}{#1}{\igdx}
\fpSub{#1}{20}{#1} % Reverse orientation
% y1
\fpMul{#2}{\vtosy}\vtng
\fpAdd{#2}{#2}{\igdy}
% Tranform to Ververidis system
\LinMov2Verver{#1}{#2}
%\psdot(#1,#2)
}
%----- Larynx ---------
%1 i=1 (xFront) ,2 (yFront), 3(xBack),4(yBack)
%2. v = A_lrx[i][0]*p[0] + A_lrx[i][1]*p[1]
%3. v_lrx[i] = s_lrx[i]*v + u_lrx[i]; %
%
% 1 2 3 4
% {\vlrxXorY}{\JW}{\LH}{3} % X are 2,4 Y are 3,5
\def\LrxDepolarLinSys#1#2#3#4{
% Maeda Linear Transformations by Factor Analysis
% vA vB
%1 = \ALrxA*2 + \ALrxB*3
\RdValM{\ALrxA}{#4}{11}
\RdValM{\ALrxB}{#4}{12}
\fpMul\vLA{\ALrxA}{#2}
\fpMul\vLB{\ALrxB}{#3}
\fpAdd\vL\vLA\vLB
% %------ Depolarize --------
\RdValM{\slrx}{#4}{13}
\RdValM{\ulrx}{#4}{14}
%%
%% Estimate v_tng[i] from v
\fpMul#1{\slrx}{\vL}
\fpAdd#1#1{\ulrx}
%% if X then reverse
%% Tranform to Ververidis system
\def\dum{3}
\ifthenelse{#4=2 \or #4=4}
{\fpSub{#1}{8}{#1}\LinMov2Verver{#1}{\dum}}{\fpAdd{#1}{12}{#1}\LinMov2Verver{\dum}{#1}}
%\rput(3,#4){#1}
}
%-------- Lips -------
% JW LA LP
%1. v = A_lip[i][0]*p[0] + A_lip[i][1]*p[1] + A_lip[i][2]*p[2]
%2. v_lip[i] = s_lip[i]*v + u_lip[i] %
%
% 1 2 3 4 5
% {\vlip}{\JW}{\LA}{\LP}{3}
\def\LipDepolarLinSys#1#2#3#4#5{
% vA vB vC
%1 = \ALipA*2 + \ALipB*3 + \ALipC*4
\RdValM{\ALipA}{#5}{15}
\RdValM{\ALipB}{#5}{16}
\RdValM{\ALipC}{#5}{17}
\fpMul\vA{\ALipA}{#2}
\fpMul\vB{\ALipB}{#3}
\fpMul\vC{\ALipC}{#4}
\fpAdd\vLip\vA\vB
\fpAdd\vLip\vLip\vC
% %------ Depolarize --------
\RdValM{\slip}{#5}{18}
\RdValM{\ulip}{#5}{19}
%%
%% Estimate v_tng[i] from v
\fpMul#1{\slip}{\vLip}
\fpAdd#1#1{\ulip}
%
%% if X then reverse
%% Tranform to Ververidis system
%\def\dum{3}
%\ifthenelse{#4=2 \or #4=4}
%{\fpSub{#1}{8}{#1}\LinMov2Verver{#1}{\dum}}{\fpAdd{#1}{12}{#1}\LinMov2Verver{\dum}{#1}}
%\rput(3,#5){#1}
}
%-------------- Transform to Ververidis Coordinates --------
\def\LinMov2Verver#1#2{
% X
\fpSub{#1}{#1}{1.0465}
\fpDiv{#1}{#1}{13.1774}
\fpAdd{#1}{#1}{1.04}
% Y
\fpSub{#2}{#2}{1.8}
\fpDiv{#2}{#2}{12.3704}
\fpAdd{#2}{#2}{4.5}
}
%============= Breath Oscillation Params ====
\def\OscAmp{0}
\newcommand{\SetOscAmp}[2]{%
\FPmul\OscAmp{#1}{0.314}
\FPadd\OscAmp{\OscAmp}{1.57}
\FPcos\OscAmp{\OscAmp} % cos(i*2pi/20 + pi/2)/2
\FPmul\OscAmp{\OscAmp}{#2}
\UpdateRespOscillation % For Breath
}
\def\VarOut{0}
\def\ScaledOsc{0}
\newcommand{\SetScaledOsc}[2]{%
\FPmul{\ScaledOsc}{#1}{\OscAmp}
\FPadd{#2}{\ScaledOsc}{#2}
}
%========== Upper Respiration Sustem Cords
%
% Nose - Esophagus (Static)
\def\NoseBaseX{2.325} \def\NoseBaseY{6}
\def\NoseEdgeX{2.4375} \def\NoseEdgeY{6.1}
\def\NoseBoneUpX{2.28} \def\NoseBoneUpY{6.37}
\def\NoseBoneDownX{2.43} \def\NoseBoneDownY{6.15}
\def\NoseBoneInX{2.32} \def\NoseBoneInY{6.2}
\def\NasalCavFrontX{2.175} \def\NasalCavFrontY{6.4}
\def\NasalCavCeilX{1.8} \def\NasalCavCeilY{6.5}
\def\NasalCavBackX{1.35} \def\NasalCavBackY{6.4}
\def\NasalSphenoidUpX{1.35} \def\NasalSphenoidUpY{6.3}
\def\NasalSphenoidDownX{1.275} \def\NasalSphenoidDownY{6.2}
\def\NasalPortStaticUpX{1.07} \def\NasalPortStaticUpY{5.7} %1.05,5.7
\def\NasalPortStaticDownX{1.04} \def\NasalPortStaticDownY{5.55} %1.05,5.7
%
\def\PharynxBackUpStaticX{1.04} \def\PharynxBackUpStaticY{5.43} %1.0875,5.3
\def\PharynxBackMiddleStaticX{1.07} \def\PharynxBackMiddleStaticY{5.14}
\def\PharynxBackDownStaticX{1.1} \def\PharynxBackDownStaticY{4.81}
%
\def\EsophagusBackX{0.9375} \def\EsophagusBackY{4.3}
\def\EsophagusFrontX{1.0875} \def\EsophagusFrontY{4.3}
\def\EsophagusPortX{1.2} \def\EsophagusPortY{4.7} %1.27,4.9 ok
%
\def\LarynxFrontX{1.35} \def\LarynxFrontY{4.3}
\def\LarynxBackX{1.2} \def\LarynxBackY{4.3}
%
%
% Jaw and Jugular notch
\def\JugularNotchX{1.65} \def\JugularNotchY{4.2}
\def\AdamsAppleX{1.725} \def\AdamsAppleY{4.8}
\def\ThyroidX{1.7} \def\ThyroidY{4.9}
%
%Lips
\def\LipUpOutX{\LipOutX} \def\LipUpOutY{\LipUpY}
\def\LipUpInX{\LipInX} \def\LipUpInY{\LipUpY}
\def\LipDownOutX{\LipOutX} \def\LipDownOutY{\LipDownY}
\def\LipDownInX{\LipInX} \def\LipDownInY{\LipDownY}
% Up
\def\LipUpBaseOutX{2.25} \def\LipUpBaseOutY{5.8}
%
% Oral-Nasal Separation
\def\NasalCavAlvX{2.025} \def\NasalCavAlvY{6.05}
\def\NasalCavPalX{1.725} \def\NasalCavPalY{6.05}
\def\NasalCavVelarX{1.275} \def\NasalCavVelarY{5.9}
%
\def\NasalCavMovY{5.72}
\def\UvularX{1.31} \def\UvularY{5.73}
\def\VelarX{1.4} \def\VelarY{5.75}
\def\PalatalX{1.66} \def\PalatalY{5.85}
%
\def\PostPostAlveolarX{1.83} \def\PostPostAlveolarY{5.81}
\def\PostAlveolarX{1.95} \def\PostAlveolarY{5.725}
\def\AlveolarX{2.02} \def\AlveolarY{5.675}
% Epiglotis to Tongue to DownTeeth
\def\HyoidUpX{1.255} \def\HyoidUpY{4.9}
\def\HyoidDownX{1.260} \def\HyoidDownY{4.8}
\def\EpiglotisBaseX{1.275} \def\EpiglotisBaseY{5.1}
\def\EpiglotisX{1.2} \def\EpiglotisY{5.3}
\def\TongueBaseX{1.35} \def\TongueBaseY{5.1}
\def\TonguePharynxX{1.275} \def\TonguePharynxY{5.4}
%
\def\TongueUvularX{1.3125}
\def\TongueVelarX{1.5}
\def\TonguePalatalX{1.725}
\def\TonguePostAlvX{1.875}
%
\def\TongueBaseFrontX{2} \def\TongueBaseFrontY{5.3}
% Teeth
% up
\def\TeethUpBaseInX{2.1} \def\TeethUpBaseInY{5.675}
\def\TeethUpEdgeX{2.185} \def\TeethUpEdgeY{5.57}
\def\TeethUpBaseOutX{2.2125} \def\TeethUpBaseOutY{5.7}
% down
\def\TeethDownBaseInX{2.1} \def\TeethDownBaseInY{5.4}
\def\TeethDownEdgeX{2.175} \def\TeethDownEdgeY{5.5}
\def\TeethDownBaseOutX{2.2} \def\TeethDownBaseOutY{5.35}
%
\def\SubTongueSalX{2.025} \def\SubTongueSalY{5.3}
%============= LowerRespiration System Cords
\def\TracheaFrontX{1.35}\def\TracheaFrontY{4}
\def\TracheaBackX{1.2} \def\TracheaBackY{4}
%
\def\LungsChestLevelFrontX{2.1} \def\LungsChestLevelFrontY{2.5}
\def\LungsChestLevelBackX{0.45} \def\LungsChestLevelBackY{2.5}
%
\def\LungsSternLevelBackX{0.3} \def\LungsSternLevelBackY{1.2}
\def\LungsSternLevelBackXHelp{0.375} \def\LungsSternLevelBackYHelp{1.3}
%
\def\LungsSternLevelFrontX{2.1} \def\LungsSternLevelFrontY{1.2}
\def\LungsSternLevelFrontXHelp{2.1} \def\LungsSternLevelFrontYHelp{1.3}
%
\def\LungsSternLevelMiddleX{1.125} \def\LungsSternLevelMiddleY{1.5}
%
\def\SkinChestFrontX{2.25} \def\SkinChestFrontY{2.7}
%
\def\DiaphragmX{1.125} \def\DiaphragmY{1.3}
%\pscustom[fillstyle=gradient,gradmidpoint=5,gradangle=45, gradbegin=white,gradend=red,showpoints=true,linecolor=black,linewidth=0pt]{
%================== ANDROID =====================
\newcommand{\BackToNoseEdge}{
% Back
\pscurve[linearc=0.3](0,0.5)(0.15,2)(0.75,5)
% Back Head to Eyes
\pscurve[linearc=0.3](0.75,5)(0.3,6.5)(0.75,7.3)(1.125,7.5)(1.875,7.4)(2.25,7)(2.25,6.5)(\NoseBoneUpX,\NoseBoneUpY)
% Nose
\pscurve(\NoseBoneUpX,\NoseBoneUpY)(\NoseBoneDownX,\NoseBoneDownY)
}
% Nose Edge to Lip Up
%[linearc=0.3,showpoints=false,linecolor=black,linewidth=1pt]
\newcommand{\NoseEdgeToLipUp}{
\pscurve(\NoseBoneDownX,\NoseBoneDownY)(\NoseEdgeX,\NoseEdgeY)(\NoseBaseX,\NoseBaseY)(\LipUpBaseOutX,\LipUpBaseOutY)}
% LipDown to JugularNotch
\newcommand{\LipDowntoJugularNotch}{
\pscurve(\LipDownOutX,\LipDownOutY)(\ChinUpX,\ChinUpY)(\ChinMiddleX,\ChinMiddleY)(\ChinDownX,\ChinDownY)(\ThyroidX,\ThyroidY)(\AdamsAppleX,\AdamsAppleY)(\JugularNotchX,\JugularNotchY)}
% Chest
\newcommand{\Chest}{
\pscurve[linearc=0.2](\JugularNotchX,\JugularNotchY)(\SkinChestFrontX,\SkinChestFrontY)(2.25,0.5)}
% Diaphragm
\newcommand{\Diaphragm}{\pscurve[linearc=1.5](0,0.5)(\DiaphragmX,\DiaphragmY)(2.25,0.5)}
%
%
% Nose, Nasal Cavity, Nasal Port
% NasalUpperCav To Pharynx
\newcommand{\NasalCavUpToPharynx}{
\pscurve(\NoseBoneDownX,\NoseBoneDownY)(\NoseBoneInX,\NoseBoneInY)(\NasalCavFrontX,\NasalCavFrontY)(\NasalCavCeilX,\NasalCavCeilY)(\NasalCavBackX,\NasalCavBackY)(\NasalSphenoidUpX,\NasalSphenoidUpY)(\NasalSphenoidDownX,\NasalSphenoidDownY)
(\NasalPortStaticUpX,\NasalPortStaticUpY)(\NasalPortStaticDownX,\NasalPortStaticDownY)(\PharynxBackUpStaticX,\PharynxBackUpStaticY)}
%
% Pharynx, Esophagus, EsoPort
\newcommand{\PharynxToEsophag}{
\psline(\PharynxBackUpStaticX,\PharynxBackUpStaticY)(\PharynxBackMiddleStaticX,\PharynxBackMiddleStaticY)(\PharynxBackDownStaticX,\PharynxBackDownStaticY)%
(\EsophagusBackX,\EsophagusBackY)(\EsophagusBackX,3.5)%
(\EsophagusFrontX,3.75)(\EsophagusFrontX,\EsophagusFrontY)%
(\EsophagusPortX,\EsophagusPortY)(\ChordsJointBackX,\ChordsJointBackY)}
%
% LarynxBack, Trachea, Lungs, LarynxFront
\newcommand{\LarynxLungsChords}{
\psline(\ChordsJointBackX,\ChordsJointBackY)(\TracheaBackX,\TracheaBackY)(\LungsChestLevelBackX,\LungsChestLevelBackY)(\LungsSternLevelBackX,\LungsSternLevelBackY)
%
\pscurve(\LungsSternLevelBackX,\LungsSternLevelBackY)(\LungsSternLevelBackXHelp,\LungsSternLevelBackYHelp)(\LungsSternLevelMiddleX,\LungsSternLevelMiddleY)(\LungsSternLevelFrontX,\LungsSternLevelFrontY)
%
\pscurve(\LungsSternLevelFrontX,\LungsSternLevelFrontY)(\LungsSternLevelFrontXHelp,\LungsSternLevelFrontYHelp)(\LungsChestLevelFrontX,\LungsChestLevelFrontY)(\TracheaFrontX,\TracheaFrontY)(\LarynxFrontX,\LarynxFrontY)
%
\psline(\LarynxFrontX,\LarynxFrontY)(\ChordsJointFrontX,\ChordsJointFrontY)
}
%
% Vocal Chords
\newcommand{\VocalChords}{%
{
%
\FPadd\MidXChords{\ChordsJointBackX}{\ChordsJointFrontX}
\FPdiv\MidXChords{\MidXChords}{2}
\FPsub\GlotalWidth\ChordsJointFrontX\ChordsJointBackX
\FPdiv\GlotalWidth{\GlotalWidth}{2}
%
\fpAdd\ChordsJointFrontBackAveY\ChordsJointBackY\ChordsJointFrontY
\fpDiv\ChordsJointFrontBackAveY\ChordsJointFrontBackAveY{2}
%
\pscustom[fillstyle=solid,fillcolor=pink]{
\psellipse[linewidth=0.2pt](\MidXChords,\ChordsJointFrontBackAveY)(\GlotalWidth,0.05)
\psellipse[linewidth=0.2pt](\MidXChords,\ChordsJointFrontBackAveY)(\GlotalWidth,\GlottalAperture)}
%
\psellipse*[linecolor=white,linewidth=0.2pt](\MidXChords,\ChordsJointFrontBackAveY)(\GlotalWidth,\GlottalAperture)
\psellipse[linewidth=0.2pt](\MidXChords,\ChordsJointFrontBackAveY)(\GlotalWidth,\GlottalAperture)
\FPmul\MinusFx\FX{-2}
\ifthenelse{\FX>2}{%
\pscoil[coilaspect=0,coilheight=0.7,coilwidth=0.1,coilarm=0.02,linewidth=\ChordsFrequency pt]%
(\ChordsJointBackX,\ChordsJointBackY)(\ChordsJointFrontX,\ChordsJointFrontY)}{}
}%
}
%
% Oral-Nasal Border (NoseBase, NasalFloor, OralCeil, TeethUp, LipUp
\newcommand{\OralNasalBorder}{
\pscurve[linewidth=0.5pt](\NoseBaseX,\NoseBaseY)(\NasalCavAlvX,\NasalCavAlvY)(\NasalCavPalX,\NasalCavPalY)(\NasalCavVelarX,\NasalCavVelarY)
\pscurve[linewidth=0.5pt](\NasalCavVelarX,\NasalCavVelarY)(\NasalCavMovX,\NasalCavMovY)(\UvularX,\UvularY)(\VelarX,\VelarY)(\PalatalX,\PalatalY)(\PostPostAlveolarX,\PostPostAlveolarY)(\PostAlveolarX,\PostAlveolarY)(\AlveolarX,\AlveolarY)
\psline[linewidth=0.5pt](\AlveolarX,\AlveolarY)(\TeethUpBaseInX,\TeethUpBaseInY)(\TeethUpEdgeX,\TeethUpEdgeY)(\TeethUpBaseOutX,\TeethUpBaseOutY)
\pscurve[linewidth=0.5pt](\TeethUpBaseOutX,\TeethUpBaseOutY)(\LipUpInX,\LipUpInY)(\LipUpOutX,\LipUpOutY)(\LipUpBaseOutX,\LipUpBaseOutY)(\NoseBaseX,\NoseBaseY)
}
%
% Chords to TongueAtPharynx
\newcommand{\ChordsToTongue}{
\pscurve[curvature=0.2 -0.5 -0.5](\ChordsJointFrontX,\ChordsJointFrontY)(\HyoidDownX,\HyoidDownY)(\HyoidUpX,\HyoidUpY)(\EpiglotisBaseX,\EpiglotisBaseY)
(\EpiglotisX,\EpiglotisY)(\TongueBaseX,\TongueBaseY)}
%
% Tongue at Pharynx to Tongue Base Front
\newcommand{\Tongue}{
\pscurve(\TonguePharynxX,\TonguePharynxY)(\TongueUvularX,\TongueUvularY)
(\TongueVelarX,\TongueVelarY)(\TonguePalatalX,\TonguePalatalY)(\TonguePostAlvX,\TonguePostAlvY)(\TongueAlveolarX,\TongueAlveolarY)(\TongueBaseFrontX,\TongueBaseFrontY)}
% Tongue Base Front to Down Lips
\newcommand{\TeethDownLips}{
\psline(\TongueBaseFrontX,\TongueBaseFrontY)(\SubTongueSalX,\SubTongueSalY)
(\TeethDownBaseInX,\TeethDownBaseInY)
(\TeethDownEdgeX,\TeethDownEdgeY)(\TeethDownBaseOutX,\TeethDownBaseOutY)
\pscurve[curvature=1 0.5 -0.5](\TeethDownBaseOutX,\TeethDownBaseOutY)
(\LipDownInX,\LipDownInY)(\LipDownOutX,\LipDownOutY)}
%========================
% Stomach Compartment
%========================
\newcommand{\StomachCompartment}{
\psline[linearc=0](0,0.5)(0,0)(2.25,0)(2.25,0.5)
\FPsub\DiaphragmYALittleSmaller\DiaphragmY{0.05}
\pscustom[fillcolor=white,fillstyle=solid]{
\pscurve[linearc=0.1](0.9,\DiaphragmYALittleSmaller)(0.9,.7)(0.525,0.4) % Back Stomach
(1.125,0.2) % Bottom Point of Stomach
(1.725,0.4)(1.275,.7)(1.2,\DiaphragmY)} % Front Stomach
% ---- Electrode -----
%\psline[linecolor=gray,linewidth=1pt](1.35,\DiaphragmY)(1.35,1.9) % Up Elect Sensor
%\psline[linewidth=1pt](1.35,0.5)(1.35,\DiaphragmY) % Down Electr Sensor
}
%=======================
% Red Flesh
%=======================
%Begin from 0,0.5 and end there also
\newcommand{\DrawRedFlesh}
{\pscustom[fillstyle=solid,fillcolor=pink]
{
\BackToNoseEdge
\NasalCavUpToPharynx
\PharynxToEsophag
%
% Larynx until LungsBackStern
\psline(\ChordsJointBackX,\ChordsJointBackY)(\TracheaBackX,\TracheaBackY)(\LungsChestLevelBackX,\LungsChestLevelBackY)(\LungsSternLevelBackX,\LungsSternLevelBackY)
%
% LungsBackStern to LungsFrontStern
\pscurve(\LungsSternLevelBackX,\LungsSternLevelBackY)(\LungsSternLevelBackXHelp,\LungsSternLevelBackYHelp)(\LungsSternLevelMiddleX,\LungsSternLevelMiddleY)(\LungsSternLevelFrontX,\LungsSternLevelFrontY)
% LungsFrontStern to Trachea
\pscurve(\LungsSternLevelFrontX,\LungsSternLevelFrontY)(\LungsSternLevelFrontXHelp,\LungsSternLevelFrontYHelp)(\LungsChestLevelFrontX,\LungsChestLevelFrontY)(\TracheaFrontX,\TracheaFrontY)(\LarynxFrontX,\LarynxFrontY)
% Larynx to Chords
\psline(\LarynxFrontX,\LarynxFrontY)(\ChordsJointFrontX,\ChordsJointFrontY)
% Chords to Epiglotis
\pscurve[curvature=0.2 -0.5 -0.5](\ChordsJointFrontX,\ChordsJointFrontY)(\HyoidDownX,\HyoidDownY)(\HyoidUpX,\HyoidUpY)(\EpiglotisBaseX,\EpiglotisBaseY)(\EpiglotisX,\EpiglotisY)(\TongueBaseX,\TongueBaseY)
%TongueBase to TongueFront
\Tongue
% Tongue Front to Lips Down
\TeethDownLips
% Lips Down to Jugular Notch
\LipDowntoJugularNotch
% Jugular Notch to Chest to Stern
\Chest
% Stern Diaphragm to Back
\pscurve[linearc=1.5](2.25,0.5)(\DiaphragmX,\DiaphragmY)(0,0.5)
}
}
\newcommand{\DrawRedFleshOralNasalBorder}
{\pscustom[fillstyle=solid,fillcolor=pink,linewidth=0.5pt]
{
\OralNasalBorder
}}
\newcommand{\DrawRedFleshStomach}
{\pscustom[fillstyle=solid,fillcolor=pink]
{\Diaphragm
\psline[linearc=0](2.25,0.5)(2.25,0)(0,0)(0,0.5)
}}
%===============================
% Update Respiration Oscillation
%================================
\newcommand{\UpdateRespOscillation}{
\SetScaledOsc{-0.2}{\LungsChestLevelFrontX}
\SetScaledOsc{0.1}{\LungsChestLevelBackX}
\SetScaledOsc{0.2}{\LungsSternLevelBackX}
\SetScaledOsc{0.4}{\LungsSternLevelBackY}
\SetScaledOsc{0.2}{\LungsSternLevelBackXHelp}
\SetScaledOsc{0.4}{\LungsSternLevelBackYHelp}
\SetScaledOsc{-0.2}{\LungsSternLevelFrontX}
\SetScaledOsc{0.3}{\LungsSternLevelFrontY}
\SetScaledOsc{-0.2}{\LungsSternLevelFrontXHelp}
\SetScaledOsc{0.3}{\LungsSternLevelFrontYHelp}
\SetScaledOsc{0.4}{\LungsSternLevelMiddleY}
\SetScaledOsc{0.4}{\LungsSternLevelMiddleY}
\SetScaledOsc{-0.2}{\SkinChestFrontX}
\SetScaledOsc{0.6}{\DiaphragmY}
}
%\rput(0,0){\DiaphragmYLower}
%=============================================
% Update Vocal Tract from File
%=============================================
\newcommand{\UpdateVocalTract}[1]{
\RdVal{\JW}{#1}{1}
\RdVal{\TP}{#1}{2}
\RdVal{\TS}{#1}{3}
\RdVal{\TA}{#1}{4}
\RdVal{\LA}{#1}{5}
\RdVal{\LP}{#1}{6}
\RdVal{\LH}{#1}{7}
\RdVal{\GA}{#1}{8}
\RdVal{\FX}{#1}{9}
\RdVal{\NS}{#1}{10}
%% Linear Transfroms of Coordinates from Maeda to Ververidis
%% [-3,3] to [1.05,1.2]
%%1 % 3 % 5 % 7 %9
%%F0 %LA % NC || %UV %VE %PA %PsAy %ALx %ALy || LOx LIx LUy LDy || GA
%%-----------------------------------------------------------------------------------
%%0 4.5 1.09 || 5.45 5.6 5.65 5.65 2.025 5.5 || 2.250 2.197 5.58 5.45 || 0 Min (Open)
%%1 4.8 1.20 || 6.15 5.78 5.84 5.83 2.175 5.68|| 2.360 2.287 5.65 5.6 || 0.04 Max (Closed)
%-- \NasalCavMovX
\fpAdd\NSb\NS{3}
\fpDiv{\NSb}{\NSb}{6}
\fpMul{\NSb}{\NSb}{0.15}
\fpAdd{\NasalCavMovX}{\NSb}{1.09}
%-- \ChordsFrequency
\fpAdd\FX\FX{3}
\fpDiv\ChordsFrequency\FX{6}
%-- \GlottalAperture
\fpMul\GAb\GA{-1}
\fpAdd\GAb\GAb{3}
\fpDiv{\GAb}{\GAb}{6}
\fpMul{\GlottalAperture}{\GAb}{0.025}
%-- These are expressed as a linear transformation of the JW,TP,TS,TA,LA,LP,LH
% This is the way for the tongue
% C is Hyoid Down
\TongDepolarLinSys{\HyoidDownX}{\HyoidDownY}{\JW}{\TP}{\TS}{\TA}{2}
% D is Hyoid Up
\TongDepolarLinSys{\HyoidUpX}{\HyoidUpY}{\JW}{\TP}{\TS}{\TA}{3}
% D is EpiglotisBase
%\TongDepolarLinSys{\vtngEx}{\vtngEy}{\JW}{\TP}{\TS}{\TA}{4}
\def\EpiglotisBaseX{\HyoidUpX}
\def\EpiglotisBaseY{\HyoidUpY}
%\TongDepolarLinSys{\vtngFx}{\vtngFy}{\JW}{\TP}{\TS}{\TA}{5}
% G is TongueBase
\TongDepolarLinSys{\TongueBaseX}{\TongueBaseY}{\JW}{\TP}{\TS}{\TA}{6}
% H is Tongue Pharynx
\TongDepolarLinSys{\TonguePharynxX}{\TonguePharynxY}{\JW}{\TP}{\TS}{\TA}{7}
%\psdot[linecolor=blue,linewidth=4pt](\TonguePharynxX,\TonguePharynxY)
% I is Epiglotis (x,y are a bit reduced)
\TongDepolarLinSys{\EpiglotisXa}{\EpiglotisYa}{\JW}{\TP}{\TS}{\TA}{8}
\fpSub\EpiglotisX\EpiglotisXa{0.03}
\fpSub\EpiglotisY\EpiglotisYa{0.1}
%\psdot[linecolor=blue](\EpiglotisX,\EpiglotisY)
%\TongDepolarLinSys{\vtngJx}{\vtngJy}{\JW}{\TP}{\TS}{\TA}{9}
%\TongDepolarLinSys{{\vtngKy}{{\vtngKy}{\JW}{\TP}{\TS}{\TA}{10}
%\TongDepolarLinSys{\vtngLx}{\vtngLy}{\JW}{\TP}{\TS}{\TA}{11}
% M is Uvular
\TongDepolarLinSys{\TongueUvularX}{\TongueUvularY}{\JW}{\TP}{\TS}{\TA}{12}
%\psdot[linecolor=blue](\TongueUvularX,\TongueUvularY)
%\TongDepolarLinSys{\vtngNx}{\vtngNy}{\JW}{\TP}{\TS}{\TA}{13}
%\TongDepolarLinSys{\vtngOx}{\vtngOy}{\JW}{\TP}{\TS}{\TA}{14}
% P is velar
\TongDepolarLinSys{\TongueVelarX}{\TongueVelarY}{\JW}{\TP}{\TS}{\TA}{15}
%\psdot[linecolor=blue](\TongueVelarX,\TongueVelarY)
%\TongDepolarLinSys{\vtngQx}{\vtngQy}{\JW}{\TP}{\TS}{\TA}{16}
%\TongDepolarLinSys{\vtngRx}{\vtngRy}{\JW}{\TP}{\TS}{\TA}{17}
%\TongDepolarLinSys{\vtngSx}{\vtngSy}{\JW}{\TP}{\TS}{\TA}{18}
% T is Palatal
\TongDepolarLinSys{\TonguePalatalX}{\TonguePalatalY}{\JW}{\TP}{\TS}{\TA}{19} %\def\TonguePalatalY{5.65}
%\psdot[linecolor=blue](\TonguePalatalX,\TonguePalatalY)
%\TongDepolarLinSys{\vtngUx}{\vtngUy}{\JW}{\TP}{\TS}{\TA}{20}
%\TongDepolarLinSys{\vtngVx}{\vtngVy}{\JW}{\TP}{\TS}{\TA}{21}
% W is TonguePostAlv
\TongDepolarLinSys{\TonguePostAlvX}{\TonguePostAlvY}{\JW}{\TP}{\TS}{\TA}{22}
%\psdot[linecolor=blue](\TonguePostAlvX,\TonguePostAlvY)
\TongDepolarLinSys{\vtngXx}{\vtngXy}{\JW}{\TP}{\TS}{\TA}{23}
\TongDepolarLinSys{\vtngYx}{\vtngYy}{\JW}{\TP}{\TS}{\TA}{24}
% Z is TongueAlveolar
\TongDepolarLinSys{\TongueAlveolarX}{\TongueAlveolarY}{\JW}{\TP}{\TS}{\TA}{25}
%\psdot[linecolor=blue](\TongueAlveolarX,\TongueAlveolarY)
%\TongDepolarLinSys{\vtngPhix}{\vtngPhiy}{\JW}{\TP}{\TS}{\TA}{26}
%---------- Chord Joint Front and Back ---------
\LrxDepolarLinSys{\ChordsJointFrontX}{\JW}{\LH}{2}
\LrxDepolarLinSys{\ChordsJointFrontY}{\JW}{\LH}{3}
\LrxDepolarLinSys{\ChordsJointBackX}{\JW}{\LH}{4}
\LrxDepolarLinSys{\ChordsJointBackY}{\JW}{\LH}{5}
%------------ Lips --------------------------------
\LipDepolarLinSys{\vlipA}{\JW}{\LA}{\LP}{2}
\fpDiv\LAVerver\LA{3} % Verver here
\LipDepolarLinSys{\vlipB}{\JW}{\LAVerver}{\LP}{3}
\LipDepolarLinSys{\vlipC}{\JW}{\LA}{\LP}{4}
\def\LipInX{3.65} % In X
\fpSub\LipInX{20}\LipInX
\def\Dumm{0}
\LinMov2Verver{\LipInX}{\Dumm}
\def\LipUpY{15.18} % Up Y
\LinMov2Verver{\Dumm}{\LipUpY}
\def\LipOutX{3.65} % Out X
\fpSub\LipOutX\LipOutX{\vlipA}
\fpSub\LipOutX{20}\LipOutX
\LinMov2Verver{\LipOutX}{\Dumm}
\fpSub\LipDownY{15.18}{\vlipB} % Down Y
\LinMov2Verver{\Dumm}{\LipDownY}
%vlip[1] = 1.3
%vlip[2] = 1.44
%vlip[3] = 4.88
%----------------- JAW Components ----------
\fpAdd\JawRadiiY\JW{-3}
\fpMul\JawRadiiY\JW{0.015}
\def\ChinDownX{2.25} \fpAdd\ChinDownY{5.1}\JawRadiiY
\def\ChinMiddleX{2.325} \fpAdd\ChinMiddleY{5.2}\JawRadiiY
\def\ChinUpX{2.25} \fpAdd\ChinUpY{5.3}\JawRadiiY
\def\LipDownBaseOutX{2.25} \fpAdd\LipDownBaseOutY{5.4}\JawRadiiY
\def\TeethDownBaseInX{2.1} \fpAdd\TeethDownBaseInY{5.4}\JawRadiiY
\def\TeethDownEdgeX{2.175} \fpAdd\TeethDownEdgeY{5.5}\JawRadiiY
\def\TeethDownBaseOutX{2.2} \fpAdd\TeethDownBaseOutY{5.35}\JawRadiiY
%
\def\SubTongueSalX{2.025} \fpAdd\SubTongueSalY{5.3}\JawRadiiY
%
\BackToNoseEdge
\NasalCavUpToPharynx
\PharynxToEsophag
\LarynxLungsChords
\Diaphragm
\Chest
\LipDowntoJugularNotch
%
\NoseEdgeToLipUp
\OralNasalBorder
%
\ChordsToTongue
\Tongue
\TeethDownLips
%
\DrawRedFlesh
\DrawRedFleshOralNasalBorder
\DrawRedFleshStomach
}
%=======================================
% Plot dots Movable Parts
%=======================================
\newcommand{\PlotDotsVocal}{
\uput[45](\ChordsJointBackX,\ChordsJointBackY){\scriptsize 1.Freq.}
\rput[c](\ChordsJointFrontX,\ChordsJointFrontY){$\bullet$}
\uput[320](\ChordsJointFrontX,4.7){\scriptsize 2.Larynx Height}
\rput[c](\NasalCavMovX,\NasalCavMovY){$\bullet$}
\uput[40](\NasalCavMovX,\NasalCavMovY){\scriptsize 3.NasalCav}
\rput[c](\TongueUvularX,\TongueUvularY){$\bullet$}
\uput[300](\TongueUvularX,\TongueUvularY){\scriptsize 4.Uvular}
\rput[c](\TongueVelarX,\TongueVelarY){$\bullet$}
\uput[270](\TongueVelarX,\TongueVelarY){\scriptsize 5.Velar}
\rput[c](\TonguePalatalX,\TonguePalatalY){$\bullet$}
\uput[270](\TonguePalatalX,\TonguePalatalY){\scriptsize 6.Palatal}
\rput[c](\TonguePostAlvX,\TonguePostAlvY){$\bullet$}
\uput[100](\TonguePostAlvX,\TonguePostAlvY){\scriptsize 7.PostAlv}
\rput[c](\TongueAlveolarX,\TongueAlveolarY){$\bullet$}
\uput[20](\TongueAlveolarX,\TongueAlveolarY){\scriptsize 8.Alveolar}
\rput[c](\LipUpOutX,\LipUpOutY){$\bullet$}
\uput[0](\LipUpOutX,\LipUpOutY){\scriptsize 9.LipUpOut}
\rput[c](\LipDownOutX,\LipDownOutY){$\bullet$}
\uput[0](\LipDownOutX,\LipDownOutY){\scriptsize 10.LipDownOut}
\rput[c](\LipUpInX,\LipUpInY){$\bullet$}
\uput[90](\LipUpInX,\LipUpInY){\scriptsize 11.LipUpIn}
\rput[c](\LipDownInX,\LipDownInY){$\bullet$}
\uput[270](\LipDownInX,\LipDownInY){\scriptsize 12.LipDownIn}}
%============================================
% Show Phonemes German
%============================================
\newcommand{\ShowPhonemesGerman}[1]{
\RdVal{\PhonemeLabel}{#1}{11}
\parbox{2cm}{\Large\PhonemeLabel}}
%============================================
% Show Red Pressure
%============================================
\newcommand\ShowPressure[1]{%
\RdVal{\PhonemeLabel}{#1}{11}
% p
\ifthenelse{\equal{\PhonemeLabel}{p}\or\equal{\PhonemeLabel}{b}}{\pscustom[fillcolor=red,fillstyle=solid]{%
%% Chords to Tongue Base
\ChordsToTongue
%% Tongue at Pharynx to Tongue Base Front
\Tongue
% Tongue Base Front to Down Lips In
\psline(\TongueBaseFrontX,\TongueBaseFrontY)(\SubTongueSalX,\SubTongueSalY)
(\TeethDownBaseInX,\TeethDownBaseInY)
(\TeethDownEdgeX,\TeethDownEdgeY)(\TeethDownBaseOutX,\TeethDownBaseOutY)
\pscurve(\TeethDownBaseOutX,\TeethDownBaseOutY)
(\LipDownInX,\LipDownInY)
% LipUpIn to TeethBaseOut
\pscurve(\LipUpInX,\LipUpInY)(\TeethUpBaseOutX,\TeethUpBaseOutY)
% TeethBaseOut to Alveolar
\psline(\TeethUpBaseOutX,\TeethUpBaseOutY)(\TeethUpEdgeX,\TeethUpEdgeY)(\TeethUpBaseInX,\TeethUpBaseInY)(\AlveolarX,\AlveolarY)
% NasalCavMov to Alveolar
\pscurve(\AlveolarX,\AlveolarY)(\PostAlveolarX,\PostAlveolarY)(\PostPostAlveolarX,\PostPostAlveolarY)(\PalatalX,\PalatalY)(\VelarX,\VelarY)(\UvularX,\UvularY)(\NasalCavMovX,\NasalCavMovY)
% NCavPort to Pharynx
\psline(\NasalCavMovX,\NasalCavMovY)(\NasalPortStaticUpX,\NasalPortStaticUpY)
(\NasalPortStaticDownX,\NasalPortStaticDownY)(\PharynxBackUpStaticX,\PharynxBackUpStaticY)
%
% Pharynx, Esophagus, EsoPort
\PharynxToEsophag
% LarynxBack, Trachea, Lungs, LarynxFront
\LarynxLungsChords
}}{}
% t
\ifthenelse{\equal{\PhonemeLabel}{t} \or \equal{\PhonemeLabel}{d}}{
\pscustom[fillcolor=red,fillstyle=solid]{%
%% Chords to Tongue Base
\ChordsToTongue
%% Tongue at Pharynx to Tongue Base Front
\pscurve(\TonguePharynxX,\TonguePharynxY)(\TongueUvularX,\TongueUvularY)
(\TongueVelarX,\TongueVelarY)(\TonguePalatalX,\TonguePalatalY)(\TonguePostAlvX,\TonguePostAlvY)(\TongueAlveolarX,\TongueAlveolarY)
%
\pscurve(\AlveolarX,\AlveolarY)(\PostAlveolarX,\PostAlveolarY)
(\PostPostAlveolarX,\PostPostAlveolarY)(\PalatalX,\PalatalY)
(\VelarX,\VelarY)(\UvularX,\UvularY)(\NasalCavMovX,\NasalCavMovY)
% NCavPort to Pharynx
\psline(\NasalCavMovX,\NasalCavMovY)(\NasalPortStaticUpX,\NasalPortStaticUpY)
(\NasalPortStaticDownX,\NasalPortStaticDownY)(\PharynxBackUpStaticX,\PharynxBackUpStaticY)
(\PharynxBackMiddleStaticX,\PharynxBackMiddleStaticY)(\PharynxBackDownStaticX,\PharynxBackDownStaticY)
% Pharynx, Esophagus, EsoPort
\PharynxToEsophag
% LarynxBack, Trachea, Lungs, LarynxFront
\LarynxLungsChords
}}{}
%
%k
\ifthenelse{\equal{\PhonemeLabel}{k} \or \equal{\PhonemeLabel}{g}}{\pscustom[fillcolor=red,fillstyle=solid]{%
%% Chords to Tongue Base
\ChordsToTongue
%% Tongue at Pharynx to Tongue Base Front
\pscurve(\TonguePharynxX,\TonguePharynxY)(\TongueUvularX,\TongueUvularY)
(\TongueVelarX,\TongueVelarY)
%
\pscurve(\VelarX,\VelarY)(\UvularX,\UvularY)(\NasalCavMovX,\NasalCavMovY)
% NCavPort to Pharynx
\psline(\NasalCavMovX,\NasalCavMovY)(\NasalPortStaticUpX,\NasalPortStaticUpY)(\NasalPortStaticDownX,\NasalPortStaticDownY)
(\PharynxBackUpStaticX,\PharynxBackUpStaticY)
% Pharynx, Esophagus, EsoPort
\PharynxToEsophag
% LarynxBack, Trachea, Lungs, LarynxFront
\LarynxLungsChords
}}{}
%
}
%=========================================
% Show Linear Vocal Tube
%=========================================
\newcommand\ShowLinearTubes[1]{
% ChordsFront to DownLips
\psline[linecolor=blue,showpoints=true](\ChordsJointFrontX,\ChordsJointFrontY)(\HyoidDownX,\HyoidDownY)
(\HyoidUpX,\HyoidUpY)(\EpiglotisBaseX,\EpiglotisBaseY)(\EpiglotisX,\EpiglotisY)(\TonguePharynxX,\TonguePharynxY)
(\TongueUvularX,\TongueUvularY)(\TongueVelarX,\TongueVelarY)(\TonguePalatalX,\TonguePalatalY)
(\TonguePostAlvX,\TonguePostAlvY)(\TongueAlveolarX,\TongueAlveolarY)(\SubTongueSalX,\SubTongueSalY)
(\TeethDownBaseInX,\TeethDownBaseInY)(\TeethDownEdgeX,\TeethDownEdgeY)(\LipDownInX,\LipDownInY)(\LipDownOutX,\LipDownOutY)
% ChordsBack to NPortStatic
\psline[linecolor=blue,showpoints=true](\ChordsJointBackX,\ChordsJointBackY)(\EsophagusPortX,\EsophagusPortY)
(\PharynxBackDownStaticX,\PharynxBackDownStaticY)
(\PharynxBackMiddleStaticX,\PharynxBackMiddleStaticY)
(\PharynxBackUpStaticX,\PharynxBackUpStaticY)
(\NasalPortStaticDownX,\NasalPortStaticDownY)
(\NasalPortStaticUpX,\NasalPortStaticUpY)
%
%NPortStatic to Nose
%\ifthenelse{#2=1.2}{%
\psline[linecolor=blue,showpoints=true](\NasalPortStaticDownX,\NasalPortStaticDownY)(\NasalPortStaticUpX,\NasalPortStaticUpY)(\NasalSphenoidDownX,\NasalSphenoidDownY)(\NasalSphenoidUpX,\NasalSphenoidUpY)(\NasalCavBackX,\NasalCavBackY)(\NasalCavCeilX,\NasalCavCeilY)(\NasalCavFrontX,\NasalCavFrontY)(\NoseBoneInX,\NoseBoneInY)(\NoseBoneDownX,\NoseBoneDownY)%}{}
% Nose to NCavPort To Upper Lips
\psline[linecolor=blue,showpoints=true](\NoseBaseX,\NoseBaseY)(\NasalCavAlvX,\NasalCavAlvY)(\NasalCavPalX,\NasalCavPalY)(\NasalCavVelarX,\NasalCavVelarY)(\NasalCavMovX,\NasalCavMovY)(\UvularX,\UvularY)(\VelarX,\VelarY)(\PalatalX,\PalatalY)(\PostPostAlveolarX,\PostPostAlveolarY)(\PostAlveolarX,\PostAlveolarY)(\AlveolarX,\AlveolarY)(\TeethUpBaseInX,\TeethUpBaseInY)(\TeethUpEdgeX,\TeethUpEdgeY)%(\TeethUpBaseOutX,\TeethUpBaseOutY)
(\LipUpInX,\LipUpInY)(\LipUpOutX,\LipUpOutY)
}
%=========================================
% Show CrossSection Areas
%=========================================
\newcommand\ShowParameters{%
%Lines
% 1. JW: Jaw Position
\rput[l](1.8 ,4.8 ){1}
% 2. TP: Tongue Position
\rput[l](1.2 ,5){2}
% 3. TS: Tongue Shape
\rput[l](1.4 ,5){3}
% 4. TA: Tongue Apex
\rput[l](2 ,5.8){4}
%% 5. LA: LIPS APERTURE
%\psline[linecolor=green,showpoints=true](\LipOutX,\LipDownY)(\LipOutX,\LipUpY)
\rput[t](\LipOutX,\LipUpY){5}
%%% 6. LP: LIPS PROTRUSION
%\psline[linecolor=green,showpoints=true](\LipDownInX,\LipDownInY)(\LipDownOutX,\LipDownOutY)
\rput[lt](\LipDownOutX,\LipDownOutY){6}
%%% 7. LH: LARYNX HEIGHT
%\psline[linecolor=green,showpoints=true](\ChordsJointFrontX,\ChordsJointFrontY)(\HyoidDownX,\HyoidDownY)
%%% 8. GA: Glottis Aperture
%%% 9. FX: Fund. Frequency
\rput[l](\ChordsJointFrontX,\ChordsJointFrontY){7,8,9}
%%% 10. NS: Nasal Cavity
%\psline[linecolor=green,showpoints=true](\NasalCavMovX,\NasalCavMovY)(\NasalPortStaticUpX,\NasalPortStaticUpY)
\rput[rb](\NasalPortStaticUpX,\NasalPortStaticUpY){10\hspace{0.75cm}}
%
%
\rput[l](0.75,1.7){\parbox{5cm}{1. JW: Jaw Position = \JW \\
2. TP: Tongue Position = \TP \\
3. TS: Tongue Shape = \TS \\
4. TA: Tongue Apex = \TA \\
5. LA: Lips Aperture = \LA \\
6. LP: Lips Protrusion = \LP \\
7. LH: Larynx Heigh = \LH \\
8. GA: Glottis Aperture= \GA \\
9. FX: Fund. Frequency = \FX \\
10. NS: Nasal Cavity = \NS}}
}