]> git.donarmstrong.com Git - lilypond.git/blob - tex/lilyponddefs.tex
2851557010b9e6ae7f1acc6723425fa2428340e1
[lilypond.git] / tex / lilyponddefs.tex
1 %%
2 %% include file for LilyPond
3 %%
4 %% this file defines various macros to accomodate lilypond output
5
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}}
14
15 \def\mathdef#1#2{\def#1{\mathchar{#2}}}
16 \def\mathchar#1{\mathfont\char#1}
17
18 \def\topalign#1{\vbox to 0pt{#1\vss}}
19 \def\botalign#1{\vbox to 0pt{\vss #1}}
20
21 \def\centeralign#1{\hbox to 0pt{\hss#1\hss}}
22 \def\leftalign#1{\hbox to 0pt{#1\hss}}
23 \def\rightalign#1{\hbox to 0pt{\hss#1}}
24
25
26 %% musix defs
27 \parindent=0pt
28 \newdimen\smallspace
29 \newdimen\interlinedist
30         \newcount\n
31         \newdimen\balkhoog
32         \newdimen\notewidth
33         \newdimen\noteheight
34         \newdimen\notewidthhalf
35         \newdimen\notewidthdouble
36         \newdimen\staffrulethickness
37         \newdimen\interstaffrule
38 \newdimen\balkhalf
39 \def\musixtwentydefs{
40         \font\textfont=cmr10
41         \font\meterfont=cmbx12
42         \font\slurufont=xslu20
43         \font\slurdfont=xsld20
44         \font\slurhfont=xslz20
45         \font\hslurufont=xslhu20
46         \font\hslurdfont=xslhd20
47         \font\hslurhfont=xslhz20
48         \font\musicfnt=musix20
49         \font\musicdraw=musixsps
50         \font\italicfont=cmti10
51         \font\dynfont=cmbxti10 scaled \magstep1
52         \font\mathfont=cmsy10
53         \balkhoog=20pt
54         \notewidth=6pt
55         \noteheight=5pt
56         \staffrulethickness=0.4pt
57         \musixcalc
58 }
59
60
61 \def\musixsixteendefs{
62         \font\textfont=cmr8
63         \font\meterfont=cmbx12
64         \font\italicfont=cmti8
65         \font\slurufont=xslu16
66         \font\slurdfont=xsld16
67         \font\slurhfont=xslz20 % sigh
68         \font\hslurufont=xslhu16
69         \font\hslurdfont=xslhd16
70         \font\hslurhfont=xslhz20
71         \font\musicfnt=musix16
72         \font\dynfont=cmbxti12
73         \font\musicdraw=musixsps
74         \font\mathfont=cmsy8
75         \balkhoog=16pt
76         \staffrulethickness=0.4pt
77         \notewidth=5pt
78         \noteheight=4pt
79         \musixcalc
80 }
81
82 \def\musixcalc{
83         \interlinedist=\fontdimen5\musicfnt
84         \smallspace=.3\interlinedist
85         \interstaffrule=\balkhoog
86         \advance\interstaffrule by-\staffrulethickness
87         \divide\interstaffrule by 4
88         \advance\interstaffrule by -\staffrulethickness
89         \notewidthhalf=\notewidth
90         \notewidthdouble=\notewidth
91         \rationalmultiply \notewidthhalf*1/2
92         \multiply \notewidthdouble by 2
93                \balkhalf=\balkhoog
94  \rationalmultiply\balkhalf*1/2 
95 }
96 % \def\dyn{\italicfont}
97 \def\dyn{\dynfont}
98 \def\kdynf{\dynfont f\kern-.1ex}
99 \def\kdynm{\dynfont m\kern-.15ex}
100 \def\kdynp{\dynfont p\kern-.15ex}
101
102 \def\dynppp{\dynfont\dynp\kdynp p}
103
104 \def\dynpp{\dynfont p\kdynp}
105 \def\dynp{\dynfont p}
106 \def\dynmp{\dynfont m\kdynp}
107 \def\dynmf{\dynfont m\kdynf}
108 \def\dynf{\dynfont f}
109 \def\dynff{\dynfont f\kdynf}
110 \def\dynfff{\dynfont f\kdynf \kdynf}
111
112 \def\slurcharh#1{{\slurhfont\char#1}}
113 \def\slurcharu#1{{\slurufont\char#1}}
114 \def\slurchard#1{{\slurdfont\char#1}}
115 \def\hslurcharh#1{{\hslurhfont\char#1}}
116 \def\hslurcharu#1{{\hslurufont\char#1}}
117 \def\hslurchard#1{{\hslurdfont\char#1}}
118
119 \mdef\quartball{'007}
120 \mdef\halfball{'010}
121 \mdef\wholeball{'011}
122 \mdef\halfrest{'074}
123 \mdef\wholerest{'075}
124 \mdef\quartrest{62}
125 \mdef\eighthrest{63}
126 \mdef\sixteenthrest{64}
127 \mdef\thirtysecondrest{65}
128 \mdef\sharp{52}
129 \mdef\flat{50}
130 \mdef\natural{54}
131 \mdef\sharpsharp{53}
132 \mdef\flatflat{51}
133
134 \mdef\singledot{'00}
135 \mdef\doubledot{'01}
136 \mdef\tripledot{'02}
137 \mdef\mussepline{155}
138
139 \mdef\violinclef{71}
140 \mdef\bassclef{73}
141 \mdef\altoclef{75}
142 \mdef\cviolinclef{72}
143 \mdef\cbassclef{74}
144 \mdef\caltoclef{76}
145
146 \mdef\deigthflag{45}
147 \mdef\dsixteenthflag{46}
148 \mdef\dthirtysecondflag{47}
149
150 % pointing up
151 \mdef\ueigthflag{40}
152 \mdef\usixteenthflag{41}
153 \mdef\uthirtysecondflag{42}
154
155 \maccentdef\repeatcolon{55}{2/1}
156 \def\emptybar{}
157
158 \def\thinbar{\vrule height\balkhoog}
159 \def\thickbar{\vrule height\balkhoog width 2\smallspace}
160 \def\maatstreep{\thinbar}
161 %? what-s wrong with rightalign?
162 \def\finishbar{\rightalign{\thinbar\kern\smallspace\thickbar}}
163 %%% \def\finishbar{\hss\rightalign{\thinbar\kern\smallspace\thickbar}}
164 % \def\repeatstopbar{\rightalign{\repeatcolon\hskip2\smallspace\thinbar\hskip\smallspace\thickbar}}
165 \def\repeatstopbar{\hss\rightalign{\repeatcolon\hskip2\smallspace\thinbar\hskip\smallspace\thickbar}}
166 \def\repeatstartbar{\hbox{\thickbar\kern\smallspace\thinbar\kern2\smallspace\repeatcolon}}
167 \def\repeatstopstart{\hbox{\repeatcolon\kern2\smallspace\thinbar\kern\smallspace\thickbar\kern\smallspace\thickbar\kern\smallspace\thinbar\kern2\smallspace\repeatcolon}}
168 \def\doublebar{\hbox{\thinbar\hskip\smallspace\thinbar}}
169
170 %compatability
171 \def\repeatbar{\repeatstopbar}
172 \def\startrepeat{\repeatstartbar}
173 \def\repeatbarstartrepeat{\repeatstopstart}
174
175 \def\generalmeter#1#2{\botalign{\vbox to\balkhalf{\vss \meterfont#1}%
176         \nointerlineskip
177         \vbox to \balkhalf{\vss\meterfont #2}}}
178 \def\defaultlineseparator{\vbox{\mussepline\vskip -5pt\mussepline}}
179 \def\lineseparator{\defaultlineseparator}
180 \def\beauty{%
181         \par\vskip 10pt plus 30pt minus 10pt\par
182         \hskip -5pt\lineseparator
183         \par\vskip 10pt plus 30pt minus 10pt\par
184 }
185
186 \def\interstaffline{%
187         \vskip 10pt
188 }
189 \def\ugly{\nointerlineskip\par
190 \vskip 40pt\par\vbox{\leftalign{\vrule width30pt height1pt}}\par\vskip 40pt
191 }
192 \def\interscoreline{\beauty}
193
194
195 \def\lines#1#2{%
196  \vbox{\kern-\interstaffrule
197         \n=0\nointerlineskip%
198         \loop\ifnum\n<#1\advance\n by1%
199                 \kern\interstaffrule
200                 \hrule height \staffrulethickness width#2
201                 \repeat
202         }}
203
204 \def\toplines#1{ % why space needed here?
205         \topalign{\hbox{\kern-\notewidth\lines{#1}{\notewidthdouble}}}}
206 \def\botlines#1{ % idem ditto
207         \botalign{\hbox{\kern-\notewidth\lines{#1}{\notewidthdouble}}}}
208
209 %
210 % a staffsymbol with #1 lines, width #2
211 % bottom at baseline
212 \def\linestafsym#1#2{\leftalign{\botalign{\lines{#1}{#2}}}}
213
214 \def\eigthflag{\topalign{\ueigthflag}}
215 \def\sixteenthflag{\topalign{\usixteenthflag}}
216 \def\thirtysecondflag{\topalign{\uthirtysecondflag}}
217
218 \def\cquartrest{\vcenter\quartrest}
219 \def\ceighthrest{\vcenter\eighthrest}
220 \def\csixteenthrest{\vcenter\sixteenthrest}
221 \def\cthirtysecondrest{\vcenter\thirtysecondrest}
222
223 \def\lsingledot{\kern-\notewidth\singledot}
224 \def\ldoubledot{\kern-\notewidth\doubledot}
225 \def\ltripledot{\kern-\notewidth\tripledot}
226
227 \maccentdef\sforzato{30}{-3/2}
228 \maccentdef\marcato{20}{-1/1}
229 \maccentdef\imarcato{21}{1/1}
230 \maccentdef\staccato{24}{-1/1}
231 \maccentdef\istaccato{25}{1/1}
232 \maccentdef\staccatissimo{28}{-1/1}
233 \maccentdef\istaccatissimo{29}{1/1}
234 \maccentdef\portato{18}{-9/10}
235 \maccentdef\iportato{19}{9/10}
236 \maccentdef\tenuto{26}{0/1}
237 \maccentdef\itenuto{27}{0/1}
238 \maccentdef\fermata{80}{-1/1}
239 \maccentdef\ifermata{81}{1/1}
240
241 \mdef\spicato{28}
242 \mdef\ispicato{29}
243 \mdef\upbow{23}
244 \mdef\downbow{22}
245 \mdef\portato{26}
246
247 \mathdef\cup{91} % \cup
248 \mathdef\wedge{94} % \wedge
249 \mathdef\striepke{0} % heu?
250
251 %% custom characters --- this should go: add to (meta!) font
252 \def\myheel{\kern-.5ex\vbox{\cup}\kern-.5ex}
253 \def\mytoe{\kern-.5ex\vbox{\wedge}\kern-.5ex}
254 \def\mystriepke{\kern-1.1ex\vbox{\hbox{\kern-.05em\striepke}}\kern-1.1ex}
255
256 \def\heel{\vbox{\myheel}}
257 \def\toe{\vbox{\mytoe}}
258 \def\backorfront{\mystriepke}
259
260 \def\bheel{\vbox{\myheel\mystriepke}}
261 \def\btoe{\vbox{\mytoe\mystriepke}}
262 \def\fheel{\vbox{\mystriepke\myheel}}
263 \def\ftoe{\vbox{\mystriepke\mytoe}}
264 \def\heeltoe{\vbox{\myheel\mytoe}}
265 \def\toeheel{\vbox{\mytoe\myheel}}
266 %%
267
268 \def\stem#1#2{\vrule height#2 depth-#1}
269
270 \def\placebox#1#2#3{%
271         \botalign{\hbox{\raise #1\leftalign{\kern #2{}#3}}}%
272 }
273
274
275 \def\beamslope#1#2{{\count0=#2\advance\count0 by#1\musicfnt\char\count0}}
276 \def\rulesym#1#2{\vrule height #1 width #2}
277 \def\crescendosym#1{\count0=84\advance\count0 by #1\musicdraw\char\count0}
278 \def\decrescendosym#1{\count0=116\advance\count0 by #1\musicdraw\char\count0}
279 \def\settext#1{\textfont #1}
280 \def\setitalic#1{\italicfont #1}
281 \def\setdynamic#1{\dynfont #1}