summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2012-03-13 22:39:05 +0000
committerKarl Berry <karl@freefriends.org>2012-03-13 22:39:05 +0000
commit649d975f9fdc7400e017fe94445d9faf338fa8df (patch)
treed282681dbe272cb6fd771f33b8bcc62259fab99b /Master
parentb92609b93bc7e9649fd001bd7a0c9585da130691 (diff)
new pstricks package vocaltract (13mar12)
git-svn-id: svn://tug.org/texlive/trunk@25629 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/latex/vocaltract/README83
-rw-r--r--Master/texmf-dist/doc/latex/vocaltract/vtLatex_AnimationDemo.tex36
-rw-r--r--Master/texmf-dist/doc/latex/vocaltract/vtLatex_AnimationLauncher.tex35
-rw-r--r--Master/texmf-dist/doc/latex/vocaltract/vtLatex_FigureDemo.pdfbin0 -> 14325 bytes
-rw-r--r--Master/texmf-dist/doc/latex/vocaltract/vtLatex_FigureDemo.tex31
-rw-r--r--Master/texmf-dist/doc/latex/vocaltract/vtLatex_FigureLauncher.tex29
-rw-r--r--Master/texmf-dist/doc/latex/vocaltract/vtLatex_TimeParams.tex1
-rw-r--r--Master/texmf-dist/doc/latex/vocaltract/vtMAINVisual.m99
-rw-r--r--Master/texmf-dist/doc/latex/vocaltract/vtQueryVisual.m114
-rw-r--r--Master/texmf-dist/tex/latex/vocaltract/VocalTract.sty928
-rwxr-xr-xMaster/tlpkg/bin/tlpkg-ctan-check2
-rw-r--r--Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc7
-rw-r--r--Master/tlpkg/tlpsrc/vocaltract.tlpsrc0
13 files changed, 1362 insertions, 3 deletions
diff --git a/Master/texmf-dist/doc/latex/vocaltract/README b/Master/texmf-dist/doc/latex/vocaltract/README
new file mode 100644
index 00000000000..adac23dfda8
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/vocaltract/README
@@ -0,0 +1,83 @@
+Vocal Tract Latex package
+---------------------------
+by Dr. Dimitrios Ververidis
+
+The manuscript related to this package can be found on PRACTex journal 2012/1
+URL: http://dw.tug.org/pracjourn/2012-1/ververidis/ververidis.pdf
+
+Please cite as:
+
+ "Dimitrios Ververidis, Daniel Schneider, and Joachim Koehler, "The vocal tract LATEX package," PracTeX journal, no 1, 2012."
+
+Package tested for Miktex 2.8 and 2.9 and Matlab 7.5 under Windows
+
+
+
+The software is licensed as FREE under APACHE 2.0 licence:
+http://www.apache.org/licenses/LICENSE-2.0.html
+
+
+
+Using the package:
+--------------------
+
+Examples
+
+1st Example - Simple Figure from Latex compiling
+-------------------------------------------------
+
+ Create a figure in PS or PDF by compiling with latex the file:
+
+ vtLatex_FigureDemo.tex
+
+
+2nd Example - Animation from Latex compiling
+---------------------------------------------
+
+ Create an animation in PDF by compiling with latex the file:
+
+ vtLatex_AnimationDemo.tex
+
+
+3rd Example - Simple Figure or Animation compiling from Matlab
+--------------------------------------------------------------
+
+ Create a simple Figure or Animation by compiling from Matlab the function
+
+ vtMainVisual.m
+
+ as
+ >> vtMainVisual(VocalTractVecToTime, SWPDForBMP)
+
+ where
+
+ 1. "VocalTractVecToTime" is the CELL of vocal set up through time. See the codebook of german phonemes in the VocalTract.sty.
+
+ For Example
+
+ VocalTractVecToTime = ...
+ {[ 0.5, -2, 1 , -2 , 1, -1 , 0, 0, 0, 0], 'i' ;
+ [ 0.5, -2, 1 , -2 , 0, 2 , 0, 0, 0, 0], 'y(\"u)' ;
+ [-1 , -1, 1 , -2 , 1, -0.5, 0, 0, 0, 0], 'e' };
+
+ 2. "SWPDForBMP" is the string either 'bmp' or 'pdf' to define the output format.
+
+ In case of 'bmp' the irfan view programm should be in current path.
+ From IrfanView two files are needed to be in current directory
+ 1. "i_view32.exe" and
+ 2. "/plugins/Postscript.dll"
+ Free download IrfanView from Irfan Skiljan, E-Mail: irfanview@gmx.net, http://www.irfanview.com
+
+
+4th Example - Animation compiling from Matlab with phonemes as an input
+------------------------------------------------------------------------
+
+ Create a PDF by compiling from Matlab
+ e.g.
+
+ >> vtQueryVisual('zats')
+
+
+
+
+
diff --git a/Master/texmf-dist/doc/latex/vocaltract/vtLatex_AnimationDemo.tex b/Master/texmf-dist/doc/latex/vocaltract/vtLatex_AnimationDemo.tex
new file mode 100644
index 00000000000..c3a8bce5c8d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/vocaltract/vtLatex_AnimationDemo.tex
@@ -0,0 +1,36 @@
+%=======================================
+% Vocal Tract Animation Demo
+%=======================================
+\documentclass{article}
+\usepackage{VocalTract}
+\pagestyle{empty}
+
+\begin{document}
+%\input{vtLatex_TimeParams} % Use this file of Parameters otherwise I will use the codebook in Style file
+\psset{yunit=1.5cm,xunit=1.5cm}
+\begin{animateinline}[poster=first,loop,controls]{1}%
+\multiframe{\Nframes}{IndexStepVocalTract=0+1}{
+\begin{pspicture}(0,-0.5)(6.5,8)
+\def\BreathType{0.5} % Normal Breathing [0.1 to 0.9]
+%=========== BreathTypeIncreaseLinearly ====
+%\FPset\accelerBreath{0.00556}
+%\FPmul\BreathType\IndexStepVocalTract\accelerBreath
+%\FPadd\BreathType\BreathType{0.1}
+\SetOscAmp{\IndexStepVocalTract}{\BreathType} % For Breath
+\UpdateRespOscillation % For Breath
+\UpdateVocalTract{\IndexStepVocalTract} % Update Vocal Tract in the respective time
+\VocalChords % Show VCords
+\StomachCompartment % Show Stomach Compartment
+\rput(1.75,7){\ShowPhonemesGerman{\IndexStepVocalTract}} % Show the phonemes transcriptions
+\ShowPressure{\IndexStepVocalTract} % Show Pressure as Red Space
+\rput(2,0){\ShowLinearTubes{\IndexStepVocalTract}\VocalChords} % The linear model next to the human
+\rput(2.5,0){\ShowParameters} % Explain the parameters
+%------------ Grid and Axes Labels --------------
+%\uput[45](0,8){$\times$ 10 cm}
+%\uput[45](3,0){$\times$ 10 cm}
+%\psgrid[gridcolor=blue,subgridcolor=gray,gridlabels=7pt,subgriddiv=10](0,0)(5,12) % subgriddiv=4,griddots=10,
+%------------------------------------------------
+\end{pspicture}
+} % Multiframe
+\end{animateinline}
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/vocaltract/vtLatex_AnimationLauncher.tex b/Master/texmf-dist/doc/latex/vocaltract/vtLatex_AnimationLauncher.tex
new file mode 100644
index 00000000000..329e01243d8
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/vocaltract/vtLatex_AnimationLauncher.tex
@@ -0,0 +1,35 @@
+%=======================================
+% Vocal Tract Animation Launcher
+%=======================================
+\documentclass{article}
+\usepackage{VocalTract}
+\pagestyle{empty}
+
+\begin{document}
+\input{vtLatex_TimeParams} % This is the file of Parameters generated by Matlab
+\psset{yunit=2cm,xunit=2cm}
+\begin{animateinline}[poster=first,loop,controls]{1}%
+\multiframe{\Nframes}{IndexStepVocalTract=0+1}{
+\begin{pspicture*}(0cm,-2cm)(13cm,15.5cm)
+\def\BreathType{0.5} % Normal Breathing [0.1 to 0.9]
+%=========== BreathTypeIncreaseLinearly ====
+%\FPset\accelerBreath{0.00556}
+%\FPmul\BreathType\IndexStepVocalTract\accelerBreath
+%\FPadd\BreathType\BreathType{0.1}
+\SetOscAmp{\IndexStepVocalTract}{\BreathType} % For Breath
+\UpdateVocalTract{\IndexStepVocalTract} % Update Vocal Tract in the respective time
+\VocalChords % Show VCords
+\StomachCompartment % Show Stomach Compartment
+\rput(3cm,14cm){\ShowPhonemesGerman{\IndexStepVocalTract}} % Show the phonemes transcriptions
+\ShowPressure{\IndexStepVocalTract} % Show Pressure as Red Space
+\rput(3cm,0cm){\ShowLinearTubes{\IndexStepVocalTract}\VocalChords} % The linear model next to the human
+\rput(3.5cm,0cm){\ShowParameters} % Explain the parameters
+%------------ Grid and Axes Labels --------------
+%\uput[45](0,8){$\times$ 10 cm}
+%\uput[45](3,0){$\times$ 10 cm}
+%\psgrid[gridcolor=blue,subgridcolor=gray,gridlabels=7pt,subgriddiv=10](0,0)(5,12) % subgriddiv=4,griddots=10,
+%------------------------------------------------
+\end{pspicture*}
+} % Multiframe
+\end{animateinline}
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/vocaltract/vtLatex_FigureDemo.pdf b/Master/texmf-dist/doc/latex/vocaltract/vtLatex_FigureDemo.pdf
new file mode 100644
index 00000000000..c6d81dc0d2a
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/vocaltract/vtLatex_FigureDemo.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/vocaltract/vtLatex_FigureDemo.tex b/Master/texmf-dist/doc/latex/vocaltract/vtLatex_FigureDemo.tex
new file mode 100644
index 00000000000..2359725be64
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/vocaltract/vtLatex_FigureDemo.tex
@@ -0,0 +1,31 @@
+%==============================================
+% Vocal Tract Figure Generator for PS or PDF
+%==============================================
+\documentclass{article}
+\usepackage{VocalTract}
+\pagestyle{empty}
+
+\begin{document}
+%\input{vtLatex_TimeParams} % In case u want to store coordinates to a file
+% or Alternative Use the inside codebook of vector in ".sty" file
+\def\IndexStepVocalTract{13} % 13 corresponds to f
+\psset{yunit=2cm,xunit=2cm}
+\begin{pspicture*}(0cm,0cm)(13cm,18cm)
+\def\BreathType{0.5} % Normal Breathing [0.1 to 0.9]
+\SetOscAmp{\IndexStepVocalTract}{\BreathType} % For Breath
+\UpdateRespOscillation % For Breath
+\UpdateVocalTract{\IndexStepVocalTract} % Update Vocal Tract in the respective time
+\VocalChords % Show VCords
+\StomachCompartment % Show Stomach Compartment
+%\PlotDotsVocal % Show some movable vocal tract points
+\rput(3cm,14cm){\ShowPhonemesGerman{\IndexStepVocalTract}} % Show the phonemes transcriptions
+\ShowPressure{\IndexStepVocalTract} % Show Pressure as Red Space
+\rput(3cm,0cm){\ShowLinearTubes{\IndexStepVocalTract}\VocalChords} % The linear model next to the human
+\rput(3.5cm,0cm){\ShowParameters} % Explain the parameters
+%------------ Grid and Axes Labels --------------
+%\uput[45](0,8){$\times$ 10 cm}
+%\uput[45](3,0){$\times$ 10 cm}
+%\psgrid[gridcolor=blue,subgridcolor=gray,gridlabels=7pt,subgriddiv=10](0,0)(5,12) % subgriddiv=4,griddots=10,
+%------------------------------------------------
+\end{pspicture*}
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/vocaltract/vtLatex_FigureLauncher.tex b/Master/texmf-dist/doc/latex/vocaltract/vtLatex_FigureLauncher.tex
new file mode 100644
index 00000000000..eb0ed2c8b03
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/vocaltract/vtLatex_FigureLauncher.tex
@@ -0,0 +1,29 @@
+%=======================================
+% Vocal Tract Figure Generator
+%=======================================
+\documentclass{article}
+\usepackage{VocalTract}
+\pagestyle{empty}
+
+\begin{document}
+\input{vtLatex_TimeParams} % Parameters stored in a file
+\def\IndexStepVocalTract{1}
+\psset{yunit=2cm,xunit=2cm}
+\begin{pspicture*}(0cm,0cm)(13cm,18cm)
+\def\BreathType{0.5} % Normal Breathing [0.1 to 0.9]
+\SetOscAmp{\IndexStepVocalTract}{\BreathType} % For Breath
+\UpdateVocalTract{\IndexStepVocalTract} % Update Vocal Tract in the respective time
+\VocalChords % Show VCords
+\StomachCompartment % Show Stomach Compartment
+%\PlotDotsVocal % Show movable vocal tract points
+\rput(3cm,14cm){\ShowPhonemesGerman{\IndexStepVocalTract}} % Show the phonemes transcriptions
+\ShowPressure{\IndexStepVocalTract} % Show Pressure as Red Space
+\rput(3cm,0cm){\ShowLinearTubes{\IndexStepVocalTract}\VocalChords} % The linear model next to the human
+\rput(3cm,0cm){\ShowParameters} % Explain the parameters
+%------------ Grid and Axes Labels --------------
+%\uput[45](0,8){$\times$ 10 cm}
+%\uput[45](3,0){$\times$ 10 cm}
+%\psgrid[gridcolor=blue,subgridcolor=gray,gridlabels=7pt,subgriddiv=10](0,0)(5,12) % subgriddiv=4,griddots=10,
+%------------------------------------------------
+\end{pspicture*}
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/vocaltract/vtLatex_TimeParams.tex b/Master/texmf-dist/doc/latex/vocaltract/vtLatex_TimeParams.tex
new file mode 100644
index 00000000000..706036591be
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/vocaltract/vtLatex_TimeParams.tex
@@ -0,0 +1 @@
+\newarray\SpeakVec\readarray{SpeakVec}{ 2.5&0&0&0.4&0&0&0&-1&0&0&z&-1.5&2.5&0&-0.5&0.5&-0.5&0&0&0&0&a&0&-0.5&-1&2.3&0&0&0&-3&-3&-3&t&2.5&0&0&0.4&0&0&0&-3&-3&-3&s& } \dataheight=11 \def\Nframes{5} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/vocaltract/vtMAINVisual.m b/Master/texmf-dist/doc/latex/vocaltract/vtMAINVisual.m
new file mode 100644
index 00000000000..6356cb7f66b
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/vocaltract/vtMAINVisual.m
@@ -0,0 +1,99 @@
+function vtMAINVisual(VocalTractVecToTime,SWPDForBMP)
+
+if nargin < 2
+ SWPDForBMP = 'BMP'; % PDF, BMP
+ %========================================================================================
+ % 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
+ %========================================================================================
+ VocalTractVecToTime = ...
+ {[ 0.5, -2, 1 , -2 , 1, -1 , 0, 0, 0, 0], 'i' ;
+ [ 0.5, -2, 1 , -2 , 0, 2 , 0, 0, 0, 0], 'y(\"u)' ;
+ [-1 , -1, 1 , -2 , 1, -0.5, 0, 0, 0, 0], 'e' };
+end
+
+% if you want a BMP Figure (not a PDF Animation) use first line
+if strcmp(SWPDForBMP,'BMP') && size(VocalTractVecToTime,1)>1
+ VocalTractVecToTime = VocalTractVecToTime(1,1:2);
+end
+
+
+NumberOfTimeFrames = size(VocalTractVecToTime,1);
+VocalTractVecToTimeSTR = Mat2StrCustom(VocalTractVecToTime);
+
+%---------------- Add some commands before and after ---------------
+LatexDefCommandsOfCordsPre = ['\newarray\SpeakVec' ...
+ '\readarray{SpeakVec}{'];
+
+LatexDefCommandsOfCordsPost = ['}'...
+ ' \dataheight=11' ...
+ ' \def\Nframes{' num2str(NumberOfTimeFrames+1) '}'];
+
+% %------- Create the Coordinates file ----------------
+fid = fopen('vtLatex_TimeParams.tex', 'w');
+
+fwrite(fid,sprintf('%s %s %s',LatexDefCommandsOfCordsPre,...
+ VocalTractVecToTimeSTR,...
+ LatexDefCommandsOfCordsPost),'char');
+fclose(fid);
+
+%---------------- START the Compilers -----------------------------
+
+if strcmp(SWPDForBMP,'BMP')
+ %-- tex2dvi
+ !latex -interaction=nonstopmode vtLatex_FigureLauncher.tex
+ %--- view dvi
+ %!"C:/Program Files/MiKTeX 2.8/miktex/bin/yap.exe" vtLatex_FigureLauncher.dvi
+ %--- dvi2ps
+ !dvips -o vtLatex_FigureLauncher.ps vtLatex_FigureLauncher.dvi
+
+ %--- ps2bmp
+ strpwd = lower(pwd);
+ eval(['!i_view32.exe "' strpwd '\vtLatex_FigureLauncher.ps"' ...
+ ' /crop=(130,250,550,600) /convert="' ...
+ strpwd '\vtLatex_FigureLauncher.bmp" ']);
+
+ %--- read and show
+ a = imread('vtLatex_FigureLauncher.bmp');
+ imshow(a);
+elseif strcmp(SWPDForBMP,'PDF')
+ %-- tex2dvi
+ !latex -interaction=nonstopmode vtLatex_AnimationLauncher.tex
+ %--- view dvi
+ %!"C:/Program Files/MiKTeX 2.8/miktex/bin/yap.exe" vtLatex_AnimationLauncher.dvi
+ %--- dvi2ps
+ !dvips -o vtLatex_AnimationLauncher.ps vtLatex_AnimationLauncher.dvi
+ %---- ps2pdf
+ !ps2pdf vtLatex_AnimationLauncher.ps
+ %--- view pdf
+ !AcroRd32.exe vtLatex_AnimationLauncher.pdf
+end
+
+
+
+
+%===================================================================
+% Matrix to a String Ordering with & intervening
+%===================================================================
+function STR = Mat2StrCustom(Matr)
+
+R = size(Matr,1);
+C = length(Matr{1,1});
+
+STR = [];
+for IndRow= 1:R
+ for IndCol = 1:C
+ STR = [STR num2str(Matr{IndRow,1}(IndCol)) '&'];
+ end
+ STR = [STR Matr{IndRow,2} '&'];
+end
+STR = STR(1:end-1);
+
+
diff --git a/Master/texmf-dist/doc/latex/vocaltract/vtQueryVisual.m b/Master/texmf-dist/doc/latex/vocaltract/vtQueryVisual.m
new file mode 100644
index 00000000000..f0b05abc9d9
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/vocaltract/vtQueryVisual.m
@@ -0,0 +1,114 @@
+function vtQueryVisual(STRQuery)
+
+%========================================================================================
+% 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
+%========================================================================================
+VocalTractVecToTimeCodeBook = ...
+ {[ 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
+
+
+
+VocalTractVecToTime = FindVectorsFromCodeBook(VocalTractVecToTimeCodeBook, STRQuery);
+
+NumberOfTimeFrames = size(VocalTractVecToTime,1);
+VocalTractVecToTimeSTR = Mat2StrCustom(VocalTractVecToTime);
+
+%---------------- Add some commands before and after ---------------
+LatexDefCommandsOfCordsPre = ['\newarray\SpeakVec' ...
+ '\readarray{SpeakVec}{'];
+
+LatexDefCommandsOfCordsPost = ['}'...
+ ' \dataheight=11' ...
+ ' \def\Nframes{' num2str(NumberOfTimeFrames+1) '}'];
+
+% %------- Create the Coordinates file ----------------
+fid = fopen('vtLatex_TimeParams.tex', 'w');
+
+fwrite(fid,sprintf('%s %s %s',LatexDefCommandsOfCordsPre,...
+ VocalTractVecToTimeSTR,...
+ LatexDefCommandsOfCordsPost),'char');
+fclose(fid);
+
+%---------------- START the Compilers -----------------------------
+ %-- tex2dvi
+ !latex -interaction=nonstopmode vtLatex_AnimationLauncher.tex
+ %--- dvi2ps
+ !dvips -o vtLatex_AnimationLauncher.ps vtLatex_AnimationLauncher.dvi
+ %---- ps2pdf
+ !ps2pdf vtLatex_AnimationLauncher.ps
+ %--- view pdf
+ !AcroRd32 vtLatex_AnimationLauncher.pdf
+
+
+%===================================================================
+% Matrix to a String Ordering with & intervening
+%===================================================================
+function STR = Mat2StrCustom(Matr)
+
+R = size(Matr,1);
+C = length(Matr{1,1});
+
+STR = [];
+for IndRow= 1:R
+ for IndCol = 1:C
+ STR = [STR num2str(Matr{IndRow,1}(IndCol)) '&'];
+ end
+ STR = [STR Matr{IndRow,2} '&'];
+end
+%STR = STR(1:end-1);
+
+%===================================================================
+% QUERY CODEBOOK
+%===================================================================
+function OutVecs = FindVectorsFromCodeBook(InVecs, STRQuery)
+
+NPhonemes = length(STRQuery);
+
+NumericBookPhonemes = zeros(1,NPhonemes);
+
+BookOfPhonemes = InVecs(:,2);
+
+for iPhoneme = 1:NPhonemes,
+ NumericBookPhonemes(iPhoneme) = find(strcmp(BookOfPhonemes,STRQuery(iPhoneme)));
+end
+
+OutVecs = InVecs(NumericBookPhonemes,:);
+return
+
+
+
diff --git a/Master/texmf-dist/tex/latex/vocaltract/VocalTract.sty b/Master/texmf-dist/tex/latex/vocaltract/VocalTract.sty
new file mode 100644
index 00000000000..356fcff07ae
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/vocaltract/VocalTract.sty
@@ -0,0 +1,928 @@
+% 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}}
+} \ No newline at end of file
diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check
index 8c7dfe31280..95b73e3ab93 100755
--- a/Master/tlpkg/bin/tlpkg-ctan-check
+++ b/Master/tlpkg/bin/tlpkg-ctan-check
@@ -423,7 +423,7 @@ my @TLP_working = qw(
varsfromjobname varwidth vaucanson-g
velthuis venn venturisadf verbasef verbatimbox verbatimcopy verbdef
verbments verse version versions vertbars
- vhistory visualfaq vmargin vntex volumes vpe vruler vwcol
+ vhistory visualfaq vmargin vntex vocaltract volumes vpe vruler vwcol
wadalab wallpaper warning warpcol was widetable williams
wnri wnri-latex wordlike
wrapfig wsuipa
diff --git a/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc b/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc
index d44cdc333a1..67b50112d69 100644
--- a/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc
@@ -1,5 +1,9 @@
category Collection
shortdesc PSTricks packages
+#
+depend collection-basic
+depend collection-genericrecommended
+#
depend auto-pst-pdf
depend bclogo
depend makeplot
@@ -82,5 +86,4 @@ depend pstricks-add
depend pstricks_calcnotes
depend uml
depend vaucanson-g
-depend collection-basic
-depend collection-genericrecommended
+depend vocaltract
diff --git a/Master/tlpkg/tlpsrc/vocaltract.tlpsrc b/Master/tlpkg/tlpsrc/vocaltract.tlpsrc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/vocaltract.tlpsrc