summaryrefslogtreecommitdiff
path: root/macros/mtex/macros
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/mtex/macros
Initial commit
Diffstat (limited to 'macros/mtex/macros')
-rw-r--r--macros/mtex/macros/mtex.tex1976
-rw-r--r--macros/mtex/macros/mtexdemo.tex299
-rw-r--r--macros/mtex/macros/mtexinfo.tex468
3 files changed, 2743 insertions, 0 deletions
diff --git a/macros/mtex/macros/mtex.tex b/macros/mtex/macros/mtex.tex
new file mode 100644
index 0000000000..57c2acdb2d
--- /dev/null
+++ b/macros/mtex/macros/mtex.tex
@@ -0,0 +1,1976 @@
+% %
+% Copyright (C) 1986,1987 by Andrea Steinbach and Angelika Schofer %
+% %
+% %
+% 10.11.87 \def\hunkglue ge"andert. (welche Auswirkungen hat das, %
+% ausser dass \two... einen Fehler weniger macht???) %
+% 16.11.87 \def\intslurwidth ge"andert (vor division += \seminhw %
+% 16.11.87 \def\gradientslur ge"andert (vor division += .5\seminhh %
+% %
+\def\fmtname{MTeX}\def\fmtversion{0.92}
+\immediate\write10{MTeX Version 0.92 - Release 16 November 1987}
+% %
+% INHALTSVERZEICHNIS %
+% %
+% Allgemeine Vereinbarungen ......................................... 2 %
+% Definitionen der neuen Zeichensaetze .............................. 2 %
+% Definitionen der neuen Character .................................. 2 %
+% Registerdefinitionen: Count,Box,Dimen usw ......................... 3 %
+% Registerinitialisierungen ......................................... 6 %
+% Punktierung ....................................................... 7 %
+% Hilfsfunktionen - Hilfsmacros ..................................... 8 %
+% Macros zur Listenerzeugung und Verarbeitung .......................10 %
+% Notenlinien und Hilfslinien .......................................11 %
+% Taktstriche u. ae. ................................................12 %
+% Das Setzen der Versetzungszeichen .................................13 %
+% Versetzungszeichen - Eingabemacros ................................14 %
+% Noten - Eingabemacros ................................14 %
+% Pausen - Eingabemacros ................................14 %
+% Wertpunkte ........................................................15 %
+% Akkorde - Eingabemacros ................................16 %
+% Konstruktion der Noten und Pausen .................................16 %
+% Berechnung der Notenhalslaengen ...................................17 %
+% Konstruktion der Notenhaelse ......................................18 %
+% Das Setzen der Noten ..............................................18 %
+% Tonarten und Aufloesung, Notenschluessel und Taktangabe ...........19 %
+% Die Verarbeitung der Nachbarschaften ..............................20 %
+% Die Initialisierung der Listen einer Notengruppe ..................20 %
+% Abarbeitung und Setzen einer Notengruppe ..........................21 %
+% Verbalkung - Eingabemacros ........................................21 %
+% Berechnungen der Halslaengen und Steigung .........................22 %
+% Plazierung und Zusammensetzung der Balken .........................24 %
+% Die Bogen .........................................................25 %
+% Akzente fuer Noten und Akkorde ....................................30 %
+% Textunterlage .....................................................31 %
+% Zweistimmige Notation in einem System .............................33 %
+% Beginn und Ende ...................................................33 %
+% Defaults ..........................................................34 %
+% %
+% %
+% (Seitennummern bei Druck des Makropakets mit 60 Zeilen je Seite) %
+% %
+% %
+% %
+% %
+% %
+% %
+% %
+% %
+% %
+% %
+% %
+% %
+% %
+% %
+\catcode`@=11
+% ************************************************** %
+% * Allgemeine Vereinbarungen * %
+% ************************************************** %
+\frenchspacing
+%\parindent 0pt
+% Parameter fuer Notensatz
+\def\inisong{\linepenalty10%\linepenalty100
+ \pretolerance=-1
+ \tolerance=200
+ \finalhyphendemerits=-1000
+ \hyphenpenalty=-1000
+ \exhyphenpenalty=-100
+ \doublehyphendemerits=-1000
+ \adjdemerits=1000
+ \adjdemerits=250
+ \interlinepenalty=-10 \inidefaults}%\inidefaults siehe DEFAULTS
+%\parfillskip0pt
+% Dimensionen die in PLAIN TEX eingefuehrt wurden
+%\newdimen\p@ \p@=1pt % this saves macro space and time
+%\newdimen\z@ \z@=0pt % can be used both for 0pt and 0
+%\newskip\z@skip \z@skip=0pt plus0pt minus0pt
+%\newbox\voidb@x % permanently void box register
+% ************************************************** %
+% * Definition der neuen Zeichensaetze * %
+% ************************************************** %
+\font\music=music16 %Noten
+\font\smallmusic=music16 %Noten(im Moment noch mit
+ %\music identisch
+\font\beamfont=beam16 %Balken
+\font\slurfont=slur16 %Bogen
+\font\slurfontuu=sluruu16 %Bogen
+\font\slurfontud=slurud16 %Bogen
+\font\slurfontdu=slurdu16 %Bogen
+\font\slurfontdd=slurdd16 %Bogen
+\font\eightrm =cmr8
+% ************************************************** %
+% * Definition der neuen Character * %
+% ************************************************** %
+\catcode`\"=12
+\def\hex{"} % zum Eingeben von Zahlen in hex
+\def\3{\char"19{}}
+\catcode`\"=\active %Unlaute
+\def"{\accent'177}
+%
+\chardef\quart=\hex21 %Notenkoepfe
+\chardef\half=\hex22
+\chardef\whole=\hex23
+\chardef\eighthup=\hex28 %Faehnchen
+\chardef\eighthdown=\hex2D
+\chardef\sixteenthup=\hex29
+\chardef\sixteenthdown=\hex2E
+\chardef\thirtytwoup=\hex2A
+\chardef\thirtytwodown=\hex2F
+\chardef\sixtyfourup=\hex2B
+\chardef\sixtyfourdown=\hex30
+\chardef\hundredtwentyeightup=\hex2C
+\chardef\hundredtwentyeightdown=\hex31
+\chardef\wholerest=\hex3C %Pausen
+\chardef\halfrest=\hex3D
+\chardef\quartrest=\hex3E
+\chardef\eighthrest=\hex3F
+\chardef\sixteenthrest=\hex40
+\chardef\doublerest=\hex3A %Taktpausen
+\chardef\ddoublerest=\hex3B
+\chardef\fermateup=\hex50 %Fermaten
+\chardef\fermatedown=\hex51
+\chardef\mflat=\hex32 %Versetzungszeichen
+\chardef\mdoubleflat=\hex33
+\chardef\mquartflat=\hex37
+\chardef\mthreequartflat=\hex3A
+\chardef\msharp=\hex34
+\chardef\mdoublesharp=\hex35
+\chardef\mnatural=\hex36
+\chardef\mviolin=\hex47 %Notenschluessel
+\chardef\mviolinoct=\hex47
+\chardef\mviolinOct=\hex47
+\chardef\mbass=\hex49
+\chardef\mbassoct=\hex49
+\chardef\mbassOct=\hex49
+\chardef\mbariton=\hex4D
+\chardef\mtenor=\hex4C
+\chardef\malt=\hex4B
+\chardef\mmezzosopran=\hex4E
+\chardef\msopran=\hex4E
+\chardef\mC=\hex53 %Taktangaben
+\chardef\allabreve=\hex52
+\chardef\mCreverse=\hex54
+% ************************************************** %
+% * Registerdefinitionen * %
+% ************************************************** %
+%1.Hilfsregister
+\newbox\hb@i % Hilfsbox
+\newbox\hb@ii % Hilfsbox
+\newbox\hb@iii % Hilfsbox
+\newbox\hb@iv % Hilfsbox
+\newdimen\hd@i % Hilfsdimension
+\newdimen\hd@ii % Hilfsdimension
+\newdimen\hd@iii % Hilfsdimension
+\newcount\hc@i % Hilfscount
+\newcount\hc@ii % Hilfscount
+\newskip\hs@i % Hilfsskip
+\newskip\hs@ii % Hilfsskip
+\newskip\hs@iii % Hilfsskip
+\newskip\hs@iv % Hilfsskip
+\newskip\hs@v % Hilfsskip
+\newskip\hs@vi % Hilfsskip
+\newskip\hs@vii % Hilfsskip
+\newtoks\ht@i % Hilfstokenregister
+%2. Boxes fuer Notenkonstruktionen
+\newbox\notebox %zum Setzen der Noten
+\newbox\leftbox %Akkordnoten links vom Notenhals
+\newbox\rightbox %Akkordnoten rechts vom Notenhals
+\newbox\dotbox %Wertpunkte fuer Akkorde
+\newbox\akzentbox %Akzente
+\newbox\hunkbox %Hunks
+\newbox\h@nkbox %Hunks im zweidimensionalen Satz
+\newbox\legerbox %Hilfslinien
+\newbox\firstvoice %erste Stimme bei Zweistimmiger Notation
+\newbox\secondvoice %zweite Stimme bei Zweistimmiger Notation
+\newbox\placebox %zum Setzen der Taktangabe
+\newbox\neighborhood %Box zum Speichern der Nachbarschaft
+%3. Tokenregister
+\newtoks\notename %Noten- oder Pausenwertname
+\newtoks\direction %Richtung des Notenhalses up oder down
+\newtoks\d@rection %Richtung des Notenhalses (global)
+\newtoks\cleftoks %aktueller Notenschluessel
+\newtoks\signtoks %aktuelle Vorzeichnung
+\newtoks\canceltoks %aktuelle Aufloesung
+\newtoks\slurtoks %zur Bestimmung des Charactercodes fuer Bogen
+\newtoks\ta %fuer Listenverarbeitung ....
+\newtoks\tb % .... bei \rightappend
+%4.Umgebungen
+\newif\iffirst %erste Zeile Zeilenanfang: Initialisierung von
+ %Notenschluessel, Tonart und Taktart
+\newif\ifbeam %Verbalkung
+\newif\ifchord %Akkord
+\newif\ifleft %Plazieren der Akkordnoten links vom Notenhals
+\newif\ifstemup %Notenhalsrichtung aufwaerts
+\newif\ifgroup %Initialisierung der Nachbarschaftslisten
+\newif\iftwo %zweistimmiger Notensatz
+\groupfalse\chordfalse\leftfalse\beamfalse\groupfalse\twofalse
+%5.Countregister
+\newcount\dur@tion
+% \dur@tion Notenwert
+% 0 1/1
+% 1 1/2
+% 2 1/4
+% 3 1/8
+% 4 1/16
+% 5 1/32
+% 6 1/64
+% 7 1/128
+\newcount\pitch % interne Tonhoehe
+\newcount\pit@ % interne Hilfstonhoehe
+\newcount\oldpitch % interne Tonhoehe
+\global\oldpitch=0 % Anfangsbelegung
+\newcount\maxpitch % maximale interne Tonhoehe bei Akkord
+\newcount\minpitch % minimale interne Tonhoehe bei Akkord
+\newcount\nn % Anzahl der Hilfslinien
+\newcount\clefcount % Parameter Verschieben der Vorzeichnung
+ % abhaengig von Notenschluessel
+\newcount\accpitch % Vozeichnungs Tonhoehe
+ %Nachbarschaften: Balken- und Bogengruppen
+\newcount\tieconst % Konstante fuer Hoehe des Bogenstuecks
+ % fuer Haltebogen
+\newcount\phraseconst % konstantes Bogenstueck bei Phrasierungs-
+ % bogen
+\newcount\n@a % Index 1.Element einer Gruppe
+\newcount\n@i % Laufindex in der Gruppe
+\newcount\n@e % Index letztes Element einer Gruppe
+\newcount\N % Kardinalitaet der Nachbarschaft
+\newcount\m@i % Listenindex
+\newcount\m@ii % Listenindex
+\newcount\L@ % Laenge des Balkens in 0.5pt
+\newcount\l@ % zur Zusammensetzung des Balkens
+\newcount\m@a\newcount\m@e % Anfangs- und Endindex der Elementliste
+ % die durch einen Balken verbunden werden
+ % sollen
+\newcount\P@i %lok. pitch, der in endpoint benutzt wird
+\newcount\P@a %Anfangspitch
+\newcount\P@e %Endpitch
+\newcount\beamrow %Korrektur von vpos bei mehrfachverb.
+\newcount\S % Steigung
+\newcount\S@ % Absolutbetrag der Steigung
+\newcount\slurwidth % Ganzzahlige Breite eines Bogens in
+ % Einheiten von \nhw
+\newcount\V@int % Ganzzahlige Hoehe eines Bogens in
+ % Einheiten von 1/2\nhh
+\newcount\CODE % Charcode Steigung von Balken
+\newcount\flaga % Werte 0,1,2 Bogenanfang
+\newcount\flagb % Werte 0,1,2 Bogenende
+\newcount\flagc % Balkensteigung = 0 ja/nein
+%6.Dimensionsregister
+%Konstanten
+\newdimen\linethickness % Dicke einer Notenlinie
+\newdimen\nhh % Linienabstand, noteheadheight
+\newdimen\nhw % Notenkopfbreite, noteheadwidth
+\newdimen\seminhh % halber Linienabstand = 1/2\nhh
+\newdimen\seminhw % halbe Notenkopfbreite = 1/2\nhw
+\newdimen\twonhh % = 2\nhh
+\newdimen\I@@ % = 100pt
+\newdimen\stemwidth % = 2\linethickness
+\newdimen\beamthickness % = 0.6 \nhh
+\newdimen\staffheight % = 4\nhh + \linehight
+\newdimen\textline % = \staffheigth, Abstand Schriftlinie --
+ % Grundlinie bei Textunterlage
+\newdimen\linekern % \nhh - \linethickness,kern zw.den Zeilen
+\newdimen\Linekern % \nhh -2\linethickness,kern zw.den Zeilen
+ % bei Hilfslinien
+\newdimen\dotwd % Breite eines Verlaengerungspunktes
+\newdimen\smkern % kleiner Kern zur Korrektur vor und
+ % nach Notenkoepfen (Hilfslinien)
+%Parameter
+\newdimen\yshift % dimen!, um die die Vorzeichen verschoben
+ % werden in Y-Richtung!
+\newdimen\nyshift % dimen!, um die die NOTENbox verschoben
+ % wird in Y-Richtung!
+\newdimen\lyshift % dimen!, um die die LEGERbox verschoben
+ % wird in Y-Richtung!
+\newdimen\akzent@pos %vertikale Positionierung eines
+ %Artikulationszeichens
+ %Nachbarschaften: Balken- und Bogengruppen
+\newdimen\s@a %Anfangstemlength
+\newdimen\s@e %Endstemlength
+\newdimen\minsl %untere Grenze f. Stemverkuerzung
+\newdimen\R@i % rel. Hoehe des Notenkopfes pitch*seminhh
+\newdimen\E@a % Endpunkt des Notenhalses Anfangsnote
+% pitch*seminhh +(-)stemlength
+\newdimen\R@a % rel. Hoehe des Notenkopfes pitch*seminhh
+\newdimen\E@e % Endpunkt des Notenhalses Endnote
+% pitch*seminhh +(-)stemlength
+\newdimen\R@e % relative Hoehe des Notenkopfes
+\newdimen\s@i %lok. stemlength, in endpoint
+\newdimen\Abs %Absoluter Abstand zwischen 2 Endpunkten
+\newdimen\corr %Korrekturwert fuer 2. Stem
+\newdimen\sl@c %4.Korrekturwert fuer Stemlaengen
+\newdimen\EP@ %Endpunkt des ersten Stems einer Notengr.
+\newdimen\EP@i %Endpunkt des Stems innerhalb einer Gruppe
+\newdimen\E@l % Unterer Startpunkt fuer Bogenansatz
+\newdimen\E@u % oberer Startpunkt fuer Bogenansatz
+\newdimen\H@e % horizontaler Abstand zwischen zwei Noten
+\newdimen\H@a % Korrekturwert zur Berechnung von H@e
+\newdimen\H@a@cor % Korrekturwert zur Berechnung der Laenge
+ % Balkens oder Bogens (bzgl. H@list)
+\newdimen\H@e@cor % Korrekturwert zur Berechnung der Laenge
+ % Balkens oder Bogens (bzgl. H@list)
+\newdimen\limit %\limit = 0.45\H@e=Grenzwert
+\newdimen\V@ %vertikaler Abstand zwischen zwei Noten
+\newdimen\gradfactor %= 0.005\S\p@
+\newdimen\SHIFT
+\newdimen\slurcor % horizontal Kern fuer Bogenpositionierung
+\newdimen\H@m@a % Horizontaler Abschnitt von m@a
+\newdimen\L@a % Balkenlaenge
+\newdimen\V@a % vertikale Position des Balkens
+\newdimen\stemlength % Laenge des Notenhalses
+\newdimen\linelength % Laenge der Notenlinien
+%Textunterlage
+\newdimen\overtext % fuer Textueberlage
+\newdimen\undertext % fuer Textunterlage
+%6. Skipregister
+% Ausschlussparamter
+\newskip \NOTEskip % Glue nach ganzer Note
+\newskip \Noteskip % Glue nach halber Note
+\newskip \noteskip % Glue nach 1/4 Note
+\newskip \notEskip % Glue nach 1/8 Note
+\newskip \noTEskip % Glue nach 1/16 Note
+\newskip \nOTEskip % Glue nach 1/32 Note
+\newskip \nOteskip % Glue nach 1/64 Note
+\newskip \nOtEskip % Glue nach 1/128 Note
+\newskip \ruleskip % Glue nach Rules
+\newdimen\hunkskip % Glue fuer Hunks
+\newskip\oldskip % aktueller \spaceskip vor Nachbarschaft
+% ************************************************** %
+% * Registerinitialisierungen * %
+% ************************************************** %
+\beamfont \beamthickness = 1ex
+\music \nhh = 1ex \nhw = 1em
+ \seminhh = 0.5\nhh \seminhw = 0.5\nhw
+ \twonhh = 2 \nhh
+\I@@ = 100 pt
+\linethickness = 0.15pt
+\stemwidth = 2\linethickness
+\staffheight = 4 \nhh \advance\staffheight by \linethickness
+\linekern = \nhh \advance\linekern by-\linethickness
+\Linekern = \nhh \advance\Linekern by-2\linethickness
+\overtext =\staffheight \advance\overtext by\nhh
+\def\u@text{\relax}\def\l@text{\relax}
+\textline =\staffheight
+\undertext =\textline
+\tieconst = 4 \phraseconst = 2
+\def\up@{up}\def\down@{down}
+% ************************************************** %
+% * Punktierung * %
+% ************************************************** %
+%1.Ausschluss-schemata
+\let\sk=\spaceskip
+%\ruleskip = \seminhw plus \seminhw minus 0.5\seminhw
+\ruleskip = \nhw plus \seminhw minus \seminhw
+\smkern = 0.2\nhw \relax
+\def\hsmall{%hader
+\Noteskip 3\nhw plus 2\seminhw minus 2\seminhw
+\NOTEskip = \Noteskip
+\noteskip 2\nhw plus 1.5\seminhw minus 1.5\seminhw
+\notEskip 1\nhw plus \seminhw minus \seminhw
+\noTEskip \z@ plus 0.5\seminhw minus \z@
+\nOTEskip=\noTEskip \nOteskip=\noTEskip \nOtEskip=\noTEskip
+\hunkskip \z@\relax}
+\def\small{%
+\Noteskip 3.5\nhw plus 1.8\seminhw minus 1.8\seminhw
+\NOTEskip = \Noteskip
+\noteskip 2.5\nhw plus 1.4\seminhw minus 1.4\seminhw
+\notEskip 1.5\nhw plus \seminhw minus \seminhw
+\noTEskip \seminhw plus 0.6\seminhw minus 0.6\seminhw
+\nOTEskip=\noTEskip \nOteskip=\noTEskip \nOtEskip=\noTEskip
+\hunkskip \z@ \relax}
+\def\universal{%
+\Noteskip 4\nhw plus 1.6\nhw minus 1.6\nhw
+\NOTEskip = \Noteskip
+\noteskip 3\nhw plus 1.3\nhw minus 1.3\nhw
+\notEskip 2\nhw plus \nhw minus \nhw
+\noTEskip \nhw plus 0.6\nhw minus 0.6\nhw
+\nOTEskip=\noTEskip \nOteskip=\noTEskip \nOtEskip=\noTEskip
+\hunkskip \z@ \relax}
+\def\wide{%
+\Noteskip 4\nhw plus 1.42\nhw minus 1.42\nhw
+\NOTEskip = \Noteskip
+\noteskip 3.5\nhw plus 1.28\nhw minus 1.28\nhw
+\notEskip 2.5\nhw plus \nhw minus \nhw
+\noTEskip 1.5\nhw plus 0.9\nhw minus 0.9\nhw
+\nOTEskip=\noTEskip \nOteskip=\noTEskip \nOtEskip=\noTEskip
+\hunkskip \z@ \relax}
+\def\loose{%
+\Noteskip 5\nhw plus 1.5\nhw minus 1.5\nhw
+\NOTEskip = \Noteskip
+\noteskip 4\nhw plus 1.25\nhw minus 1.25\nhw
+\notEskip 3\nhw plus \nhw minus \nhw
+\noTEskip 2\nhw plus 0.75\nhw minus 0.75\nhw
+\nOTEskip=\noTEskip \nOteskip=\noTEskip \nOtEskip=\noTEskip
+\hunkskip \z@\relax}
+%1.Glue-Makros
+\def\hunkglue{\hunkskip=\sk\relax\advance \hunkskip by -\wd\hunkbox
+ \ifdim\hunkskip>\z@ \hunkskip=\wd\hunkbox\relax
+% \else \hunkskip=\sk \advance\hunkskip-\seminhw\relax \fi}%schm 10.11.87
+ \else \hunkskip=\sk \relax \fi}%schm 10.11.87
+%Glue vor einer Rule (Taktstrich etc.)
+\def\gluebrule{\hunkglue\nobreak\ \hskip-\hunkskip\box\hunkbox%
+ \u@text\l@text\nobreak}
+%Glue vor einer Taktangabe
+\def\gluebmeter{\hunkglue\kern\seminhw\nobreak\box\hunkbox%
+ \u@text\l@text\nobreak}
+%Glue nach einer Rule (Taktstrich etc.)
+\def\gluearule{\-\global\sk\ruleskip}
+\def\set@rulesk{\global\sk\ruleskip}
+%Glue vor einer Note
+\def\sethunkglue{\hunkglue\nobreak\ \hskip-\hunkskip}
+%Umbruchm"oglichkeit im Taktinnern
+\def\+{\ \-\global\sk=\z@skip}
+% ************************************************** %
+% * Hilfsfunktionen * %
+% ************************************************** %
+%entspricht dem von Knuth angegebenen Makro der \loop-Schleife, jedoch
+%wird die Schleife bei \else wiederholt.
+\def\looop#1\leave{\def\boddy{#1}\iiterate}
+\def\iiterate{\boddy \let\nexxt\relax \else\let\nexxt\iiterate\fi \nexxt}
+\let\leave=\fi % this makes \looop...\if...\leave skippable
+% entspricht |#1 - #2|
+\def\distance#1#2{\relax\ifdim#1>#2\relax\Abs=#1\advance\Abs by-#2\relax
+ \else\Abs=#2\advance\Abs by-#1\relax\fi}
+%Notensetzen, z.B. Ineinanderschieben von Hilfslinienbox und Notenbox
+%Breite des Boxinhalts wird ignoriert
+\def\cbox#1{\hbox to \z@{\hss#1\hss}} % zentriert den Inhalt der Box
+\def\hboxnhw#1#2{\hbox to \nhw{\hss\cbox{#1}\cbox{#2}\hss}}
+ %Box der Breite eines Notenkopfes
+\def\ignore#1{\hbox to \z@{\hss#1}} % entspricht \llap in PLAIN
+ %z.B. fuer Oktavierung des Versetzungszeichen
+%Rules fuer Phrasierungen
+\def\r@lef@ill#1{\leaders\hrule height \z@ depth #1 \relax\hfill}
+\def\r@lef@ll#1{\leaders\hrule height #1 depth \z@ \relax\hfill}
+%zum Setzen der Phrasierungsboegen
+\def\vt@@#1{\vtop to\z@{\offinterlineskip\null\hbox{#1}\vss}}
+\def\vb@@#1{\vbox to\z@{\offinterlineskip\vss\hbox{#1}\null}}
+% Korrekturfunktionen fuer Berechnung der Halslaenge
+\def\corra#1{\relax \ifdim\Abs>\seminhh
+ \ifdim#1>\minsl \advance #1 by -\seminhh\fi
+ \fi}
+%1. Verkuerzung, des hoeherliegenden(stemup) bzw. tieferliegenden
+%(stemdown) Notenhalses um \seminhh falls moeglich(Abstand>\seminhh)
+\def\corrb#1{\advance #1 by \corr}
+%2. Verlaengerung des anderen Notenhalses um Hoechstabstand zu
+%erreichen
+\def\corrc#1{\advance #1 by \seminhh}
+%3. p1^=p2 Abstand =0 : Verkuerzung des Notenhalses der tiefer (hoeher)
+%gelegenen Note um \seminhh
+%
+%Funktionen die die vertikalen Abstaende
+%der Bogenendpunkte von der Grundlinie berechnen
+%dabei ist E@u der Ansatz des oberhalb verlaufenden Bogens
+%und E@l der Ansatz des unterhalb verlaufenden Bogens
+%Punkte fuer Akkorde (oberhalb/unterhalb)
+\def\chordupperstartpoints{%
+ \global\E@u\maxpitch\seminhh \global\advance\E@u\nhh
+ \ifdim\E@u<\z@ \global\advance \E@u-\I@@
+ \else \global\advance \E@u \I@@ \fi}
+\def\chordlowerstartpoints{%
+ \global\E@l\minpitch\seminhh \global\advance\E@l-\nhh
+ \ifdim\E@l<\z@ \global\advance \E@l-\I@@
+ \else \global\advance \E@l \I@@ \fi}
+\def\whatisnewstartpoint{%
+ \ifdim\E@a=\z@ \global\E@a = 1sp \fi
+ \ifstemup\relax
+ \expandafter\exchange\the\E@a\in\uslurlist\at \n@a
+ \else \relax
+ \expandafter\exchange\the\E@a\in\lslurlist\at \n@a
+ \fi
+ }
+%neue Ansatzwerte E@l E@u berechnen und an \n@i-te Stelle der
+% \lslurlist bzw. \uslurlist setzen (NACH Balkenberechnung)
+\def\whatarenewstartpoints{%
+ \ifdim\EP@i=\z@ \global\EP@i = 1sp \fi
+ \ifstemup\relax
+ \expandafter\exchange\the\EP@i\in\uslurlist\at \n@i
+ \else \relax
+ \expandafter\exchange\the\EP@i\in\lslurlist\at \n@i
+ \fi
+ }
+% belegt #2 mit dem Endpunkt des Notenhalses des #1-ten Elementes der
+% Notengruppe
+\def\getendpoint#1#2{\relax\hc@i=#1%
+ \lokalassign\hc@i\of\H@list\to\hd@i
+ \lokalassign\hc@i\of\H@corlist\to\hd@ii
+ \select\hc@i\of\dir@list\to\dir@i
+ \ifx\dir@i\down@ \advance\hd@ii\nhw \fi
+ \advance\hd@i by-\hd@ii
+ \advance\hd@i by-\H@a \multiply\hd@i by\S \hd@i=0.01 \hd@i
+ \advance\hd@i by\EP@ %EP@ = Endpunkt @ n@a
+ \global#2=\hd@i}
+%
+% Weist \S die im Balken- / Bogenfont vorhandene Steigung zu
+\def\addC{\global\advance\CODE by }
+\def\assignS{%
+ \ifnum\S<0 \S@=-\S \else \S@=\S \fi
+ \ifnum\S@< 1 \S@=0 \else
+ \ifnum\S@< 8 \S@=5 \else
+ \ifnum\S@<12 \S@=10 \else
+ \ifnum\S@<17 \S@=15 \else
+ \ifnum\S@<22 \S@=20 \else
+ \ifnum\S@<27 \S@=25 \else
+ \ifnum\S@<32 \S@=30 \else
+ \ifnum\S@<40 \S@=35 \else \S@=45\fi\fi\fi\fi\fi\fi\fi\fi
+ \ifnum\S<0\global\S=-\S@ \else\global\S=\S@\fi}
+% Berechnet den Code der Steigung im Bogenfont
+\def\assignCODE{%
+ \ifnum\S< 0 \global\CODE = 64 \S@ = -\S \else \S@ = \S
+ \global\CODE = 0 \fi
+ \ifnum\S@< 6 \addC 0 \else
+ \ifnum\S@<11 \addC 8 \else
+ \ifnum\S@<16 \addC16 \else
+ \ifnum\S@<21 \addC24 \else
+ \ifnum\S@<26 \addC32 \else
+ \ifnum\S@<31 \addC40 \else
+ \ifnum\S@<36 \addC48 \else
+ \ifnum\S@<46 \addC56 \fi\fi\fi\fi\fi\fi\fi\fi}
+%Im Moment benutzte Steigungen
+%5 10 15 20 25 30 35 45
+\def\assignuslurchar{\hc@i=\slurwidth
+ \ifnum\V@int= 0 %\V@=\z@
+ \ifnum\hc@i>1 \advance\hc@i-2 \else \advance\hc@i-1 \fi
+ \edef\slurchar{\the\hc@i}%
+ \else
+ \ifnum\slurwidth<4 \multiply\hc@i\slurwidth
+ \advance\hc@i-\slurwidth\advance\hc@i\V@int\advance\hc@i-1
+ \multiply\hc@i8\edef\slurchar{\the\hc@i}%
+ \else\advance\hc@i-2 \hc@ii=\V@int\advance\hc@ii-1
+ \ifodd\hc@i\divide\hc@i2
+ \edef\slurchar{\noexpand'1\the\hc@ii\the\hc@i}%
+ \else \divide\hc@i 2 \edef\slurchar{\noexpand'\the\hc@ii\the\hc@i}\fi
+ \fi
+ \fi\slurtoks=\expandafter{\slurchar}}
+\def\assignlslurchar{\hc@i=\slurwidth
+ \ifnum\V@int= 0 %\V=\z@
+ \ifnum\hc@i>1\advance\hc@i14 \else\advance\hc@i15 \fi
+ \edef\slurchar{\the\hc@i}%
+ \else
+ \ifnum\slurwidth<4 \multiply\hc@i by \slurwidth
+ \advance\hc@i-\slurwidth\advance\hc@i\V@int\advance\hc@i-1
+ \multiply\hc@i8\edef\slurchar{\noexpand\the\hc@i}%
+ \else\advance\hc@i-2\hc@ii=\V@int\advance\hc@ii-1
+ \ifodd\hc@i\divide\hc@i2
+ \edef\slurchar{\noexpand'1\the\hc@ii\the\hc@i}%
+ \else \divide\hc@i2 \edef\slurchar{\noexpand'\the\hc@ii\the\hc@i}\fi
+ \fi
+ \fi\slurtoks=\expandafter{\slurchar}}
+% ************************************************** %
+% * Macros zur Listenerzeugung und Verarbeitung * %
+% ************************************************** %
+%\newtoks\ta\newtoks\tb
+%Haengt an Liste #2 ein neues Element mit Inhalt #1 an
+\long\def\rightappend#1\to#2{\ta={\\{#1}}\tb=\expandafter{#2}%
+ \edef#2{\the\tb\the\ta}}
+%Weist dem Register (Counter oder Dimension oder Skip ) den Wert des
+%#1-ten Elementes der Liste #2 zu (lokal bzw. global)
+\def\assign#1\of#2\to#3{\m@i=#1\relax
+ \long\def\\##1{\advance\m@i-1\relax % globale Zuweisung
+ \ifnum\m@i=0\relax\global#3=##1\fi}#2\relax}
+%
+\def\lokalassign#1\of#2\to#3{\m@i=#1\relax % lokale Zuweisung
+ \long\def\\##1{\advance\m@i-1\relax\ifnum\m@i=0\relax#3=##1\fi}#2\relax}
+%
+%Definiert die Kontrollsequenz #3 als den Inhalt des
+%#1-ten Elementes der Liste #2 zu (lokal).
+\def\select#1\of#2\to#3{\m@i=#1\relax % lokale Zuweisung
+ \long\def\\##1{\advance\m@i-1\relax\ifnum\m@i=0\relax\def#3{##1}\relax
+ \fi}#2\relax}
+%
+%setzt #1=Anzahl der Elemente einer Liste
+\def\cardinality#1\to#2{#2=0\long\def\\##1{\advance#2 by 1 }#1}
+%
+%Tauscht in Liste #2 den Inhalt des #3-ten Elementes gegen #1 aus.
+\def\exchange#1\in#2\at#3{\m@i=#3\long\def\\##1{\advance\m@i-1
+ \ifnum\m@i=0 \rightappend{#1}\to\helplist
+ \else\rightappend##1\to\helplist\fi}#2%
+ \let\hhelplist=\helplist\global\let#2=\hhelplist\let\helplist=\empty
+ }
+%abhaengig von der Notenkonstellation Abfrage auf \S=0
+\def\gradz@\in#1\with#2#3\from#4\to#5{\m@i=#4\m@ii=#5\relax
+ \advance\m@i 1 \advance\m@ii -1
+ \long\def\\##1{\advance\m@i-1\advance\m@ii-1
+ \ifnum\m@i<1 \ifnum\m@ii>-1 \hc@i=##1\relax
+ \ifnum\hc@i#2#3 \relax \else
+ \global\flagc=0 \ifnum\hc@i#2 4 \relax \else \global\minsl=\twonhh\fi
+ \fi\fi\fi}#1}
+%
+%addiert den Wert von \sl@c zum Wert in Liste #1 von Element #2 bis #3
+\def\addslc\in#1\from#2\to#3{\m@i=#2\m@ii=#3\long\def\\##1{\advance\m@i-1
+ \advance\m@ii-1
+ \ifnum\m@i<1 \ifnum\m@ii>-1 \hd@i=##1 \advance\hd@i\sl@c
+ \expandafter\rightappend\the\hd@i\to\helplist\else
+ \rightappend##1\to\helplist\fi\else\rightappend##1\to\helplist\fi}#1%
+ \let\hhelplist=\helplist\global\let#1=\hhelplist\let\helplist=\empty}
+%
+%wechselt die Richtungen der Notenh"alse in der \dir@list vom
+%#2-ten bis zum #3-ten Element gegen #1 aus.
+\def\putdir#1\from#2\to#3{\m@i=#2\m@ii=#3\def\helplist{}%
+\long\def\\##1{\advance\m@i-1
+ \advance\m@ii-1
+ \ifnum\m@i<1 \ifnum\m@ii>-1
+ \expandafter\rightappend#1\to\helplist\else
+ \rightappend##1\to\helplist\fi\else\rightappend##1\to\helplist\fi}%
+ \dir@list%
+ \let\hhelplist=\helplist\global\let\dir@list
+ =\hhelplist\let\helplist=\empty}
+%
+%Ersetzt den Inhalt des #4-ten Elementes der Liste #3 durch
+%#1 Inhalt #2
+\def\additem#1#2\in#3\at#4{\m@i=#4\long\def\\##1{\advance\m@i-1 \relax
+ \ifnum\m@i=0\ht@i{##1}\edef\h@@@{#1\the\ht@i#2}\expandafter
+ \rightappend\h@@@\to\helplist\else\rightappend##1\to\helplist\fi}#3%
+ \let\hhelplist=\helplist\global\let#3=\hhelplist\let\helplist=\empty
+ }
+% ************************************************** %
+% * Notenlinien und Hilfslinien * %
+% ************************************************** %
+\def\nobaselines{\baselineskip=\z@ \lineskip=\z@ \lineskiplimit=\z@}
+%\baselinesa und \baselinesb = zwei Verschiedene M"oglichkeiten f"ur
+% die Interline Glue Wahl.
+\def\baselinesa{%
+ \baselineskip=2\staffheight plus \staffheight minus .5\staffheight
+ \lineskip=0.5\staffheight plus \staffheight minus .5\staffheight
+ \lineskiplimit=0.5\staffheight}
+\def\baselinesb{%
+ \baselineskip=3\staffheight plus \staffheight minus .5\staffheight
+ \lineskip=0.5\staffheight plus \staffheight minus .5\staffheight
+ \lineskiplimit=0.5\staffheight}
+%Notenlinie
+\def\hr{\hrule height\linethickness depth \z@ width \linelength}
+%Notenlinie und Zwischenraum
+\def\hrv{\hr\kern\linekern}
+%Hilfslinie
+\def\HRULE{\hrule height\linethickness depth\linethickness width \twonhh}
+%Hilfslinie und Zwischenraum fuer Hilfslinien unterhalb des Systems
+\def\KHR{\kern\Linekern\HRULE}
+%Hilfslinie und Zwischenraum fuer Hilfslinien oberhalb des Systems
+\def\HRK{\HRULE\kern\Linekern}
+%Liniensystem
+\def\lines{\linelength=\hsize
+ \hbox to \z@{\vbox{\hrv\hrv\hrv\hrv\hr}\hss}}
+%Liniensystem fuer erste Zeile unter Ber"ucksichtigung des \parindent
+\def\firstlines{\hbox to \z@{\linelength=\hsize\advance\linelength by
+ -\parindent \vbox{\hrv\hrv\hrv\hrv\hr}\hss}}
+%
+%macros, die die Hilfslinienbox herstellen zur zugeho"rigen Note
+%\nn = Anzahl der ben"otigten Hilfslinien
+%formel: \pitch<0 \nn=-\pitch/2, \pitch>8 \nn=(\pitch-8)/2, \nn=0 sonst
+\def\legerlines{\leger@cal\ifnum\nn=0 \global\setbox\legerbox\null%
+ \else\relax\ifnum\pitch<0 \global\setbox\legerbox=\vtop{\leger@line}%
+ \else\global\setbox\legerbox=\vbox{\leger@line}\fi\fi}
+\def\leger@line{\begingroup \loop \ifnum \nn>0 \aftergroup \HR
+ \advance\nn-1 \repeat \endgroup}
+\def\leger@cal{\ifnum\pitch<-1 \nn =-\pitch \lyshift =\z@ \let\HR=\KHR
+ \else\relax\ifnum\pitch<10 \nn = 0 \lyshift =\z@
+ \else\nn=\pitch\advance\nn-8 \lyshift=4\nhh%\staffheight-\linethickness
+ \let\HR=\HRK
+ \fi\fi \divide \nn by 2 }
+%Hilfslinien bei Akkorden
+\def\chordlegerlines{%
+ \ifleft
+ \global\setbox\leftbox=
+ \hboxnhw{$\raise\lyshift\box\legerbox$}{\box\leftbox}%
+ \else
+ \global\setbox\rightbox=
+ \hboxnhw{$\raise\lyshift\box\legerbox$}{\box\rightbox}%
+ \fi}
+% ************************************************** %
+% * Taktstriche u. a". * %
+% ************************************************** %
+%Striche
+%Atemzeichen
+\def\caesurasign{\vrule height4.5\nhh depth-3.5\nhh width3\linethickness}
+%schmaler Strich: Taktstrich
+\def\thinvrule{\vrule height\staffheight depth \z@ width2 \linethickness}
+%dicker Strich:
+\def\thickvrule{\vrule height\staffheight depth \z@ width 0.5\nhh}
+%Doppelpunkt fuer Wiederholungszeichen:
+\def\doppelpunkt{%
+ \hbox{\vrule height 2.6\nhh depth-2.4\nhh width 0.2\nhh\kern-0.2\nhh
+ \vrule height 1.6\nhh depth-1.4\nhh width 0.2\nhh}}
+%zu Taktstrichen zusammengesetzte Striche:
+\def\doppelstrich{\thinvrule\kern.25\nhw\thinvrule}
+\def\schlussstrich{\thinvrule\kern\seminhw\thickvrule}
+%wiederholungszeichen mit Doppelpunkt links
+\def\repstrich{\doppelpunkt\kern\seminhw
+ \thinvrule\kern\seminhw\thickvrule}
+%wiederholungszeichen mit Doppelpunkt rechts
+\def\revrepstrich{\thickvrule\kern\seminhw\thinvrule\kern\seminhw
+ \doppelpunkt}
+%
+%taktstriche mit Glue
+\def\|{\gluebrule\thinvrule\gluearule}
+\def\={\gluebrule\schlussstrich\gluearule\null}
+\def\doublebarline{\gluebrule\doppelstrich\gluearule\null}
+\def\rightrepeat{\gluebrule\repstrich\gluearule\null}
+\def\leftrepeat{\gluebrule\thinvrule\-\revrepstrich\nobreak}
+\def\leftrightrepeat{\gluebrule\repstrich\-%
+ \kern-\seminhw\revrepstrich\global\sk\ruleskip}
+%
+% Makro fuer Orientierungszeichen
+\def\boxed#1{\setbox0=\hbox{$\displaystyle{#1}$}\hbox{\lower.4pt\hbox{\lower
+ 3pt\hbox{\lower 1\dp0\hbox{\vbox{\hrule height .4pt \hbox{\vrule width
+ .4pt \hskip 3pt\vbox{\vskip 3pt\box0\vskip3pt}\hskip 3pt \vrule width
+ .4pt}\hrule height .4pt}}}}}}
+%Kaesten
+\def\1#1\2#2\*{\def\f@rsttime{#1*}\def\s@condtime{#2*}%
+ \expandafter\evalfirst\f@rsttime!!!%
+ \ifx\interim\empty \nobreak\box@@@\else
+ \looop\expandafter\evalinterim\interim!!!%
+ \ifx\interim\empty\relax\nobreak\box@@@\leave\fi
+ \expandafter\evalsecond\s@condtime!!!%
+ \ifx\interim\empty \relax\else
+ \looop\expandafter\evalinterim\interim!!!%
+ \ifx\interim\empty\relax\leave\fi
+}
+\def\evalfirst#1*#2!!!{\def\interim{#2}\penalty-1000\box@{#1}}
+\def\evalinterim#1*#2!!!{\def\interim{#2}\penalty-1000\box@@{#1}}
+\def\evalsecond#1*#2!!!{\def\interim{#2}\penalty-1000\box@@@@{#1}}
+\def\box@#1{\let\setlines\relax\gluebrule
+ \vbox{\halign{##\cr\repbox{1.}\r@lef@ll{\linethickness}\cr
+ \noalign{\nointerlineskip}%
+ \repstrut\thinvrule\gluearule#1\cr}}%
+ \let\setlines=\s@tlines}
+\def\box@@#1{\let\setlines\relax
+\vbox{\halign{##\cr\r@lef@ll{\linethickness}\cr
+ \noalign{\nointerlineskip}\repstrut#1\cr}}%
+ \let\setlines=\s@tlines}
+\def\box@@@{\vbox{\halign{##\cr\r@lef@ll{\linethickness}\repbox{}\cr
+ \noalign{\nointerlineskip}%
+ \repstrut\setgluebrule\doppelpunkt\kern\seminhw\thinvrule\cr}}}
+\def\box@@@@#1{\let\setlines\relax\vbox{\tabskip\seminhw
+ \halign{##\tabskip\z@\cr
+ \repbox{2.}\r@lef@ll{\linethickness}\cr
+ \noalign{\nointerlineskip}%
+ \repstrut\thickvrule\setgluearule#1\cr}}%
+ \let\setlines=\s@tlines}
+\def\repbox#1{\vtop to\z@{\null\nointerlineskip
+ \hbox to \z@{\vrule height10pt depth -\nhh width\stemwidth{#1}\hss
+ }\vss}}
+\def\repstrut{\vrule width \z@ height 7\nhh depth\z@}
+\def\overstrut{\vrule width \z@ height 6\nhh depth\z@}
+%\let\overstrut=\repstrut
+%
+% ************************************************** %
+% * SETZEN der VERSETZUNGSZEICHEN * %
+% ************************************************** %
+%Setzen der Versetzungszeichen vor Noten:
+\def\setvorz#1{\relax\setbox \hunkbox=\hbox{\unhbox\hunkbox%
+ \global\advance\oldpitch-7 \yshift=\pitch\seminhh
+ \ifnum\oldpitch=\pitch$\raise\yshift\hbox to \z@{\hss\music#1}$\else
+ $\raise\yshift\hbox{\music#1}$\fi}\global\oldpitch=\pitch}
+%Setzen der Versetzungszeichen in der Vorzeichnung:
+\def\setsign#1#2{\hc@i=#1 \advance\hc@i by \clefcount
+ \ifnum\hc@i<-1 \advance\hc@i7 \else\ifnum\hc@i>9 \advance\hc@i-7 \fi\fi
+ $\raise\hc@i\seminhh\hbox{\music#2}$}
+%Atemzeichen
+\def\caesura{\setbox\hunkbox=\hbox{\unhbox\hunkbox%
+ \kern\p@\caesurasign\kern\nhh}}
+% ************************************************** %
+% * Versetzungszeichen - Eingabemacros * %
+% ************************************************** %
+%\x=\sharp Kreuz
+%\xx= Doppel-Kreuz
+%\n=\natural Aufloesungszeichen
+%\b=\flat
+%\bb=Doppel-Be
+\def\x#1{\global\pitch=#1\relax\setvorz{\msharp}}
+\def\xx#1{\global\pitch=#1\relax\setvorz{\mdoublesharp}}
+\def\n#1{\global\pitch=#1\relax\setvorz{\mnatural}}
+\def\b#1{\global\pitch=#1\relax\setvorz{\mflat}}
+\def\bb#1{\global\pitch=#1\relax\setvorz{\mdoubleflat}}
+%Versetzungszeichen in der Vorzeichnung
+\def\b@#1{\setsign{#1}{\mflat}}
+\def\x@#1{\setsign{#1}{\msharp}}
+\def\n@#1{\setsign{#1}{\mnatural}}
+% ************************************************** %
+% * NOTEN - Eingabemacros * %
+% ************************************************** %
+%ganze
+\def\g#1{\global\pitch=#1\setnotes{NOTE}}
+%halbe
+\def\h#1{\global\pitch=#1\setnotes{Note}}
+%viertel
+\def\v#1{\global\pitch=#1\setnotes{note}}
+%achtel
+\def\a#1{\global\pitch=#1\setnotes{notE}}
+%sechzehntel
+\def\s#1{\global\pitch=#1\setnotes{noTE}}
+%zweiunddreissigstel
+\def\z#1{\global\pitch=#1\setnotes{nOTE}}
+%vierundsechzigstel
+\def\d#1{\global\pitch=#1\setnotes{nOte}}
+%hundertachtundzwanzigstel
+\def\o#1{\global\pitch=#1\setnotes{nOtE}}
+% ************************************************** %
+% * PAUSEN - Eingabemacros * %
+% ************************************************** %
+%Pausen erhalten \pitch = 5 zum Setzen der Wertpunkte im 3. Zwischenraum
+\def\sethunks{\sethunkglue\box\hunkbox\u@text\l@text}
+%ganze
+\def\pg{\ifdim\spaceskip=\ruleskip \global\sk=\NOTEskip\fi
+ \sethunks\PAUSE\global\pitch=5\global\nyshift=\pitch\seminhh
+ \nobreak\global\sk=\NOTEskip}
+%zwei Pausentakte
+\def\dpd{\ifdim\spaceskip=\ruleskip \global\sk=\NOTEskip\fi
+ \sethunks{\music
+ \doublerest}\global\pitch=5\global\nyshift=\pitch\seminhh
+ \nobreak\global\sk=\NOTEskip}
+%drei Pausentakte
+\def\dpg{\ifdim\spaceskip=\ruleskip \global\sk=\NOTEskip\fi
+ \sethunks{\music\doublerest}\hskip\nhh
+ \PAUSE\global\pitch=5\global\nyshift=\pitch\seminhh
+ \nobreak\global\sk=\NOTEskip}
+%vier Pausentakte
+\def\dpdd{\ifdim\spaceskip=\ruleskip \global\sk=\NOTEskip\fi
+ \sethunks{\music\ddoublerest}%
+ \global\pitch=5\global\nyshift=\pitch\seminhh
+ \nobreak\global\sk=\NOTEskip}
+%halbe
+\def\ph{\sethunks\Pause\global\pitch=5\global\nyshift=\pitch\seminhh
+ \nobreak\global\sk\Noteskip}
+%viertel
+\def\pv{\sethunks\pause\global\pitch=5\global\nyshift=\pitch\seminhh
+ \nobreak\global\sk\noteskip}
+%achtel
+\def\pa{\sethunks\pausE\global\pitch=5\global\nyshift=\pitch\seminhh
+ \nobreak\global\sk\notEskip}
+%sechzehntel
+\def\ps{\sethunks\pauSE\global\pitch=5\global\nyshift=\pitch\seminhh
+ \nobreak\global\sk\noTEskip}
+%zweiunddreissigstel
+\def\pz{\sethunks\paUSE\global\pitch=5\global\nyshift=\pitch\seminhh
+ \nobreak\global\sk\nOTEskip}
+%vierundsechzigstel
+\def\pd{\sethunks\pAuse\global\pitch=5\global\nyshift=\pitch\seminhh
+ \nobreak\global\sk\nOteskip}
+%hundertachtundzwanzigstel
+\def\po{\sethunks\pAusE\global\pitch=5\global\nyshift=\pitch\seminhh
+ \nobreak\global\sk\nOtEskip}
+% ************************************************** %
+% * Wertpunkte * %
+% ************************************************** %
+%\dotwd wird in einer Notengruppe benoetigt zur Berechnung der Laenge
+%des Balkens oder Bogens
+\setbox0=\hbox to\seminhw{\rm\kern\p@.\hss}\dotwd=\wd0
+%#1 gibt Anzahl der Punkte an.
+%- Eingabemacro
+\def\.#1{\relax\hc@i=#1\relax
+ \ifchord\chordjoindots\else\relax\joindots%
+ \ifgroup\global\advance\H@a@cor by #1\dotwd \fi
+ \fi}
+\def\dotodd{\hbox to \seminhw{\rm\kern\p@.\hss}}%
+%Verschieben der Wertpunkte von Noten auf einer Notenlinie in
+%......den Zwischenraum oberhalb
+\def\dot@up{\hbox{$\raise0.3\nhh
+ \hbox to \seminhw{\rm\kern\p@.\hss}$}}
+%......den Zwischenraum unterhalb der Notenlinie
+\def\dot@down{\hbox{$\raise-0.5\nhh
+ \hbox to \seminhw{\rm\kern\p@.\hss}$}}
+%Normalfall: Verschiebung in den oberen Zwischenraum
+\def\doteven{\dot@up}
+%setzt #1 Punkte bei einzelnen Noten
+\def\joindots{\ifodd\pitch\let\punkt\dotodd\else\let\punkt\doteven\fi
+ $\raise\nyshift\hbox{%\kern\smkern
+ \begingroup \loop \ifnum \hc@i>0 \aftergroup \punkt
+ \advance\hc@i-1 \repeat \endgroup}$}
+%Wertpukte bei Akkorden
+\def\chordjoindots{\global
+ \setbox\dotbox\hboxnhw{\box\dotbox}{\joindots\unskip}}
+% ************************************************** %
+% * Akkorde - Eingabemacros * %
+% ************************************************** %
+\def\lchord#1\endchord{%Initialisierung
+ \global\maxpitch=-10000\global\minpitch=10000
+ \sethunkglue\begingroup\chordtrue\lefttrue\stemuptrue
+ \global\setbox\rightbox=\null\global\setbox\leftbox=\null%
+ \global\setbox\dotbox\null%
+ #1\endchord}
+%
+\def\rchord#1\endchord{%Initialisierung
+ \global\maxpitch=-10000\global\minpitch=10000
+ \sethunkglue\begingroup\chordtrue\leftfalse\stemupfalse
+ \global\setbox\rightbox=\null%
+ \global\setbox\leftbox=\null\global\setbox\dotbox\null%
+ #1\endchord}
+% ************************************************** %
+% * Konstruktion der Noten und Pausen * %
+% ************************************************** %
+%Bestimmung der zu setzenden Noten und Bestimmung der Halsrichtung
+\def\tunedef{\ifchord \relax
+ \gdef\tune{\csname\the\notename\endcsname}%
+ \else\ifbeam \relax \else\stemdirectiondef\fi
+ \gdef\tune{\csname\the\notename\the\direction\endcsname}%
+ \ifgroup \global\d@rection\expandafter{\the\direction}\fi\fi}
+\def\stemdirectiondef{%
+ \ifnum\pitch<4 \stemuptrue \direction={up}%
+ \else \stemupfalse \direction={down}\fi}
+%
+\def\calstemlup#1{\global\dur@tion=#1\relax\stemupeval of \pitch}
+\def\calstemldown#1{\global\dur@tion=#1\relax\stemdowneval of \pitch}
+%
+%ganze noten \NOTEup=\NOTEdown
+%
+\def\NOTEup{\ifbeam\relax\else\global\stemlength=\z@\fi
+ \global\dur@tion = 0 \hbox{\music\whole}}
+\let\NOTEdown=\NOTEup
+\def\NOTE{\hbox{\music\whole}\global\dur@tion = 0}
+%
+%Halbenoten, Hals aufwaerts , Hals abw"arts gestielt
+%
+\def\Note{\hbox{\music\half}\global\dur@tion = 1}
+\def\Noteup{\ifbeam\relax\else\calstemlup1\fi
+ \hbox{\music\half \stemup}}
+\def\Notedown{\ifbeam\relax\else\calstemldown1\fi
+ \hbox{\music\stemdown \half}}
+%
+%Viertelnoten, Hals aufwaerts , Hals abwaerts gestielt
+%
+\def\noteup{\ifbeam\relax\else\calstemlup2\fi
+ \hbox{\music\quart\stemup}}
+\def\notedown{\ifbeam\relax\else\calstemldown2\fi
+ \hbox{\music\stemdown\quart}}
+\def\note{\hbox{\music\quart}\global\dur@tion= 2}
+%
+%Achtelnoten, Hals aufwaerts , Hals abwaerts gestielt
+%
+\def\notE{\hbox{\music\quart}\global\dur@tion= 3}
+\def\notEup{\ifbeam\relax\else\calstemlup3\fi
+ \hbox{\music\quart\flagup{\eighthup}}}
+\def\notEdown{\ifbeam\relax\else\calstemldown3\fi
+ \hbox{\music\flagdown{\eighthdown}\quart}}
+%
+%Sechzehntelnoten, Hals aufwaerts , Hals abwaerts gestielt
+%
+\def\noTE{\hbox{\music\quart}\global\dur@tion= 4}
+\def\noTEup{\ifbeam\relax\else\calstemlup4\fi
+ \hbox{\music\quart\flagup{\sixteenthup}}}
+\def\noTEdown{\ifbeam\relax\else\calstemldown4\fi
+ \hbox{\music\flagdown{\sixteenthdown}\quart}}
+%
+%Zweiunddreissigstelnoten, Hals aufwaerts , Hals abwaerts gestielt
+%
+\def\nOTE{\hbox{\music\quart}\global\dur@tion= 5}
+\def\nOTEup{\ifbeam\relax\else\calstemlup5\fi
+ \hbox{\music\quart\flagup{\thirtytwoup}}}
+\def\nOTEdown{\ifbeam\relax\else\calstemldown5\fi
+ \hbox{\music\flagdown{\thirtytwodown}\quart}}
+%
+%Vierundsechzigstelnoten, Hals aufwaerts , Hals abwaerts gestielt
+%
+\def\nOte{\hbox{\music\quart}\global\dur@tion= 6}
+\def\nOteup{\ifbeam\relax\else\calstemlup6\fi
+ \hbox{\music\quart\flagup{\sixtyfourup}}}
+\def\nOtedown{\ifbeam\relax\else\calstemldown6\fi
+ \hbox{\music\flagdown{\sixtyfourdown}\quart}}
+%
+%Hundertachtundzwanzigstelnoten, Hals aufwaerts , Hals abwaerts gestielt
+%
+\def\nOtE{\hbox{\music\quart}\global\dur@tion= 7}
+\def\nOtEup{\ifbeam\relax\else\calstemlup7\fi
+ \hbox{\music\quart\flagup{\hundredtwentyeightup}}}
+\def\nOtEdown{\ifbeam\relax\else\calstemldown7\fi
+ \hbox{\music\flagdown{\hundredtwentyeightdown}\quart}}
+% P A U S E N
+\def\PAUSE{{\music\wholerest}}
+\def\Pause{{\music\halfrest}}
+\def\pause{{\music\quartrest}}
+\def\pausE{{\music\eighthrest}}
+\def\pauSE{{\music\sixteenthrest}}
+\def\pauSE{{\music\sixteenthrest}} % bis auf weiteres, da diese im
+\def\paUSE{{\music\sixteenthrest}} %Zeichensatz noch nicht
+\def\pAuse{{\music\sixteenthrest}} %vorhanden sind.
+\def\pAusE{{\music\sixteenthrest}} %
+% ************************************************** %
+% * Berechnung der Notenhalslaengen * %
+% ************************************************** %
+\def\min@stemlength{\ifnum\dur@tion>2
+ \hc@i= 3 \advance\hc@i by \dur@tion \hd@i= \hc@i\seminhh
+ \ifdim\hd@i>\stemlength \global\stemlength=\hd@i\fi \fi}
+%Hals nach oben
+\def\stemupeval of #1{\pit@=#1\relax
+ \ifnum\pit@<-3 \advance\pit@ by -4 \global\stemlength=-\pit@\seminhh
+ \else\eval@up\fi\ifgroup\relax\else\min@stemlength\fi}
+\def\eval@up{\ifnum \pit@<6 \global\stemlength=7\seminhh
+ \else
+ \ifnum\pit@<8 \advance\pit@ by-12 \global\stemlength=-\pit@\seminhh
+ \else \global\stemlength=\twonhh
+ \fi\fi}
+%
+\def\stemdowneval of #1{\pit@=#1\relax
+ \ifnum\pit@>11 \advance\pit@ by -4 \global\stemlength=\pit@\seminhh
+ \else \eval@down\fi\ifgroup\relax\else\min@stemlength\fi}
+\def\eval@down{\ifnum \pit@ > 2 \global\stemlength=7\seminhh
+ \else\ifnum\pit@ > 0 \advance\pit@ 4 \global\stemlength=\pit@\seminhh
+ \else \global\stemlength=\twonhh
+ \fi\fi}
+% ************************************************** %
+% * Konstruktion der Notenhaelse * %
+% ************************************************** %
+%Hals nach oben
+\def\stemup{\vrule height \stemlength depth\z@ width\stemwidth}
+%Hals nach unten
+\def\stemdown{\vrule height\z@ depth\stemlength width\stemwidth
+ \hskip-2\stemwidth}
+%Hals nach unten mit Fahne
+\def\flagdown#1{\stemdown\ifbeam\relax\else
+ \vtop to\stemlength{\offinterlineskip\null\vss\hbox{\music#1}\null}\fi}
+%Hals nach oben mit Fahne
+\def\flagup#1{\stemup\ifbeam\relax\else
+ \vbox to\stemlength{\offinterlineskip\hbox{\music#1}\vss\null}\fi}
+%
+%Bestimmung des Notenhalses im Akkord
+%
+\def\stemdef{%
+ \ifstemup\edef\stem{\hbox{\ifcase\dur@tion \noexpand\relax
+ \or\stemup \or\stemup \or\flagup{\eighthup}%
+ \or\flagup{\sixteenthup}\or\flagup{\thirtytwoup}%
+ \or\flagup{\sixtyfourup}\or\flagup{\hundredtwentyeightup}%
+ \else\noexpand\relax\fi}}%
+ \else\edef\stem{\hbox{\ifcase\dur@tion \noexpand\relax
+ \or\stemdown \or\stemdown \or\flagdown{\eighthdown}%
+ \or\flagdown{\thirtytwodown}\or\flagdown{\sixteenthdown}%
+ \or\flagdown{\sixtyfourdown}\or\flagdown{\hundredtwentyeightdown}%
+ \else\noexpand\relax \fi}}%
+ \fi}
+% Setzen des Notenhalses im Akkord
+\def\setstem{\relax
+ \ifstemup $\raise\minpitch\seminhh\stem $%
+ \else $\raise\maxpitch\seminhh\stem $\fi}
+% ************************************************** %
+% * Das Setzen der Noten * %
+% ************************************************** %
+\def\setnotes#1{\relax\notename={#1}\global\nyshift=\pitch\seminhh
+ \legerlines\tunedef
+ \ifchord\setchord\else \sethunkglue \setnote \fi
+ }
+%einzelne Note
+\def\setnote{\global\setbox\notebox=
+ \hboxnhw{$\raise\lyshift\box\legerbox$}{$\raise\nyshift\hbox{\tune}$}%
+ \setakzent
+ \box\hunkbox\kern\smkern\u@text\l@text\box\notebox
+ \global\spaceskip=\csname\the\notename skip\endcsname\nobreak
+% \ifnum\dur@tion=0 \global\H@a@cor =\seminhw\fi
+ \ifgroup \global \H@a@cor = \z@ \fi
+}
+%Akkorde
+%Zusammenfassung der einzelnen Noten in \leftbox bzw. \rightbox
+\def\setchord{%
+ \ifnum\maxpitch<\pitch \global\maxpitch = \pitch\fi
+ \ifnum\minpitch>\pitch \global\minpitch = \pitch\fi
+ \chordlegerlines
+ \ifleft
+ \global\setbox\leftbox=
+ \hboxnhw{\box\leftbox}{$\raise\nyshift\hbox{\tune}$}%
+ \else
+ \global\setbox\rightbox=
+ \hboxnhw{\box\rightbox}{$\raise\nyshift\hbox{\tune}$}\fi
+ }
+%
+\def\endchord{%
+ \nobreak\global\sk=\csname\the\notename skip\endcsname
+ \ifbeam \relax \else\chordnobeam\fi
+ \hc@i=\maxpitch \advance\hc@i-\minpitch
+ \global\advance\stemlength by \hc@i\seminhh
+ \stemdef
+ \ifgroup \global\H@a@cor=\z@
+ \ifstemup
+ \ifdim\wd\rightbox>\z@ \global\advance\H@a@cor by \nhw \fi
+ \fi
+ \global\advance\H@a@cor by \wd\dotbox
+ \global\d@rection\expandafter{\the\direction}%
+ \fi
+ \global\setbox\notebox=
+ \hbox{\box\leftbox\setstem\box\rightbox\box\dotbox}%
+ \setchordakzent
+ \box\hunkbox\kern\smkern\u@text\l@text\box\notebox\chordfalse\endgroup}
+\def\chordnobeam{\relax\ifstemup \stemupeval of \maxpitch
+ \else \stemdowneval of \minpitch\fi
+ \ifgroup\ifstemup\chordlowerstartpoints
+ \else\chordupperstartpoints\fi
+ \fi}
+% *********************************************************** %
+% * Tonarten und Aufloesung, Notenschluessel und Taktangabe * %
+% *********************************************************** %
+%\discretionary{vor}{nach}{kein}
+\def\change{\edef\-{\noexpand\discretionary{}%vor
+ {\noexpand\hbox{\noexpand\lines}%
+ \noexpand\hbox{\the\cleftoks\the\signtoks}%
+ \noexpand\kern\noexpand\seminhw}%nach
+ {}}}%kein
+\def\signchange{\change\gluebrule\discretionary{%
+ \hbox{\doppelstrich\set@rulesk\the\canceltoks\the\signtoks\set@rulesk
+ }}{\hbox{\lines\the\cleftoks\the\signtoks}\kern\seminhw}{%
+ \hbox{\doppelstrich\set@rulesk\the\canceltoks\the\signtoks}}%
+ \set@rulesk}
+\def\clefchange{\change\setbox\hunkbox=\hbox{\unhbox\hunkbox%
+ \kern\p@{{\let\music=\smallmusic\the\cleftoks}}}}
+%Taktangabe
+\def\meter#1/#2{\nobreak\gluebmeter\discretionary{%
+ \hbox{\place4{#1}\kern-\wd\placebox\place0{#2}}\kern\seminhw
+ }{\hbox{\lines\the\cleftoks\the\signtoks\set@rulesk
+ \hbox{\place4{#1}\kern-\wd\placebox\place0{#2}}}\kern0.25\seminhw}%
+ {\hbox{\place4{#1}\kern-\wd\placebox\place0{#2}%
+ \kern0.5\seminhw}}\set@rulesk}
+% \kern\seminhw}}\set@rulesk}
+\def\place#1#2{\setbox\placebox\hbox{\rm#2}$\raise#1.5\seminhh\hbox{\copy
+ \placebox}$}
+%Vorzeichnung
+\def\signature#1#2{\global\signtoks={#1\kern\nhw}%
+ \iffirst\change\box\hunkbox\the\signtoks\set@rulesk
+ \else\signchange\fi\global\canceltoks={#2}}
+%Notenschluessel
+\def\clef#1#2{\global\clefcount=#1
+ \global\cleftoks={\setkey{#2}\kern\seminhw}%
+ \clefchange}
+%Abkuerzungen fuer Vorzeichnungen - gro\3e Buchstaben =Dur-Tonarten
+% kleine Buchstaben =Moll-Tonarten
+\def\F{\signature{\b@4}{\n@4}}
+\def\B{\signature{\b@4\b@7}{\n@4\n@7}}
+\def\Es{\signature{\b@4\b@7\b@3}{\n@4\n@7\n@3}}
+\def\As{\signature{\b@4\b@7\b@3\b@6}{\n@4\n@7\n@3\n@6}}
+\def\Des{\signature{\b@4\b@7\b@3\b@6\b@2}{\n@4\n@7\n@3\n@6\n@2}}
+\def\Ges{\signature{\b@4\b@7\b@3\b@6\b@2\b@5}{\n@4\n@7\n@3\n@5\n@2\n@5}}
+\def\Ces{\signature{\b@4\b@7\b@3\b@6\b@2\b@5\b@1}%
+ {\n@4\n@7\n@3\n@5\n@2\n@5\n@1}}
+\def\C{\signature{}{}}
+\def\G{\signature{\x@8}{\n@8}}
+\def\D{\signature{\x@8\x@5}{\n@8\x@5}}
+\def\A{\signature{\x@8\x@5\x@9}{\n@8\n@5\n@9}}
+\def\E{\signature{\x@8\x@5\x@9\x@6}{\n@8\n@5\n@9\n@6}}
+\def\H{\signature{\x@8\x@5\x@9\x@6\x@3}{\n@8\n@5\n@9\n@6\n@3}}
+\def\Fis{\signature{\x@8\x@5\x@9\x@6\x@3\x@4}{\n@8\n@5\n@9\n@6\n@3\n@4}}
+\let\mdis=\F \let\ma=\C
+\let\mgis=\H \let\md=\F
+\let\mcis=\E \let\mg=\B
+\let\mfis=\A \let\mc=\Es
+\let\mh=\D \let\mf=\As
+\let\me=\G \let\mb=\Des
+ \let\mes=\Ges
+%Notenschluessel
+\def\setkey#1{\hbox{\music#1}}
+\def\vio{\clef{0}{\mviolin}}
+\def\viooct{\clef{0}{\mviolinoct}}% noch nicht im Font
+\def\vioOct{\clef{0}{\mviolinOct}} % noch nicht im Font
+\def\bass{\clef{-2}{\mbass}}
+\def\bassoct{\clef{-2}{\mbassoct}} %noch nicht im Font
+\def\bassOct{\clef{-2}{\mbassOct}} %noch nicht im Font
+\def\bariton{\clef{3}{\mbariton}}
+\def\tenor{\clef{1}{\mtenor}}
+\def\alto{\clef{-1}{\malt}}
+\def\mezzosopran{\clef{-3}{\mmezzosopran}}
+\def\sopran{\clef{-5}{\msopran}}
+% ************************************************** %
+% * Die Verarbeitung der Nachbarschaften * %
+% ************************************************** %
+\mathsurround=\z@
+% ************************************************** %
+% * Initialisierung der Listen einer Notengruppe * %
+% ************************************************** %
+%Gruppe belegt die notwendigen Listen fuer die Notengruppe
+\def\group#1#2{\grouptrue
+ \global\oldskip=\sk
+ \let\u@@text = \u@text
+ \let\l@@text = \l@text
+ \global\setbox\neighborhood=\null
+ \gdef\elementlist{#1}\gdef\pitchlist{#2}%
+ \gdef\H@list{}\gdef\stemlist{}%
+ \gdef\uslurlist{}\gdef\lslurlist{}%
+ \gdef\H@corlist{}%
+ \gdef\dir@list{}%
+ \global\sl@c=\z@
+ \global\S=0
+ \N=0
+ \long\def\\##1{%
+ \global\E@l=\z@\global\E@u=\z@%zuruecksetzen auf 0pt
+ \global\setbox\neighborhood=\hbox{\unhbox\neighborhood##1}%
+ \rightappend0pt\to\stemlist %initialisiert \stemlist
+ \expandafter\rightappend\the\wd\neighborhood\to\H@list%belegt \H@list
+ \expandafter\rightappend\the\E@u\to\uslurlist
+ %belegt obere startpunkte fuer slurs
+ \expandafter\rightappend\the\E@l\to\lslurlist
+ %belegt untere startpunkte fuer slurs
+ \expandafter\rightappend\the\H@a@cor\to\H@corlist
+ %initialisiert \H@corlist
+ \global\H@a@cor=\z@%zuruecksetzen auf 0pt
+ \expandafter\rightappend\the\d@rection\to\dir@list
+ %initialisiert \dir@list
+ \advance\N1 }\elementlist\groupfalse
+ }
+% ************************************************** %
+% * Abarbeitung & Setzen einer Notengruppe * %
+% ************************************************** %
+\def\go{%
+ \let\u@text=\u@@text
+ \let\l@text=\l@@text
+ \m@ii=0 \long\def\\##1{\advance\m@ii 1
+ {\assign\m@ii\of\stemlist\to\stemlength}%
+ \ifdim\stemlength=\z@\beamfalse\else\beamtrue\fi##1}%
+ \global\sk=\oldskip
+ \sethunkglue\hbox{\global\sk=\z@skip\elementlist}\nobreak
+ \beamfalse}
+% ************************************************** %
+% * Verbalkung - Eingabemacros * %
+% ************************************************** %
+% Eingabemacros - Balken oberhalb - Balken unterhalb der Notengruppe
+\def\ubeam#1#2{\stemuptrue \n@a=#1 \n@e=#2 \direction{up}%
+ \putdir{up}\from\n@a\to\n@e\b@@m}
+%
+\def\lbeam#1#2{\stemupfalse \n@a=#1 \n@e=#2 \direction{down}%
+ \putdir{down}\from\n@a\to\n@e\b@@m}
+%
+\def\b@@m{%
+ %Initialisierung
+ \additem{\noexpand\direction{\the\direction}}{}\in\elementlist\at\n@a
+ \ifnum\n@e>\N \n@e=\N\fi
+ \global\minsl=2\nhh
+ \assign\n@a\of\pitchlist\to\P@a
+ \assign\n@e\of\pitchlist\to\P@e
+ \assign\n@e\of\H@list\to\H@e
+ \assign\n@a\of\H@list\to\H@a
+ \select\n@a\of\dir@list\to\dir@i
+ \lokalassign\n@a\of\H@corlist\to\hd@i % vorne verkuerzt
+ \ifx\dir@i\down@\advance\hd@i \nhw \fi
+ \global\advance\H@a by-\hd@i
+ \lokalassign\n@e\of\H@corlist\to\hd@i % und hinten verkuerzt
+ \select\n@e\of\dir@list\to\dir@i
+ \ifx\dir@i\down@\advance\hd@i \nhw \fi
+ \global\advance\H@e by-\hd@i
+ \global\advance\H@e by-\H@a
+ %Berechnung der Steigung
+ \csname gradient\the\direction\endcsname%
+ %Anpassung der Notenhaelse
+ \csname calstems\the\direction\endcsname%
+ %Positionierung des Balkens
+ \beaming
+ %Addieren der berechneten Halsl"angenkorrektur in der \stemlist
+ \addslc\in\stemlist\from\n@a\to\n@e
+ \global\advance\sl@c \seminhh
+ %Korrektur der Bogenangfangspunkte oberhalb bzw. unterhalb der Noten
+ \ifstemup\relax
+ \addslc\in\uslurlist\from\n@a\to\n@e
+ \else \relax\global\sl@c=-\sl@c
+ \addslc\in\lslurlist\from\n@a\to\n@e
+ \global\sl@c=-\sl@c
+ \fi
+ \global\sl@c=\z@
+ }
+% ************************************************** %
+% * Berechnungen der Halslaengen und Steigung * %
+% ************************************************** %
+\def\gradientup{\gradient{<}{+}}
+\def\gradientdown{\gradient{>}{-}}
+\def\gradient#1#2{%
+ \R@a=\P@a\seminhh
+ \R@e=\P@e\seminhh
+%jetzt erst die Stemhoehe berechnen.
+ \ifstemup \stemupeval of \P@a \s@a=\stemlength
+ \stemupeval of \P@e \s@e=\stemlength
+ \else \stemdowneval of \P@a \s@a=\stemlength
+ \stemdowneval of \P@e \s@e=\stemlength
+ \fi
+ \global\E@a=\R@a \global\advance \E@a by#2\s@a
+ \global\E@e=\R@e \global\advance \E@e by#2\s@e
+ \ifnum\P@a=\P@e \global\S=0
+ \else\global\flagc=1
+ \ifnum\P@a#1\P@e \gradz@\in\pitchlist\with#1\the\P@e\from\n@a\to\n@e
+ \else \gradz@\in\pitchlist\with#1\the\P@a\from\n@a\to\n@e\fi
+ \ifnum\flagc=0 \global\S=0\else \global\S=1\fi
+ \fi
+ \relax
+ \ifnum\S = 0 \relax
+ \ifdim\E@a#1\E@e \global\E@a=\E@e \s@a=#2\E@a \advance\s@a-#2\R@a \fi
+ \else
+ \distance\E@a\E@e
+ \ifdim\Abs=\z@\relax
+ \ifnum\P@e#1\P@a \corrc\s@a
+ \global\E@a=\R@a\global\advance\E@a by#2\s@a\relax
+ \else \corrc\s@e
+ \global\E@e=\R@e\global\advance\E@e by#2\s@e\relax\fi
+ \fi
+ \distance\E@a\E@e
+ \limit=0.45 \H@e
+ \ifdim\limit>4\nhh \limit=4\nhh \fi
+ \hd@i=\Abs\advance\hd@i by -\limit \corr=\hd@i
+ \ifdim\corr>\z@\relax
+ \ifnum\P@a#1\P@e \corrb\s@a
+ \global\E@a=\R@a\global\advance\E@a by#2\s@a\relax
+ \else\corrb\s@e\global\E@e=\R@e\global\advance\E@e by#2\s@e\fi
+ \Abs=\corr
+ \fi
+ \ifnum\P@a>\P@e\global\S=-\Abs\else\global\S=\Abs\fi
+ \global\multiply\S by 100 \global\divide\S by \H@e
+ \fi %von P@a=Pb Abfrage
+%\s@a und \s@e zurueckpacken an \n@a-te bzw. \N-te Stelle der \stemlist
+ \expandafter\exchange\the\s@a\in\stemlist\at\n@a
+ \expandafter\exchange\the\s@e\in\stemlist\at\n@e
+ \whatisnewstartpoint
+ \assignS}
+%
+\def\calstemsup{\calstems{+}}
+\def\calstemsdown{\calstems{-}}
+\def\calstems#1{%
+ \n@i=\n@a
+ \global\sl@c=\z@
+ \EP@=\E@a
+ \loop\advance\n@i by 1
+ \assign\n@i\of\pitchlist\to\P@i
+ \R@i=\P@i\seminhh
+ \getendpoint\n@i\EP@i
+ \s@i=\EP@i
+ \advance\s@i by-\R@i %Laenge des stems
+ \s@i=#1\s@i
+ \expandafter\exchange\the\s@i\in\stemlist\at\n@i
+ \whatarenewstartpoints
+ \ifdim\s@i<\minsl\relax
+ \ifdim\s@i<\z@ \s@i=-\s@i\advance\s@i by \minsl
+ \else\s@i=\R@i\advance\s@i by #1\minsl\advance\s@i by-\EP@i\s@i=#1\s@i\fi
+ \ifdim\s@i>\sl@c\relax\global\sl@c=\s@i\fi
+ \fi
+ \ifnum\n@i<\n@e \repeat
+ }
+%
+%Auswertung der \beamlist
+\def\evalbeamlist#1-#2,#3#{\def\aa{#1}\def\bb{#2}%
+ \ifx\aa\empty\m@a=0\else\m@a=#1\fi
+ \ifx\bb\empty\m@e=\m@a\else\m@e=#2\fi\def\nxt{#3}%
+ \ifnum\m@a<0\m@a=0\fi %belegung von m@a und m@e, so dass in
+ \ifnum\m@a>\N\m@a=\N\fi %createbeam keine schwierigkeiten auftauchen
+ \ifnum\m@e<1\m@e=1\fi %koennen, z.B. bei \assign usw.
+ \ifnum\m@e>\N\m@e=\N\fi %0<=\m@a<=\N; 1<=\m@e<=\N
+ \ifnum\m@e<\m@a\hc@i=\m@a\m@a=\m@e\m@e=\hc@i\fi
+}
+%
+\def\beamposition{%
+ \assign\m@a\of\H@list\to\H@m@a
+ \assign\m@a\of\H@corlist\to\H@a@cor
+ \select\m@a\of\dir@list\to\dir@i
+ \relax\ifx\dir@i\down@ \global\advance\H@a@cor \nhw \fi
+ \global\advance\H@m@a by -\H@a@cor
+ \V@a=\H@m@a
+ \advance\V@a-\H@a
+ \multiply\V@a by\S \V@a=0.01\V@a
+ \ifstemup \advance \V@a by \sl@c \relax
+ \else \advance \V@a by-\sl@c
+ \fi
+ \advance\V@a by \EP@
+ \ifstemup\ifnum\S<0 \relax
+ \else \advance \V@a-\beamthickness \fi
+ \else
+ \ifnum\S<0 \advance\V@a \beamthickness\fi
+ \fi
+ \ifstemup
+ \advance\V@a by-\beamrow\nhh%zur Platzierung der Balken
+ \else
+ \advance\V@a by \beamrow\nhh%zur Platzierung der Balken
+ \fi
+ }
+\def\createbeam{%
+ \looop\expandafter\evalbeamlist\nxt{}%
+ \ifnum\m@a>0\beamposition
+ \ifnum\m@e=\m@a\relax
+%% \immediate\write0{rrule \the\S}%
+ \additem{}{\noexpand\beamr{\the\S}%
+ {\the\V@a}{\the\H@a@cor}}\in\elementlist\at\m@a
+ \else \lokalassign\m@e\of\H@list\to\hd@i
+ \lokalassign\m@e\of\H@corlist\to\hd@ii
+ \select\m@e\of\dir@list\to\dir@i
+ \relax\ifx\dir@i\down@ \advance\hd@ii\nhw \fi
+ \advance\hd@i by-\hd@ii
+ \advance\hd@i by-\H@m@a
+%% \immediate\write0{rule \the\hd@i}%
+ \additem{}{\noexpand\beam{\the\S}%
+ {\the\hd@i}{\the\V@a}{\the\H@a@cor}}\in\elementlist\at\m@a
+ \fi
+ \else
+ \m@a=\m@e\beamposition
+%% \immediate\write0{lrule \the\S}%
+ \additem{}{\noexpand\beaml{\the\S}%
+ {\the\V@a}{\the\H@a@cor}}\in\elementlist\at\m@a
+ \fi
+ \ifx\nxt\empty\relax\leave%
+ }
+%
+\def\beaming{\cardinality\beamlist\to\hc@i%
+ \ifnum\hc@i>2 \advance\hc@i-2 \global\advance\sl@c by\hc@i\seminhh\fi
+ \global\beamrow0
+ \def\\##1{{\def\nxt{##1}\relax\createbeam\global\advance\beamrow 1%
+ }}\beamlist}
+% ************************************************** %
+% * Plazierung und Zusammensetzung der Balken * %
+% ************************************************** %
+\def\beam#1#2#3#4{\global\S=#1\global\L@a=#2%
+ $\raise#3\hbox to \z@{\kern-#4\drawbeam\hss}$}
+\def\beamr#1#2#3{\global\S=#1%
+ $\raise#2\hbox to\z@{\kern-#3\drawbe@m\hss}$}
+\def\beaml#1#2#3{\global\S=#1$\raise#2\hbox to\z@{\hss
+ \drawb@@m\ifstemup\else\kern\nhw\fi}$}
+%
+\def\putintovbox#1{%
+ \ifstemup
+ \ifnum\S>0 \vb@@{#1}\else \vt@@{#1}\fi
+ \else
+ \ifnum\S<0 \vt@@{#1}\else \vb@@{#1}\fi
+ \fi}
+\def\putintovb@x#1{%
+ \ifstemup
+ \ifnum\S<0 \vt@@{#1}\else \vb@@{#1}\fi
+ \else
+ \ifnum\S<0 \vb@@{#1}\else\vt@@{#1}\fi
+ \fi}
+%
+\def\makebeam{\loop
+ \ifodd\L@
+ $\raise\SHIFT\hbox{\beamfont\char\the\CODE}$%
+ \advance\SHIFT by \l@\gradfactor
+ \fi
+ \divide\L@ 2 \addC1 \multiply\l@2
+ \ifnum\L@>0\repeat}
+%
+\def\drawbeam{%
+ {\gradfactor=\S\p@ \gradfactor = 0.005 \gradfactor
+ \ifnum\S=0
+ \hbox{\vrule height \beamthickness depth\z@ width\L@a}%
+ \else\l@=1\assignCODE
+ \L@=\L@a
+ \advance \L@ by 32677%um Rundungsfehler zu vermeiden
+ \divide\L@ by 32678%Genauigkeit 0.5pt
+ \SHIFT=\z@
+ \putintovbox{\beamfont \ifnum \L@ >255 \setlongbeams\fi \makebeam}%
+ \fi}}
+\def\setlongbeams{\relax\hc@i=\CODE \advance\hc@i 7%
+ \loop$\raise\SHIFT\hbox{\char\the\hc@i}$%
+ \advance\SHIFT 128 \gradfactor \advance\L@-255
+ \ifnum \L@>255 \repeat}
+%
+\def\drawbe@m{%
+ \ifnum\S=0\hbox{\vrule height \beamthickness depth \z@ width\nhh}%
+ \else\assignCODE\addC3\putintovbox{\beamfont\char\the\CODE}\fi}
+\def\drawb@@m{%
+ \ifnum\S=0\hbox{\vrule height \beamthickness depth \z@ width\nhh}%
+ \else\assignCODE\addC3\putintovb@x{\beamfont\char\the\CODE}\fi}
+% ************************************************** %
+% * Die Bogen * %
+% ************************************************** %
+%-Eingabemacros - Bogen oberhalb - Bogen unterhalb der Notengruppe
+\def\uslur#1#2{\n@a=#1\n@e=#2%
+ %Initialisierung
+ \inislur
+ \assign\n@a\of\uslurlist\to\E@a
+ \assign\n@e\of\uslurlist\to\E@e
+ \assignflags
+ %Berechnung der entgueltigen Bogenbreite
+ %Belegung des Anfangs- und Endpunktes des Bogens
+ %Berechnung des horizontalen Versatzes des Bogens
+ \ifdim\s@a=\z@ \ifdim\s@e=\z@ \u@nobeaming \else \u@rightbeaming \fi
+ \else \ifdim\s@e=\z@ \u@leftbeaming \else\u@leftrightbeaming\fi
+ \fi
+ %Berechnung der Laenge des Bogens
+ \intslurwidth
+ %Berechnung der Sekantensteigung
+ \gradientslur{<}{-}%
+ %Positionierung des Bogens
+ \ifnum\slurwidth > 17 \caluphrase
+ \else
+ \assignuslurchar
+ \ifnum\V@int=0\setslurs{2}{0}\else
+ \ifdim\V@<\z@\setslurs{0}{-1}\else\setslurs{0}{+1}\fi\fi
+ \fi
+}
+\def\lslur#1#2{\n@a=#1\n@e=#2%
+ %Initialisierung
+ \inislur
+ \assign\n@a\of\lslurlist\to\E@a
+ \assign\n@e\of\lslurlist\to\E@e
+ \assignflags
+ %Berechnung der entgueltigen Bogenbreite
+ %Belegung des Anfangs- und Endpunktes des Bogens
+ %Berechnung des horizontalen Versatzes des Bogens
+ \ifdim\s@a=\z@ \ifdim\s@e=\z@ \l@nobeaming \else \l@rightbeaming \fi
+ \else \ifdim\s@e=\z@ \l@leftbeaming \else\l@leftrightbeaming\fi
+ \fi
+ %Berechnung der Laenge des Bogens
+ \intslurwidth
+ %Berechnung der Sekantensteigung
+ \gradientslur{>}{+}%
+ %Positionierung des Bogens
+ \ifnum\slurwidth > 17 \callphrase
+ \else
+ \assignlslurchar
+ \ifnum\V@int=0\setslurs{3}{0}\else
+ \ifdim\V@<\z@\setslurs{1}{-1}\else\setslurs{1}{+1}\fi\fi
+ \fi
+}
+%
+\def\intslurwidth{%
+ %\slurwidth*\nhw <= \H@e < (\slurwidth+1)*\nhw
+ \slurwidth=\H@e
+ \advance\slurwidth \seminhw
+ \divide\slurwidth by \nhw
+ \ifnum\slurwidth< 1 \slurwidth= 1 \fi}
+%Hilfsfunktionen
+\def\newslurwidth#1#2{%
+ \ifcase#1 \global\advance\H@e #2\nhw
+ \or \global\advance\H@e #2\seminhw \fi}
+\def\calslurwidth{\global\advance\H@e-\H@e@cor
+ \global\advance\H@a-\H@a@cor
+ \global\advance\H@e-\H@a\relax}
+\def\calslurcor#1{\slurcor=\H@a@cor \advance\slurcor #1\seminhw
+ \slurcor = -\slurcor}
+\def\newE@a#1{\ifnum\flaga=0 \global\E@a=\P@a\seminhh
+ \global\advance\E@a#1\nhh \fi}
+\def\newE@e#1{\ifnum\flagb=0 \global\E@e=\P@e\seminhh
+ \global\advance\E@e#1\nhh \fi}
+\def\inislur{\relax
+ \ifnum\n@e>\N \n@e=\N\fi
+ \ifnum\n@a<1 \n@a= 1\fi
+ \ifnum\n@a>\n@e\n@e=\hc@i \n@e=\n@a \n@a=\hc@i\fi
+ %
+ \assign\n@e\of\H@list\to\H@e
+ \lokalassign\n@e\of\H@corlist\to\H@e@cor
+ \assign\n@a\of\H@list\to\H@a
+ \assign\n@a\of\H@corlist\to\H@a@cor
+ \select\n@a\of\dir@list\to\dir@a
+ \select\n@e\of\dir@list\to\dir@e
+ \ifx\dir@a\down@ \global\advance\H@a@cor \nhw \fi
+ \ifx\dir@e\down@ \advance\H@e@cor \nhw \fi
+ %
+ \assign\n@e\of\pitchlist\to\P@e
+ \assign\n@a\of\pitchlist\to\P@a
+ \lokalassign\n@e\of\stemlist\to\s@e
+ \lokalassign\n@a\of\stemlist\to\s@a
+}
+\def\assignflags{%
+ \flaga=2 \ifdim \E@a=\z@ \flaga=0 \fi
+ \ifdim\E@a> \I@@ \flaga=1 \global\advance \E@a-\I@@\fi
+ \ifdim\E@a<-\I@@ \flaga=1 \global\advance \E@a-\I@@\fi
+ \flagb=2\ifdim \E@e =\z@ \flagb=0\fi
+ \ifdim\E@e> \I@@ \flagb=1 \global\advance \E@e-\I@@\fi
+ \ifdim\E@e<-\I@@ \flagb=1 \global\advance \E@e \I@@\fi
+ \relax}
+%
+%ohne Verbalkung
+\def\u@nobeaming{\calslurwidth
+ \ifx\dir@e\up@ \relax\newslurwidth{0}{-}\fi %stemup
+ \calslurcor{-}\newE@a{+}\newE@e{+}}
+%
+\def\l@nobeaming{\calslurwidth
+ \ifx\dir@a\down@ \newslurwidth{0}{-}\fi%stemdown
+ \ifx\dir@a\up@\calslurcor{+}\else \calslurcor{-}\fi
+ \newE@a{-}\newE@e{-}}
+% Verbalkung nur in \n@e
+\def\u@rightbeaming{\ifnum\flagb<2 \u@rightstemdown \else
+ \u@rightstemup \fi}
+\def\u@rightstemdown{\calslurwidth
+ \calslurcor{-}\newE@a{+}\newE@e{+}}
+\def\u@rightstemup{\calslurwidth
+ \advance\n@e-1
+ \ifnum\n@e=\n@a \newslurwidth{0}{-}\calslurcor{-}\newE@a{+}\newE@e{+}%
+ \else\newslurwidth{1}{-}\calslurcor{-}\newE@a{+}%\E@e belegt
+ \fi\advance\n@e1}
+%
+\def\l@rightbeaming{\ifnum\flagb<2 \l@rightstemup \else
+ \l@rightstemdown \fi}
+\def\l@rightstemup{\calslurwidth
+ \ifx\dir@a\down@ \newslurwidth{0}{-}\fi
+ \ifx\dir@a\up@\calslurcor{+}\else\calslurcor{-}\fi\newE@a{-}\newE@e{-}}
+\def\l@rightstemdown{\calslurwidth
+ \advance\n@e-1
+ \ifnum\n@e=\n@a \ifx\dir@a\up@\newslurwidth{0}{-}\fi
+ \ifx\dir@a\up@\calslurcor{+}\else\calslurcor{-}\fi\newE@a{-}\newE@e{-}%
+ \else\ifx\dir@a\up@\newslurwidth{1}{+}\else\newslurwidth{1}{-}\fi
+ \ifx\dir@a\up@\calslurcor{+}\else\calslurcor{-}\fi\newE@a{-}%\E@e belegt
+ \fi\advance\n@e 1 }
+%
+% Verbalkung nur in \n@a
+\def\u@leftbeaming{\ifnum\flaga<2 \u@leftstemdown \else
+ \u@leftstemup \fi}
+\def\u@leftstemdown{\calslurwidth
+ \ifx\dir@e\up@\newslurwidth{0}{-}\fi
+ \calslurcor{-}\newE@a{+}\newE@e{+}}
+\def\u@leftstemup{\calslurwidth
+ \advance\n@e-1
+ \ifnum\n@e=\n@a \ifx\dir@e\up@\newslurwidth{0}{-}\fi
+ \calslurcor{-}\newE@a{+}\newE@e{+}%
+ \else\ifx\dir@e\up@\newslurwidth{1}{-}\else\newslurwidth{1}{+}\fi
+ \slurcor=-\H@a@cor \newE@e{+}%\E@a belegt
+ \fi\advance\n@e1}
+%
+\def\l@leftbeaming{\ifnum\flaga<2 \l@leftstemup \else
+ \l@leftstemdown \fi}
+\def\l@leftstemup{\calslurwidth
+ \calslurcor{+}\newE@a{-}\newE@e{-}}
+\def\l@leftstemdown{\calslurwidth
+ \advance\n@e-1
+ \ifnum\n@e=\n@a \newslurwidth{0}{-}\calslurcor{-}\newE@a{-}\newE@e{-}%
+ \else\newslurwidth{1}{-}\slurcor=-\H@a@cor\newE@e{-}%\E@a belegt
+ \fi\advance\n@e 1 }
+%
+% Verbalkung in beiden Faellen
+\def\u@leftrightbeaming{\ifnum\flagb<2 \u@stemdown \else \u@stemup \fi}
+\def\u@stemdown{%
+ \ifnum\flaga<2 \u@stemdownstemdown \else \u@stemupstemdown \fi}
+\def\u@stemdownstemdown{\calslurwidth
+ \calslurcor{-}\newE@a{+}\newE@e{+}}
+\def\u@stemupstemdown{\calslurwidth
+ \advance\n@e-1
+ \ifnum\n@e=\n@a \calslurcor{-}\newE@a{+}\newE@e{+}%
+ \else\newslurwidth{1}{-}\slurcor=-\H@a@cor\newE@e{+}%\E@a belegt
+ \fi\advance\n@e 1 }
+\def\u@stemup{%
+ \ifnum\flaga<2 \u@stemdownstemup \else \u@stemupstemup \fi}
+\def\u@stemdownstemup{\calslurwidth
+ \advance\n@e-1
+ \ifnum\n@e=\n@a \newslurwidth{0}{-}\calslurcor{-}\newE@a{+}\newE@e{+}%
+ \else\newslurwidth{1}{-}\calslurcor{-}\newE@a{+}%\E@e belegt
+ \fi\advance\n@e 1 }
+\def\u@stemupstemup{\calslurwidth
+ \slurcor=-\H@a@cor}%E@a,E@e belegt
+%
+\def\l@leftrightbeaming{\ifnum\flaga<2 \l@stemup \else \l@stemdown \fi}
+\def\l@stemup{%
+ \ifnum\flagb<2 \l@stemupstemup \else \l@stemupstemdown \fi}
+\def\l@stemupstemup{\calslurwidth
+ \calslurcor{+}\newE@a{-}\newE@e{-}}
+\def\l@stemupstemdown{\calslurwidth
+ \advance\n@e-1
+ \ifnum\n@e=\n@a \calslurcor{+}\newE@a{-}\newE@e{-}%
+ \else\newslurwidth{1}{+}\calslurcor{+}\newE@a{-}%\E@e belegt
+ \fi\advance\n@e 1 }
+\def\l@stemdown{%
+ \ifnum\flagb<2 \l@stemdownstemup \else \l@stemdownstemdown \fi}
+\def\l@stemdownstemup{\calslurwidth
+ \advance\n@e-1
+ \ifnum\n@e=\n@a \newslurwidth{0}{-}\calslurcor{+}\newE@a{-}\newE@e{-}%
+ \else\newslurwidth{1}{-}\slurcor=-\H@a@cor\newE@e{-}%\E@a belegt
+ \fi\advance\n@e 1 }
+\def\l@stemdownstemdown{\calslurwidth\slurcor=-\H@a@cor}%E@a,E@e belegt
+%
+%Sekantensteigung
+\def\gradientslur#1#2{%
+ \ifdim\E@a=\E@e \V@int=0 \V@=\z@%auswaehlen von angemessenen Boegen
+ \else
+ \V@ = \E@e \advance \V@ by -\E@a
+ \ifdim\V@>\z@ \V@int=\V@ \else \V@int=-\V@ \fi
+ \advance\V@int \V@int \advance\V@int \seminhh \divide \V@int by 2
+ \divide \V@int by \seminhh
+ \ifnum\V@int>8 \V@int=8 \else \ifnum\slurwidth<4
+ \hc@i=\slurwidth \multiply \hc@i2
+ \ifnum\hc@i<\V@int \V@int=\hc@i
+ \fi\fi
+ \fi
+ \hd@i=\V@int\seminhh
+ \ifdim\E@a#1\E@e \global\E@a=\E@e\global\advance\E@a#2\hd@i
+ \else \global\E@e=\E@a\global\advance\E@e#2\hd@i\fi
+ \fi
+ }
+%
+%Postitionierung und Bogensatz
+\def\caluphrase{\ifnum\V@int=0
+ \caltie{0}{3}{+}\else \calphrase{<}{+}{0}\fi}
+\def\callphrase{\ifnum\V@int=0
+ \caltie{1}{3}{-}\else \calphrase{>}{-}{1}\fi}
+\def\caltie#1#2#3{\hd@i=\E@a \hd@ii=\tieconst\seminhh
+ \advance\hd@ii\nhh
+ \advance\hd@i #3\hd@ii
+ \additem{}{\noexpand\phrase{#1}{\the\H@e}%
+ {#2}{#2}{\the\hd@i}{\the\slurcor}}\in\elementlist\at\n@a}
+\def\calphrase#1#2#3{%
+ \ifdim\V@#1 \z@
+ \hd@i=\phraseconst\seminhh \advance\hd@i\nhh
+ \global\advance\E@a#2\hd@i
+ \additem{}{\noexpand\phrase{#3}{\the\H@e}%
+ {0}{\the\V@int}{\the\E@a}{\the\slurcor}}\in\elementlist\at\n@a
+% 0 entspr. slur aus der ersten spalte im font Sconst
+ \else
+ \hd@i=\phraseconst\seminhh \advance\hd@i\seminhh
+ \global\advance\E@a by #2\hd@i\relax
+ \hd@i=\V@int\seminhh
+ \global\advance\E@a by #2\hd@i \relax
+ \additem{}{\noexpand\phrase{#3}{\the\H@e}%
+ {\the\V@int}{0}{\the\E@a}{\the\slurcor}}\in\elementlist\at\n@a
+% 0 entspr. slur aus der ersten spalte im font
+ \fi}
+\def\phrase#1#2#3#4#5#6{\hc@i=#3\hc@ii=#4%
+ $\raise#5\hbox to \z@{{\kern#6%
+ \ifcase#1
+ \vt@@{\hbox to #2 {\slurfont
+ \vt@@{\char\hex2\the\hc@i}\r@lef@ill{\p@}\vt@@{\char\hex3\the\hc@ii}}}%
+ \or
+ \vb@@{\hbox to #2 {\slurfont
+ \vb@@{\char\hex4\the\hc@i}\r@lef@ll{\p@}\vb@@{\char\hex5\the\hc@ii}}}%
+ \fi
+ \hss}}$}
+%
+\def\setslurs#1#2{\additem{}{\noexpand\setslur{#2}{#1}%
+ {\the\E@a}{\the\slurcor}{\the\slurtoks}}\in\elementlist\at\n@a}
+\def\setslur#1#2#3#4#5{\S@=#1\hc@i=#2%
+ $\raise#3\hbox to \z@{{\kern#4\relax
+ \ifnum\S@<0 \vt@@{\selectfont\char#5}\else
+ \vb@@{\selectfont\char#5}\fi
+ \hss}}$}
+\def\selectfont{%
+ \ifcase\hc@i\ifnum\S@<0\slurfontdu\else\slurfontuu\fi%0
+ \or \ifnum\S@<0\slurfontdd\else\slurfontud\fi%1
+ \or \slurfont \or \slurfont \fi}
+% ************************************************** %
+% * Akzente fuer Noten und Akkorde * %
+% ************************************************** %
+%Abkuerzungen
+\def\cantusfirmus{{\it c.f.}}
+\def\crescendo{{\it cresc.}}
+\def\dacapo{{\it d.c.}}
+\def\dalsegno{{\it d.s.}}
+\def\decrescendo{{\it decresc.}}
+\def\diminuendo{{\it dim.}}
+\def\fine{{\it fine}}
+\def\forte{{\it f}}
+\def\fortissimo{{\it ff}}
+\def\fortissimoposs{{\it fff}}
+\def\fortepiano{{\it fp}}
+\def\forzato{{\it fz}}
+\def\mezzoforte{{\it mf}}
+\def\mezzopiano{{\it mp}}
+\def\piano{{\it p}}
+\def\pianissimo{{\it pp}}
+\def\pianissimoposs{{\it ppp}}
+\def\rallentando{{\it rall.}}
+\def\rinforzando{{\it rfz.}}
+\def\ritardando{{\it rit.}}
+\def\ritenuto{{\it riten.}}
+\def\sforzato{{\it sfz}}
+\def\sforz{{\it sf}}
+\def\staccato{{\it stacc.}}
+\def\tacet{{\it tacet}}
+\def\unisono{{\it unis.}}
+%Plazierung der Spielanweisungen am Notenkopf
+\def\noaccent{\setbox\akzentbox\null}
+\def\stac{\setbox\akzentbox\hboxnhw{{\rm.}}{\box\akzentbox}}
+\def\dec{{{\slurfont\char'160}}}
+\def\staccatissimo{\setbox\akzentbox%
+ \hboxnhw{$\ssize\prime$}{\box\akzentbox}}
+\def\tr{\setbox\akzentbox\hboxnhw{{\rm{\it tr}}}{\box\akzentbox}}
+\def\trbrack{\setbox\akzentbox\hboxnhw{{\rm({\it tr})}}{\box\akzentbox}}
+\def\tenuto{\setbox\akzentbox\hboxnhw{{\vrule width \nhh height 1pt}}
+{\box\akzentbox}}
+\def\plus{\setbox\akzentbox=
+ \hboxnhw{$\scriptscriptstyle+$}{\box\akzentbox}}
+\def\setchordakzent{%
+ \ifdim\wd\akzentbox=\z@\relax\else
+ \iftwo \akzent@position \else
+ \ifstemup \l@akzent@position \else \u@akzent@position\fi \fi
+ \ifstemup\global\setbox\notebox=\hbox{$
+ \raise \akzent@pos\hbox to \z@{\copy\akzentbox\hss}$\box\notebox}\else
+ \global\setbox\notebox=\hbox{\box\notebox$
+ \raise \akzent@pos\hbox to\z@{\hss\copy\akzentbox}$}\fi\fi}
+\def\setakzent{%
+ \ifdim\wd\akzentbox=\z@\relax\else
+ \iftwo \akzent@position \else
+ \ifstemup \l@akzent@position \else \u@akzent@position\fi \fi
+ \global\setbox\notebox=\hboxnhw{\box\notebox}{$
+ \raise \akzent@pos\hbox{\copy\akzentbox}$}\fi}
+\def\u@akzent@position{\hc@i=\ht\notebox \divide\hc@i by \seminhh
+ \ifnum\hc@i>7 \advance\hc@i 1 \else
+ \ifodd\hc@i \advance \hc@i 2 \else \advance \hc@i 1\fi\fi
+ \akzent@pos = \hc@i\seminhh\relax
+ \ifgroup
+ \global\E@u=\akzent@pos \global\advance\E@u\ht\akzentbox
+ \global\advance\E@u\seminhh
+ \ifdim\E@u<\z@ \global\advance \E@u-\I@@
+ \else \global\advance \E@u \I@@ \fi\fi
+ }
+\def\l@akzent@position{\hc@i=\dp\notebox \divide\hc@i by \seminhh
+ \ifdim\dp\notebox>\z@ \advance\hc@i 1 \akzent@pos= -\hc@i\seminhh
+ \else
+ \ifnum\pitch>2 \akzent@pos=\seminhh \else \akzent@pos=-\seminhh\fi\fi
+ \advance\akzent@pos-\ht\akzentbox
+ \ifgroup
+ \global\E@l=\akzent@pos \global\advance\E@l-\seminhh
+ \ifdim\E@l<\z@ \global\advance \E@l-\I@@
+ \else \global\advance \E@l \I@@ \fi\fi}
+%varable (De-)Crescendo - Zeichen
+\def\cresc#1{\sethunkglue\box\hunkbox\global\sk=0pt
+ \setbox\hb@i\hbox{#1}\hc@i=\wd\hb@i\divide\hc@i\nhw
+ \ifnum\hc@i < 1 \hc@i=1 \fi \ifnum\hc@i>16 \hc@i = 16\fi\advance\hc@i95
+ \setover{\slurfont\char\the\hc@i}{\overstrut\unhbox\hb@i}}
+\def\decresc#1{\sethunkglue\box\hunkbox\global\sk=0pt
+ \setbox\hb@i\hbox{#1}\hc@i=\wd\hb@i\divide\hc@i\nhw
+ \ifnum\hc@i < 1 \hc@i=1 \fi \ifnum\hc@i>16 \hc@i=16 \fi\advance\hc@i111
+ \setover{\slurfont\char\the\hc@i}{\overstrut\unhbox\hb@i}}
+\def\setover#1#2{\vbox{\offinterlineskip\hbox{#1}\hbox{#2}}}
+% ************************************************** %
+% * Textunterlage * %
+% ************************************************** %
+% Text oberhalb und unterhalb der Notenlinien
+%- Eingabemacros
+\def\^#1#{\set@above@parms{#1}\set@above@box}
+\let\us=\_
+\def\_#1#{\set@below@parms{#1}\set@below@box}
+\def\a@tok{\^}\def\b@tok{\_}
+%#1 n : Der Text soll nicht in die Berechnung einbezogen werden,
+%#1 c : Der Text wird unterhalb der Notenbox zentriert und nicht in
+% die weitere Berechnung einbezogen
+%#1 l: (linksbuendig) aber neuer spaceskip festgesetzt, Box ist so breit
+%wie Text.
+%#1 r: (rechtsbuendig) Box ist so breit wie Notenbox + ihr spaceskip
+%der Rest wird links ueberstehen. sk veraendert.
+\def\set@above@parms#1{\def\aresp{#1}\ifx\aresp\empty \def\aresp{x}\fi
+ \overtext=\staffheight\advance\overtext by\nhh}
+\def\set@below@parms#1{\def\bresp{#1}\ifx\bresp\empty \def\bresp{x}\fi
+ \undertext=\textline}
+\def\set@above@box#1{\hs@iv=\sk\setbox\hb@i=\hbox{\global\sk=\z@skip
+ \strut\eightrm#1}\get@below@box}
+\def\get@below@box#1#{\def\@B@{#1}\begingroup\aftergroup\set@below
+ \ifx\@B@\b@tok\relax %\aftergroup#2
+ \else\aftergroup e\aftergroup{\aftergroup}\fi
+ \endgroup}
+\def\set@below#1#{\set@below@parms{#1}\set@boxes}
+\def\set@boxes#1#2{\setbox\hb@ii=\hbox{\global\sk=\z@skip\strut\eightrm#1}%
+ \global\sk=\hs@iv \setbox\hb@iii\hbox{#2}%
+ \hs@v=\sk \relax\hs@vi=\sk
+ \above{\aresp}\below{\bresp}\global\sk=\hs@iv\relax
+ \ifvoid\hb@iii \global\sk=\z@skip \hbox{\u@text\l@text}\else #2\fi
+ \ifdim\hs@vi>\hs@v\global\sk=\hs@vi\else\global\sk=\hs@v\fi
+ \def\l@text{\relax}\def\u@text{\relax}}
+%
+\def\set@below@box#1{\hs@iv=\sk\setbox\hb@ii=\hbox{\global\sk=\z@skip
+ \strut\eightrm#1}\get@above@box}
+\def\get@above@box#1#{\def\@A@{#1}\begingroup\aftergroup\set@above
+ \ifx\@A@\a@tok\relax%\aftergroup#2
+ \else\aftergroup e\aftergroup{\aftergroup}\fi\endgroup}
+\def\set@above#1#{\set@above@parms{#1}\set@@boxes}
+\def\set@@boxes#1#2{\setbox\hb@i=\hbox{\global\sk=\z@skip\strut\eightrm#1}%
+ \global\sk=\hs@iv \setbox\hb@iii\hbox{#2}%
+ \hs@v=\sk \relax\hs@vi=\sk
+ \above{\aresp}\below{\bresp}\global\sk=\hs@iv\relax
+ \ifvoid\hb@iii\global\sk=\z@skip\hbox{\u@text\l@text}\else#2\fi
+ \ifdim\hs@vi>\hs@v\global\sk=\hs@vi\else\global\sk=\hs@v\fi
+ \def\l@text{\relax}\def\u@text{\relax}}
+\def\above#1{\ifdim\ht\hb@iii>\overtext \overtext = \ht\hb@iii
+ \advance \overtext \seminhh \fi
+ \if#1e\def\u@text{\relax}\else
+ \if#1n\anorespect\else
+ \if#1c\acrespect\else
+ \if#1r\arrespect\else
+ \if#1l\alrespect\else\aautoset\fi\fi\fi\fi\fi\nobreak}
+\def\below#1{%
+ \if#1e\def\l@text{\relax}\else
+ \if#1n\bnorespect\else
+ \if#1c\bcrespect\else
+ \if#1r\brrespect\else
+ \if#1l\blrespect\else
+ \if#1v\bvrespect\else\bautoset\fi\fi\fi\fi\fi\fi\nobreak}
+\def\anorespect{%
+ \def\u@text{$\raise\overtext\hbox to\z@{\box\hb@i\hss}$}}
+\def\acrespect{\hd@i=\wd\hb@iii\advance\hd@i-\hs@iv\relax
+ \setbox\hb@i\hbox to\hd@i{\hss\box\hb@i\hss}%
+ \def\u@text{$\raise\overtext\hbox to \z@{\box\hb@i\hss}$}}
+\def\arrespect{\hd@i=\wd\hb@iii
+ \advance\hd@i by \hs@v \advance\hd@i by-\hs@iv
+ \setbox\hb@i\hbox to \hd@i{\hss\box\hb@i}%
+ \def\u@text{$\raise\overtext\hbox to \z@{\box\hb@i\hss}$}%
+ \advance\hs@v by \nhh plus\nhh\relax}
+\def\alrespect{\hd@i=\wd\hb@iii\advance\hd@i-\hs@iv
+ \distance{\hd@i}{\wd\hb@i}\ifdim\hd@i>\wd\hb@i
+ \hs@v=\Abs plus\nhh \fi
+ \def\u@text{$\raise\overtext\hbox to \z@{\box\hb@i\hss}$}}
+\def\bnorespect{%
+ \def\l@text{$\lower\undertext\hbox to\z@{\box\hb@ii\hss}$}}
+\def\bvrespect{\undertext=\ht\hb@ii\relax
+ \ifdim\dp\hb@iii>\z@ \advance\undertext by\dp\hb@iii\fi\bnorespect}
+\def\bcrespect{%
+ \hd@i=\wd\hb@iii\advance\hd@i-\hs@iv\relax
+ \setbox\hb@ii\hbox to\hd@i{\hss\box\hb@ii\hss}%
+ \def\l@text{$\lower\undertext\hbox to \z@{\box\hb@ii\hss}$}}
+\def\brrespect{\hd@i=\wd\hb@iii
+ \advance\hd@i by \hs@vi \advance\hd@i by-\hs@iv
+ \setbox\hb@ii\hbox to \hd@i{\hss\box\hb@ii}%
+ \def\l@text{$\lower\undertext\hbox to \z@{\box\hb@ii\hss}$}%
+ \advance\hs@vi by \nhh plus\nhh\relax}
+\def\blrespect{\hd@i=\wd\hb@iii\advance\hd@i-\hs@iv
+ \distance{\hd@i}{\wd\hb@ii}\ifdim\hd@i>\wd\hb@i
+ \hs@vi=\Abs plus\nhh\relax \fi
+ \def\l@text{$\lower\undertext\hbox to \z@{\box\hb@ii\hss}$}}
+\def\aautoset{\hd@i=\wd\hb@i \advance \hd@i-\wd\hb@iii
+ \advance\hd@i-\hs@iv
+ \ifdim\hd@i>\z@ \relax
+ \ifdim\hd@i>0.75\hs@v \advance\hd@i-\hs@v
+ \ifdim\hd@i<\hs@v \arrespect\else\alrespect\fi
+ \else\acrespect\fi
+ \else\anorespect\fi
+ }
+\def\bautoset{\hd@i=\wd\hb@ii \advance\hd@i-\wd\hb@iii
+ \advance\hd@i-\hs@vi
+ \ifdim\hd@i>\z@ \relax
+ \ifdim\hd@i>\sk \advance\hd@i-\sk
+ \ifdim\hd@i<\sk \brrespect\else\blrespect\fi
+ \else\bcrespect\fi
+ \else\bnorespect\fi
+ }
+% ************************************************** %
+% * Zweistimmige Notation in einem System * %
+% ************************************************** %
+\def\two#1#2{{\def\stemdirectiondef{\relax}\twotrue
+ \setbox\h@nkbox=\hbox{\box\hunkbox}%
+ \hs@i=\sk \global\sk=\z@skip
+ \setbox\firstvoice\hbox{\stemuptrue
+ \let\akzent@position=\u@akzent@position\direction{up}#1}%
+ \hs@ii=\sk \global\sk=\z@skip
+ \setbox\secondvoice\hbox{%
+ \def\doteven{\dot@down}\let\akzent@position=\l@akzent@position
+ \stemupfalse\direction{down}#2}%
+ \hs@iii=\sk
+ \hbox{\global\sk=\hs@i\sethunkglue
+ \box\h@nkbox\ifdim\wd\firstvoice<\wd\secondvoice
+ \hd@i=\wd\firstvoice\global\sk=\z@skip\box\firstvoice\hskip-\hd@i
+ \global\sk=\z@skip\box\secondvoice\global\sk=\hs@iii\else
+ \hd@i=\wd\secondvoice\global\sk=\z@skip\box\secondvoice\hskip-\hd@i
+ \global\sk=\z@skip\box\firstvoice\global\sk=\hs@ii\fi}\twofalse}}
+% ************************************************** %
+% * Beginn und Ende * %
+% ************************************************** %
+%Material fuer die Ueberschrift eines Musikstueckes
+\def\comp@{\hbox{}} %Komponist
+\def\poet@{\hbox{}} % Texter
+\def\title@{\hbox{}}% Titel
+\def\voice@{\hbox{}}%Text zu Beginn der ersten Notenzeile
+\def\composer#1{\def\comp@{\hbox{\eightrm #1}}}
+\def\poet#1{\def\poet@{\hbox{\eightrm#1}}}
+\def\title#1{\def\title@{\hbox{\bf#1}}}
+\def\voice#1{\def\voice@{\hbox to \parindent{\offinterlineskip
+ \hss\vbox to \staffheight{\vfil\hbox{\rm#1}\vfil}\hss}}}
+%Zusammensetzen der Ueberschrift
+\def\headings{\par\hbox to \hsize{\hss\title@\hss}%
+ \hbox to \hsize {\poet@\hss\comp@}%
+ \def\comp@{\hbox{}}\def\poet@{\hbox{}}\def\title@{\hbox{}}}
+%Rahmen \beginsong ...... \endsong
+\outer\def\beginsong#1#2{\headings\par\nointerlineskip
+ \begingroup\inisong
+ \global\signtoks={}\global\cleftoks={}%
+ \noaccent
+ \baselines\parskip\staffheight plus 0.5\staffheight \relax
+ \firsttrue\indent\llap{\voice@}%
+ \firstlines#1#2\firstfalse\music}
+\def\endsong{\break\null\par\endgroup\def\voice@{\hbox{}}\global\sk=0pt}
+\outer\def\ende{\endsong\end}
+% ************************************************** %
+% * Defaults * %
+% ************************************************** %
+%Defaults zu Beginn des Musikstueckes
+\def\inidefaults{\let\dotdown=\dot@down
+ \def\helplist{}%
+ \global\minsl=3 \nhh
+ \let\na=\n@a \let\nee=\n@e
+ \def\beamlist{\\{\the\n@a-\the\n@e,}}%
+% Minimal moegliche Halslaenge bei Verbalkung - Anfangsbelegung
+ \n@a=1}
+%Diese k"onnen nicht in \beginsong .... \endsong eingebettet werden
+%da sonst keine Aenderung moeglich
+ \universal
+ \normalbaselines
+\catcode`@ = 12
+%\let\baselines = \baselinesa %fuer Einbettung einzeiliger Beispiele
+ %in Text
+\let\baselines = \baselinesb %fuer mehrzeilige Beispiele
+\rm
diff --git a/macros/mtex/macros/mtexdemo.tex b/macros/mtex/macros/mtexdemo.tex
new file mode 100644
index 0000000000..e1c8402c6e
--- /dev/null
+++ b/macros/mtex/macros/mtexdemo.tex
@@ -0,0 +1,299 @@
+%format plain
+%---------------------------------------------------
+\input german.sty
+%\input verbatim
+% macros for verbatim scanning
+% im wesentlichen dem file MANHDR TEX von DEK entnommen
+\catcode`@=11
+\def\tt{\fam\ttfam\tentt}%
+\newskip\ttglue \ttglue=.5em plus .25em minus .15em
+\chardef\other=12
+\def\ttverbatim{\begingroup
+ \catcode`\\=\other
+ \catcode`\{=\other
+ \catcode`\}=\other
+ \catcode`\$=\other
+ \catcode`\&=\other
+ \catcode`\#=\other
+ \catcode`\%=\other
+ \catcode`\~=\other
+ \catcode`\_=\other
+ \catcode`\^=\other
+ \catcode`\"=\other
+ \parskip \z@
+ \obeyspaces \obeylines \tt}
+
+\def\begintt{$$\let\par=\endgraf \ttverbatim
+ \catcode`\|=0 \rightskip-5pc \ttfinish}
+{\catcode`\|=0 |catcode`|\=\other % | is temporary escape character
+ |obeylines % end of line is active
+ |gdef|ttfinish#1^^M#2\endtt{|vbox{#2}|endgroup$$}}
+
+\catcode`\|=\active
+{\obeylines \gdef|{\ttverbatim \spaceskip\ttglue \let^^M=\ \let|=\endgroup}}
+%\def\ttspace{{\tt\hskip\ttglue}}
+
+\def\vrt{\hbox{\tt\char`\|}} % vertical line
+\def\dn{\hbox{\tt\char'14}} % downward arrow
+\def\up{\hbox{\tt\char'13}} % upward arrow
+\def\]{\hbox{\tt\char`\ }} % visible space
+
+\catcode`@=12 % at signs are no longer letters
+\def\verbatimon{\catcode`\|=\active}
+\def\verbatimoff{\catcode`\|=\other}
+\verbatimoff
+%--------------------------------------------------- end of verbatim.tex
+\nopagenumbers
+\headline{\eightrm \hfill Beispiele f"ur den Notensatz mit \TeX
+\hfill\hbox to 0pt{\hss Schofer/Steinbach 1987}}
+%---------------------------------------------------
+\input mtex
+%---------------------------------------------------
+\let\os=\^
+\let\us=\_
+\def\ks#1{\noindent\hbox{{\tt \char\hex5C}\bf#1}}
+\def\bs{\noindent\hbox{{\tt \char\hex5C}}}%Backslash
+\def\lk{\hbox{{\tt\char\hex7B}}}%linke Klammer auf
+\def\strich{{\hbox{\tt \char\hex7C}}}
+\def\dpkt{{\hbox{\tt \char\hex3A}}}%Doppelpunkt
+\def\gleich{{\hbox{\tt \char\hex3D}}}%
+\def\slash{\noindent{\hbox{\tt \char\hex2F}}}
+\def\blank{{\hbox{\tt \char\hex20}}}
+%
+\let\leftbrace=\{
+\def\{{\ifmmode\leftbrace\else{$\leftbrace$}\fi}
+\let\rightbrace=\}
+\def\}{\ifmmode\rightbrace\else{$\rightbrace$}\fi}
+%
+%
+\verbatimon
+\normalbaselines
+\openup\jot
+%
+%\universal %ist f"ur MTEX etwas zu breit
+\small %so gehts vielleicht besser
+%
+\title{\vbox{\hbox to 0pt{\hss 6 Suiten f"ur Cello Solo\hss}
+ \hbox to 0pt{\hss Suite II Menuet I\hss}}}
+\poet{\vtop{\hbox to 0pt{F"ur Viola "ubertragen \hss}
+ \hbox to 0pt{von Franz Schmidtner\hss}}}
+\composer{Johann Sebastian Bach}
+\parindent 20pt
+\beginsong\alto\F\meter3/4%
+\rchord \h5\h7\h9\endchord\v{10}\|%
+\two{\group{\\{\a{10}}\\{\a9}\\{\a{10}}\\{\a8}}{\\{10}\\{9}\\{10}\\{8}}%
+\ubeam14\uslur12\go}{\rchord \a4\a6\endchord}%
+\v9\|\rchord\v3\v5\endchord\v8%
+\group{\\{\a7}\\{\a6}}{\\{7}\\{6}}\lbeam12\go\|%
+\two{\group{\\{\a7}\\{\a6}\\{\a5}\\{\x4\a4}\\{\n3\a3}\\{\a2}}
+{\\{7}\\{6}\\{5}\\{4}\\{3}\\{2}}\ubeam16\uslur13\go}%
+{\a2}\|\rchord \h5\h7\h9\endchord\v{10}\|%
+\two{\group{\\{\a{10}}\\{\a9}\\{\tenuto\a{10}}\\{\tenuto\a8\noaccent}}
+{\\{10}\\{9}\\{10}\\{8}}\ubeam14\uslur12\go}{\a6}%
+\v{11}\|\rchord\v7\v9\endchord\rchord\v3\v7\v{12}\endchord
+\rchord\v1\v8\v{13}\endchord\|\rchord\h2\.1\h6\.1\x{11}\h{11}\.1\endchord
+\leftrightrepeat
+\rchord\h9\h{13}\endchord
+{\def\beamlist{\\{1-3,}\\{2-3,}}%
+\group{\\{\a{12}}\\{\s{13}}\\{\s{14}}}{\\{12}\\{13}\\{14}}\lbeam13%
+\uslur13\go}\|
+\two{\group{\\{\a{13}}\\{\a{12}}\\{\x{11}\a{11}}\\{\a{13}}\\{\a9}\\{\a8}}
+{\\{13}\\{12}\\{11}\\{13}\\{9}\\{8}}\ubeam16\uslur15\go}{\a8}\|%
+\two{\group{\\{\v9}\\{\v{12}}}{\\{9}\\{12}}\uslur12\go}{\h7}%
+\x{11}\two{\v{11}}{\v6}\|%
+\two{\group{\\{\a{15}}\\{\a{14}}\\{\a{13}}\\{\a{14}}\\{\a{12}}%
+\\{\n{11}\a{11}}}
+{\\{15}\\{14}\\{13}\\{14}\\{12}\\{11}}\ubeam16\uslur15\go}{\a5}\|%
+\two{\h{10}}{\group{\\{\v8}\\{\v7}}{\\{8}\\{7}}\lslur12\go}%
+\two{\v{11}}{\v6}\|%
+\two{\group{\\{\a9}\\{\a8}\\{\a9}\\{\a7}}{\\{9}\\{8}\\{9}\\{7}}\ubeam14%
+\go}{\a7}%
+\rchord\v{12}\v6\v3\endchord\|\rchord\v{11}\v7\v2\endchord
+\group{\\{\a{10}}\\{\a9}\\{\a8}\\{\a9}}{\\{10}\\{9}\\{8}\\{9}}\lbeam14\go
+\|\group{\\{\a7}\\{\a6}\\{\a7}\\{\a9}\\{\a8}\\{\a{10}}}
+{\\{7}\\{6}\\{7}\\{9}\\{8}\\{10}}\lbeam16\go\|%
+\x7\two{\tr\h9\noaccent}{\h7}%
+\two{\v{10}}{\pv}\|\b6%
+\two{\group{\\{\a8}\\{\a7}\\{\a8}\\{\a6}}
+{\\{8}\\{7}\\{8}\\{6}}\ubeam14\uslur12\go}{\a6}%
+\x7\tr\v7\noaccent\|\rchord\v{12}\v8\v3\endchord\rchord\v{11}\v8\v4\endchord
+\two{\group{\\{\a{10}}\\{\a9}}{\\{10}\\{9}}\ubeam12\uslur12\go}{\v5}\|%
+\group{\\{\rchord\a{11}\a5\a1\endchord
+}\\{\a{10}}\\{\a9}\\{\a{10}}\\{\a8}\\{\a{10}}}
+{\\{1}\\{10}\\{9}\\{10}\\{8}\\{10}}\lbeam16\go\|%
+\two{\group{\\{\v{12}}\\{\x{11}\v{11}}}
+{\\{12}\\{11}}\uslur12\go}{\v8\pv}\n7%
+\two{\v{12}}{\v7}\|\x4%
+\two{\group{\\{\a8}\\{\a7}\\{\a8}\\{\a6}}
+{\\{8}\\{7}\\{8}\\{6}}\ubeam14\uslur12\go}{\a4}%
+\two{\v7}{\v5}\|%
+\group{\\{\a1}\\{\a8}}{\\{1}\\{8}}\lbeam12\go\two{\tr\v6\.1}{\v2\.1}%
+\two{\a5}{\raise-1.5\nhh\hbox{\pa}}\|\lchord\h5\.1\h2\.1\h{-2}\.1\endchord
+\rightrepeat
+\endsong
+\parindent0pt
+{\eightrm
+Aus: Johann Sebastian Bach, Sechs Suiten, f"ur Viola bearbeitet von
+Franz Schmidtner, Musikverlag Hans Sikorski, Hamburg.
+}
+\vskip0.5cm
+F"ur dieses Musikst"uck lautet die Eingabe:
+\vskip0.5cm
+%%%%%%%%%%%%%%%%%%
+%%%%% bach %%%%%%%
+%%%%%%%%%%%%%%%%%%
+{\bf !!}
+\ks{title}\{6 Suiten f"ur Cello Solo
+\bs{atop} Suite II Menuet I\}\par
+\ks{composer}\{Johann Sebastian Bach\}
+\ks{poet}\{F"ur Viola "ubertragen \bs{atop} von Franz Schmidtner\}\par
+\ks{alto}\ks{F}\ks{meter}\{{\bf3}\slash {\bf4}\}\ks{two}
+\par{\bf \{\ \ \ \ks{chord}\{2`d f a\} 4h\strich
+\ks{chord}\{'8c `e\}\slash\ \slash\ \slash\ 4a\strich
+\par
+\ks{chord}\{4,h `d\} g\ks{beam}\{8f e\}\strich
+,8a \slash\ \slash\ \slash\ \slash\ \slash\ \strich
+\ks{chord}\{`2d f a\} 4h\strich 8e
+\slash\ \slash\ \slash\
+{`}{`}4c \strich\par
+\ks{chord}\{4`f a\}\ks{chord}\{,h `f {`}{`}d\}
+\ks{chord}\{,g `g {`}{`}e\}\strich
+\par\ks{chord}\{2.,a ,`e ,x{`}{`}c\}
+\dpkt\strich\strich\dpkt
+\par\ks{chord}\{2`a {`}{`}e\}\ks{slur}\{\ks{beam}\{8d 6e f\}\}\strich
+8`g\slash\ \slash\ \slash\ \slash\ \slash\ \strich
+2f \slash\ 4e\strich 8d \slash\ \slash\ \slash\ \slash\ \slash\strich
+\ks{slur}\{4g f\}e\strich\par
+ 8f\slash\ \slash\ \slash\
+\ks{chord}\{4,h `e {`}{`}d\}\strich\ks{chord}\{4,a `f {`}{`}c\}
+\ks{beam}\{8`h a g a\}\strich\par \ks{beam}\{8f e f a g h\}\strich
+2xf 4p \strich b8e \slash\ \slash\ \slash\
+4xf \ks{tr}\strich\ks{chord}\{4,h `g {`}{`}d\}
+\ks{chord}\{4`c g {`}{`}c\} `d\slash\ \strich
+\par\ks{beam}\{\ks{chord}\{,8g `d {`}{`}c\} 8`h a h g h\}\strich
+4g p nf\strich 8xc \slash\ \slash\ \slash\ 4d\strich
+\par\ks{beam}\{8,g `g\} 4.,a 8p\strich \ \slash\
+\dpkt\strich\strich\ \ \}\par
+\{\ \ \slash\ \slash\ \strich
+\ks{beam}\{\ks{slur}\{8{`}h a\} h g\}\slash\ \strich
+\slash\ \slash\ \slash\ \slash\ \strich
+\ks{beam}\{\ks{slur}\{'8f e d\}xc ,nh a\}\strich
+\slash\ \slash\ \strich\par\ks{beam}\{\ks{slur}\{8h a\}\ks{tenuto} h
+f \ks{noaccent}\ \slash\ \}\strich
+\slash\ \slash\ \slash\ \strich
+\slash\ \dpkt\strich\strich\dpkt\par
+\slash\ \slash\ \slash\ \slash\ \strich
+\ks{beam}\{\ks{slur}\{8{`}{`}e d xc e `a\}g\}\strich
+\ks{slur}\{`4a {`}{`}d\}xc\strich
+\ks{beam}\{\ks{slur}\{8{`}{`}g f e f d \}nc\}\strich\par
+`2h\slash\ {`}{`}4c\strich \ks{beam}\{8`a g a f\}\slash\ \strich
+\slash\ \slash\ \slash\ \slash\ \slash\strich
+\slash\ \slash\ \slash\ \slash\ \slash\ \slash\strich\par
+2`a \ks{tr} 4h\strich
+\ks{beam}\{\ks{slur}\{8g f\} g e\}\slash\strich
+\slash\ \slash\ \ks{beam}\{\ks{slur}\{8h a\}\}\strich
+\slash\ \slash\ \slash\ \slash\ \slash\ \slash\ \strich\par
+\ks{slur}\{{`}{`}4d `a\} {`}{`}d\strich
+\ks{beam}\{\ks{slur}\{8`g f\} g e\} 4f\strich
+\slash\ \slash\ 4.e \ks{tr} 8d\strich
+\ks{chord}\{2.,d .a `.d\}
+ \dpkt\strich\strich
+\ \ \} }{\bf!!}
+
+\vfill\eject
+\vskip2cm
+\title{Lobe den Herren}
+\composer{Hugo Distler}
+\def\@#1#2{{$\hbox{#1\hfill}\atop\hbox{#2\hfill}$}}
+\def\lv{{\leaders\hrule \hskip1cm plus 1fill}}
+\parindent 40pt
+\voice{Sopran}%
+\universal
+\beginsong\vio\G\^r{{\rm Schnell}}{\vrule height 7\nhh width0pt%
+\gluebrule}\meter3/4%
+\^{\mezzoforte}\_{\@{Lo-}{Mei-}}{\v2}%
+\_{\@{be}{ne}}{\v2}%
+\_{\@{den}{ge - }}{\v6}\|%
+\_{\@{Her-}{lie - }}{\v4\.1}\_{\@{ren, }{be - }}{\a3}%
+\_l{\@{den}{te }}{\v2}\|%
+\_l{\@{m"ach - }{See - }}{\v1}\_{\@{ti - }{le, }}{\v0}%
+\_{\@{gen }{das }}{\v{-1}}\|%
+\_{\@{K"o - }{ist }}{\h0}%
+\group{\\{\_n{\@{nig \lv }{mein \lv }}{\v1}}\\{\|\meter2/4}\\{\v1}}
+{\\{1}\\{0}\\{1}}\lslur13\go\_{\@{der }{Be- }}{\v2}\|\meter4/4%
+\_{\@{Eh - }{geh - }}{\h3}\_{\@{ren!}{ren.}}{\h2}\rightrepeat\meter3/4%
+%Ende Wiederholung
+\_{Kom-}\^{\forte}{\v6}\_{met}{\v6}\_{zu}{\v6}\|%
+\_{Hauf!}{\h7\.1}\caesura\|\_l{Psal - }{\v4}\_{ter}{\a5}%
+\_l{und }{\a5}%
+\group{\\{\_n{Har\hskip40pt - \hskip40pt -\hskip 40pt - \hskip40pt
+}{\v6}}\\{\|}\\{\a6}\\{\a7}\\{\a6}\\{\a4}\\{\v6}%
+\\{\|}\\{\a6}\\{\a7}\\{\v6\.1}\\{\a7}\\{\|}\\{\v6\.1}}
+{\\{6}\\{8}\\{6}\\{7}\\{6}\\{4}\\{6}\\{8}\\{6}\\{7}\\{6}\\{7}\\{8}\\{6}}%
+\lbeam36\lbeam9{10}\uslur13\uslur79\uslur1{14}\go
+\_{fe,}{\a5}\_l{wacht}{\v4}\|%
+\^{\piano}\_{auf, }{\h3}\group{\\{\_n{wacht}{\caesura\a4}}\\{\a2}}
+{\\{4}\\{2}}\ubeam12\go\|\^{\dec}\_{auf,}{\h3}%
+\group{\\{\_n{wacht}\^{zart}{\caesura\a4}}\\{\a2}}
+{\\{4}\\{2}}\ubeam12\go\|\^{\dec}\_{auf,}{\h6\.1}\caesura\|%
+\^{\forte}\_{las-}{\v{-1}}\_{set}{\v0\.1}\_{den}{\a1}\|%
+\meter4/4\_{Lob - }{\h2}\_{ge - }{\v3}\_{sang}{\v4}\|\meter7/4%
+\group{\\{\_n{h"o \hskip20pt - \hskip20pt - \hskip20pt
+- }{\h5}}\\{\v4\.1}\\{\a3}\\{\v2}\\{\h3}}
+{\\{5}\\{4}\\{3}\\{2}\\{9}}\uslur15\go
+\|\meter3/4\_{ren!}{\h2\.1}\=\endsong
+\parindent=0pt \eightrm
+Aus: R. Baum,``Geselliges Chorbuch I'' B"arenreiter-Verlag, Kassel und
+Basel.
+\vskip1cm \rm Auch zu diesem St"uck sei die Eingabe aufgef"uhrt:
+\vskip1cm
+%%%%%%%%%%%%%%%%
+%%%%%% distler%
+%%%%%%%%%%%%%%%%
+{\bf !!}\ks{title}\{Lobe den Herren\}
+\ks{composer}\{Hugo Distler\}
+\par
+\ks{voice}\{Sopran\}
+\ks{treble}\ks{signature}\{{`}{`}xf\}
+\ks{text}\{\ks{\os{ }l} Schnell\}
+\ks{meter}\{{\bf3}\slash {\bf4}\}\ks{vocal}
+\par {\bf\{\ \ \
+4g\ks{mezzoforte} g {`}{`}d\strich `h. 8a 4g\strich f e d \strich 2e
+\ks{slur}\{4f\strich\ks{meter}\{2\slash 4\} f\} 4g\strich
+\par\ks{meter}\{4\slash 4\} 2a 2g\dpkt\strich\strich
+\ks{meter}\{3\slash 4\} 4{`}{`}d d d \strich 2.e 0p\strich
+\par `4h 8{`}{`}c c
+\ks{group}\{4d\strich 8d e d `h 4{`}{`}d\strich 8d e 4.d 8e\strich 4.d\}
+\ks{gslur}\{1-3, 1-13\}\par
+\ks{gbeam}\{3-6, 9-10\} 8c 4`h\strich 2a
+\ks{piano} 0p\ks{beam}\{8h g\}\strich\par 2a \ks{decr} 0p
+%ks{beam}\{8h g\}\strich\par 2a \ks{decr} 0p
+\ks{beam}\{8h \ks{text}\{{\rm zart}\}g\}\strich
+ {`}{`}2.d\ks{decr} 0p\strich
+\par `4d\ks{forte} .e 8f\strich \ks{meter}\{4\slash 4\} 2g 4a h\strich
+\par
+\ks{meter}\{7\slash 4\}\ks{slur}\{`{}`2c `4.h 8a 4g 2a\}\strich
+\ks{meter}\{3\slash 4\} 2.g \gleich\ \ \ \} }
+\par
+\{\ \ \ \{Lo-\bs{atop} Mei-\} \{be\bs{atop} ne\} \{den\bs{atop} ge-\}
+\{Her-\bs{atop} lie-\} \{ren,\bs{atop} be-\}\par
+ \{den \bs{atop} te\} \{m"ach-\bs{atop} See-\}
+ \{ti-\bs{atop} le,\} \{gen\bs{atop} das\} \par
+ \{K"o-\bs{atop} ist\}
+ \{nig--\bs{atop} mein--\} \slash\
+ \{der\bs{atop} Be-\} \{Eh-\bs{atop} geh-\}
+ \{ren!\bs{atop} ren.\}
+\par Kom- met zu Hauf! Psal- ter und Har-
+\slash\ \slash\ \slash\
+\slash\ \slash\ \slash\
+\slash\ \slash\ \slash\ \slash\
+fe, \par
+wacht auf, wacht \slash\ auf, wacht\ \slash\ auf, \par
+las- set
+den Lob- ge- sang h"o-
+\slash\ \slash\ \slash\ \slash\
+ren!\ \ \ \}{\bf!!}
+\vfill\eject
+%
+%
+\bye
diff --git a/macros/mtex/macros/mtexinfo.tex b/macros/mtex/macros/mtexinfo.tex
new file mode 100644
index 0000000000..2236c5b919
--- /dev/null
+++ b/macros/mtex/macros/mtexinfo.tex
@@ -0,0 +1,468 @@
+%format plain
+%\input verbatim
+%--------------------------------------------------------------------
+% macros for verbatim scanning
+% im wesentlichen dem file MANHDR TEX von DEK entnommen
+\catcode`@=11
+\def\tt{\fam\ttfam\tentt}%
+\newskip\ttglue \ttglue=.5em plus .25em minus .15em
+\chardef\other=12
+\def\ttverbatim{\begingroup
+ \catcode`\\=\other
+ \catcode`\{=\other
+ \catcode`\}=\other
+ \catcode`\$=\other
+ \catcode`\&=\other
+ \catcode`\#=\other
+ \catcode`\%=\other
+ \catcode`\~=\other
+ \catcode`\_=\other
+ \catcode`\^=\other
+ \catcode`\"=\other
+ \parskip \z@
+ \obeyspaces \obeylines \tt}
+
+\def\begintt{$$\let\par=\endgraf \ttverbatim
+ \catcode`\|=0 \rightskip-5pc \ttfinish}
+{\catcode`\|=0 |catcode`|\=\other % | is temporary escape character
+ |obeylines % end of line is active
+ |gdef|ttfinish#1^^M#2\endtt{|vbox{#2}|endgroup$$}}
+
+\catcode`\|=\active
+{\obeylines \gdef|{\ttverbatim \spaceskip\ttglue \let^^M=\ \let|=\endgroup}}
+%\def\ttspace{{\tt\hskip\ttglue}}
+
+\def\vrt{\hbox{\tt\char`\|}} % vertical line
+\def\dn{\hbox{\tt\char'14}} % downward arrow
+\def\up{\hbox{\tt\char'13}} % upward arrow
+\def\]{\hbox{\tt\char`\ }} % visible space
+
+\catcode`@=12 % at signs are no longer letters
+\def\verbatimon{\catcode`\|=\active}
+\def\verbatimoff{\catcode`\|=\other}
+\verbatimoff
+%---------------------------------------------- end of verbatim.tex
+\catcode`\"=12
+\def\hex{"} % zum Eingeben von Zahlen in hex
+\def\3{\char"19{}}
+\catcode`\"=\active %Umlaute
+\def"{\accent'177}
+\newskip \iindent \iindent=30pt
+\font\bigrm=cmbx12
+\font\ninerm=cmr9
+\font\music=music16
+%\footline={}
+\headline={\hfill Benutzermacros der aktuellen Version MTEX TEX}
+\parindent=0pt
+%
+% einige allgemeine Definitionen (nicht alle hier ben"otigt)
+\def\tex#1{{\it #1\/}}
+\def\disp#1{{\sl #1\/}}
+\def\defi#1{{\bf #1}}
+\def\parh{\par\hang\hangafter0}
+\def\parn{\par\noindent}
+\def\ul#1{$\underline{\text{#1}}$}
+\def\pt{\,{\rm pt}}%nur f"ur mathmode
+\def\<#1>{\leavevmode\hbox{$\langle$#1\/$\rangle$}} % syntactic quantity
+\def\bull{\vrule height .9ex width .8ex depth -.1ex } % square bullet
+\def\hang{\hangindent\iindent}
+\def\textindent#1{\noindent\hskip\iindent\llap{#1\enspace}\ignorespaces}
+\def\item{\par\hang\textindent}
+\def\itemitem{\par\noindent\hskip\iindent\hangindent2\iindent\textindent}
+\frenchspacing
+% macros for non-centered displays
+\outer\def\begindisplay{\obeylines\startdisplay}
+{\obeylines\gdef\startdisplay#1
+{\catcode`\^^M=5$$#1\halign\bgroup\hskip\iindent##\hfil&&\qquad##\hfil\cr}}
+\outer\def\enddisplay{\crcr\egroup$$}
+\def\vo{\tt\verbatimon}
+\def\voff{\tt\verbatimoff}
+\def\mf{{\rm METAFONT}}
+%\let\headings\relax
+%
+\openup\jot
+Dies ist eine Auf{}listung der
+benutzbaren Kontrollsequenzen aus MTEX zum Notensatz.
+
+\verbatimon
+Jedes eingegebene Musikst"uck mu\3 in folgender Form aufgebaut sein:
+\begindisplay
+Kopfzeile\cr
+|\beginsong|\<Notenschl"ussel>\<Tonart>\cr
+{}$\vdots$\cr
+|\endsong|\cr
+\enddisplay
+In der Kopfzeile k"onnen die Informationen "uber Titel, Komponist oder
+Textautor in beliebiger Reihenfolge angegeben werden mit:
+\begindisplay
+|\title{...}|\cr
+|\composer{...}|\cr
+|\poet{...}|\cr
+\enddisplay
+Mit |\voice{...}| kann der Name der Stimme angegeben werden. Dieser
+wird in der ersten Zeile vor das Liniensystem geschrieben.
+
+Als Notenschl"ussel sind verf"ugbar:
+\begindisplay
+|\vio| && Violinschl"ussel \cr
+%|\viooct| && oktavierter Violinschl"ussel (nach unten) \cr
+%|\vioOct| && oktavierter Violinschl"ussel (nach oben) \cr
+|\bass| && Ba\3schl"ussel \cr
+%|\bassoct| && oktavierter Ba\3schl"ussel (nach unten) \cr
+%|\bassOct| && oktavierter Ba\3schl"ussel (nach oben) \cr
+C-Schl"ussel:\cr
+|\bariton| && Baritonschl"ussel \cr
+|\tenor| && Tenorschl"ussel \cr
+|\alto| && Altschl"ussel \cr
+|\mezzosopran| && Mezzosopransch"ussel \cr
+|\sopran| && Sopranschl"ussel \cr
+\enddisplay
+%Test:
+%\def\viooct{$\mathop{\hbox{\music\mviolin}}\limits^8_8$}
+%\def\bassoct{$\mathop{\hbox{\music\mbass}}\limits^8_8$}
+%\viooct
+%\bassoct
+F"ur die Tonartangabe wurden folgende Kontrollsequenzen verwendet:
+\begindisplay
+Durtonarten:\cr
+|\F| && |\C| \cr
+|\B| && |\G| \cr
+|\Es| && |\D| \cr
+|\As| && |\A| \cr
+|\Des| && |\E| \cr
+|\Ges| && |\H| \cr
+|\Ces| && |\Fis| \cr
+Molltonarten:\cr
+|\mdis| && |\ma| \cr
+|\mgis| && |\md| \cr
+|\mcis| && |\mg| \cr
+|\mfis| && |\mc| \cr
+|\mh| && |\mf| \cr
+|\me| && |\mb| \cr
+ && |\mes| \cr
+\enddisplay
+Die Taktart wird angegeben durch
+\begindisplay
+|\meter{|\<Anzahl der Grundwerte pro Takt>|}/{|\<Takteinheit>|}|
+\enddisplay
+Die Symbole f"ur Taktangaben k"onnen auch mit |\meter|
+eingegeben werden, indem f"ur den ersten Parameter
+nichts eingegeben wird, z.B.: |\meter/{\mC}| f"ur {\music \char\hex53}.
+
+Die Musikfonts k"onnen "uber folgende Kontrollsequenzen angesprochen
+werden:
+\begindisplay
+|\music| && Musikzeichen \cr
+|\beamfont| && Balkenfont \cr
+|\slurfontuu| && Bogenfont (konkav, steigend) \cr
+|\slurfontud| && Bogenfont (konkav, fallend) \cr
+|\slurfontdu| && Bogenfont (konvex, steigend) \cr
+|\slurfontdd| && Bogenfont (konvex, fallend) \cr
+zus"atzlich noch: \cr
+|\eightrm| && Acht-Punkt Roman Font f"ur die Textunterlage \cr
+\enddisplay
+Die Namen f"ur die \tex{character} im Font |\music| sind:
+\begindisplay
+Notenk"opfe:\cr
+|\quart| (|\hex21|) && ausgef"ullter Notenkopf\cr
+|\half| (|\hex22|) && unausgef"ullter Notenkopf\cr
+|\whole| (|\hex23|) && ganze Note \cr
+F"ahnchen:\cr
+|\eighthup| (|\hex28|) && Achtel aufw"arts \cr
+|\eighthdown| (|\hex2D|) && Achtel abw"arts \cr
+|\sixteenthup| (|\hex29|) && Sechzehntel aufw"arts \cr
+|\sixteenthdown| (|\hex2E|) && Sechzehntel abw"arts \cr
+|\thirtytwoup| (|\hex2A|) && Zweiunddrei\3igstel aufw"arts \cr
+|\thirtytwodown| (|\hex2F|) && Zweiunddrei\3igstel abw"arts\cr
+|\sixtyfourup| (|\hex2B|) && Vierundsechzigstel aufw"arts \cr
+|\sixtyfourdown| (|\hex30|) && Vierundsechzigstel abw"arts\cr
+|\hundredtwentyeightup| (|\hex2C|)&& Hunderteinundzwanzigstel aufw"arts\cr
+|\hundredtwentyeightdown| (|\hex31|)&& Hunderteinundzwanzigstel abw"arts\cr
+Pausen: \cr
+|\wholerest| (|\hex3C|) && Ganze \cr
+|\halfrest| (|\hex3D|) && Halbe \cr
+|\quartrest| (|\hex3E|) && Viertel \cr
+|\eighthrest| (|\hex3F|) && Achtel \cr
+|\sixteenthrest| (|\hex40|) && Sechzehntel \cr
+Taktpausen: \cr
+|\doublerest| (|\hex3A|) && zwei Takte \cr
+|\ddoublerest| (|\hex3B|) && vier Takte \cr
+Fermaten: \cr
+|\fermateup| (|\hex50|) && Fermate oberhalb \cr
+|\fermatedown| (|\hex51|) && Fermate unterhalb \cr
+Versetzungszeichen: \cr
+|\mflat| (|\hex32|) && b \cr
+|\mdoubleflat| (|\hex33|) && Doppel-b \cr
+|\mquartflat| (|\hex37|) && Viertelton-b \cr
+|\mthreequartflat| (|\hex3A|) && Dreiviertelton-b \cr
+|\msharp| (|\hex34|) && Kreuz \cr
+|\mdoublesharp| (|\hex35|) && Doppel-Kreuz \cr
+|\mnatural| (|\hex36|) && Aufl"osungszeichen \cr
+Notenschl"ussel: \cr
+|\mviolin| (|\hex47|) && Violinschl"ussel \cr
+%|\mviolinoct| (|\hex47|) && \cr
+%|\mviolinOct| (|\hex47|) && \cr
+|\mbass| (|\hex49|) && Ba\3schl"ussel \cr
+%|\mbassoct| (|\hex49|) && \cr
+%|\mbassOct| (|\hex49|) && \cr
+|\mbariton| (|\hex4D|) && Baritonschl"ussel \cr
+|\mtenor| (|\hex4C|) && Tenorschl"ussel \cr
+|\malt| (|\hex4B|) && Altschl"ussel \cr
+|\mmezzosopran| (|\hex4E|) && Mezzosopranschl"ussel \cr
+|\msopran| (|\hex4E|) && Sopranschl"ussel \cr
+Taktangaben: \cr
+|\mC| (|\hex53|) \cr
+|\allabreve| (|\hex52|)\cr
+|\mCreverse| (|\hex54|)\cr
+\enddisplay
+"Anderbare Parameter sind:
+\begindisplay
+|\textline| && Abstand der Schriftlinie von der untersten Notenlinie\cr
+|\minsl| && minimale Notenhalsl"ange (bei Verbalkung) \cr
+|\overtext| && Schriftlinie oberhalb des Liniensystems \cr
+|\undertext| && Schriftline unterhalb des Liniensystems \cr
+\enddisplay
+Ausschlu\3parameter nach den Noten:
+\begindisplay
+|\NOTEskip| && Glue nach ganzer Note \cr
+|\Noteskip| && Glue nach halber Note \cr
+|\noteskip| && Glue nach 1/4 Note \cr
+|\notEskip| && Glue nach 1/8 Note \cr
+|\noTEskip| && Glue nach 1/16 Note \cr
+|\nOTEskip| && Glue nach 1/32 Note \cr
+|\nOteskip| && Glue nach 1/64 Note \cr
+|\nOtEskip| && Glue nach 1/128 Note \cr
+|\ruleskip| && Glue nach Rules \cr
+|\hunkskip| && Glue vor Noten und Rules \cr
+\enddisplay
+Nachfolgend sind die z.Zt. verf"ugbaren Ausschlu\3schemata angef"uhrt:
+\begindisplay
+|\ruleskip = \nhw plus \seminhw minus \seminhw| \cr
+\cr
+|\def\hsmall{%hader| \cr
+|\Noteskip 3\nhw plus 2\seminhw minus 2\seminhw| \cr
+|\NOTEskip = \Noteskip| \cr
+|\noteskip 2\nhw plus 1.5\seminhw minus 1.5\seminhw| \cr
+|\notEskip 1\nhw plus \seminhw minus \seminhw| \cr
+|\noTEskip \z@ plus 0.5\seminhw minus \z@| \cr
+|\nOTEskip=\noTEskip \nOteskip=\noTEskip \nOtEskip=\noTEskip| \cr
+|\hunkskip \z@\relax}| \cr
+\cr
+|\def\small{%| \cr
+|\Noteskip 3.5\nhw plus 1.8\seminhw minus 1.8\seminhw| \cr
+|\NOTEskip = \Noteskip| \cr
+|\noteskip 2.5\nhw plus 1.4\seminhw minus 1.4\seminhw| \cr
+|\notEskip 1.5\nhw plus \seminhw minus \seminhw| \cr
+|\noTEskip \seminhw plus 0.6\seminhw minus 0.6\seminhw| \cr
+|\nOTEskip=\noTEskip \nOteskip=\noTEskip \nOtEskip=\noTEskip| \cr
+|\hunkskip \z@ \relax}| \cr
+\cr
+|\def\universal{%| \cr
+|\Noteskip 4\nhw plus 1.6\nhw minus 1.6\nhw| \cr
+|\NOTEskip = \Noteskip| \cr
+|\noteskip 3\nhw plus 1.3\nhw minus 1.3\nhw| \cr
+|\notEskip 2\nhw plus \nhw minus \nhw| \cr
+|\noTEskip \nhw plus 0.6\nhw minus 0.6\nhw| \cr
+|\nOTEskip=\noTEskip \nOteskip=\noTEskip \nOtEskip=\noTEskip| \cr
+|\hunkskip \z@ \relax}| \cr
+\cr
+|\def\wide{%| \cr
+|\Noteskip 4\nhw plus 1.42\nhw minus 1.42\nhw| \cr
+|\NOTEskip = \Noteskip| \cr
+|\noteskip 3.5\nhw plus 1.28\nhw minus 1.28\nhw| \cr
+|\notEskip 2.5\nhw plus \nhw minus \nhw| \cr
+|\noTEskip 1.5\nhw plus 0.9\nhw minus 0.9\nhw| \cr
+|\nOTEskip=\noTEskip \nOteskip=\noTEskip \nOtEskip=\noTEskip| \cr
+|\hunkskip \z@ \relax}| \cr
+\cr
+|\def\loose{%| \cr
+|\Noteskip 5\nhw plus 1.5\nhw minus 1.5\nhw| \cr
+|\NOTEskip = \Noteskip| \cr
+|\noteskip 4\nhw plus 1.25\nhw minus 1.25\nhw| \cr
+|\notEskip 3\nhw plus \nhw minus \nhw| \cr
+|\noTEskip 2\nhw plus 0.75\nhw minus 0.75\nhw| \cr
+|\nOTEskip=\noTEskip \nOteskip=\noTEskip \nOtEskip=\noTEskip| \cr
+|\hunkskip \z@\relax}| \cr
+\enddisplay
+Baselineskip-Macros:
+\begindisplay
+|\baselinesa| && f"ur Einzeilige Notenbespiele \cr
+|\baselinesb| && f"ur Musikst"ucke \cr
+\enddisplay
+Default ist: |\let\baselines = \baselinesb|
+
+\bigskip
+\goodbreak
+Makros f"ur die Noteneingabe:
+
+Zun"achst die Noten und Pausen und Versetzungszeichen:
+\begindisplay
+Notennamen:\cr
+|\g{|\<interne Tonh"ohe>|}| && ganze Note \cr
+|\h{|\<interne Tonh"ohe>|}| && halbe Note \cr
+|\v{|\<interne Tonh"ohe>|}| && viertel Note \cr
+|\a{|\<interne Tonh"ohe>|}| && achtel Note \cr
+|\s{|\<interne Tonh"ohe>|}| && sechzehntel Note \cr
+|\z{|\<interne Tonh"ohe>|}| && zweiunddrei\3igstel Note \cr
+|\d{|\<interne Tonh"ohe>|}| && vierundsechzigstel Note \cr
+|\o{|\<interne Tonh"ohe>|}| && hundertachtundzwanzigstel Note \cr
+Versetzungszeichen:\cr
+|\x{|\<interne Tonh"ohe>|}| && Kreuz \cr
+|\xx{|\<interne Tonh"ohe>|}| && Doppelkreuz \cr
+|\n{|\<interne Tonh"ohe>|}| && Aufl"osungszeichen \cr
+|\b{|\<interne Tonh"ohe>|}| && Be \cr
+|\bb{|\<interne Tonh"ohe>|}| && Doppel-Be \cr
+Versetzungszeichen in der Vorzeichnung:\cr
+|\b@{|\<interne Tonh"ohe>|}| && Be \cr
+|\x@{|\<interne Tonh"ohe>|}| && Kreuz \cr
+|\n@{|\<interne Tonh"ohe>|}| && Aufl"osungszeichen \cr
+\enddisplay
+Pausen erhalten als interne Tonh"ohe |\pitch=5|
+zum Setzen der Wertpunkte im 3. Zwischenraum:
+\begindisplay
+|\pg| && ganze Pause \cr
+|\dpd| && Zwei Pausentakte \cr
+|\dpg| && drei Pausentakte \cr
+|\dpdd| && vier Pausentakte \cr
+|\ph| && halbe Pause \cr
+|\pv| && viertel Pause \cr
+|\pa| && achtel Pause \cr
+|\ps| && sechzehntel Pause \cr
+|\pz| && zweiunddrei\3igstel Pause \cr
+|\pd| && vierundsechzigstel Pause \cr
+|\po| && hundertachtundzwanzigstel Pause \cr
+Wertpunkte: \cr
+|\.{|\<Anzahl der Punkte>|}| \cr
+Taktstriche:\cr
+|\|\vrt && normaler Taktstrich \cr
+|\=| && Schlu\3strich \cr
+|\doublebarline| && doppelter Taktstrich \cr
+|\rightrepeat| && Wiederholungszeichen rechts :\vrt\vrt \cr
+|\leftrepeat| && Wiederholungszeichen links \vrt\vrt: \cr
+|\leftrightrepeat| && doppeltes Wiederholungszeichen :\vrt\vrt: \cr
+Makro f"ur Orientierungszeichen:\cr
+|\boxed{|\<Nummer oder Buchstabe>|}| \cr
+K"asten: \cr
+|\1|\<erstes Mal>|\2|\<Wiederholung>|\*|\cr
+Atemzeichen:\cr
+|\caesura|\cr
+Akzentzeichen:\cr
+|\noaccent| && Akzente l"oschen \cr
+|\stac| && Stakkatozeichen \cr
+|\dec| && kleines $>$ am Notenkopf \cr
+|\staccatissimo| && Stakkatissimozeichen \cr
+|\tr| && Triller {\it tr} \cr
+|\trbrack| && Triller in Klammern ({\it tr}) \cr
+|\tenuto| && Tenutozeichen \cr
+|\plus| && Triller $+$ \cr
+|\cresc{|\<Noten>|}| && Crescendozeichen $<$ "uber Noten\cr
+|\decresc{|\<Noten>|}| && Decrescendozeichen $>$ "uber Noten\cr
+Abk"urzungen f"ur Akzente:\cr
+|\cantusfirmus| && {\it c.f.} \cr
+|\crescendo| && {\it cresc.} \cr
+|\dacapo| && {\it d.c.} \cr
+|\dalsegno| && {\it d.s.} \cr
+|\decrescendo| && {\it decresc.} \cr
+|\diminuendo| && {\it dim.} \cr
+|\fine| && {\it fine} \cr
+|\forte| && {\it f} \cr
+|\fortissimo| && {\it ff} \cr
+|\fortissimoposs| && {\it fff} \cr
+|\fortepiano| && {\it fp} \cr
+|\forzato| && {\it fz} \cr
+|\mezzoforte| && {\it mf} \cr
+|\mezzopiano| && {\it mp} \cr
+|\piano| && {\it p} \cr
+|\pianissimo| && {\it pp} \cr
+|\pianissimoposs| && {\it ppp} \cr
+|\rallentando| && {\it rall.} \cr
+|\rinforzando| && {\it rfz.} \cr
+|\ritardando| && {\it rit.} \cr
+|\ritenuto| && {\it riten.} \cr
+|\sforzato| && {\it sfz} \cr
+|\sforz| && {\it sf} \cr
+|\staccato| && {\it stacc.} \cr
+|\tacet| && {\it tacet} \cr
+|\unisono| && {\it unis.} \cr
+\enddisplay
+\goodbreak
+Balkengruppen und Bogen werden wie folgt eingegeben:
+
+Zun"achst mu\3 die Notengruppe eingegeben werden. Und zwar mit
+\begindisplay
+|\group{|\<Elementliste>|}{|\<Tonh"ohenliste>|}|\cr
+\enddisplay
+Dabei mu\3 die Elementliste so aussehen:\begindisplay
+|\\{|\<Note1>|}|$\ldots$|\\{|\<NoteN>|}|
+\enddisplay
+Die Tonh"ohenliste sieht genauso aus. Nur muss anstatt der Note die dem
+$i$-ten Element der Notenliste zugeh"orige interne Tonh"ohe eingetragen
+sein.
+Anschlie\3end kann die Verbalkung und die Angabe der Bogen geschehen:
+\begindisplay
+|\ubeam{|\<Balkenanfangsnr.>|}{|\<Balkenendenr.>|}| && Balken an
+aufw"arts gestielten Noten \cr
+|\lbeam{|\<Balkenanfangsnr.>|}{|\<Balkenendenr.>|}| && Balken an
+abw"arts gestielten Noten \cr
+|\ubeam{|\<Bogenanfangsnr.>|}{|\<Bogenendenr.>|}| && Bogen oberhalb der
+Notengruppe \cr
+|\lbeam{|\<Bogenanfangsnr.>|}{|\<Bogenendenr.>|}| && Bogen unterhalb der
+Notengruppe \cr
+\enddisplay
+Diese Makros k"onnen beliebig oft aufgerufen werden. Es mu\3 jedoch mit
+dem Makro |\go| abgeschlossen werden.
+Die Balken werden nach der jeweils aktuellen |\beamlist| gesetzt. Diese
+enth"alt Informationen "uber die zu setzenden Balken einer
+Teilnotengruppe.
+Der Aufbau der |\beamlist| ist etwas komlizierter, aber
+in der Diplomarbeit genau beschrieben.
+Default ist
+\begindisplay
+ |\def\beamlist{\\{\the\n@a-\the\n@e,}}|
+\enddisplay
+wobei |\n@a| das erste Element der Balkengruppe ist, und |\n@e| das
+letzte. Ein Element der |\beamlist| beschreibt eine Balkenreihe, das
+hei\3t, wird der Default verwendet k"onnen nur Achtel-Balken gesetzt
+werden.
+
+Als weiteres ist noch zu erw"ahnen der zweistimmige Notensatz und die
+Textunterlage.
+Mit |\two{|\<obere Note(n)>|}{|\<untere Noten(n)>|}| k"onnen Noten
+"ubereinander notiert werden.
+Text"uberlage bzw. Textunterlage erh"alt man mit:
+\begindisplay
+|\^|$\lbrack$\<Positionierungskennzeichen>$\rbrack$%
+|{|\<Text>|}{|\<Note>|}|\cr
+|\_|$\lbrack$\<Positionierungskennzeichen>$\rbrack$%
+|{|\<Text>|}{|\<Note>|}|
+\enddisplay
+Als Positionierungskennzeichen kann |n| (Textbreite wird nicht
+ber"ucksichtigt), |c| (Text wird "uber der Note zentriert), |l| (Text
+wird linksb"undig "uber der Note unter Ber"ucksichtigung der Breite
+positioniert) oder |r| (Text wird rechtsb"undig "uber der Note
+positioniert) angegeben werden.
+Im Falle der Textunterlage gibt es ein weiteres
+Positionierungskennzeichen: |v|. In diesem Fall wird der Text variabel
+direkt
+unter der Noten und nicht auf der Schriftlinie positioniert.
+Wird kein Positionierungskennzeichen angegeben, so wird das Zeichen
+automatisch positioniert.
+
+Bei der Eingabe von Akkorden mu\3 zun"achst entschieden werden, ob
+der Notenhals nach oben oder nach unten zeigen soll, d.h. rechts oder
+links der Notenk"opfe erscheinen soll.
+Die Eingabe erfolgt mit:
+\begindisplay
+|\rchord|\<Noten>|\endchord|\cr
+|\lchord|\<Noten>|\endchord|
+\enddisplay
+Die Noten sollten in der Reihenfolge von oben nach unten eingegeben
+werden.
+\bigskip
+Allgemeine abschlie\3ende Bemerkungen:\hfill \break
+\hang Bei der Eingabe des Musikst"uckes ist zu beachten, da\3 keine
+unn"otigen Leerzeichen eingegeben werden (Regeln f"ur Kontrollsequenzen
+beachten!). Daher sollte jede Eingabezeile mit einem Kommentarzeichen
+(\%) enden.
+
+\end