]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/user/introduction.itely
97d32ec4c66ccbc20567a9e624c9b8b5dbfb5d98
[lilypond.git] / Documentation / user / introduction.itely
1 @c -*- coding: utf-8; mode: texinfo; -*-
2 @c This file is part of lilypond.tely
3
4 @node Introduction
5 @chapter Introduction
6
7
8 @menu
9 * Engraving::                   
10 * Automated engraving::         
11 * What symbols to engrave?::    
12 * Music representation::        
13 * Example applications::        
14 * About this manual::           
15 @end menu
16
17
18 @node Engraving
19 @section Engraving
20
21 The art of music typography is called @emph{(plate) engraving}.  The
22 term derives from the traditional process of music printing.  Just a
23 few decades ago, sheet music was made by cutting and stamping the
24 music into a zinc or pewter plate in mirror image.  The plate would be
25 inked, the depressions caused by the cutting and stamping would hold
26 ink.  An image was formed by pressing paper to the plate.  The
27 stamping and cutting was completely done by hand.  Making a correction
28 was cumbersome, if possible at all, so the engraving had to be perfect
29 in one go.  Engraving was a highly specialized skill; a craftsman had
30 to complete around five years of training before earning the title of
31 master engraver, and another five years of experience were
32 necessary to become truly skilled.
33
34 Nowadays, all newly printed music is produced with computers.  This
35 has obvious advantages; prints are cheaper to make, and editorial work
36 can be delivered by email.  Unfortunately, the pervasive use of
37 computers has also decreased the graphical quality of scores.
38 Computer printouts have a bland, mechanical look, which makes them
39 unpleasant to play from.
40
41
42 @c introduce illustrating aspects of engraving, font...
43 The images below illustrate the difference between traditional
44 engraving and typical computer output, and the third picture shows how
45 LilyPond mimics the traditional look.  The left picture shows a scan
46 of a flat symbol from an edition published in 2000.  The center
47 depicts a symbol from a hand-engraved B@"{a}renreiter edition of the
48 same music.  The left scan illustrates typical flaws of computer
49 print: the staff lines are thin, the weight of the flat symbol matches
50 the light lines and it has a straight layout with sharp corners.  By
51 contrast, the B@"{a}renreiter flat has a bold, almost voluptuous
52 rounded look.  Our flat symbol is designed after, among others, this
53 one.  It is rounded, and its weight harmonizes with the thickness of
54 our staff lines, which are also much thicker than lines in the
55 computer edition.
56
57 @multitable @columnfractions .05 .3 .3 .3 .05
58 @item @tab
59 @ifnotinfo
60 @iftex
61 @image{henle-flat-gray,,8cm}
62 @end iftex
63 @ifnottex
64 @image{henle-flat-gray,,,png}
65 @end ifnottex
66
67 @tab
68 @iftex
69 @image{baer-flat-gray,,8.4cm}
70 @end iftex
71 @ifnottex
72 @image{baer-flat-gray,,,png}
73 @end ifnottex
74
75 @tab
76 @iftex
77 @image{lily-flat-bw,,8cm}
78 @end iftex
79 @ifnottex
80 @image{lily-flat-bw,,,png}
81 @end ifnottex
82 @end ifnotinfo
83 @ifinfo
84 @c workaround for makeinfo-4.6: line breaks and multi-column cookies
85 @image{henle-flat-bw,,,png} @image{baer-flat-bw,,,png}
86 @image{lily-flat-bw,,,png}
87 @end ifinfo
88
89 @item @tab
90 Henle (2000)
91 @tab
92 B@"{a}renreiter (1950)
93 @tab
94 LilyPond Feta font (2003)
95
96 @end multitable
97
98
99 @cindex musical symbols
100 @cindex font
101 @cindex blackness
102 @cindex balance
103
104 @c introduce illustrating aspects of engraving, spacing...
105 In spacing, the distribution of space should reflect the durations
106 between notes.  However, many modern scores adhere to the durations
107 with mathematical precision, which leads to poor results.  In the
108 next example a motive is printed twice.  It is printed once using
109 exact mathematical spacing, and once with corrections.  Can you
110 spot which fragment is which?
111
112 @cindex optical spacing
113 @c file spacing-optical.
114 @c need to include it here,  because we want two images.
115 @lilypond
116 \paper {
117   ragged-right = ##t
118   indent = #0.0
119 }
120
121 music = {
122    c'4 e''4 e'4 b'4 |
123    \stemDown
124    b'8[ e'' a' e'']
125    \stemNeutral
126    e'8[ e'8 e'8 e'8]
127 }
128
129 \score
130 {
131   \music
132   \layout {
133     \context {
134       \Staff
135       \override NoteSpacing #'stem-spacing-correction = #0.6
136     }
137   }
138 }
139 @end lilypond
140
141 @lilypond
142 \paper {
143   ragged-right = ##t
144   indent = #0.0
145 }
146
147 music = {
148    c'4 e''4 e'4 b'4 |
149    \stemDown
150    b'8[ e'' a' e'']
151    \stemNeutral
152    e'8[ e'8 e'8 e'8]
153 }
154 \score
155 {
156   \music
157   \layout {
158     \context {
159       \Staff
160       \override NoteSpacing #'stem-spacing-correction = #0.0
161       \override NoteSpacing #'same-direction-correction = #0.0
162       \override StaffSpacing #'stem-spacing-correction = #0.0
163     }
164   }
165 }
166 @end lilypond
167
168 @cindex regular rhythms
169 @cindex regular spacing
170
171 Each bar in the fragment only uses notes that are played in a
172 constant rhythm.  The spacing should reflect that.  Unfortunately, the
173 eye deceives us a little; not only does it notice the distance between
174 note heads, it also takes into account the distance between
175 consecutive stems.  As a result, the notes of an up-stem/@/down-stem
176 combination should be put farther apart, and the notes of a
177 down-stem/@/up-stem
178 combination should be put closer together, all depending on the
179 combined vertical positions of the notes.  The upper two measures are
180 printed with this correction, the lower two measures without, forming
181 down-stem/@/up-stem clumps of notes.
182
183 @cindex typography
184
185 Musicians are usually more absorbed with performing than with studying
186 the looks of a piece of music, so nitpicking about typographical details
187 may seem academical.  But it is not.  In larger pieces with monotonous
188 rhythms, spacing corrections lead to subtle variations in the layout
189 of every line, giving each one a distinct visual signature.  Without
190 this signature all lines would look the same, and they become like a
191 labyrinth.  If a musician looks away once or has a lapse in
192 concentration, the lines might lose their place on the page.
193
194 Similarly, the strong visual look of bold symbols on heavy staff lines
195 stands out better when the music is far away from the reader, for example,
196 if it is on a music stand.  A careful distribution of white space allows
197 music to be set very tightly without cluttering symbols together.  The
198 result minimizes the number of page turns, which is a great advantage.
199
200 This is a common characteristic of typography.  Layout should be
201 pretty, not only for its own sake, but especially because it helps the
202 reader in her task.  For performance material like sheet music, this is
203 of double importance: musicians have a limited amount of attention.  The
204 less attention they need for reading, the more they can focus on
205 playing the music.  In other words, better typography translates to better
206 performances.
207
208 These examples demonstrate that music typography is an art that is
209 subtle and complex, and that producing it requires considerable
210 expertise, which musicians usually do not have.  LilyPond is our
211 effort to bring the graphical excellence of hand-engraved music to the
212 computer age, and make it available to normal musicians.  We have
213 tuned our algorithms, font-designs, and program settings to produce
214 prints that match the quality of the old editions we love to see and
215 love to play from.
216
217
218
219
220 @node Automated engraving
221 @section Automated engraving
222
223 How do we go about implementing typography?  If craftsmen need over
224 ten years to become true masters, how could we simple hackers ever
225 write a program to take over their jobs?
226
227 The answer is: we cannot.  Typography relies on human judgment of
228 appearance, so people cannot be replaced completely.  However, much of
229 the dull work can be automated.  If LilyPond solves most of the common
230 situations correctly, this will be a huge improvement over existing
231 software.  The remaining cases can be tuned by hand.  Over the course
232 of years, the software can be refined to do more and more things
233 automatically, so manual overrides are less and less necessary.
234
235 When we started, we wrote the LilyPond program entirely in the C++
236 programming language; the program's functionality was set in stone by
237 the developers.  That proved to be unsatisfactory for a number of
238 reasons:
239
240 @itemize @bullet
241 @item When LilyPond makes mistakes,
242 users need to override formatting decisions.  Therefore, the user must
243 have access to the formatting engine.  Hence, rules and settings cannot
244 be fixed by us at compile-time but must be accessible for users at
245 run-time.
246
247 @item Engraving is a matter of visual judgment, and therefore a matter of
248 taste.  As knowledgeable as we are, users can disagree with our
249 personal decisions.  Therefore, the definitions of typographical style
250 must also be accessible to the user.
251
252 @item Finally, we continually refine the formatting algorithms, so we
253 need a flexible approach to rules.  The C++ language forces a certain
254 method of grouping rules that do not match well with how music
255 notation works.
256 @end itemize
257
258 These problems have been addressed by integrating an interpreter for
259 the Scheme programming language and rewriting parts of LilyPond in
260 Scheme.  The current formatting architecture is built around the
261 notion of graphical objects, described by Scheme variables and
262 functions.  This architecture encompasses formatting rules,
263 typographical style and individual formatting decisions.  The user has
264 direct access to most of these controls.
265
266 Scheme variables control layout decisions.  For example, many
267 graphical objects have a direction variable that encodes the choice
268 between up and down (or left and right).  Here you see two chords,
269 with accents and arpeggios.  In the first chord, the graphical objects
270 have all directions down (or left).  The second chord has all
271 directions up (right).
272
273 @lilypond[quote,ragged-right]
274 \new Score \with {
275    \override SpacingSpanner #'spacing-increment = #3
276    \override TimeSignature #'transparent = ##t
277 } \relative {
278    \stemDown <e g b>4_>-\arpeggio
279    \override Arpeggio #'direction = #RIGHT
280    \stemUp <e g b>4^>-\arpeggio
281 }
282 @end lilypond
283
284 @noindent
285 The process of formatting a score consists of reading and writing the
286 variables of graphical objects.  Some variables have a preset value.  For
287 example, the thickness of many lines -- a characteristic of typographical
288 style -- is a variable with a preset value.  You are free to alter this
289 value, giving your score a different typographical impression.
290
291 @lilypond[quote,ragged-right]
292 fragment = {
293    \clef bass f8 as8
294    c'4-~ c'16 as g f e16 g bes c' des'4
295 }
296 <<
297    \new Staff \fragment
298    \new Staff \with {
299       \override Beam #'thickness = #0.3
300       \override Stem #'thickness = #0.5
301       \override Bar #'thickness = #3.6
302       \override Tie #'thickness = #2.2
303       \override StaffSymbol #'thickness = #3.0
304       \override Tie #'extra-offset = #'(0 .  0.3)
305       }
306       \fragment
307 >>
308 @end lilypond
309
310 Formatting rules are also preset variables: each object has variables
311 containing procedures.  These procedures perform the actual
312 formatting, and by substituting different ones, we can change the
313 appearance of objects.  In the following example, the rule which note
314 head objects are used to produce their symbol is changed during the music
315 fragment.
316
317 @lilypond[quote,ragged-right]
318 #(set-global-staff-size 30)
319
320 #(define (mc-squared grob orig current)
321   (let* ((interfaces (ly:grob-interfaces grob))
322          (pos (ly:grob-property grob 'staff-position)))
323     (if (memq 'note-head-interface interfaces)
324         (begin
325           (ly:grob-set-property! grob 'stencil ly:text-interface::print)
326           (ly:grob-set-property! grob 'font-family 'roman)
327           (ly:grob-set-property! grob 'text
328             (make-raise-markup -0.5
329               (case pos
330                 ((-5) (make-simple-markup "m"))
331                 ((-3) (make-simple-markup "c "))
332                 ((-2) (make-smaller-markup (make-bold-markup "2")))
333                 (else (make-simple-markup "bla")))))))))
334
335 \new Voice \relative c' {
336    \stemUp
337    \set autoBeaming = ##f
338    \time 2/4
339    <d f g>4
340    \once \override NoteHead #'stencil = #ly:note-head::brew-ez-stencil
341    \once \override NoteHead #'font-size = #-7
342    \once \override NoteHead #'font-family = #'sans
343    \once \override NoteHead #'font-series = #'bold
344    <d f g>
345    \once \override NoteHead #'style = #'cross
346    <d f g>
347    \applyOutput #'Voice #mc-squared
348    <d f g>
349    <<
350       { d8[ es-( fis^^ g] fis2-) }
351       \repeat unfold 5 { \applyOutput #'Voice #mc-squared s8 }
352    >>
353 }
354 @end lilypond
355
356
357
358 @node What symbols to engrave?
359 @section What symbols to engrave?
360
361 @cindex engraving
362 @cindex typography
363
364 The formatting process decides where to place
365 symbols.  However, this can only be done once it is decided @emph{what}
366 symbols should be printed, in other words what notation to use.
367
368 Common music notation is a system of recording music that has evolved
369 over the past 1000 years.  The form that is now in common use dates
370 from the early renaissance.  Although the basic form (i.e., note heads on a
371 5-line staff) has not changed, the details still evolve to express the
372 innovations of contemporary notation.  Hence, it encompasses some 500
373 years of music.  Its applications range from monophonic melodies to
374 monstrous counterpoints for large orchestras.
375
376 How can we get a grip on such a many-headed beast, and force it into
377 the confines of a computer program?  Our solution is to break up the
378 problem of notation (as opposed to engraving, i.e., typography) into
379 digestible and programmable chunks: every type of symbol is handled by
380 a separate module, a so-called plug-in.  Each plug-in is completely
381 modular and independent, so each can be developed and improved
382 separately.  Such plug-ins are called @code{engraver}s, by analogy with
383 craftsmen who translate musical ideas to graphic symbols.
384
385 In the following example, we see how we start out with a plug-in for
386 note heads, the @code{Note_heads_engraver}.
387
388 @lilypond[quote,ragged-right]
389 \include "engraver-example.ily"
390
391 \score {
392    \topVoice
393    \layout {
394    \context {
395       \Voice
396       \remove "Stem_engraver"
397       \remove "Phrasing_slur_engraver"
398       \remove "Slur_engraver"
399       \remove "Script_engraver"
400       \remove "Beam_engraver"
401       \remove "Auto_beam_engraver"
402    }
403    \context {
404       \Staff
405       \remove "Accidental_engraver"
406       \remove "Key_engraver"
407       \remove "Clef_engraver"
408       \remove "Bar_engraver"
409       \remove "Time_signature_engraver"
410       \remove "Staff_symbol_engraver"
411       \consists "Pitch_squash_engraver"
412    }
413 }
414 }
415 @end lilypond
416
417 @noindent
418 Then a @code{Staff_symbol_engraver} adds the staff
419
420 @lilypond[quote,ragged-right]
421 \include "engraver-example.ily"
422
423 \score {
424   \topVoice
425   \layout {
426     \context {
427       \Voice
428       \remove "Stem_engraver"
429       \remove "Phrasing_slur_engraver"
430       \remove "Slur_engraver"
431       \remove "Script_engraver"
432       \remove "Beam_engraver"
433       \remove "Auto_beam_engraver"
434     }
435     \context {
436       \Staff
437       \remove "Accidental_engraver"
438       \remove "Key_engraver"
439       \remove "Clef_engraver"
440       \remove "Bar_engraver"
441       \consists "Pitch_squash_engraver"
442       \remove "Time_signature_engraver"
443     }
444   }
445 }
446 @end lilypond
447
448 @noindent
449 the @code{Clef_engraver} defines a reference point for the staff
450
451 @lilypond[quote,ragged-right]
452 \include "engraver-example.ily"
453
454 \score {
455   \topVoice
456   \layout {
457     \context {
458       \Voice
459       \remove "Stem_engraver"
460       \remove "Phrasing_slur_engraver"
461       \remove "Slur_engraver"
462       \remove "Script_engraver"
463       \remove "Beam_engraver"
464       \remove "Auto_beam_engraver"
465     }
466     \context {
467       \Staff
468       \remove "Accidental_engraver"
469       \remove "Key_engraver"
470       \remove "Bar_engraver"
471       \remove "Time_signature_engraver"
472     }
473   }
474 }
475 @end lilypond
476
477 @noindent
478 and the @code{Stem_engraver} adds stems.
479
480 @lilypond[quote,ragged-right]
481 \include "engraver-example.ily"
482
483 \score {
484   \topVoice
485   \layout {
486     \context {
487       \Voice
488       \remove "Phrasing_slur_engraver"
489       \remove "Slur_engraver"
490       \remove "Script_engraver"
491       \remove "Beam_engraver"
492       \remove "Auto_beam_engraver"
493     }
494     \context {
495       \Staff
496       \remove "Accidental_engraver"
497       \remove "Key_engraver"
498       \remove "Bar_engraver"
499       \remove "Time_signature_engraver"
500     }
501   }
502 }
503 @end lilypond
504
505 The @code{Stem_engraver} is notified of any note head coming along.
506 Every time one (or more, for a chord) note head is seen, a stem
507 object is created and connected to the note head.  By adding
508 engravers for beams, slurs, accents, accidentals, bar lines,
509 time signature, and key signature, we get a complete piece of
510 notation.
511
512 @lilypond[quote,ragged-right]
513 \include "engraver-example.ily"
514 \score { \topVoice }
515 @end lilypond
516
517 This system works well for monophonic music, but what about
518 polyphony?  In polyphonic notation, many voices can share a staff.
519
520 @lilypond[quote,ragged-right]
521 \include "engraver-example.ily"
522 \new Staff << \topVoice \\ \botVoice >>
523 @end lilypond
524
525 In this situation, the accidentals and staff are shared, but the stems,
526 slurs, beams, etc., are private to each voice.  Hence, engravers should
527 be grouped.  The engravers for note heads, stems, slurs, etc., go into a
528 group called `Voice context,' while the engravers for key, accidental,
529 bar, etc., go into a group called `Staff context.'  In the case of
530 polyphony, a single Staff context contains more than one Voice context.
531 Similarly, multiple Staff contexts can be put into a single Score
532 context.  The Score context is the top level notation context.
533
534 @seealso
535
536 Program reference: @internalsref{Contexts}.
537
538 @lilypond[quote,ragged-right]
539 \include "engraver-example.ily"
540 \score {
541    <<
542       \new Staff << \topVoice \\ \botVoice >>
543       \new Staff << \pah \\ \hoom >>
544    >>
545 }
546 @end lilypond
547
548 @node Music representation
549 @section Music representation
550
551 Ideally, the input format for any high-level formatting system is an
552 abstract description of the content.  In this case, that would be the
553 music itself.  This poses a formidable problem: how can we define what
554 music really is? Instead of trying to find an answer, we have reversed
555 the question.  We write a program capable of producing sheet music,
556 and adjust the format to be as lean as possible.  When the format can
557 no longer be trimmed down, by definition we are left with content
558 itself.  Our program serves as a formal definition of a music
559 document.
560
561 The syntax is also the user-interface for LilyPond, hence it is easy
562 to type
563
564 @example
565 c'4 d'8
566 @end example
567
568 @noindent
569 a quarter note C1 (middle C) and an eighth note D1 (D above middle C)
570
571 @lilypond[quote,fragment]
572 c'4 d'8
573 @end lilypond
574
575 On a microscopic scale, such syntax is easy to use.  On a larger
576 scale, syntax also needs structure.  How else can you enter complex
577 pieces like symphonies and operas?  The structure is formed by the
578 concept of music expressions: by combining small fragments of music
579 into larger ones, more complex music can be expressed.  For example
580
581 @lilypond[quote,verbatim,fragment,relative=1]
582 c4
583 @end lilypond
584
585 @noindent
586 Chords can be constructed with @code{<<} and @code{>>} enclosing the notes
587
588 @c < > is not a music expression,
589 @c so we use <<>> iso. <> to drive home the point of
590 @c expressions.  Don't change this back --hwn.
591 @example
592 <<c4 d4 e4>>
593 @end example
594
595 @lilypond[quote,fragment,relative=1]
596 \new Voice { <<c4 d4 e>> }
597 @end lilypond
598
599 @noindent
600 This expression is put in sequence by enclosing it in curly braces
601 @code{@{@tie{}@dots{}@tie{}@}}
602
603 @example
604 @{ f4 <<c4 d4 e4>> @}
605 @end example
606
607 @lilypond[quote,relative=1,fragment]
608 { f4 <<c d e4>> }
609 @end lilypond
610
611 @noindent
612 The above is also an expression, and so it may be combined
613 again with another simultaneous expression (a half note) using <<,
614 @code{\\}, and >>
615
616 @example
617 << g2 \\ @{ f4 <<c4 d4 e4>> @} >>
618 @end example
619
620 @lilypond[quote,fragment,relative=2]
621 \new Voice { << g2 \\ { f4 <<c d e>> } >> }
622 @end lilypond
623
624 Such recursive structures can be specified neatly and formally in a
625 context-free grammar.  The parsing code is also generated from this
626 grammar.  In other words, the syntax of LilyPond is clearly and
627 unambiguously defined.
628
629 User-interfaces and syntax are what people see and deal with
630 most.  They are partly a matter of taste, and also subject of much
631 discussion.  Although discussions on taste do have their merit, they
632 are not very productive.  In the larger picture of LilyPond, the
633 importance of input syntax is small: inventing neat syntax is easy, while
634 writing decent formatting code is much harder.  This is also
635 illustrated by the line-counts for the respective components: parsing
636 and representation take up less than 10% of the source code.
637
638
639 @node Example applications
640 @section Example applications
641
642 We have written LilyPond as an experiment of how to condense the art
643 of music engraving into a computer program.  Thanks to all that hard
644 work, the program can now be used to perform useful tasks.  The
645 simplest application is printing notes.
646
647 @lilypond[quote,relative=1,fragment]
648 \time 2/4 c4 c g'4 g a4 a g2
649 @end lilypond
650
651 @noindent
652 By adding chord names and lyrics we obtain a lead sheet.
653
654 @lilypond[quote,ragged-right]
655 <<
656    \chords { c2 c f2 c }
657    \new Staff \relative c' { \time 2/4 c4 c g'4 g a4 a g2 }
658    \new Lyrics \lyricmode { twin4 kle twin kle lit tle star2 }
659 >>
660 @end lilypond
661
662 Polyphonic notation and piano music can also be printed.  The following
663 example combines some more exotic constructs.
664
665 @lilypondfile[quote,ragged-right]{screech-boink.ly}
666
667 The fragments shown above have all been written by hand, but that is
668 not a requirement.  Since the formatting engine is mostly automatic, it
669 can serve as an output means for other programs that manipulate
670 music.  For example, it can also be used to convert databases of
671 musical fragments to images for use on websites and multimedia
672 presentations.
673
674 This manual also shows an application: the input format is text, and
675 can therefore be easily embedded in other text-based formats such as
676 La@TeX{}, HTML, or in the case of this manual, Texinfo.  By means of a
677 special program, the input fragments can be replaced by music images
678 in the resulting PDF or HTML output files.  This makes it easy
679 to mix music and text in documents.
680
681
682
683 @node About this manual
684 @section About this manual
685
686 The manual is divided into the following chapters:
687 @itemize @bullet
688
689 @item
690 @ifhtml
691 The
692 @end ifhtml
693 @emph{@ref{Tutorial}}
694 gives a gentle introduction to typesetting music.  First time
695 users should start here.
696
697 @item
698 @emph{@ref{Working on LilyPond projects}}
699 demonstrates practical uses of LilyPond.
700
701 @item
702 @emph{@ref{Running LilyPond}}
703 shows how to run LilyPond and its helper
704 programs.  In addition, this section explains how to upgrade input
705 files from previous versions of LilyPond.
706
707 @item
708 @emph{@ref{Basic notation}}
709 discusses topics grouped by notation construct.  This section gives
710 details about basic notation that will be useful in almost any
711 notation project.
712
713 @item
714 @emph{@ref{Instrument-specific notation}}
715 discusses topics grouped by notation construct.  This section gives
716 details about special notation that will only be useful for particular
717 instrument (or vocal) groups.
718
719 @item
720 @emph{@ref{Advanced notation}}
721 discusses topics grouped by notation construct.  This section gives
722 details about complicated or unusual notation.
723
724 @item
725 @emph{@ref{Changing defaults}}
726 explains how to fine tune layout.
727
728 @item
729 @emph{@ref{Non-musical notation}}
730 discusses non-musical output such as titles, multiple movements,
731 and how to select which MIDI instruments to use.
732
733 @item
734 @emph{@ref{Spacing issues}}
735 discusses issues which affect the global output, such as selecting
736 paper size or specifying page breaks.
737
738 @item
739 @emph{@ref{LilyPond-book}} explains the details behind creating
740 documents with in-line music examples, like this manual.
741
742 @item
743 @emph{@ref{Converting from other formats}}
744 explains how to run the conversion programs.  These programs
745 are supplied with the LilyPond package, and convert a variety of music
746 formats to the @code{.ly} format.
747
748 @item
749 @ifhtml
750 The
751 @end ifhtml
752 @emph{@ref{Literature list}}
753 contains a set of useful reference books for those who wish to know
754 more on notation and engraving.
755
756 @item
757 @emph{@ref{Example templates}}
758 provides templates of LilyPond pieces.  Just cut and paste a
759 template into a file, add notes, and you're done!
760
761 @end itemize
762
763
764 Once you are an experienced user, you can use the manual as reference:
765 there is an extensive index@footnote{If you are looking for something,
766 and you cannot find it in the manual, that is considered a bug.  In
767 that case, please file a bug report.}, but the document is also
768 available in
769 @iftex
770 a big HTML page,
771 @end iftex
772 @ifhtml
773 @uref{source/Documentation/user/lilypond.html, one big page},
774 @end ifhtml
775 which can be searched easily using the search facility of a web
776 browser.
777 @cindex search in manual
778 @cindex using the manual
779
780 @c FIXME:
781 @c add/integrate glossary, put in list above
782 If you are not familiar with music notation or music terminology
783 (especially if you are a non-native English speaker), it is advisable
784 to consult the glossary as well.
785 @iftex
786 The music glossary explains musical terms, and includes translations
787 to various languages.  It is a separate document, available in HTML
788 and PDF.
789 @end iftex
790 @ifnottex
791 The @ref{Top,Music glossary,,music-glossary}, explains musical terms and
792 includes translations to various languages.  It is also available in
793 PDF.
794 @end ifnottex
795 @cindex idiom
796 @cindex jargon
797 @cindex terminology
798 @cindex foreign languages
799 @cindex language
800
801
802 This manual is not complete without a number of other documents.  They
803 are not available in print, but should be included with the
804 documentation package for your platform
805
806 @itemize @bullet
807 @item
808 @iftex
809 Program reference
810 @end iftex
811 @ifnottex
812 @ref{Top,Program reference,,lilypond-internals}.
813 @end ifnottex
814
815 The program reference is a set of heavily cross linked HTML pages,
816 which document the nitty-gritty details of each and every LilyPond
817 class, object, and function.  It is produced directly from the
818 formatting definitions used.
819
820 Almost all formatting functionality that is used internally, is
821 available directly to the user.  For example, all variables that
822 control thickness values, distances, etc., can be changed in input
823 files.  There are a huge number of formatting options, and all of them
824 are described in this document.  Each section of the
825 notation manual has a @b{See also} subsection, which refers to the
826 generated documentation.  In the HTML document, these subsections
827 have clickable links.
828
829 @cindex snippets
830 @item
831 @ifnothtml
832 Various input examples.
833 @end ifnothtml
834 @ifhtml
835 @c Works, but link name is not so nice; so write-out macro
836 @c @inputfileref{input/test,Various input examples}.
837 @uref{source/input/test/collated-files.html,Various input examples}.
838 @end ifhtml
839
840 This collection of files shows various tips and tricks, and is
841 available as a big HTML document, with pictures and explanatory texts
842 included.
843
844 @item
845 @ifnothtml
846 The regression tests.
847 @end ifnothtml
848 @ifhtml
849 @c Works, but link name is not so nice; so write-out macro
850 @c @inputfileref{input/regression,The regression tests}.
851 @uref{source/input/regression/collated-files.html,The regression tests}.
852 @end ifhtml
853
854 This collection of files tests each notation and engraving feature of
855 LilyPond in one file.  The collection is primarily there to help us
856 debug problems, but it can be instructive to see how we exercise the
857 program.  The format is similar to the tips and tricks document.
858 @end itemize
859
860
861 In all HTML documents that have music fragments embedded, the LilyPond
862 input that was used to produce that image can be viewed by clicking
863 the image.
864
865 The location of the documentation files that are mentioned here can
866 vary from system to system.  On occasion, this manual refers to
867 initialization and example files.  Throughout this manual, we refer to
868 input files relative to the top-directory of the source archive.  For
869 example, @file{input/@/test/@/bla@/.ly} may refer to the file
870 @file{lilypond@/-2.8.0/@/input/@/test/@/bla@/.ly}.  On binary packages
871 for the Unix platform, the documentation and examples can typically be
872 found somewhere below @file{/usr/@/share/@/doc/@/lilypond/}.
873 Initialization files, for example @file{scm/@/lily@/.scm}, or
874 @file{ly/@/engraver@/-init@/.ly}, are usually found in the directory
875 @file{/usr/@/share/@/lilypond/}.
876
877 @cindex adjusting output
878 @cindex variables
879 @cindex properties
880 @cindex lilypond-internals
881 @cindex internal documentation
882 @cindex Scheme
883 @cindex extending lilypond
884 @cindex index
885
886 Finally, this and all other manuals, are available online both as PDF
887 files and HTML from the web site, which can be found at
888 @uref{http://@/www@/.lilypond@/.org/}.
889