diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/mtex/macros |
Initial commit
Diffstat (limited to 'macros/mtex/macros')
-rw-r--r-- | macros/mtex/macros/mtex.tex | 1976 | ||||
-rw-r--r-- | macros/mtex/macros/mtexdemo.tex | 299 | ||||
-rw-r--r-- | macros/mtex/macros/mtexinfo.tex | 468 |
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 |