2 %% include file for LilyPond
4 %% this file defines various macros to accomodate lilypond output
6 \def\mdef#1#2{\def#1{\mchar{#2}}}
7 \def\mchar#1{\musicfnt\char#1}
8 \def\rationalmultiply#1*#2/#3{\multiply #1 by #2 \divide #1 by #3}
9 \def\maccentraise#1#2{\dimen0=\noteheight
10 \rationalmultiply\dimen0*#2%
11 \raise\dimen0\hbox{#1}}
12 \def\maccentdef#1#2#3{\def#1{\maccentraise{\mchar{#2}}{#3}}}
13 \def\vcenter#1{\vbox to 0pt{\vss #1\vss}}
15 \def\mathdef#1#2{\def#1{\mathchar{#2}}}
16 % \def\mathchar#1{\mathfnt\char#1}
18 \def\mathaccentraise#1#2{\dimen0=\noteheight
19 \rationalmultiply\dimen0*#2%
20 \raise\dimen0\hbox{#1}}
21 \def\mathaccentdef#1#2#3{\def#1{\mathaccentraise{\mathchar{#2}}{#3}}}
23 \def\topalign#1{\vbox to 0pt{#1\vss}}
24 \def\botalign#1{\vbox to 0pt{\vss #1}}
26 \def\centeralign#1{\hbox to 0pt{\hss#1\hss}}
27 \def\leftalign#1{\hbox to 0pt{#1\hss}}
28 \def\rightalign#1{\hbox to 0pt{\hss#1}}
34 \newdimen\interlinedist
39 \newdimen\notewidthhalf
40 \newdimen\notewidthdouble
41 \newdimen\staffrulethickness
42 \newdimen\interstaffrule
46 \font\meterfont=cmbx12
47 \font\slurufont=xslu20
48 \font\slurdfont=xsld20
49 \font\slurhfont=xslz20
50 \font\hslurufont=xslhu20
51 \font\hslurdfont=xslhd20
52 \font\hslurhfont=xslhz20
53 \font\musicfnt=musix20
54 \font\musicdraw=musixsps
55 \font\italicfont=cmti10
56 \font\dynfont=cmbxti10 scaled \magstep1
60 \staffrulethickness=0.4pt
65 \def\musixsixteendefs{
67 \font\meterfont=cmbx12
68 \font\italicfont=cmti8
69 \font\slurufont=xslu16
70 \font\slurdfont=xsld16
71 \font\slurhfont=xslz20 % sigh
72 \font\hslurufont=xslhu16
73 \font\hslurdfont=xslhd16
74 \font\hslurhfont=xslhz20
75 \font\musicfnt=musix16
76 \font\dynfont=cmbxti12
77 \font\musicdraw=musixsps
79 \staffrulethickness=0.4pt
86 \interlinedist=\fontdimen5\musicfnt
87 \smallspace=.3\interlinedist
88 \interstaffrule=\balkhoog
89 \advance\interstaffrule by-\staffrulethickness
90 \divide\interstaffrule by 4
91 \advance\interstaffrule by -\staffrulethickness
92 \notewidthhalf=\notewidth
93 \notewidthdouble=\notewidth
94 \rationalmultiply \notewidthhalf*1/2
95 \multiply \notewidthdouble by 2
97 \rationalmultiply\balkhalf*1/2
99 % \def\dyn{\italicfont}
101 \def\kdynf{\dynfont f\kern-.1ex}
102 \def\kdynm{\dynfont f\kern-.15ex}
103 \def\kdynp{\dynfont p\kern-.15ex}
105 \def\dynppp{\dynfont\dynp\kdynp p}
107 \def\dynpp{\dynfont p\kdynp}
108 \def\dynp{\dynfont p}
109 \def\dynmp{\dynfont m\kdynp}
110 \def\dynmf{\dynfont m\kdynf}
111 \def\dynf{\dynfont f}
112 \def\dynff{\dynfont f\kdynf}
113 \def\dynfff{\dynfont f\kdynf \kdynf}
115 \def\slurcharh#1{{\slurhfont\char#1}}
116 \def\slurcharu#1{{\slurufont\char#1}}
117 \def\slurchard#1{{\slurdfont\char#1}}
118 \def\hslurcharh#1{{\hslurhfont\char#1}}
119 \def\hslurcharu#1{{\hslurufont\char#1}}
120 \def\hslurchard#1{{\hslurdfont\char#1}}
122 \mdef\quartball{'007}
124 \mdef\wholeball{'011}
126 \mdef\wholerest{'075}
129 \mdef\sixteenthrest{64}
130 \mdef\thirtysecondrest{65}
140 \mdef\mussepline{155}
145 \mdef\cviolinclef{72}
150 \mdef\dsixteenthflag{46}
151 \mdef\dthirtysecondflag{47}
155 \mdef\usixteenthflag{41}
156 \mdef\uthirtysecondflag{42}
158 \maccentdef\repeatcolon{55}{2/1}
161 \def\thinbar{\vrule height\balkhoog}
162 %? what-s wrong with rightalign?
163 \def\thickbar{\vrule height\balkhoog width 2\smallspace}
164 \def\maatstreep{\thinbar}
165 % \def\finishbar{\rightalign{\thinbar\kern\smallspace\thickbar}}
166 \def\finishbar{\hss\rightalign{\thinbar\kern\smallspace\thickbar}}
167 % \def\repeatstopbar{\rightalign{\repeatcolon\hskip2\smallspace\thinbar\hskip\smallspace\thickbar}}
168 \def\repeatstopbar{\hss\rightalign{\repeatcolon\hskip2\smallspace\thinbar\hskip\smallspace\thickbar}}
169 % \def\repeatstopbar{\kern-3\smallspace\rightalign{\repeatcolon\kern2\smallspace\thinbar\kern\smallspace\thickbar}\kern3\smallspace}
170 \def\repeatstartbar{\hbox{\thickbar\kern\smallspace\thinbar\kern2\smallspace\repeatcolon}}
171 \def\repeatstopstart{\hbox{\repeatcolon\kern2\smallspace\thinbar\kern\smallspace\thickbar\kern\smallspace\thickbar\kern\smallspace\thinbar\kern2\smallspace\repeatcolon}}
172 \def\doublebar{\hbox{\thinbar\hskip\smallspace\thinbar}}
175 \def\repeatbar{\repeatstopbar}
176 \def\startrepeat{\repeatstartbar}
177 \def\repeatbarstartrepeat{\repeatstopstart}
179 \def\generalmeter#1#2{\botalign{\vbox to\balkhalf{\vss \meterfont#1}%
181 \vbox to \balkhalf{\vss\meterfont #2}}}
182 \def\defaultlineseparator{\vbox{\mussepline\vskip -5pt\mussepline}}
183 \def\lineseparator{\defaultlineseparator}
185 \par\vskip 10pt plus 30pt minus 10pt\par
186 \hskip -5pt\lineseparator
187 \par\vskip 10pt plus 30pt minus 10pt\par
190 \def\interstaffline{%
193 \def\ugly{\nointerlineskip\par
194 \vskip 40pt\par\vbox{\leftalign{\vrule width30pt height1pt}}\par\vskip 40pt
196 \def\interscoreline{\beauty}
200 \vbox{\kern-\interstaffrule
201 \n=0\nointerlineskip%
202 \loop\ifnum\n<#1\advance\n by1%
204 \hrule height \staffrulethickness width#2
208 \def\toplines#1{ % why space needed here?
209 \topalign{\hbox{\kern-\notewidth\lines{#1}{\notewidthdouble}}}}
210 \def\botlines#1{ % idem ditto
211 \botalign{\hbox{\kern-\notewidth\lines{#1}{\notewidthdouble}}}}
214 % a staffsymbol with #1 lines, width #2
216 \def\linestafsym#1#2{\leftalign{\botalign{\lines{#1}{#2}}}}
218 \def\eigthflag{\topalign{\ueigthflag}}
219 \def\sixteenthflag{\topalign{\usixteenthflag}}
220 \def\thirtysecondflag{\topalign{\uthirtysecondflag}}
222 \def\cquartrest{\vcenter\quartrest}
223 \def\ceighthrest{\vcenter\eighthrest}
224 \def\csixteenthrest{\vcenter\sixteenthrest}
225 \def\cthirtysecondrest{\vcenter\thirtysecondrest}
227 \def\lsingledot{\kern-\notewidth\singledot}
228 \def\ldoubledot{\kern-\notewidth\doubledot}
229 \def\ltripledot{\kern-\notewidth\tripledot}
231 \maccentdef\sforzato{30}{-3/2}
232 \maccentdef\marcato{20}{-1/1}
233 \maccentdef\imarcato{21}{1/1}
234 \maccentdef\staccato{24}{-1/1}
235 \maccentdef\istaccato{25}{1/1}
236 \maccentdef\staccatissimo{28}{-1/1}
237 \maccentdef\istaccatissimo{29}{1/1}
238 \maccentdef\portato{18}{-9/10}
239 \maccentdef\iportato{19}{9/10}
240 \maccentdef\tenuto{26}{0/1}
241 \maccentdef\itenuto{27}{0/1}
242 \maccentdef\fermata{80}{-1/1}
243 \maccentdef\ifermata{81}{1/1}
251 % \mathdef\heel\cup % "225B
252 % \mathdef\toe\wedge % "225E
253 \mathaccentdef\heel\cup{-1/1}
254 \mathaccentdef\toe\wedge{-1/1}
256 \def\stem#1#2{\vrule height#2 depth-#1}
258 \def\placebox#1#2#3{%
259 \botalign{\hbox{\raise #1\leftalign{\kern #2{}#3}}}%
263 \def\beamslope#1#2{{\count0=#2\advance\count0 by#1\musicfnt\char\count0}}
264 \def\rulesym#1#2{\vrule height #1 width #2}
265 \def\crescendosym#1{\count0=84\advance\count0 by #1\musicdraw\char\count0}
266 \def\decrescendosym#1{\count0=116\advance\count0 by #1\musicdraw\char\count0}
267 \def\settext#1{\textfont #1}
268 \def\setitalic#1{\italicfont #1}
269 \def\setdynamic#1{\dynfont #1}