]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/tex/reference-manual.yo
release: 1.1.62
[lilypond.git] / Documentation / tex / reference-manual.yo
1 mailto(gnu-music-discuss@gnu.org)
2 COMMENT(-*-text-*-)
3
4 redef(var)(1)(whenlatex(latexcommand({\normalfont\scshape )ARG1+latexcommand(}))\
5     whenhtml(sc(ARG1)))
6
7
8 redef(code)(1)(tt(ARG1))
9
10
11 COMMENT(
12
13   BUGS:
14
15    restStyle=mensural doesn't seem to work (lots of characters not found
16      for rests.fly)
17
18 TODO:
19    thread
20    paper size?
21    paper variables
22    the explanation of how lyrics mode parses words seems ridiculous.  
23       Is there a simple way to explain this, or is the behavior
24       too complicated for a reasonable explanation?
25    accordion symbols
26 )
27
28
29 COMMENT( 
30 This document contains Mudela fragments.  You need at least
31 Yodl-1.30.18 to convert this to tex or html.
32 )
33
34 htmlbodyopt(bgcolor)(white)
35 htmlcommand(<font color=black>)
36
37 latexlayoutcmds(
38 \setlength{\topmargin}{-0.25in}
39 \setlength{\textheight}{9in}
40 \setlength{\textwidth}{5.875in} 
41 \setlength{\oddsidemargin}{0.25in}   
42 \setlength{\evensidemargin}{0.25in}
43 \input mudela-book
44 )
45
46 whentexinfo(notableofcontents())
47
48 article(Mudela 1.0.21 / LilyPond 1.1.49 Reference Manual)
49       (Adrian Mariano, Han-Wen Nienhuys and Jan Nieuwenhuizen)
50       (nop()PIPETHROUGH(date "+%B %d, %Y")()()nop())
51
52 COMMENT(
53
54 * The [ ] look weird
55
56 * paragraphs have too much space.
57
58 )
59
60
61 latexcommand(\def\interexample{})
62 latexcommand(\def\preexample{\par})
63 latexcommand(\def\postexample{\par\medskip})
64 latexcommand(\def\file#1{{code(#1)}})
65 COMMENT(
66 latexcommand(\def\texttt#1{\tt #1})
67 latexcommand(\def\textbf#1{\bf #1})
68 )
69
70 COMMENT(urg, texinfo include breaks)
71 whenhtml(
72 includefile(html-disclaimer.yo-urg)
73 )
74
75 bf(This document is not up to date).  All rendered examples of course
76 are current, but the rest probably isn't.  Adjusting the tutorial was
77 considered more important than writing the reference manual.  We
78 apologize for the inconvenience.  For a complete and up-to-date
79 definition, see file(lily/parser.yy), file(lily/lexer.ll), and the
80 init files.
81
82 This document describes the the GNU LilyPond input format, which is an
83 effective language for defining music.  We call this language (rather
84 arrogantly) The Musical Definition Language or Mudela, for
85 short.footnote(If anybody comes up with a better name, we'd gladly
86   take this. Gourlay already uses Musical Description Language,
87   G-Sharp Score Definition Language.  ISO standard 10743 defines a
88   Standard Music Description Language.  We're not being original here.)
89
90 The first aim of Mudela is to define a piece of music, being complete
91 from both from a musical typesetting, as from a musical performing
92 point of view.
93
94 The Musical Definition Language (Mudela), has a logical structure,
95 making use of identifiers, that allows for flexible input, and
96 definition reuse. See the documentation file file(MANIFESTO), included
97 with the LilyPond sources for reasons and design considerations.
98
99
100 sect(Running LilyPond)
101
102 When invoked with a filename that has no extension, LilyPond will try adding
103 a file(.fly) extension first, and a file(.ly) extension second.  
104 If the filename ends with 
105 file(.fly),  LilyPond processes  the file as music using
106 file(init.fly).  In this case, LilyPond does something
107 like:
108 verb(\score {
109   \notes\relative c {
110     \input "yourfile.fly"
111   }
112   \paper{}
113   \midi{}
114 })
115 If you invoke LilyPond with a file file(foo.)var(ext) that doesn't
116 have the file(.ly) extension then LilyPond will look for a file called
117 file(init.)var(ext) and process this file.  The file
118 file(init.)var(ext) must contain the code(\maininput) keyword or LilyPond
119 will not read the user specified file.
120
121 When LilyPond processes file(filename.ly) it will produce file(filename.tex) as
122 output.  If file(filename.ly) contains a second code(\paper) keyword, then
123 LilyPond will produce file(filename-1.tex) as well.  Subsequent code(\paper)
124 keywords will produces sequentially numbered file names.  Several files can be
125 specified; they will each be processed independently.
126
127 sect(Syntax)
128
129 subsect(Basic Mudela)
130
131 A Mudela file consists of keywords with arguments and identifier
132 assignments separated by spaces, tabs or newlines.  Semicolons are
133 used by some keywords and are inconsistantly required in other
134 circumstances.  A one line comment is introduced by a code(%)
135 character.  Block comments are started by code(%{) and ended by
136 code(%}).  They cannot be nested.
137
138 Mudela supports several types:
139
140 description(
141
142 dit(integer) 
143 Formed from an optional minus sign followed by digits.  Arithmetic
144 operations cannot be done with integers, and integers cannot be mixed
145 with reals.
146
147 dit(real) 
148 Formed from an optional minus sign and a sequence of digits followed
149 by a emph(required) decimal point and an optional exponent such as
150 code(-1.2e3).  Reals can be built up using the usual operations:
151 code(+), code(-), code(*), and code(/), with parentheses for grouping.
152
153 dit(string) 
154 Begins and ends with the code(") character.  To include a code(")
155 character in a string write code(\").  Various other backslash
156 sequences have special interpretations as in the C language.  A string
157 that contains no spaces can be written without the quotes.  See
158 Section ref(modes) for details on unquoted strings; their
159 interpretation varies depending on the situation.  On the right side
160 of identifier assignments and within the code(\header) keyword,
161 strings can be concatenated using the code(+) character.
162
163 dit(dimension) Consists of a real followed by one of the dimension
164 keywords: code(\mm), code(\pt), code(\in), or code(\cm).  Dimensions
165 are converted immediately to a real which gives the dimension in
166 points, so they can be mixed with reals, but the result is no longer
167 of type dimension.  The keywords that require a dimension
168 (code(\shape)).
169
170 dit(pitch) 
171 A pitch is a string which is the name of a pitch.  Example: code(a).
172 The pitch names can be redefined with the code(\notenames) keyword.
173 See Section(notelang) for pitch names in different languages.  Pitches
174 can only be specified inside note mode which is specified with
175 code(\notes).  Therefore, keywords which require pitch arguments must
176 appear inside code(\notes).  
177
178 dit(music) 
179 Music is a compound type: arbitrarily complicated expressions with a
180 hierarchical structure can be formed from simple building blocks.  The
181 simplest expression of type music is a single note.  A note is formed
182 from a pitch and an optional duration and must be specified within
183 code(\notes).  See Section ref(notedesc) for details.  More
184 complicated expressions of type music are formed by surrounding a
185 sequence of expressions of type music with braces code({) and code(})
186 or with angle brackets code(<) and code(>).  Items appearing in braces
187 will be treated as serial. Items in angle brackets will be
188 simultaneous.  So for example code({ c e g }) represents an arpeggio
189 and code(< c e g >) represents a chord.  These items can be nested any
190 way you like.  This simple example shows how three chords can be
191 expressed in two different ways:
192 mudela(fragment,verbatim,center)(
193 \notes{
194   c
195   <a c' e'> <b  d' f'> <c' e' g'>
196   <{a b  c'}{c' d' e'}{e' f' g'}>
197 })
198
199 )
200
201
202
203 subsect(Identifiers)
204
205 Identifiers allow names to be assigned to constants, music, or other
206 Mudela structures.  To assign an identifier you use
207 var(name)=var(value) and to refer to an identifier, you preceed its
208 name with a backslash: code(\)var(name).  It is legal to redefine an
209 identifier in terms of its old value: code(foo = \foo * 2.0).
210 Identifier assignments must appear at the top level in the Mudela
211 file.  Note that semicolons are forbidden after assignments appearing
212 at the top level but they are obligatory after assignments appearing
213 elsewhere.  (Semicolons are also forbidden after code(\property) assignments.)
214
215 An identifier can be created with any string for its name, but you
216 will only be able to refer to identifiers whose names begin with a
217 letter and are entirely alphanumeric.  It is also impossible to refer
218 to an identifier whose name is the same as the name of a keyword.  The
219 following words are keywords:
220 verb(accepts         duration      midi          relative      textscript 
221 alternative     font          mm            remove        time       
222 bar                   musicalpitch  repeat        times      
223 cadenza         header        name          scm           translator 
224 chordmodifiers  in            notenames     scmfile       transpose  
225 chords          include       notes         score         type       
226 clef            key           paper         script        version
227 cm              keysignature  partial       shape      
228 consists        lyrics        penalty       skip       
229 consistsend     maininput     property      spanrequest
230 context         mark          pt            tempo)
231
232 The right hand side of an identifier assignment is parsed completely
233 when the assignment is made.  It therefore must have any context
234 specified in the definition.  For example, you must write
235 code(foo=\notes{a8 b c}) rather than code(foo={a8 b c}).  Even though
236 the context is specified in the definition, you must refer to the
237 identifier inside the correct context:
238 verb(foo = \paper{ linewidth = 6.0\in; }
239 \score{
240   \notes{ ... }
241   \paper{ \foo }
242 })
243 If code(\foo) is used here without the surrounding code(\paper) then
244 an error will result.  Note however that the following is acceptible
245 verb(foo = \notes { ... }
246 \score{ \foo })  
247 It is not necessary to specify code(\notes).
248
249 Identifiers can be set equal to integers, reals, strings, music,
250 durations (specified with code(\duration)), note ornaments (specified
251 with code(\script), dynamics commands, or code(:)), note name tables
252 (specified with code(\notenames), translator definitions, the
253 code(\paper) block, the code(\midi) block or the code(\score) block.
254 When identifiers are used for translators, the code(\paper),
255 code(\midi), and code(\score) blocks, they may only be referred to as
256 the first item in a block.  So code(\paper{\one \two}) is illegal
257 because the identifier code(\two) is not the first thing in the block.
258 Unlike other identifier definitions, translator identifier definitions
259 can only appear within code(\midi) or code(\paper) blocks.  See
260 Section ref(translators) for more information.
261
262
263
264 subsect(Modes)
265 label(modes)
266
267 To simplify different aspects of music definition (entering the notes
268 and manipulating them) Mudela has three different input modes which
269 affect how unquoted strings are interpreted.
270 In each mode, words are identified on the input.  If code("word") is
271 encountered, it is treated as a string.  If code(\word) is
272 encountered it is treated as a keyword or as an identifier.  The
273 behavior of the modes differs in two ways: different modes treat
274 unquoted words different, and different modes have different rules for
275 deciding what is a word.  
276
277 description(
278
279 dit(Normal mode)
280 At the start of parsing, Mudela is in normal mode.
281 In normal mode, a word is an alphabetic character followed by
282 alphanumeric characters.  If code(word) is encountered on the input it
283 is treated as a string. 
284
285 dit(Note mode) Note mode is introduced by the keyword
286 code(\notes).  In Note mode, words can only contain alphabetic
287 characters.  If code(word) is encountered, LilyPond first checks for a
288 notename of code(word).  If no notename is found, then code(word) is
289 treated as a string.  If you mistype a notename, the parser will most
290 likely complain that you should be in code(\lyrics) mode to do lyrics. 
291
292 dit(Chord mode) Chord mode is instroduced by the keyword code(\chords).
293 Very similar to Note mode.  
294 COMMENT(I'm not sure how it differs)
295
296 dit(Lyric mode) Lyrics mode is introduced by the keyword
297 code(\lyrics).  This mode is has rules that make it easy to include
298 punctuation and diacritical marks in words.  A word in Lyrics mode
299 begins with: an alphabetic character, code(_),
300 code(?), code(!), code(:), code('), 
301 the control characters code(^A) through code(^F), code(^Q) through
302 code(^W), code(^Y), code(^^), any 8-bit character with ASCII code over
303 127, or a two character combination of a backslash followed by one
304 of code(`), code('), code(") or code(^).  
305 Subsequent characters of a word can be any character that is not a
306 digit and not white space.  One important consequence of this is that
307 a word can end with code(}), which may be confusing if you thought the
308 code(}) was going to terminate lyrics mode.  Any code(_) characters
309 which appear in an unquoted word are converted to spaces, providing a
310 mechanism for introducing spaces into words without using quotes.  
311 Quoted words can also be used in lyrics mode to specify words that
312 cannot be specified with the above rules.  Here are some examples.
313 Not all of these words are printable by TeX().  
314 verb(a&@&@&TSI|{[    % a word
315 \'afoo}         % a word
316 1THtrhortho     % not a word because it starts with a digit
317 ``Hello''       % not a word because it starts with `
318 Leise DOEXPAND(Fl\)DOEXPAND("u\)ss{}teren meine Sapfe       % 4 words
319 _ _ _ _         % 4 words, each one a space
320 ))
321
322 It is possible to create words that break the rules by prefixing them with the
323 dollar sign code($).  Regardless of the context, a word beginning with code($)
324 extends until the next white space character.  Such words can contain numbers
325 (even in Note mode), or other forbidden characters.  The dollar sign can be
326 used to create and access identifiers that could not otherwise be used.  
327
328 COMMENT(
329 These modes are of a lexical nature. Normal and Note mode largely
330 resemble each other, save the possibility of entering Reals, 
331 meaning of code(_) and the resolution of words
332
333 What's this about reals?  When can you enter them or not enter them?)
334
335
336 sect(Note Description)
337 label(notedesc)
338
339 subsect(Basic Note Specification)
340
341 A note specification has the form 
342 var(pitch)[var(octavespec)][code(!)][code(?)][var(duration)].
343 The pitch of the note is specified by the note's name.  
344
345 LilyPond has predefined note names for various languages.  The default
346 names are the Dutch note names.  The notes are specified by the
347 letters code(c) through code(b), where code(c) is an octave below
348 middle C and the letters span the ocatave above that C.  
349 In Dutch, a sharp is formed by adding
350 code(-is) to the end of a pitch name.  A flat is formed by adding code(-es).
351 Double sharps and double flats are obtained by adding code(-isis) or
352 code(-eses).  
353 Lily has predefined sets of notenames
354 for various nop(languages).  See Section ref(notelang) for details.
355 Rests are specified with the note name code(r) or code(R).  
356 There is also a note name code(s) which produces a nonprinting note of the
357 specified duration.
358
359 The optional octave specification takes the form of a series of single
360 quote 
361 code(') characters or a series of comma code(,) characters.  Each
362 code(') raises the pitch by one octave; each code(,) lowers the pitch
363 by an octave.  
364
365 mudela(fragment,verbatim,center)(
366 c' d' e' f' g' a' b' c''
367 )
368
369 mudela(fragment,verbatim,center)(
370 cis' dis' eis' fis' gis' ais' bis'
371 )
372
373 mudela(fragment,verbatim,center)(
374 ces' des' es' fes' ges' as' bes'
375 )
376
377 mudela(fragment,verbatim,center)(
378 cisis' eisis' gisis' aisis' beses'
379 )
380
381 mudela(fragment,verbatim,center)(
382 ceses' eses' geses' ases' beses'
383 )
384
385 Whenever a C-sharp is desired,  you must specify a C-sharp.  LilyPond
386 will determine what accidentals to  typeset  depending on the  key and
387 context.   
388 A reminder accidental can be forced by
389 using the  optional exclamation mark `code(!)'
390 on the pitch.
391 A cautionary accidental, i.e., an accidental within paranthesis
392 can be obtained using the optional question mark `code(?)' on the pitch.
393 mudela(fragment,verbatim,center)(
394 cis' d' e' cis'  c'? d' e' c'!  
395 )
396
397
398 Durations are entered as their reciprocal values
399 mudela(fragment,verbatim,center)(
400 a'1 a'2 a'4 a a'8 a a'16 a'32 a'64
401 )
402 mudela(fragment,verbatim,center)(
403 r1 r2 r4 r8 r16 r32
404 )
405
406 If the duration is omitted then it is set equal to the previous
407 duration.  If there is no previous duration, then a quarter note is
408 assumed.  
409 The duration can be followed by a dot code(.) to obtain dotted note
410 lengths.  
411 mudela(fragment,verbatim,center)(
412 a'4. b'4.
413 )
414
415 Extra long notes can be obtained using the code(\breve) and
416 code(longa) durations:
417 mudela(fragment,verbatim,center)(
418 c'\breve gis'\longa
419 )
420
421 In order to get triplets and other tuplets, you must use the
422 code(\times) keyword which multiplies the duration by a fraction.  The
423 syntax is code(\times) var(fraction) var(music).  The length of all of
424 the specified music will be multiplied by the fraction and the
425 fraction's denominator will be printed over the notes.  The most
426 common tuplet is the triplet in which 3 notes have the length of 2, so
427 the notes are 2/3 their written length:
428 mudela(fragment,verbatim,center)( b'4 \times 2/3 {c'4 c' c'} d'4 d'4 )
429 If you try to use code(\times) as the first thing in your music, you
430 may encounter the warning ``No one to print a tuplet start bracket''.
431 This happens because the Tuplet-engraver is in Voice and no Voice has
432 been created yet.  You must explicitly specify the Voice context in
433 this situation 
434 mudela(fragment,verbatim,center)( 
435 \context Voice { \times 2/3 {c'4 d' e'}} 
436 )
437
438 A shorthand for code(\times) is to write code(*)var(fraction) after a
439 duration.  This shorthand will not label triplets correctly, but
440 it is convenient for long rests.  
441 For long rests with durations equal to an integer number of whole notes,
442 LilyPond produces output that indicates the duration of the rest.  If you use
443 code(r) then one rest symbol will be printed and several measures left blank.
444 If you use code(R) then all of the measure will be filled with whole rests.
445 mudela(fragment,verbatim,center)(
446 r1 r1*3 R1*3
447 )
448 If you set the code(Score.skipBars) property, then only one measure will be
449 printed; with code(R), a number indicating the length of the rest will be
450 displayed.  
451 mudela(fragment,verbatim,center)(
452 \property Score.skipBars=1
453 r1 r1*3 R1*3
454 )
455 Even though the code(\times) command is not explicit, it is still
456 necessary to specify a code(Voice) context if the music begins with
457 rests lengthened using code(*).  
458 Otherwise, the following will result:
459 mudela(fragment,verbatim,center)(
460 R1*3 c'1 d'
461 )
462
463
464 subsect(Automatic Beam Generation)
465 label(autobeam)
466
467 By default, Lilypond will generate beams automatically.  This feature can be
468 disabled by setting the code(Voice.beamAuto) property to 0.  It can be
469 overridden for specific cases by specifying explicit beams as
470 described in Section ref(manualbeam).  
471
472 In order to decide how to generate beams, Lilypond uses a large number
473 of Voice properties, whose default values appear in
474 file(auto-beam-settings.ly).  In general, beams can begin anywhere,
475 but their ending location is significant.  Beams can end on a beat, or
476 at durations specified by the code(Voice.beamAutoEnd) property.  To
477 end beams every quarter note, for example, you could use set
478 code(Voice.beamAutoEnd) equal to code("1/4").  To end beams every
479 three eighth notes you would set it to code("3/8").  The same syntax
480 can be used to specify beam starting points using code(Voice.beamAutoBegin).
481
482 To allow different settings for different time signatures, these
483 property names can start with code(time)var(N)code(_)var(M) to
484 restrict the definition to var(N)code(/)code(M) time.  So for example,
485 to specify beams ending only for 6/8 time you would use the property
486 code(Voice.time6_8beamAutoEnd).  To allow different endings for notes
487 of different durations, the duration can be tacked onto the end of the
488 property.  To specify beam endings for beams that contain 32nd notes,
489 you would use code(Voice.beamAutoEnd_32).
490
491
492 subsect(Note Spanners: Beams, Slurs and Ties)
493 label(manualbeam)
494
495 A beam is specified by surrounding the beamed notes with brackets
496 code([) and code(]).  
497 mudela(fragment,verbatim,center)(
498 [a'8 a'] [a'16 a' a' a'] 
499 )
500 Some more elaborate constructions:
501 mudela(fragment,verbatim,center)(
502 [a'16 <a' c''> c'' <a' c''>]
503 \times 2/3 { [e'8 f' g'] }
504 )
505
506 Another type of spanner is the slur.  Slurs connects chords and try to
507 avoid crossing stems.  A slur is started with code(CHAR(40)) and stopped with
508 code(CHAR(41)).  The starting code(CHAR(40)) appears to the right of the first note
509 in the slur.  The terminal code(CHAR(41)) apppears to the left of the first
510 note in the slur.  This makes it possible to put a note in slurs from
511 both sides:
512 mudela(fragment,verbatim,center)(
513 f'()g'()a' [a'8 b'(] a'4 g' )f'
514 )
515
516 A tie connects two adjacent note heads of the same pitch.  
517 When used with chords, it
518 connects all of the note heads whose pitches match.  
519 Ties are indicated using the tilde symbol
520 code(~) by analogy with TeX()'s tie which connects words.  
521 Note that if you try to tie together chords which have no common
522 pitches, then a warning message will appear and no tie will be created.
523 (Note that ties between different pitches can be enabled using the
524 property Voice.oldTieBehavior.)
525
526 mudela(fragment,verbatim,center)(
527 e' ~ e' <c' e' g'> ~ <c' e' g'>
528 )
529
530 It is possible to create beams and slurs that cross staffs by switching the
531 context:
532 mudela(fragment,verbatim,center)(
533 \context PianoStaff <
534 \context Staff=one \notes\relative c'{
535   \stemup
536   [c8 c \translator Staff=two \stemup c c]
537   \translator Staff=one
538   d4( \translator Staff=two )a4
539   }
540 \context Staff=two \notes{ \clef bass; s1}
541 >
542 )
543
544
545
546 subsect(Note Ornaments)
547
548 A variety of symbols can appear above and below notes to indicate
549 different characteristics of the performance.  These symbols can be
550 added to a note with `var(note)code(-\)var(name)'.  Numerous symbols
551 are defined in file(script.ly) and file(script.scm).  Symbols can be
552 forced to appear above the note by writing
553 `var(note)code(^\)var(name)', and they can be forced to appear below
554 by writing `var(note)code(_\)var(name)'.  Here is a chart showing
555 symbols above notes, with the name of the corresponding symbol
556 appearing underneath.
557
558 mudela()(
559 \score{
560  < \notes{ c''-\accent c''-\marcato c''-\staccatissimo f'-\fermata 
561           c''-\stopped c''-\staccato c''-\tenuto c''-\upbow c''-\downbow
562           c''-\lheel c''-\rheel  c''-\ltoe  c''-\rtoe  c''-\turn
563           c''-\open  c''-\flageolet  c''-\reverseturn 
564           c''-\trill
565           c''-\prall c''-\mordent c''-\prallprall  c''-\prallmordent
566           c''-\upprall c''-\downprall c''-\thumb c''-\segno c''-\coda}
567   \context Lyrics \lyrics{  
568         accent__ marcato__ staccatissimo__ fermata stopped__
569         staccato__ tenuto__ upbow downbow__ lheel__ rheel__ ltoe
570         rtoe__ turn__ open__ flageolet reverseturn__ trill__ prall__
571         mordent prallprall__ prallmordent__ uprall__ downprall thumb 
572         segno coda }
573   >
574   \paper{ linewidth = 5.875\in;          
575           indent = 0.0;        }
576  }
577 )
578
579 In addition, it is possible to place arbitrary strings of text or
580 TeX() above or below notes by using a string instead of an identifier:
581 `code(c^"text")'.  Fingerings can be placed by simply using digits.
582 All of these note ornaments appear in the printed output but have no
583 effect on the MIDI rendering of the music.
584
585 To save typing,  a few common symbols  can  be  abbreviated  with
586 single characters:
587 mudela()(
588 \score{ \notes {
589         \property Voice.textStyle = typewriter
590         c''4-._"c-." s4
591         c''4--_"c-{}-"  s4
592         c''4-+_"c-+" s4
593         c''4-|_"c-|" s4
594         c''4->_"c->"  s4
595         c''4-^_"c-\\^{ }"  s4 }
596         \paper { linewidth = 12.\cm; }})
597
598 Dynamic marks are specified by using an identifier after a note without a dash:
599 code(c4 \ff).  Note that this syntax is inconsistent with the syntax for other
600 types of ornaments.  The available dynamic marks are: code(\pppppp),
601 code(\ppppp), code(\pppp), code(\ppp), code(\pp), code(\p), code(\mp),
602 code(\mf), code(\f), code(\ff), code(\fff), code(\ffff), code(\fffff),
603 code(\ffffff), code(\fp), code(\sf), code(\sff), code(\sp), code(\spp),
604 code(\sfz) and code(\rfz).
605
606 A crescendo mark is started with code(\cr) and terminated with
607 code(\rc).  A decrescendo mark is started with code(\decr) and
608 terminated with code(\rced).  There are also shorthands for these
609 marks.  A crescendo can be started with code(\<) and a decrescendo can
610 be started with code(\>).  Either one can be terminated with code(\!).
611 Note that code(\!) must go before the last note of the dynamic mark whereas
612 code(\rc) and code(\rced) go after the last note.  Because these marks are
613 bound to notes, if you want to get several marks during one note, you must use
614 spacer notes. 
615 COMMENT(Broken
616 m udela(fragment,verbatim,center)(
617 c'' \< \! c''   d'' \decr e'' \rced 
618 < f''1 {s4 \< \! s4 \> \! s2 } >)
619 )
620
621
622 COMMENT(Broken!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)
623
624 Tremolo marks can be printed by a note by adding code(:)[var(length)]
625 after the note.  The length must be at least 8.  A var(length) value
626 of 8 gives one line across the note stem.  
627 If the length is omitted,
628 then the last value is used, or the value of the code(Abbrev)
629 property if there was no last value.  To place tremolo marks in
630 between two notes, begin with code([:)var(length) and end with code(]).
631 The tremolo marks will appear instead of beams.  Putting more than two
632 notes in such a construction will produce odd effects. 
633
634 [TREMOLO BEAMS TEMPORARILY OUT OF ORDER]
635
636 COMMENT(mudela (fragment,verbatim,center)(
637 c'2:8 c':32 [:16 e'1 g'] [:8 e'4 f']
638 ))
639
640 COMMENT(
641 Is the last paragraph correct?  Is it called "tremolo"?  Why is
642 "abbreviation" used?  (What is the unabreviated form?)
643
644 COMMENT(
645 mudela (fragment,verbatim,center)(
646 c'4:32 [:16 c'8 d'8]
647 ))
648
649 )
650
651
652 sect(Other Ways to Enter Pitches)
653
654 subsect(Pitch Names in Other Languages)
655 label(notelang)
656
657 The pitch names can be easily redefined using the code(\notenames) command.
658 Note name definitions have been provided in various languages.  
659 Simply include the language specific init file.  For example:
660 code(\include "english.ly").  The available language files and the names
661 they define are:
662
663 verb(                        Note Names               sharp       flat
664 nederlands.ly  c   d   e   f   g   a   bes b   -is         -es
665 english.ly     c   d   e   f   g   a   bf  b   -s/-sharp   -f/-flat
666 deutsch.ly     c   d   e   f   g   a   b   h   -is         -es
667 norsk.ly       c   d   e   f   g   a   b   h   -iss/-is    -ess/-es
668 svenska.ly     c   d   e   f   g   a   b   h   -iss        -ess
669 italiano.ly    do  re  mi  fa  sol la  sid si  -d          -b
670 catalan.ly     do  re  mi  fa  sol la  sid si  -d/-s       -b)
671
672 subsect(Relative Pitch Specification)
673 label(relative)
674
675 One very common error when entering music is to place notes in the wrong
676 octave.  One way to avoid being confused by large numbers of octave changing
677 marks is to use
678 the code(\relative) keyword. 
679 Music which appears within code(\relative) is
680 interpreted differently.  The octave of a note is determined by making it as
681 close to the previous note as possible.  The octave changing marks code(') and
682 code(,) can then be added to raise or lower this note by octaves.  You have to
683 specify a starting pitch because the first note of a list has no predecessor.  
684
685 mudela(fragment,verbatim,center)(
686 \relative c'' { c d b c, d b c' d 
687                 b c,, d b }
688 )
689
690 When the preceeding item is a chord, the first note of the chord is used to
691 determine the first note of the next chord.  But other notes within the second
692 chord are determined by looking at the immediately preceeding note.  
693
694 mudela(fragment,verbatim,center)(
695 \relative c' { c <c e g> 
696     <c' e g> <c, e' g> }
697
698
699 The code(\relative) keyword can only appear in music, so there must be a
700 surrounding code(\notes) keyword which does not appear in the fragments shown
701 above.  Also note that if the music passed to a code(\relative) keyword 
702 contains a code(\transpose) keyword, the tranposed music will not be
703 processed in relative mode.  An additional code(\relative) must be placed
704 inside the code(\transpose).  If code(\relative) will be used several
705 times, or if it will be used in the same music with code(\transpose),
706 then you may get bizarre effects.  This can be fixed by using an
707 explicit code(Staff) context.   
708
709
710 subsect(Tranposition of Pitches)
711 label(transpose)
712
713 Another way to modify the meaning of the note names is to use the
714 code(\transpose) keyword.  This keyword allows you to transpose music.
715 To use transposition, specify the pitch that middle C should be tranposed to.
716 It is important to distinguish between enharmonic pitches as they can produce
717 different transpositions.  To transpose up half a step, for example, either 
718 code(\transpose cis') or code(\transpose des') will work.  But the first
719 version will print sharps and the second version will print flats.  
720 In this example, a scale in the key of E is transposed to F, or to E-sharp 
721 with odd results.
722 mudela(fragment,verbatim,center)(
723 \relative c' { \key e; 
724   e fis gis a b cis dis e }
725 )
726 mudela(fragment,verbatim,center)(
727 \transpose des' \relative c' { \key e; 
728    e fis gis a b cis dis e }
729 )
730 mudela(fragment,verbatim,center)(
731 \transpose cis' \relative c' { \key e; 
732     e fis gis a b cis dis e }
733 )
734 If you want to use both code(\transpose) and code(\relative), then you must use
735 code(\transpose) first.  Any code(\relative) keywords that are outside the 
736 code(\transpose) have no effect on notes that appear inside the
737 code(\transpose).  As with code(\relative), using code(\transpose)
738 repeatedly can cause bizarre effects.  An explicit code(Staff) context
739 will eliminate the problems.  
740
741 sect(Chords)
742
743 Chords can be entered either by name or by listing the notes in angle brackets.
744 Chords can be displayed either as notes or by name.  To enter chords by name,
745 either place them inside the code(\chords) keyword.
746 Chord names have the form
747 var(tonic)[var(duration)][code(-)var(modifier)][code(^)var(subtractions)][code(/)var(inversion)]
748 The var(tonic) should be the tonic note of the chord, and the var(duration) is
749 the chord duration in the usual notation.  There are two kinds of modifiers.
750 One type is chord additions, which are obtained by listing intervals separated
751 by dots.  An interval is written by its number with an optional code(+) or
752 code(-) to indicate raising or lowering by half a step.  A chord additions has
753 two effects:  it adds the specified interval and all lower odd numbered
754 intervals to the chord, and it may lower or raise the specified interval.
755 Intervals must be separated by a dot (code(.)).
756 Repeating a code(-) character will remove a half step from the preceeding
757 interval.  
758 mudela(fragment,verbatim,center)(
759 \transpose c''{ 
760 \chords{
761   c1 c-3- c-7 c-8 c-9  
762   c-9-.5+.7+ c-3-.5- c-4.6.8
763 }}) 
764 The second type of modifier that may appear after the code(-) is 
765 a named modifier. 
766 Named modifiers are listed in the file file(chord-modifiers.ly).  The
767 available modifiers are code(m) and code(min) which lower
768 the 3rd half a step, code(aug) which raises the 5th, code(dim) which lowers
769 the 5th, code(maj) which adds a raised 7th, and code(sus) which replaces the
770 5th with a 4th.  
771 mudela(fragment,verbatim,center)(
772 \transpose c''{ 
773 \chords{
774   c1-m c-min c-maj c-aug c-dim c-sus
775 }}) 
776
777 Chord subtractions are used to eliminate notes from a chord.  The notes to be
778 subtracted are listed after a code(^) character, separated by dots.  
779 mudela(fragment,verbatim,center)(
780 \transpose c''{ 
781 \chords{
782   c1^3 c-7^5.3 c-8^7
783 }}) 
784
785 Chord inversions can be specified by appending code(/) and the name of a
786 single note to a chord.  This has the effect of lowering the specified note by
787 an octave so it becomes the lowest note in the chord.  If the
788 specified note is not in the chord then a warning will be printed.  
789 mudela(fragment,verbatim,center)(
790 \transpose c'''{ 
791   \chords { c1 c/e c/g c-7/e }
792 }) 
793 Throughout these examples, chords have been shifted around the staff
794 using code(\transpose).  The code(\relative) keyword has odd effects
795 when combined with named chords.  
796
797 For displaying printed chord names, use the code(ChordNames) context.  
798 The chords may be entered either using the notation described above,
799 or directly using angle brackets. 
800 mudela(fragment,verbatim)(
801 <
802   \context ChordNames { \chords{ a b c} \notes{ < d f g >  < e g b > } }
803   \context Staff \notes{ a b c' d' e' }
804 >
805 )
806 Lilypond examines chords specified as lists of notes to determine a
807 name to give the chord.  By default, LilyPond will not try to identify
808 chord inversions:
809 mudela(fragment,verbatim,center)(
810 <
811   \context ChordNames { 
812      \notes{ < e' g' c'' > } }
813   \context Staff \notes{ c' } 
814 >)
815 If you want inversions to be recognized, you must set the property
816 code(Score.chordInversion): 
817 mudela(fragment,verbatim,center)(
818 <
819   \property Score.chordInversion = 1
820   \context ChordNames { 
821        \notes{ < e' g' c'' > } }
822   \context Staff \notes{ c' } 
823 >)
824
825
826
827 sect(Lyrics)
828
829 Lyrics are entered like notes, with pitches replaced
830 by text.  For example code(Twin-4 kle4 twin-4 kle4) enters four
831 syllables, each with quarter note duration.  Note that the hyphen has
832 no special meaning for lyrics, and does not introduce special symbols.
833 See Section ref(modes) for a description of what is interpreted as a lyric.
834
835 In order to instruct LilyPond to write lyrics underneath the
836 staff, you must enter the lyrics context with code(\context Lyrics).  
837 Lyrics should be entered in lyrics mode which is entered with code(\lyrics).
838
839 Spaces can be introduced into a lyric either by using quotes (code("))
840 or by using an underscore without quotes: code(He_could4 not4).  All
841 unquoted underscores are converted to spaces.  Here is a full example: 
842 mudela(verbatim)(\score{
843   <  \notes \transpose c'' {c d e c | c d e c | e f g'2 | 
844                               e'4 f g'2 \bar "|."; }
845      \context Lyrics \lyrics { 
846               DOEXPAND(Fr\)`e-4 re Ja- que DOEXPAND(Fr\)`e- re Ja- que
847               Dor- mez vous?2 Dor-4 mez vous?2  }
848   >
849 })
850
851 COMMENT(
852 URG
853                         Fr\`e-4 re Ja- que
854                         Fr\`e- re Ja- que
855 Why does this warrant an URG?
856 )
857
858 When one word is attached to many notes, you may 
859 want a  continuous line after the lyric to show  this.   To achieve
860 this effect, add a code(__) lyric as a separate word 
861 after the lyric to be extended.  
862 This will create
863 an extender, a line  that extends over the entire duration of 
864 the lyric.  This line will run all the way to the start of the next
865 lyric, so you may want to shorten it by using a blank lyric.  
866 mudela(verbatim)(\score{
867 < \notes \relative c''{ 
868      a4()b()c()d c()d()b()a c()d()b()a }
869    \context Lyrics \lyrics {
870      foo1 __  bar2. __ _4 baz1 __ }
871 > })
872      
873 If you want to have hyphens centred between syllables (rather than attached
874 to the end of the first syllable) you can use the special code(--) lyric as
875 separate word between syllables. This will result in a hyphen whose length
876 varies depending on the space between syllables, and centred between the
877 syllables. For example: 
878 mudela(verbatim)(\score{
879   <  \notes \transpose c'' {c d e c | c d e c | e f g'2 | 
880                               e'4 f g'2 \bar "|."; }
881      \context Lyrics \lyrics { 
882               DOEXPAND(Fr\)`e4 -- re Ja -- que DOEXPAND(Fr\)`e -- re Ja -- que
883               Dor -- mez vous?2 Dor4 -- mez vous?2  }
884   >
885 })
886
887  
888
889
890 sect(Time)  
891
892 LilyPond aligns all musical objects according to the amount of time
893 they occupy.  All musical objects have a duration.  When music is
894 written sequentially using braces the duration is the sum of the 
895 durations of the elements.  When music is stacked into simultaneous music 
896 using angle
897 brackets, the duration is the maximum of the durations of the
898 elements.  
899
900 Because LilyPond knows the durations of all musical elements, the time
901 signature enables LilyPond to draw bar lines automatically.  The time
902 signature is specified with the code(\time) keyword: code(\time 3/4).
903 If no time signature is given, LilyPond assumes 4/4.  The automatic
904 generation of bar lines can toggled with the code(\cadenza) keyword or the
905 code(Staff.barNonAuto) property,
906 and an incomplete measure at the start of the music can be created
907 using the code(\partial) keyword: code(\partial 8*2;) creates a
908 starting measure lasting two eighth notes.
909
910 In order to help with error checking, you can insert bar markers in
911 your music by typing code(|).  Whenever LilyPond encounters a code(|)
912 that doesn't fall at a measure boundary, she prints a warning message.
913
914
915 COMMENT(
916 sect(Composition: forming bigger structures)
917 label(sec:grammar)
918
919 The computer savy user may be interested in a more formal
920 specification.  We can capture what have learned about forming
921 sentences in Mudela in a context-free grammar.
922
923 latexcommand(\smallskip)
924
925 table(2)(lll)(
926         row(cell(em(Music))cell(: em(Note)))
927         row(cell()cell(code(|) em(Rest)))
928         row(cell()cell(code(|) code({) em(MusicList) code(})))
929         row(cell()cell(code(|) code(<) em(MusicList) code(>)))
930         row(cell()cell(code(|) em(Command)))
931         row(cell()cell(code(|) code(\context) em(string) code(=) em(string)  em(Music)))
932         row(cell()cell(;))
933         row(cell(em(MusicList))cell(: em(empty)))
934         row(cell()cell(code(|)  em(MusicList)  em(Music)))
935         row(cell()cell(;))
936 )
937
938 latexcommand(\smallskip)
939
940 In mathematics you can form expressions by combining expressions,
941 which are ultimately some kind of atom or terminal symbol.  The same
942 goes for Mudela: there are some basic building blocks, and by
943 combining those you create complex music.
944
945 You can combine music in three ways:
946 itemize(
947 it()If you enclose a sequence of music-elements in braces ( code({)
948     and code(}) ), then you form another kind of music called
949 sequential music
950     with those pieces.
951   The duration of sequential composition is the sum of the durations of its elements
952   verb(
953       { c c g g a a g2 }      % twinkle twinkle
954       { { c c g g} { a a g2 } }
955   )
956 it()You can stack music by enclosing a sequence of music elements
957     with code(<) and code(>). This is called simultaneous music.  
958     The duration of a simultaneous composition is the maximum of the durations 
959     of its elements Example:
960     verb(
961         <a4 {cis8 cis8} e'4>      % a-major chord
962     )
963 it()You can form music by transposing music:
964     verb(
965     \transpose  
966         d       % from c to the d that's almost one octave down
967                 { e4 f4 }       % the horizontal music
968 )
969 it()verb(\context)
970 it()verb(\property)
971 it()verb(\translator)
972 it()verb(\relative)
973 )
974
975 Of course you can also combine these three mechanisms.
976 verb(
977 { c <c e> <c e g> <c e g \transpose d' dis > }  % 4 increasing chords
978 )
979
980 END OF COMMENT  )
981
982 sect(Repeats)
983
984 In order to specify repeats, use the code(\repeat) keyword.  By
985 default, repeats are printed with repeat symbols.  
986 mudela(fragment,verbatim,center)(
987 c'1
988 \repeat semi 2 { c'4 d' e' f' }
989 \repeat semi 2 { f' e' d' c' })
990 In order to specify alternate endings, use the code(\alternative)
991 keyword.  
992 mudela(fragment,verbatim,center)(
993 c'1
994 \repeat semi 2 {c'4 d' e' f'} 
995 \alternative { {d'2 d'} {f' f} })
996 The code(semi) specifies that normal repeats will be printed.  If
997 code(fold) is used instead then the alternatives will be stacked:
998 mudela(fragment,verbatim,center)(
999 c'1
1000 \repeat fold 2 {c'4 d' e' f'} 
1001 \alternative { {d'2 d'} {f' f} })
1002 When the repeats involve partial measures, it will be necessary to use
1003 code(\partial) keywords in a somewhat unexpected way 
1004 to indicate some measure lengths.
1005 mudela(fragment,verbatim)(
1006 \context Staff { \relative c'{
1007   \repeat semi 2 { \partial 4; e | c2 d2 | e2 f2 | }
1008   \alternative { { g4 g g } {\partial 1; a a a a | b1 } }
1009 }})
1010 Repeats can be unfolded by setting the property Staff.unfoldRepeats.
1011 Note also that if your music begins with code(\repeat), you must place
1012 it in an explicit code(Staff) context or you will get bizarre results. 
1013
1014 If you don't give enough alternatives for all of the repeats, then the
1015 first alternative is assumed to be repeated enough to equal to
1016 specified number of repeats.  
1017 mudela(fragment,verbatim)(
1018 \context Staff { \relative c'{
1019   \repeat semi 3 { \partial 4; e | c2 d2 | e2 f2 | }
1020   \alternative { { g4 g g } {\partial 1; e4 e e } 
1021                  {\partial 1; a a a a | b1 } }
1022 }})
1023
1024
1025
1026 sect(Ambiguities)
1027
1028 The grammar contains a number of ambiguities.  We hope to resolve most
1029 of them at a later time. 
1030
1031 itemize(
1032 it()
1033 The assignment
1034 verb(
1035 foo = bar)
1036 COMMENT(
1037
1038 )Can be interpreted as making a string identifier code(\foo) containing
1039 code("foo"), or a music identifier containing the lyric lyric `foo'.
1040
1041 Since this assignment is possible at top-level and within paper, these
1042 are two conflicts.
1043 it()The assignment
1044 verb( foo = -6
1045 )Can be interpreted as making a int identifier containing -6, or a
1046 request identifier containing the fingering `6' (with neutral direction).
1047
1048 Since this assignment is possible at top-level and within paper, these
1049 are two conflicts.
1050 it() A chord followed by
1051 code(-3)
1052 can be interpreted as a chord substraction, or as the fingering  `2' (with
1053 neutral direction)
1054 it() Similarly code(^2) is a conflict.
1055  chord_addition '^' ->? 
1056 it()
1057 If you do a nested repeat,
1058 verb (
1059 \repeat ...
1060   \repeat ..
1061   \alternative
1062   ) then it ambiguous to which code(\repeat) the code(\alternative)
1063   belongs. This is the classic if-then-else dillema.  It may be solved
1064   by using braces. 
1065 )
1066
1067 sect(Keywords)
1068
1069 Keywords sometimes appear alone, but usually they require arguments.
1070 A keyword may have a single argument, a sequence of arguments in
1071 braces, or a sequence of arguments separated by spaces and terminated
1072 by a semicolon.  The precise syntax of each keyword is shown below.
1073 Keywords must appear in the right context.  If you use a keyword in
1074 the wrong place, even if the usage is syntactically correct, you will
1075 get the message ``parse error'' from LilyPond.
1076
1077
1078 description(
1079
1080 dit(code(\absdynamic) code({) var(code) code(})) Internal keyword for
1081 printing dynamic marks such as $f$ under music.  The parameter
1082 var(code) is unsigned and specifies the dynamic mark to print.
1083 Normally you should use the more user friendly abbreviations defined
1084 in the init file file(dynamic.ly).
1085
1086 FIXME: Changed to code(\textscript) var(text) var(style).  Defines
1087 a text-request.
1088
1089 dit(code(\accepts) var(string)code(;)) This keyword can appear only within a
1090 code(\translator) block.  It specifies what contexts are allowed with the
1091 context that is being defined.  See Section ref(translators).  
1092
1093 dit(code(\alternative) code({) var(music1) var(music2) ... code(}))
1094 Specifies alternative endings.  Must come after a code(\repeat) keyword.  
1095
1096 dit(code(\bar) var(bartype)code(;)) Prints a special bar symbol, or at
1097 measure boundaries, replaces the regular bar symbol with a special
1098 symbol.  The argument var(bartype) is a string which specifies the
1099 kind of bar to print.  Options are code(":|"), code("|:"),
1100 code(":|:"), code("||"), code("|."), code(".|"), or code(".|.").
1101 These produce respectively a right repeat, a left repeat, a double
1102 repeat, a double bar, a start bar, an end bar, or a thick double bar.
1103 If var(bartype) is set to code("empty") then nothing is printed, but a
1104 line break is allowed at that spot.  Note that the printing of special bars
1105 has no effect on the MIDI output.
1106
1107 dit(code(\cadenza) var(togglevalue)code(;)) Toggles the automatic generation
1108 of bar lines.  If var(togglevalue) is 0 then bar line generation is
1109 turned off.   If var(togglevalue) is  1  then a bar is  immediately
1110 printed and bar generation is turned on.
1111
1112 dit(code(\clef) var(clefname)code(;)) Allowed only in music.  
1113 Sets the current clef.  The argument is
1114 a string which specifies the name of the clef.  Several clef names are
1115 supported.  If code(_8) or code(^8) is added to the end of a clef
1116 name then the clef lowered or raised an octave will be generated.  
1117 Here are the supported clef names with middle C shown in each clef:
1118 mudela(center)(
1119 \score{
1120   \notes{ \cadenza 1;
1121    %\property Voice.textStyle = typewriter
1122    \clef subbass; c'4-"\kern-10mm subbass" 
1123            \clef bass;    c'4^"\kern -8mm bass"
1124            \clef baritone; c'4_"\kern -10mm baritone"
1125            \clef varbaritone; c'4^"\kern -10mm varbaritone"
1126            \clef tenor;     c'4_"\kern -10mm tenor"
1127            \clef "G_8";   c'4^"\kern -6mm G\_8" 
1128    }  
1129    \paper{ linewidth= 4.5 \in; }
1130 }
1131 )
1132 mudela(center)(
1133 \score{
1134   \notes{\cadenza 1; \clef alto;    c'4_"\kern -10mm alto"
1135       %     \clef scarlatti;    c'4_"\kern -4mm scarlatti"
1136            \clef mezzosoprano; c'4^"\kern -10mm mezzosoprano"
1137            \clef soprano;  c'4_"\kern -10mm soprano"
1138            \clef treble;  c'4^"\kern -6mm treble"
1139            \clef french;  c'4_"\kern -10mm french" }  
1140   \paper{ linewidth= 4.5 \in; }
1141 }
1142 )
1143 The treble  clef  can also  be obtained using  the  names code(G) or
1144 code(violin).  The bass clef is also available by code(\clef  F). 
1145
1146 dit(code(\chord) var(chordlist)) Parse var(chordlist) in chords mode.
1147
1148 dit(code(\chordmodifiers) var(modifierlist)) Specify the text chord
1149 modifiers that may appear after chord names.  These are specified in
1150 the file file(chord-modifiers.ly).  
1151
1152 dit(code(\cm)) Specify a dimension in centimeters. 
1153
1154 dit(code(\consists) var(string)code(;)) This keyword can appear only within a
1155 code(\translator) block.  It specifies that an engraver or performer named
1156 var(string) should be added to the translator.  See Section
1157 ref(translators).
1158
1159 dit(code(\consistsend) var(string)code(;)) Unknown function.  
1160
1161 dit(code(\context) var(contexttype) [code(=) var(contextname)]
1162 var(music) or code(\context) var(translatortype)code(;)) The first
1163 variant is used only within music to create an instance of a
1164 context.  The new context can optionally be given a name.  The
1165 specified var(music) is processed in the new context. The second
1166 variant appears within a code(\translator) block and specifies the
1167 type of translator being created.
1168
1169 dit(code(\duration) code({) var(length) var(dotcount) code(})) Specify note
1170 duration.  The parameter var(length) is the negative logarithm (base
1171 2) of duration: 1 is a half note, 2 is a quarter note, 3 is an eighth
1172 note, etc.  The number of dots  after  the  note is given by
1173 var(dotcount). 
1174
1175 dit(code(\font) var(string)) Internal keyword.  Used within
1176 code(\paper) to specify the font.
1177
1178
1179 dit(code(\header) code({) var(key1) = var(val1); var(key2) = var(val2); ... code(}))
1180 Specifies information about the music.  A header should appear at the
1181 top of the file describing the file's contents.  If a file has
1182 multiple code(\score) blocks, then a header should appear in
1183 each score block describing its contents.  Tools like code(ly2dvi) can
1184 use this information for generating titles.   Key values that are used
1185 by ly2dvi are: title, subtitle, composer, opus, poet, instrument,
1186 metre, arranger, piece and tagline.  
1187
1188 dit(code(\in)) Specify a dimension in inches.  
1189
1190 dit(code(\include) var(file)) Include the specified file.  The
1191 argument var(file) is a string.  The full filename including the
1192 file(.ly) extension must be given, and the filename must be quoted.
1193 (An unquoted string will not work here.)
1194
1195 dit(code(\key) var(pitch) var(type) code(;)) Change the key signature. 
1196 var(type) should be code(\major) or code(\minor) to get
1197 var(pitch)-major or var(pitch)-minor, respectively. The second
1198 argument is optional, the default is major keys. 
1199 The var(\context) argument can also be given as an integer, which tells
1200 the number of semitones that should be added to the pitch given in the
1201 subsequent code(\key) commands to get the corresponding major key,
1202 e.g. code(\minor) is defined as 3.  The standard mode names 
1203 code(\ionian), code(\locrian), code(\aeolian), code(\mixolydian),
1204 code(\lydian), code(\phrygian), and code(\dorian) are also defined. 
1205
1206 dit(code(\keysignature) var(pitchseq)code(;))
1207 Specify an arbitrary key signature.  The pitches from var(pitch) will
1208 be printed in the key signature in the order that they appear on the list.
1209
1210 dit(code(\lyrics) var(lyriclist)) Parse var(lyriclist) in lyrics mode.
1211
1212 dit(code(\maininput)) Internal command.  This command is used for creating init
1213 files like file(init.fly) that read the user file into the middle of another
1214 file.  It is illegal to use this command in a user file.  
1215         
1216 dit(code(\mark) var(unsigned)code(;) or code(\mark) var(string)code(;)) 
1217 Allowed in music only.  Prints a mark over or under (depending on the
1218 code(markDirection) property) the staff.
1219 You must add code(Mark_engraver) to the Score context.
1220
1221 dit(code(\midi) var(statementlist)) Appears in a score block to
1222 indicate that musical output should be produced and to set output
1223 parameters.  Can also appear at the top level to set default output
1224 parameters.  See code(\tempo).
1225
1226 dit(code(\mm)) Specify a dimension in millimeters. 
1227
1228 dit(code(\musicalpitch) code({) var(octave) var(note) var(shift) code(})) 
1229 Specify note pitch.  The octave is specified by an integer,
1230 zero for the octave containing middle C.  The note is a number from 0
1231 to 7, with 0 corresponding to C and 7 corresponding to B.  The shift
1232 is zero for a natural, negative to add flats, or positive to add
1233 sharps.
1234
1235 dit(code(\name) var(context)code(;)) Appears within code(\translator) to
1236 specify the name of the context that the translator handles. See Section
1237 ref(translators).   
1238
1239 dit(code(\notenames) var(assignmentlist)) Define new note names.  This
1240 keyword can appear only at the top level. 
1241 The argument is a list of definitions of  the form
1242 var(name) = var(pitch),  where var(pitch) is specified with the
1243 code(\musicalpitch) keyword.  
1244
1245 dit(code(\notes) var(music)) Enter note mode and process the
1246 specified music. 
1247
1248 dit(code(\paper) var(statmentlist)) 
1249 Appears in a score block to indicate that the music should be printed
1250 or to set output parameters.  Can also appear at the top level to set
1251 default output parameters for all of the score blocks.  
1252 The var(statmentlist) contains statements that change features of the
1253 output.  See Section ref(paper).  
1254
1255 dit(code(\partial) var(duration)code(;)) Specify that the first measure of
1256 the music lasts only for the specified duration.  Use also to specify
1257 the duration of the first measure of the argument to
1258 code(\alternative).  
1259
1260 dit(code(\penalty) var(int)code(;)) Allowed only in music.
1261 Discourage or encourage line breaks.  See identifiers code(\break) and
1262 code(\nobreak) in Section ref(ident). 
1263
1264 dit(code(\property) var(contextname)code(.)var(propname) code(=) var(value))
1265 Sets the var(propname) property of the context var(contextname) to the
1266 specified var(value).  All three arguments are strings.  Depending on
1267 the context it may be necessary to quote the strings or to leave space
1268 on both sides of the dot. 
1269
1270 dit(code(\pt)) Specify a dimension in points. 
1271
1272 dit(code(\relative) var(pitch) var(music)) Processes the specified
1273 var(music) in relative pitch
1274 mode.  In this mode, the octave of a pitch is chosen so that the
1275 pitch is closest to the preceeding pitch.  
1276 The argument var(pitch) is
1277 the starting pitch for this comparision.  In the case of chords, the
1278 first note of a chord is used as the base for the first pitches in the next
1279 chord.  See Section ref(relative).
1280
1281 dit(code(\remove) var(string)code(;)) Can appear only in a
1282 code(\translator) block.  Specifies that a performer or engraver named
1283 var(string) should be removed.  See Section ref(translators).  
1284
1285 dit(code(\repeat) var(style) var(count) code({) var(music) code(}))
1286 Repeats the specified
1287 music var(count) times.  Alternative endings can be specified by adding a
1288 code(\alternative) keyword after the code(\repeat).  The var(style)
1289 parameter should be either code(semi), for regular repeats,  or
1290 code(fold) for repeats displayed vertically. 
1291
1292 dit(code(\scm) var(scheme)code(;)) Embeds specified Scheme code.  
1293
1294 dit(code(\scmfile) var(filename)code(;)) Reads Scheme code from the specified
1295 file.  
1296
1297 dit(code(\score) var(statementlist)) Create a Score context.  This
1298 is the top level notation context.  
1299 COMMENT(this still needs work)
1300
1301 dit(code(\script) var(alias)) Prints a symbol above or below a note.
1302 The argument is a string which points into the script-alias table
1303 defined in file(script.scm).  The scheme definitions specify whether
1304 the symbol follows notes into the staff, dependence of symbol
1305 placement on staff direction, and a priority for placing several
1306 symbols over one note.  Usually the code(\script) keyword is not used
1307 directly.  Various helpful identifier definitions appear in
1308 file(script.ly).
1309
1310 dit(code(\shape) code(=) var(indent1) var(width1) var(indent2)
1311 var(width2) ... code(;)) Allowed only within code(\paper).  Each pair
1312 of var(indent) and var(width) values is a dimension specifying how far
1313 to indent and how wide to make the line.  The indentation and width of
1314 successive lines are specified by the successive pairs of dimensions.
1315 The last pair of dimensions will define the characeristics of all
1316 lines beyond those explicitly specified.
1317
1318 COMMENT(First pair of dimensions seems to be skipped.  At least it is
1319 in the example file denneboom.ly.)
1320
1321 dit(code(\skip) var(duration)code(;)) Skips the amount of time specified by
1322 var(duration).  A gap will be left for the skipped time with no notes
1323 printed.  It works in Note Mode or Lyrics Mode (but generates a
1324 mysterious error in lyrics).
1325
1326 dit(code(\spanrequest) var(startstop) var(type)).  Define a spanning request
1327 var(startstop) is either -1 (code(\start)) or 1 (code(\stop)). The var(type)
1328 parameter is a string that describes what should be started.  Supported types
1329 are "crescendo", "decrescendo", "beam", "slur".  This is an internal command.
1330 Users should use the abbreviations  which are defined in the
1331 initialization file file(dynamic.ly).
1332
1333 dit(code(\tempo) var(duration) = var(perminute)code(;)) Used within
1334 code(\midi) or within music to specify the tempo.  For example, 
1335 `code(\midi { \tempo 4 = 76;})' requests output with 76 quarter notes
1336 per minute.  Note that if the music contains several tempo commands,
1337 only the last one is used to set the tempo for the entire MIDI output. 
1338 COMMENT(Is this true?)
1339
1340 dit(code(\textscript) var(text) var(style)) Print the specified text as a
1341 script in the specified style.  
1342
1343 dit(code(\time) var(numerator)code(/)var(denominator)code(;)) Change the time
1344 signature.  The default time signature is 4/4.  
1345
1346 dit(code(\times) var(numerator)code(/)var(denominator) var(music))
1347 Multiply the duration of var(music) by the specified fraction.
1348
1349 dit(code(\translator) var(statements) or code(\translator)
1350 var(context) = var(name)) The first variant appears only within
1351 code(\paper) and specifies a translator for
1352 converting music to notation.  The translator is specified with a
1353 single code(\context) statement and a series of code(\accepts), and
1354 code(\consists) statements.  See Section ref(translators). 
1355 The second variant appears in 
1356 music.  It specifies that the current the contexts
1357 contained within the specified context should be shifted to the
1358 context with the specified name.  
1359
1360 COMMENT( \translator seems like a strange name for the second
1361 operation, and is the overloading desireable? )
1362
1363 dit(code(\transpose) var(pitch) var(music)) Transposes the specified
1364 music.  Middle C is tranposed to var(pitch).  This is allowed in music only,
1365 and if it appears inside code(\relative), then any notes specified for
1366 transposition should be specified inside another code(\relative).  See Section
1367 ref(transpose).  
1368
1369 dit(code(\type) var(string)code(;)) Use inside code(\translator) to
1370 specify the type of the translator.  
1371
1372 dit(code(\version) var(string)) Specify the version of Mudela that a
1373 file was written for.  The argument is the version number, for example
1374 code("1.0.1").  Note that the Mudela version is different from the
1375 LilyPond version.
1376
1377 )  
1378
1379
1380 sect(Notation Contexts)
1381
1382 Notation contexts provide information that appears in printed music
1383 but not in the music itself.  A new musical context is created using
1384 the code(\context) keyword: `code(\context) var(contexttype) [code(=)
1385 var(contextname)] var(music)'.  The following context types are
1386 allowed.
1387
1388 description(
1389
1390 dit(code(LyricVoice)) Corresponds to a voice with lyrics.  Handles the printing
1391 of a single line of lyrics.  
1392
1393 dit(code(Voice)) Corresponds to a voice on a staff.
1394   This context handles the conversion of noteheads,
1395   dynamic signs, stems, beams, super- and subscripts, slurs, ties and rests.
1396
1397 dit(code(ChordNamesVoice)) A voice with chord names.  Handles printing
1398 of a line of chord names.  
1399
1400 dit(code(ChordNames))  Typesets chord names.  Can contain
1401 code(ChordNamesVoice) contexts.  
1402
1403 dit(code(Lyrics)) Typesets lyrics.  It can contain code(LyricVoice) contexts.
1404
1405 dit(code(Staff)) Handles clefs, bar lines, keys,
1406   accidentals.  It can contain code(Voice) contexts.
1407
1408 dit(code(RhythmicStaff)) A context like code(Staff) but for printing
1409 rhythms.  Pitches are ignored; the notes are printed on one line.  
1410 It can contain code(Voice) contexts. 
1411
1412 dit(code(GrandStaff)) Contains code(Staff) or code(RhythmicStaff)
1413 contexts.  It adds a brace on the left side grouping the staffs
1414 together. The bar lines of the contained staffs are connected vertically.
1415 It can contain code(Staff) contexts.
1416
1417 dit(code(PianoStaff)) Just like code(GrandStaff) but with
1418 code(minVerticalAlign) set equal to code(maxVerticalAlign) so that
1419 interstaff beaming and slurring can be used.  
1420
1421 dit(code(StaffGroup)) Contains code(Staff) or code(RhythmicStaff)
1422 contexsts.  Adds a bracket on the left side, grouping the staffs
1423 together.  The bar lines of the contained staffs are connected vertically.
1424 It can contain code(Staff), code(RhythmicStaff), code(GrandStaff) or code(Lyrics) contexts.  
1425
1426 dit(code(ChoirStaff)) Identical to code(StaffGroup) except that the
1427 contained staffs are not connected vertically.  
1428
1429 dit(code(Score)) This is the top level notation context.  It is specified with
1430 the code(\score) keyword rather than the code(\context) command.  No
1431 other context can contain a code(Score) context.  This context handles
1432 the administration of time signatures.  It also makes sure that items
1433 such as clefs, time signatures, and key-signatures are aligned across
1434 staffs.  It can contain code(Lyrics), code(Staff),
1435 code(RhythmicStaff), code(GrandStaff), code(StaffGroup), and
1436 code(ChoirStaff) contexts.
1437
1438 )
1439
1440 The various contexts have properties associated with them.  These
1441 properties can be changed using the code(\property) command:
1442 `code(\property) var(context)code(.)var(propname) code(=) var(value)'.
1443 Properties can also be set within the code(\translator) block
1444 corresponding to the appropriate context.  In this case, they are
1445 assigned by `var(propname) code(=) var(value)'.  The settings made with
1446 code(\property) are processed after settings made in the code(\translator)
1447 block, so the code(\property) settings will override code(\translator)
1448 settings.  
1449
1450 The code(\property) keyword will create any property you specify.
1451 There is no guarantee that a property will actually be used.  If you
1452 spell a property name wrong, there will be no error message.  In order to find
1453 out what properties are used, you must search the source code 
1454 for code(get_property).  
1455 Properties that are set in one context are inherited by all of the
1456 contained contexts.  This means that a property valid for the Voice
1457 context can be set in the Score context (for example) and thus take
1458 effect in all Voice contexts.  
1459
1460 subsubsubsect(Lyrics properties)
1461
1462 description(
1463
1464 dit(code(textStyle)) Set the font for lyrics.  The available font
1465 choices are code(roman), code(italic), code(bold), code(large),
1466 code(Large), code(typewriter), and code(finger).  The code(finger)
1467 font can only display numbers.  Note also that you must be careful
1468 when using code(\property) in Lyrics mode.  Because of the way strings
1469 are parsed, either put quotes around the arguments to code(\property)
1470 or be sure to leave a space on both sides of the dot.
1471
1472
1473 )
1474
1475 subsubsubsect(Voice properties)
1476
1477 description(  
1478
1479 dit(code(stemLeftBeamCount)) Specify the number of beams to draw on
1480 the left side of the next note.  
1481
1482 dit(code(stemRightBeamCount)) Specify the number of beams to draw on
1483 the right side of the next note.  
1484
1485 dit(code(beamAuto)) If set to 1 then beams are generated
1486 automatically.  If set to zero then no beams will be automatically
1487 generated.  The default value is 1.  
1488
1489 dit(code(beamAutoEnd)) Specifies when automatically generated beams
1490 can end.  See Section ref(autobeam).
1491
1492 dit(code(beamAutoBegin)) Specifies when automatically generated beams
1493 can start.  See Section ref(autobeam). 
1494
1495 dit(code(textEmptyDimension)) If set to 1 then text placed above or
1496 below the staff is assumed to have zero width.  
1497
1498 dit(code(noteheadStyle)) Selects type of note head.  Choices are
1499 code(cross), code(diamond), code(harmonic), code(transparent), and
1500 code("").  They are shown in that order below.  
1501 mudela(center)(
1502 \score{
1503   \notes{ 
1504      \property Staff.barNonAuto = 1
1505      \property Voice.noteHeadStyle = cross 
1506      a'
1507      \property Voice.noteHeadStyle = diamond
1508      a'
1509      \property Voice.noteHeadStyle = harmonic
1510      a'
1511      \property Voice.noteHeadStyle = transparent
1512      a' 
1513      \property Voice.noteHeadStyle = ""
1514      a'
1515   }
1516  \paper{ linewidth = -1.;}
1517 }
1518 )
1519
1520
1521 dit(code(restStyle)) Change the layout of rests shorter than quarter notes. 
1522 Currently, the standard layout code(restStyle="") and mensural notation
1523 code(restStyle="mensural") are available.
1524
1525 dit(code("midiInstrument")) Sets the instrument for MIDI output.  This
1526 property name must be quoted because of the embedded underscore.  If
1527 this property is not set then LilyPond will use the code(instrument)
1528 property.  This must be set to one of the strings on the list of MIDI
1529 instruments that appears in Section ref(midilist).  If you use a
1530 string which is not listed, LilyPond will silently substitute piano. 
1531
1532 dit(code(transposing)) Tranpose the MIDI output.  Set this property to
1533 the number of half-steps to transpose by.
1534
1535 dit(code(oldTieBehavior)) Set to 1 in order to get old tie behavior
1536 where ties would connect unequal pitches.  
1537
1538 dit(code(verticalDirection)) Determines the direction of stems, subscripts,
1539 beams, slurs, and ties.  Set to code(\down) to force them down,
1540 code(\up) to force them up, or code(\free) to let LilyPond decide.
1541 This can be used to distinguish between voices on the same staff.  The
1542 code(\stemdown), code(\stemup), and code(\stemboth) identifiers set
1543 this property.  See also the identifiers code(\voiceone),
1544 code(\voicetwo), code(\voicethree) and code(\voicefour).
1545
1546 dit(code(slurVerticalDirection)) Set to code(\free) for free choice of slur
1547 direction, set to code(\up) to force slurs up, set to code(\down) to
1548 force slurs down.  The shorthands code(\slurup), code(\slurdown), and
1549 code(\slurboth) are available.
1550
1551 dit(code(tieVerticalDirection)) Set to code(\free) for free choice of tie
1552 direction, set to code(\up) to force ties up, set to code(\down) to
1553 force ties down.  
1554
1555 dit(code(slurdash)) Set to 0 for normal slurs, 1 for dotted slurs, and
1556 a larger value for dashed slurs.  Identifiers code(\slurnormal) and
1557 code(\slurdotted) are predefined to set the first two settings.
1558
1559 dit(code(horizontalNoteShift)) Set to 1 to enable LilyPond to shift notes
1560 horizontally if they collide with other notes.  This is useful when
1561 typesetting many voices on one staff.  The identifier code(\shift) is
1562 defined to enable this.  If there are several voices, every voice must
1563 have a distinct value of this property or no shifting will occur.
1564
1565 dit(code(dynamicDir)) Determines location of dynamic marks.  Set to
1566 code(\up) to print marks above the staff; set to code(\down) to print
1567 marks below the staff.
1568
1569 dit(code(dynamicStyle)) Set the text style for dynamics.  
1570
1571 dit(code(textStyle)) Set the text style for superscripts and
1572 subscripts.  See above for list of text styles.
1573
1574 dit(code(textScriptPadding)) Determines the extra space added between
1575 super-/subscripted text and the closest staff line or note.
1576
1577 dit(code(fontSize)) Can be used to select smaller font sizes for
1578 music.  The normal font size is 0, and the two smaller sizes are -1
1579 and -2.
1580
1581 dit(code(abbrev)) Set length for tremolo to be used if no length is
1582 explicitly specified.
1583
1584 dit(code(tupletDirection)) Determines the direction of triplets and 
1585 other tuplets.  Set to code(\down) to force them below the staff,
1586 code(\up) to force them above, or code(\free) to let LilyPond decide.
1587
1588 dit(code(tupletVisibility)) Determines whether tuplets of notes are
1589 labelled.  Setting to 0 shows nothing; setting to 1 shows a number;
1590 setting to 2 shows a number and a bracket if there is no beam; setting
1591 to 3 shows a number, and if there is no beam it adds a bracket;
1592 setting to 4 shows both a number and a bracket unconditionally. The 
1593 code(pletoff) and code(pleton) identifiers set the property to 0 and 3, 
1594 respectively. 
1595
1596 dit(code(markScriptPadding)) Determines the extra space added between
1597 the mark and the closest staff line or note.
1598
1599 dit(code(markDirection)) Determines if marks should be printed above
1600 or below the staff. Set to code(\up) to print marks above the staff;
1601 set to code(\down) to print marks below the staff.
1602
1603 dit(code(articulationScriptPadding)) Determines the extra space added 
1604 between articulation marks, such as staccato, tenuto, trill, up/down 
1605 bow or fermata, and the closest staff line or note.
1606
1607
1608 dit(code(articulationScriptVerticalDirection)) Determines the location
1609 of articulation marks. Set to code(\up) to print marks above the
1610 staff; set to code(\down) to print marks below the staff. This
1611 property does not override explicit directions marked with code(^) or
1612 code(_) in the mudela file.
1613 )
1614
1615 subsubsubsect(Staff properties)
1616
1617 description(
1618
1619 dit(code(createInitdefaultClef)) Specify whether clefs are created on
1620 default?  (Doesn't seem to do anything.)
1621
1622 dit(code(barNumberDirection)) Set to code(\up) or code(\down) to put
1623 bar numbers above or below the staff.  
1624
1625 dit(code(barNumberHangOnClef)) Set to 1 to cause bar numbers to appear
1626 above or below the clef instead of on the bar line.
1627
1628 dit(code(barNumberScriptPadding)) Sets extra space between the bar
1629 number and the bar it labels.
1630
1631 dit(code(barSize)) Specify the height of the bar lines if it should be
1632 different than the staff height.
1633
1634 dit(code(markHangOnClef)) Set to 1 to cause marks to appear by clefs
1635 instead of by bar lines.
1636
1637 dit(code(marginDirection)) Set to code(\left) or code(\right) to
1638 specify location of marginal scripts.  
1639
1640 dit(code(marginScriptPadding)) Specify extra space for marginal scripts.
1641
1642 dit(code(forgetAccidentals)) Causes accidentals to be printed at every
1643 note instead of remembered for the duration of a measure.  
1644
1645 dit(code(noResetKey)) Do not reset the key at the start of a measure.
1646 Accidentals will be printed only once and are in effect until
1647 overridden, possibly many measures later. 
1648
1649 dit(code(staffLineLeading)) Specifies the distance (in points) between lines
1650 of the staff.  
1651
1652 dit(code(numberOfStaffLines)) Specifies the number of staff lines. The
1653 default is 5. 
1654
1655 dit(code(postBreakPadding)) Extra space in points to be added after
1656 the clef, time signature and key signature on the staff.
1657
1658 dit(code(barAtLineStart)) Set to 1 to produce a bar line after the
1659 clef at the start of each line (but not at the beginning of the
1660 music).  
1661
1662 dit(code(voltaVisibility)) Set to 0 to suppress the printing
1663 of brackets over alternate endings specified by code(\alternative).
1664
1665 dit(code(voltaSpannerDuration)) Set to an integer to control the size
1666 of the brackets printed by code(\alternative).  The integer specifies
1667 the number of whole notes duration to use for the brackets.  It seems
1668 to be rounded to the nearest measure.  This can be used to shrink the
1669 length of brackets in the situation where one alternative is very
1670 large.  It may have odd effects if the specified duration is longer
1671 than the music given in an code(\alternative).  
1672
1673 dit(code(barNonAuto)) If set to 1 then bar lines will not be printed
1674 automatically; they must be explicitly created with code(\bar) keywords.
1675 Unlike with the code(\cadenza) keyword, measures are still counted.  Bar
1676 generation will resume according to that count if this property is set to
1677 zero.  
1678
1679 dit(code(defaultClef)) Determines the default clef.  See code(\clef)
1680 keyword.
1681
1682 dit(code(nuberOfStaffLines)) Sets the number of lines that the staff has.
1683  
1684 dit(code(barAlways)) If set to 1 a bar line is drawn after each note.
1685
1686 dit(code(defaultBarType)) Sets the default type of bar line.  See
1687 code(\bar) keyword.
1688
1689 dit(code(keyoctaviation)) If set to 1, then keys are the same in all
1690 octaves.  If set to 0 then the key signature for different octaves can
1691 be different and is specified independently: code(\keysignature bes
1692 fis').  The default value is 1.  Can be set to zero with
1693 code(\specialkey) or reset to 1 with code(\normalkey).
1694
1695 dit(code(instrument) and code(instr)) If code(Staff_margin_engraver)
1696 is added to the Staff translator, then the code(instrument) property
1697 is used to label the first line of the staff and the code(instr)
1698 property is used to label subsequent lines.  If the
1699 code(midiInstrument) property is not set then code(instrument) is
1700 used to determine the instrument for MIDI output.
1701 COMMENT(This prints the instrument name on top of the staff lines.)
1702
1703 dit(code(createKeyOnClefChange)) Set to a nonempty string if you want key
1704 signatures to be printed when the clef changes.  Set to the empty string (the
1705 default) if you do not want key signatures printed.
1706
1707
1708 dit(code(timeSignatureStyle)) Changes the default two-digit layout
1709    for time signatures. The following values are recognized:
1710    description(
1711       dit(code(C)) 4/4 and 2/2 are typeset as C and struck C,
1712       respectively. All other time signatures are written with two digits.
1713       dit(code(old)) 2/2, 3/2, 2/4, 3/4, 4/4, 6/4, 9/4, 4/8, 6/8 and
1714       9/8 are typeset with old-style mensuration marks. All other time
1715       signatures are written with two digits.
1716       dit(code(1)) All time signatures are typeset with a single
1717       digit, e.g. 3/2 is written as 3.
1718       dit(code(C2/2), code(C4/4), code(old2/2), code(old3/2),
1719       code(old2/4), code(old3/4), code(old4/4), code(old6/4), 
1720       code(old9/4), code(old4/8), code(old6/8), code(old6/8alt)
1721       or code(old9/8))Tells Lilypond to use a specific symbol as 
1722       time signature.
1723    )
1724 The different time signature characters are shown below with
1725 their names:
1726 mudela(center)(
1727 \score{
1728   \notes\relative c'' {
1729 \property Voice.textStyle = typewriter
1730 \property Staff.timeSignatureStyle = "C2/2"
1731 \time 2/2; a2^"C2/2" a2 
1732 \property Staff.timeSignatureStyle = "C4/4"
1733 \time 2/2; a2^"C4/4" a2 
1734 \property Staff.timeSignatureStyle = "old2/2"
1735 \time 2/2; a2^"old2/2" a2 
1736 \property Staff.timeSignatureStyle = "old3/2"
1737 \time 2/2; a2^"old3/2" a2 
1738 \property Staff.timeSignatureStyle = "old2/4"
1739 \time 2/2; a2^"old2/4" a2 
1740 \property Staff.timeSignatureStyle = "old4/4"
1741 \time 2/2; a2^"old4/4" a2 
1742 \property Staff.timeSignatureStyle = "old6/4"
1743 \time 2/2; a2^"old6/4" a2 
1744 \property Staff.timeSignatureStyle = "old9/4"
1745 \time 2/2; a2^"old9/4" a2 
1746 \property Staff.timeSignatureStyle = "old4/8"
1747 \time 2/2; a2^"old4/8" a2 
1748 \property Staff.timeSignatureStyle = "old6/8"
1749 \time 2/2; a2^"old6/8" a2 
1750 \property Staff.timeSignatureStyle = "old6/8alt"
1751 \time 2/2; a2^"old6/8alt" a2 
1752 \property Staff.timeSignatureStyle = "old9/8"
1753 \time 2/2; a2^"old9/8" a2 
1754 }
1755    \paper{ linewidth= 4.5 \in; }
1756 }
1757 )
1758
1759 dit(code(clefStyle)) Determines how clefs are typeset. When set to
1760 code(transparent), the clefs are not printed at all, when set to
1761 code(fullSizeChanges), clef changes in the middle of a line are
1762 typeset with a full size clef. By default, clef changes are typeset in
1763 smaller size.
1764
1765 )
1766    
1767 subsubsubsect(GrandStaff properties)
1768
1769 description( 
1770
1771 dit(code(alignmentReference)) Set to code(\center) for vertical
1772 alignment reference point to be in the center of the vertical group.
1773 Set to code(\up) to put the reference point at the top of the group. 
1774
1775 dit(code(maxVerticalAlign)) Set the maximum vertical distance between
1776 staffs.
1777
1778 dit(code(minVerticalAlign)) Set the minimum vertical distance between
1779 staffs.  
1780
1781 )
1782
1783 subsubsubsect(Score properties)
1784
1785 description(
1786
1787 dit(code(skipBars)) Set to 1 to skip the empty bars that are produced
1788 by multimeasure notes and rests.  These bars will not appear on the
1789 printed output.  Set to zero (the default) to expand multimeasure
1790 notes and rests into their full length, printing the appropriate
1791 number of empty bars so that synrchonization with other voices is
1792 preserved.  COMMENT(meaning of "skip" here seems to be different from
1793 the meaning used for the keyword \skip.)
1794
1795 dit(code(beamquantisation)) Set to code(\none) for no quantization.
1796 Set to code(\normal) to quantize position and slope.  Set to
1797 code(\traditional) to avoid wedges.  These three settings are
1798 available via code(\beamposfree), code(\beamposnormal), and
1799 code(\beampostraditional).
1800
1801 dit(code(beamslopedamping)) Set to code(\none) for undamped beams.
1802 Set to code(\normal) for damped beams.  Set to code(\infinity) for
1803 beams with zero slope.  The identifiers code(\beamslopeproportional),
1804 code(\beamslopedamped), and code(\beamslopezero) each set the
1805 corresponding value.
1806
1807 dit(code(chordInversion)) Determines whether LilyPond should look for
1808 chord inversions when translating from notes to chord names.  Set to 1
1809 to find inversions.  The default is 0 which does not look for inversions.
1810
1811 )
1812
1813
1814
1815 sect(Pre-defined Identifiers)
1816 label(ident)
1817
1818 Various identifiers are defined in the initialization files to
1819 provide shorthands for some settings.  
1820
1821 description(
1822 dit(code(\aeolian)) Used as the second argument of the code(\key)
1823 keyword to get an aeolian mode. 
1824 dit(code(\break)) Force a line break in music by using a large
1825 argument for the keyword code(\penalty). 
1826 dit(code(\center)) Used for setting textalignment property.  Is set to 0.
1827 dit(code(\cr)) Start a crescendo.
1828 dit(code(\decr)) Start a decrescendo.
1829 dit(code(\dorian)) Used as the second argument of the code(\key)
1830 keyword to get a dorian mode.
1831 dit(code(\down)) Used for setting direction setting properties.  Is
1832 equal to -1.  
1833 dit(code(\f)) Print forte symbol on the preceeding note.
1834 dit(code(\ff)) Print fortissimo symbol on the preceeding note. 
1835 dit(code(\fff)) Print fortississimo symbol on preceeding note. 
1836 dit(code(\ffff)) Print fortissississimo symbol on preceeding note.
1837 dit(code(\fffff)) Print fffff symbol on preceeding note.
1838 dit(code(\ffffff)) Print ffffff symbol on preceeding note.
1839 dit(code(\fp)) Print fortepiano symbol on preceeding note. 
1840 dit(code(\free)) Used for setting direction setting properties.  Is
1841 equal to 0.  
1842 dit(code(\Gourlay)) Used for setting the paper variable
1843 code(castingalgorithm).  Is equal to 1.0.  
1844 dit(code(\infinity)) Used for setting the Score.beamslopedamping
1845 property.  Is actually equal to 10000.  
1846 dit(code(\ionian)) Used as the second argument of the code(\key)
1847 keyword to get an ionian mode. 
1848 dit(code(\left)) Used for setting textalignment property.  Is equal to -1.
1849 dit(code(\locrian)) Used as the second argument of the code(\key)
1850 keyword to get a locrian mode. 
1851 dit(code(\lydian)) Used as the second argument of the code(\key)
1852 keyword to get a lydian mode. 
1853 dit(code(\major)) Used as the second argument of the code(\key)
1854 keyword to get a major key.
1855 dit(code(\minor)) Used as the second argument of the code(\key)
1856 keyword to get a minor key.
1857 dit(code(\mixolydian)) Used as the second argument of the code(\key)
1858 keyword to get a mixolydian mode.
1859 dit(code(\mf)) Print mezzoforte symbol on preceeding note. 
1860 dit(code(\mp)) Print mezzopiano symbol on preceeding note. 
1861 dit(code(\nobreak)) Prevent a line break in music by using a large
1862 negative argument for the keyword code(\penalty). 
1863 dit(code(\none)) Used for setting Score.beamslopedamping and
1864 Score.beamquantisation properties.  Is equal to 0.
1865 dit(code(\normal)) Used for setting Score.beamslopedamping and
1866 Score.beamquantisation properties.  Is equal to 1.
1867 dit(code(\normalkey)) Select normal key signatures where each octave
1868 has the same key signature.  This sets the Staff.keyoctaviation property.
1869 dit(code(\p)) Print a piano symbol on preceeding note. 
1870 dit(code(\phrygian)) Used as the second argument of the code(\key)
1871 keyword to get a phrygian mode.
1872 dit(code(\pp)) Print pianissimo symbol on preceeding note. 
1873 dit(code(\ppp)) Print pianississimo symbol on preceeding note. 
1874 dit(code(\pppp)) Print pianissississimo symbol on preceeding note.
1875 dit(code(\ppppp)) Print ppppp symbol on preceeding note.
1876 dir(code(\pppppp)) Print pppppp symbol on preceeding note.
1877 dit(code(\rc)) Terminate a crescendo. 
1878 dit(code(\rced)) Terminate a decrescendo
1879 dit(code(\rfz)) Print a rinforzato symbol on preceeding note.
1880 dit(code(\right)) Used for setting textalignment property.  Is set to 1.
1881 dit(code(\sf)) Print a subito-forte symbol on preceeding note. 
1882 dit(code(\sff)) Print a subito-fortissimo symbol on preceeding note.
1883 dit(code(\sfz)) Print a sforzato symbol on preceeding note. 
1884 dit(code(\shiftoff)) Disable horizontal shifting of note heads that collide.  
1885 Sets the Voice.horizontalNoteShift property.
1886 dit(code(\shifton)) Enable note heads that collide with other note heads
1887 to be shifted horiztonally.  Sets the Voice.horizontalNoteShift property.
1888 dit(code(\slurboth)) Allow slurs to be above or below notes.  This
1889 sets the Voice.slurVerticalDirection property. 
1890 dit(code(\slurdown)) Force slurs to be below notes. This sets the
1891 Voice.slurVerticalDirection property. 
1892 dit(code(\slurup)) Force slurs to be above notes.  This sets the
1893 Voice.slurVerticalDirection property.  
1894 dit(code(\sp)) Print a subito-piano symbol on preceeding note.
1895 dit(code(\spp)) Print a subito-forte symbol on preceeding note.
1896 dit(code(\specialkey)) Allow keys signatures do differ in different
1897 octaves.  This sets the Staff.keyoctaviation property.  
1898 dit(code(\stemboth)) Allow stems, beams, and slurs to point either
1899 direction.  This sets the Voice.verticalDirection property. 
1900 dit(code(\stemdown)) Force stems, beams, and slurs to point down.
1901 This sets the Voice.verticalDirection property. 
1902 dit(code(\stemup)) Force stems, beams and slurs to point up.  This
1903 sets the Voice.verticalDirection property. 
1904 dit(code(\traditional)) Used for setting the 
1905 Score.beamquantisation property.  Is equal to 2.  
1906 dit(code(\up)) Used for setting various direction properties.  Is
1907 equal to 1. 
1908 dit(code(\voiceone)) Enter Voice context called code(one) and force stems down.
1909 (See code(\stemdown).)
1910 dit(code(\voicetwo)) Enter Voice context called code(two) and force stems
1911 up. (See code(\stemup).)
1912 dit(code(\voicethree)) Enter Voice context called code(three) and force stems
1913 up.  
1914 dit(code(\voicefour)) Enter Voice context called code(four), force stems down
1915 and turn on horizontal shifting.  (See code(\stemdown) and code(\shifton).)
1916 dit(code(\Wordwrap)) Used for setting the paper variable
1917 code(castingalgorithm).  Equal to 0.0.  
1918 )
1919
1920
1921 sect(Output)
1922 label(output)
1923 label(paper)
1924
1925 The output produced by LilyPond is controlled by the code(\paper) and
1926 code(\midi) keywords.  These keywords appear in the code(\score) block
1927 to indicate that printed or musical output should be produced.  If
1928 neither keyword appears in a code(\score) block, then paper output is
1929 produced but MIDI output is not produced.  
1930
1931 The contents of the code(\paper) and code(\midi) blocks can change the
1932 output in various ways.  These blocks can appear at the top level of a
1933 Mudela file to set default parameters for each type of output.  It is
1934 still necessary to explicitly specify the output type in the
1935 code(\score) blocks if you don't want the default behavior of
1936 producing only paper output.  
1937
1938 The code(\paper) and code(\midi) blocks 
1939 may begin with an optional identifier reference.  No
1940 identifier references are allowed anywhere else in the block.  
1941 The code(\paper) block can contain the code(\shape) keyword; the
1942 code(\midi) block can contain the code(\tempo) keyword.  Both of them
1943 can contain code(\translator) keywords.  The code(\paper) block can
1944 also contain identifier assignments and parameter assignments.  Unlike
1945 at the top level, these assignments must be terminated by a semicolon.
1946
1947
1948 subsect(Paper variables)
1949
1950 Warning: this section is outdated and inaccurate.  
1951
1952 There are a large number of paper variables that are used to control
1953 details of the layout.  Usually you will not want to change these
1954 variables; they are set by default to vaules that depend on the font
1955 size in use.  The only way to find out what variables are supported is
1956 to search the source code for code(get_var).  Two variables that you
1957 may want to change are code(linewidth) and code(indent).
1958
1959 In order to change the font size used for the output, many variables
1960 need to be changed.  Some identifiers and initialization files can
1961 simplify this process.  The default size is 20pt.  In order to select
1962 a different size, you must do two things.  At the top level, do
1963 code(\include "paper)var(SZ)code(.ly") where var(SZ) is the height of
1964 the staff in points.  Values presently allowed are 11, 13, 16, 20, and
1965 26.  This loads some definitions, but does not cause them to take
1966 effect.  In order to actually change the size, you must use one of the
1967 identifiers: code(\paper_eleven), code(\paper_thirteen),
1968 code(\paper_sixteen), code(\paper_twenty) or code(\paper_twentysix)
1969 inside a code(\paper) block.
1970
1971
1972 description(
1973   dit(var(integer)) If an integer appears on the left side of an
1974 assignment then a code(\font) keyword must appear on the right
1975 side.  This defines a music font at a particular size.  See Voice
1976 property code(fontSize).
1977
1978 dit(code(arithmetic_basicspace) and code(arithmetic_multiplier))
1979 The space taken by a note is determined by the formula 
1980 COMMENT(
1981
1982 )verb(arithmetic_multiplier * ( c + log2 (time) ))COMMENT(
1983
1984 ) where code(time) is the amount of time a note occupies.  The value
1985 of code(c) is chosen such that the smallest space within a measure is
1986 arithmetic_basicspace.  The smallest space is the one following the
1987 shortest note in the measure.  Typically arithmetic_basicspace is set
1988 to the width of a quarter note head.
1989
1990 dit(code(beam_dir_algorithm)) Specify algorithm for determining
1991 whether beams go up or down.  It is real valued.  If set to 2.0 then
1992 majority selection is used.  If set to 3.0, then mean selection is
1993 used based on the mean center distance.  If set to 4.0 then median
1994 selection is used, based on the median center distance.  
1995 dit(code(castingalgorithm)) 
1996 dit(code(crescendo_shorten))
1997 dit(code(forced_stem_shorten)) Stems that have been forced to go the
1998 unnatural direction are shortened by this amount.  Equal to
1999 dit(code(forced_stem_shorten0))
2000 dit(code(gourlay_energybound))
2001 dit(code(gourlay_maxmeasures)) Maximum number of measures per line
2002 when using Gourlay method.
2003 Decreasing this greatly reduces computation time.  Default value: 10.  
2004 dit(code(indent)) Sets the indentation of the first line of music.  
2005 dit(code(interbeam))
2006 dit(code(interbeam4))
2007 dit(code(interline))  The distance between two staff
2008 lines, calculated from the center of the lines.  
2009 dit(code(linewidth))  Sets the width of the lines.  If it is set to
2010 -1.0, then a single unjustified line is produced.  
2011 dit(code(notewidth)) Width of an average note head.  
2012 dit(code(output)) Specifies an alternate
2013 name for the TeX() output.  A file(.tex) extension will be added to
2014 the string you specify.
2015 dit(code(rulethickness)) Determines thickness of staff lines and bars. 
2016 dit(code(slur_clip_angle))
2017 dit(code(slur_clip_height))
2018 dit(code(slur_clip_ratio))
2019 dit(code(slur_height_limit)) Specifies the maximum height of slurs.
2020 Normally equal to staff_height.
2021 dit(code(slur_ratio)) Specifes the ratio of slur hight to slur width
2022 to aim for.  Default value is 0.3.  
2023 dit(code(slur_rc_factor))
2024 dit(code(slur_slope_damping)) Allows slurs to start and end at
2025 different heights ????  Default value is 0.5.
2026 dit(code(slur_thickness)) Specify slur thickness.  Equal to code(1.4 *
2027 \staffline) by default.  
2028 dit(code(slur_x_gap)) Horizontal space between note and slur.  Set to
2029 code(\interline / 5) by default.  
2030 dit(code(slur_x_minimum))
2031 dit(code(staffheight)) The height of the staff from the center of the
2032 bottom line to the center of the top line.  Equal to to code(4 * \interline).
2033 dit(code(stem_length)) Specify length of stems for notes in the staff
2034 that don't have beams.  
2035 dit(code(stemthickness)) Specifies the thickness of the stem lines.  
2036 dit(code(tie_slope_damping))
2037 dit(code(tie_x_minimum))
2038 )
2039
2040
2041 subsect(MIDI Instrument Names)
2042 label(midilist)
2043
2044 The MIDI instrument name is set by the code(Staff.midiInstrument)
2045 property or, if that property is not set, the code(Staff.instrument)
2046 property.  The instrument name should be chosen from this list.  If
2047 string does not exactly match one from this list then LilyPond uses
2048 the default piano.
2049
2050 COMMENT( acordina = accordion, tango accordian = concertina
2051          distortion guitar = distorted guitar
2052          orchestral strings = harp 
2053          pan flute = wood flute? )
2054
2055 verb("acoustic grand"               "contrabass"             "lead 7 (fifths)"
2056 "bright acoustic"              "tremolo strings"        "lead 8 (bass+lead)"
2057 "electric grand"               "pizzicato strings"      "pad 1 (new age)"
2058 "honky-tonk"                   "orchestral strings"     "pad 2 (warm)"
2059 "electric piano 1"             "timpani"                "pad 3 (polysynth)"
2060 "electric piano 2"             "string ensemble 1"      "pad 4 (choir)"
2061 "harpsichord"                  "string ensemble 2"      "pad 5 (bowed)"
2062 "clav"                         "synthstrings 1"         "pad 6 (metallic)"
2063 "celesta"                      "synthstrings 2"         "pad 7 (halo)"
2064 "glockenspiel"                 "choir aahs"             "pad 8 (sweep)"
2065 "music box"                    "voice oohs"             "fx 1 (rain)"
2066 "vibraphone"                   "synth voice"            "fx 2 (soundtrack)"
2067 "marimba"                      "orchestra hit"          "fx 3 (crystal)"
2068 "xylophone"                    "trumpet"                "fx 4 (atmosphere)"
2069 "tubular bells"                "trombone"               "fx 5 (brightness)"
2070 "dulcimer"                     "tuba"                   "fx 6 (goblins)"
2071 "drawbar organ"                "muted trumpet"          "fx 7 (echoes)"
2072 "percussive organ"             "french horn"            "fx 8 (sci-fi)"
2073 "rock organ"                   "brass section"          "sitar"
2074 "church organ"                 "synthbrass 1"           "banjo"
2075 "reed organ"                   "synthbrass 2"           "shamisen"
2076 "accordion"                    "soprano sax"            "koto"
2077 "harmonica"                    "alto sax"               "kalimba"
2078 "concertina"                   "tenor sax"              "bagpipe"
2079 "acoustic guitar (nylon)"      "baritone sax"           "fiddle"
2080 "acoustic guitar (steel)"      "oboe"                   "shanai"
2081 "electric guitar (jazz)"       "english horn"           "tinkle bell"
2082 "electric guitar (clean)"      "bassoon"                "agogo"
2083 "electric guitar (muted)"      "clarinet"               "steel drums"
2084 "overdriven guitar"            "piccolo"                "woodblock"
2085 "distorted guitar"             "flute"                  "taiko drum"
2086 "guitar harmonics"             "recorder"               "melodic tom"
2087 "acoustic bass"                "pan flute"              "synth drum"
2088 "electric bass (finger)"       "blown bottle"           "reverse cymbal"
2089 "electric bass (pick)"         "skakuhachi"             "guitar fret noise"
2090 "fretless bass"                "whistle"                "breath noise"
2091 "slap bass 1"                  "ocarina"                "seashore"
2092 "slap bass 2"                  "lead 1 (square)"        "bird tweet"
2093 "synth bass 1"                 "lead 2 (sawtooth)"      "telephone ring"
2094 "synth bass 2"                 "lead 3 (calliope)"      "helicopter"
2095 "violin"                       "lead 4 (chiff)"         "applause"
2096 "viola"                        "lead 5 (charang)"       "gunshot"
2097 "cello"                        "lead 6 (voice)")
2098
2099
2100
2101 subsect(Translators)
2102 label(translators)
2103
2104 The behavior of notation contexts is defined by the translators for
2105 those contexts.  The translator for a context specifies what notations
2106 are handled by the context, it specifies what other contexts the
2107 context can contain, and it sets property values for the context.  
2108 There are different translators for each type of output.  The
2109 translators for paper output are defined in file(engraver.ly).  The
2110 translators for MIDI output are defined in file(performer.ly).  
2111
2112 The first thing that appears inside a code(\translator) definition is
2113 the type of the context being created.  This is specified with the
2114 code(\type) keyword: code(\type) var(typename)code(;).  After the type
2115 of the context is specified, property assignments, the code(\name)
2116 keyword and code(\consists), code(\accepts), and code(\remove)
2117 keywords can appear in any order.  The code(\name) keyword specifies
2118 the name of the context that is handled by the translator.  If the
2119 name is not specified, the translator won't do anything.  Each
2120 code(\accepts) keyword specifies what contexts can be contained inside
2121 this one.  The code(\consists) keywords specify which notations are
2122 handled by the context.  Each code(\consists) keyword specifies the
2123 name of an engraver (for paper ouput) or performer (for MIDI output)
2124 which handles a certain notation.  The code(\remove) keyword can be
2125 used to remove a performer or engraver from the translator.
2126
2127 In the code(\paper) block, it is also possible to define translator
2128 identifiers.  Like other block identifiers, the identifier can only
2129 be used as the very first item of a translator.  In order to define
2130 such an identifier outside of code(\score), you must do
2131 verb(\paper{ foo=\translator{ ... }
2132 \score{
2133   \notes{ ... }
2134   \paper{ \translator{ \foo ... } }
2135 })
2136
2137 Some All of the standard translators have predefined identifiers,  making
2138 it easy to redefine these contexts by adding or removing items. 
2139 The predefined identifiers are:  code(StaffContext),
2140 code(RhythmicStaffContext),  code(VoiceContext),  code(ScoreContext), code(ScoreWithNumbers)
2141
2142
2143 subsubsect(Paper Types and Engravers and Pre-defined Translators)
2144
2145 Some pre-defined identifiers can simplify modification of translators.
2146 The pre-defined identifiers are:  
2147 description(
2148 dit(code(StaffContext)) Default Staff  context. 
2149 dit(code(RhythmicStaffContext)) Default RhythmicStaff  context. 
2150 dit(code(VoiceContext)) Default Voice  context.  
2151 dit(code(ScoreContext))  Default  Score context. 
2152 dit(code(ScoreWithNumbers)) Score  context with numbering at  the
2153 Score level.   
2154 dit(code(BarNumberingStaffContext)) Staff context with numbering  at
2155 the Staff level.  
2156 dit(code(HaraKiriStaffContext))  
2157 dit(code(OrchestralPartStaffContext))
2158 dit(code(OrchestralScoreContext))
2159 )
2160 Using these pre-defined values, you can remove  or add items to the
2161 translator verb(\paper{ \translator{ \StaffContext
2162                      \remove Some_engraver;
2163                      \consists Different_engraver;  }})
2164       
2165
2166
2167 There are four types for paper translators:
2168 description(
2169   dit(code(Engraver_group_engraver))
2170   dit(code(Hara_kiri_line_group_engraver))
2171   dit(code(Line_group_engraver_group))
2172   dit(code(Score_engraver))  
2173 )
2174 COMMENT( The names of these types seem somewhat confusing. )
2175
2176 The engravers for paper output are:
2177
2178 description(
2179 dit(code(Abbreviation_beam_engraver))
2180 dit(code(Bar_engraver)) Engraves bar lines.  Normally in code(Staff) and
2181 code(RhythmicStaff).  
2182 dit(code(Bar_number_engraver)) Engrave bar numbers.  These numbers
2183 appear at the start of each line.  Not normally in any translator.  Can
2184 be added to code(Score) for Score-wide numbering or to code(Staff) for
2185 numbering on each staff.  
2186
2187 dit(code(Beam_engraver)) Handles beam requests by engraving beams.  Normally
2188 appears in the code(Voice) translator.  If omitted, then notes will be printed
2189 with flags instead of beams.
2190
2191 dit(code(Beam_req_swallow_translator)) Swallows beam requests.  In
2192 code(LyricVoice).  
2193 dit(code(Chord_name_engraver)) Engraves chord names.  Normally in
2194 code(ChordNameVoice) 
2195 dit(code(Clef_engraver)) Engraves the clef symbol.  Normally in code(Staff).
2196 dit(code(Collision_engraver))
2197 dit(code(Dot_column_engraver)) Engraves dots on dotted notes shifted to the
2198 right of the note.  Normally in code(Voice).  If omitted, then dots appear on
2199 top of the notes.  
2200 dit(code(Dynamic_engraver)) Engraves dynamics symbols.  Normally in code(Voice).
2201 dit(code(Font_size_engraver))
2202 dit(code(Key_engraver)) Engraves the key signature.  Normally in code(Staff).
2203 dit(code(Local_key_engraver))
2204 dit(code(Lyric_engraver)) Engraves lyrics.  Normally in code(LyricVoice).
2205 dit(code(Multi_measure_rest_engraver)) Engraves multi-measure rests that are
2206 produced with code(R).  Normally in code(Voice).
2207 dit(code(Piano_bar_engraver))
2208 dit(code(Pitch_squash_engraver)) Treat all pitches as middle C.  Used in
2209 code(RhythmicStaff).  Note that the notes move, but the locations of
2210 accidentals stay the same. 
2211 dit(code(Priority_horizontal_align_engraver))
2212 dit(code(Repeat_engraver)) Handles repeats? In code(Staff) and 
2213    code(RhythmicStaff).
2214 dit(code(Rest_collision_engraver)) Handles collisions of rests. In code(Staff).
2215 dit(code(Rest_engraver)) Engraves rests.  Normally in code(Voice).
2216 dit(code(Rhythmic_column_engraver))
2217 dit(code(Score_priority_engraver))
2218 dit(code(Script_engraver)) Handles note ornaments generated by code(\script).
2219 Normally in code(Voice).  
2220 dit(code(Separating_line_group_engraver))
2221 dit(code(Skip_req_swallow_translator))
2222 dit(code(Slur_engraver)) Engraves slurs.  Normally in code(Voice).
2223 dit(code(Span_bar_engraver)) Engraves lines across multiple staffs.  Normally
2224 in code(Staffgroup) and code(GrandStaff).  Removing this from code(StaffGroup)
2225 gives the definition of code(ChoirStaff).  
2226 dit(code(Span_score_bar_engraver))
2227 dit(code(Staff_group_bar_engraver))
2228 dit(code(Staff_margin_engraver)) Prints the name of the instrument
2229 (specified by code(Staff.instrument) and code(Staff.instr)) at the
2230 left of the staff.  
2231 dit(code(Staff_sym_engraver))
2232 dit(code(Stem_engraver)) Engraves stems.  Normally in code(Voice).
2233 dit(code(Ties_engraver)) Engraves ties.  Normally in code(Voice).
2234 dit(code(Time_signature_engraver)) Engraves the time signature.  Normally in
2235 code(Staff) and code(RhythmicStaff).
2236 dit(code(Timing_engraver)) Responsible for synchronizing timing information
2237 from staffs.  Normally in code(Score).  In order to create polyrhythmic music,
2238 this engraver should be removed from code(Score) and placed in code(Staff).
2239 dit(code(Tuplet_engraver)) Engraves tuplet brackets?  In code(Staff).
2240 dit(code(Vertical_align_engraver)) 
2241 )
2242
2243
2244 subsubsect(MIDI Types and Performers)
2245
2246 The types available for  MIDI translators are:
2247 description(
2248 dit(code(Performer_group_performer))
2249 dit(code(Score_performer))
2250 dit(code(Staff_performer))
2251 )
2252
2253 The performers for MIDI translators are:
2254 description(
2255 dit(code(Key_performer))
2256 dit(code(Time_signature_performer))
2257 dit(code(Note_performer))
2258 dit(code(Lyric_performer))
2259 dit(code(Swallow_performer))
2260 )
2261