1 @c -*- coding: utf-8; mode: texinfo; -*-
4 Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
6 When revising a translation, copy the HEAD committish of the
7 version that you are working on. See TRANSLATION for details.
15 This chapter introduces readers to LilyPond and the
20 * About the documentation::
27 This section covers the overall goals and architecture of
32 * Automated engraving::
33 * What symbols to engrave?::
34 * Music representation::
35 * Example applications::
40 @unnumberedsubsec Engraving
43 @cindex typography, music
44 @cindex music typography
45 @cindex plate engraving
46 @cindex music engraving
48 The art of music typography is called @emph{(plate) engraving}.
49 The term derives from the traditional process of music printing.
50 Just a few decades ago, sheet music was made by cutting and
51 stamping the music into a zinc or pewter plate in mirror image.
52 The plate would be inked, and the depressions caused by the cutting
53 and stamping would hold ink. An image was formed by pressing
54 paper to the plate. The stamping and cutting was done completely
55 by hand. Making a correction was cumbersome, if possible at all,
56 so the engraving had to be perfect in one go. Engraving was a
57 highly specialized skill; a craftsman had to complete around five
58 years of training before earning the title of master engraver, and
59 another five years of experience were necessary to become truly
62 Nowadays, all newly printed music is produced with computers.
63 This has obvious advantages: prints are cheaper to make, and
64 editorial work can be delivered by email. Unfortunately, the
65 pervasive use of computers has also decreased the graphical
66 quality of scores. Computer printouts have a bland, mechanical
67 look, which makes them unpleasant to play from.
70 @c introduce illustrating aspects of engraving, font...
71 The images below illustrate the difference between traditional
72 engraving and typical computer output, and the third picture shows
73 how LilyPond mimics the traditional look. The left picture shows
74 a scan of a flat symbol from an edition published in 2000. The
75 center depicts a symbol from a hand-engraved Bärenreiter edition
76 of the same music. The left scan illustrates typical flaws of
77 computer print: the staff lines are thin, the weight of the flat
78 symbol matches the light lines and it has a straight layout with
79 sharp corners. By contrast, the Bärenreiter flat has a bold,
80 almost voluptuous rounded look. Our flat symbol is designed
81 after this one, among others. It is rounded, and its weight
82 harmonizes with the thickness of our staff lines, which are also
83 much thicker than lines in the computer edition.
85 @multitable @columnfractions .125 .25 .25 .25 .125
89 @image{henle-flat-gray,,4cm}
92 @image{henle-flat-gray,,,png}
97 @image{baer-flat-gray,,4cm}
100 @image{baer-flat-gray,,,png}
105 @image{lily-flat-bw,,4cm}
108 @image{lily-flat-bw,,,png}
112 @image{lilypond/henle-flat-bw,,,,png} @image{lilypond/baer-flat-bw,,,,png}
113 @image{lilypond/lily-flat-bw,,,,png}
121 LilyPond Feta font (2003)
126 @cindex musical symbols
131 @c introduce illustrating aspects of engraving, spacing...
132 In spacing, the distribution of space should reflect the durations
133 between notes. However, many modern scores adhere to the
134 durations with mathematical precision, which leads to poor
135 results. In the next example a motive is printed twice: once
136 using exact mathematical spacing, and once with corrections. Can
137 you spot which fragment is which?
139 @cindex optical spacing
140 @c file spacing-optical.
141 @c need to include it here, because we want two images.
162 \override NoteSpacing #'stem-spacing-correction = #0.6
187 \override NoteSpacing #'stem-spacing-correction = #0.0
188 \override NoteSpacing #'same-direction-correction = #0.0
189 \override StaffSpacing #'stem-spacing-correction = #0.0
195 @cindex regular rhythms
196 @cindex regular spacing
197 @cindex spacing, regular
199 Each bar in the fragment only uses notes that are played in a
200 constant rhythm. The spacing should reflect that. Unfortunately,
201 the eye deceives us a little; not only does it notice the distance
202 between note heads, it also takes into account the distance
203 between consecutive stems. As a result, the notes of an
204 up-stem/@/down-stem combination should be put farther apart, and
205 the notes of a down-stem/@/up-stem combination should be put
206 closer together, all depending on the combined vertical positions
207 of the notes. The upper two measures are printed with this
208 correction, the lower two measures, however, form
209 down-stem/@/up-stem clumps of notes.
212 Musicians are usually more absorbed with performing than with
213 studying the looks of a piece of music, so nitpicking
214 typographical details may seem academic. But it is not. In
215 larger pieces with monotonous rhythms, spacing corrections lead to
216 subtle variations in the layout of every line, giving each one a
217 distinct visual signature. Without this signature all lines would
218 look the same, and they become like a labyrinth. A distinct visual
219 signature helps to keep musicians from losing their place on the
220 page when they look away or have a lapse in concentration.
222 Similarly, the strong visual look of bold symbols on heavy staff
223 lines stands out better when the music is far away from the
224 reader: for example, if it is on a music stand. A careful
225 distribution of white space allows music to be set very tightly
226 without crowding symbols together. The result minimizes the
227 number of page turns, which is a great advantage.
229 This is a common characteristic of typography. Layout should be
230 pretty, not only for its own sake, but especially because it helps
231 the reader in her task. For performance material like sheet
232 music, this is of double importance: musicians have a limited
233 amount of attention. The less attention they need for reading,
234 the more they can focus on playing the music. In other words,
235 better typography translates to better performances.
237 These examples demonstrate that music typography is an art that is
238 subtle and complex, and that producing it requires considerable
239 expertise, which musicians usually do not have. LilyPond is our
240 effort to bring the graphical excellence of hand-engraved music to
241 the computer age, and make it available to normal musicians. We
242 have tuned our algorithms, font-designs, and program settings to
243 produce prints that match the quality of the old editions we love
244 to see and love to play from.
247 @node Automated engraving
248 @unnumberedsubsec Automated engraving
250 @cindex engraving, automated
251 @cindex automated engraving
253 How do we go about implementing typography? If craftsmen need
254 over ten years to become true masters, how could we simple hackers
255 ever write a program to take over their jobs?
257 The answer is: we cannot. Typography relies on human judgment of
258 appearance, so people cannot be replaced completely. However,
259 much of the dull work can be automated. If LilyPond solves most
260 of the common situations correctly, this will be a huge
261 improvement over existing software. The remaining cases can be
262 tuned by hand. Over the course of years, the software can be
263 refined to do more and more things automatically, so manual
264 overrides are less and less necessary.
266 When we started, we wrote the LilyPond program entirely in the C++
267 programming language; the program's functionality was set in stone
268 by the developers. That proved to be unsatisfactory for a number
273 @item When LilyPond makes mistakes, users need to override
274 formatting decisions. Therefore, the user must have access to the
275 formatting engine. Hence, rules and settings cannot be fixed by
276 us at compile-time but must be accessible for users at run-time.
278 @item Engraving is a matter of visual judgment, and therefore a
279 matter of taste. As knowledgeable as we are, users can disagree
280 with our personal decisions. Therefore, the definitions of
281 typographical style must also be accessible to the user.
283 @item Finally, we continually refine the formatting algorithms, so
284 we need a flexible approach to rules. The C++ language forces a
285 certain method of grouping rules that cannot readily be applied to
286 formatting music notation.
290 @cindex Scheme programming language
292 These problems have been addressed by integrating an interpreter
293 for the Scheme programming language and rewriting parts of
294 LilyPond in Scheme. The current formatting architecture is built
295 around the notion of graphical objects, described by Scheme
296 variables and functions. This architecture encompasses formatting
297 rules, typographical style and individual formatting decisions.
298 The user has direct access to most of these controls.
300 Scheme variables control layout decisions. For example, many
301 graphical objects have a direction variable that encodes the
302 choice between up and down (or left and right). Here you see two
303 chords, with accents and arpeggios. In the first chord, the
304 graphical objects have all directions down (or left). The second
305 chord has all directions up (right).
307 @lilypond[quote,ragged-right]
309 \override SpacingSpanner #'spacing-increment = #3
310 \override TimeSignature #'transparent = ##t
312 \stemDown <e g b>4_>-\arpeggio
313 \override Arpeggio #'direction = #RIGHT
314 \stemUp <e g b>4^>-\arpeggio
318 @cindex score formatting
319 @cindex formatting a score
320 @cindex formatting rules
323 The process of formatting a score consists of reading and writing
324 the variables of graphical objects. Some variables have a preset
325 value. For example, the thickness of many lines -- a
326 characteristic of typographical style -- is a variable with a
327 preset value. You are free to alter this value, giving your score
328 a different typographical impression.
330 @lilypond[quote,ragged-right]
333 c'4-~ c'16 as g f e16 g bes c' des'4
338 \override Beam #'thickness = #0.3
339 \override Stem #'thickness = #0.5
340 \override Bar #'thickness = #3.6
341 \override Tie #'thickness = #2.2
342 \override StaffSymbol #'thickness = #3.0
343 \override Tie #'extra-offset = #'(0 . 0.3)
349 Formatting rules are also preset variables: each object has
350 variables containing procedures. These procedures perform the
351 actual formatting, and by substituting different ones, we can
352 change the appearance of objects. In the following example, the
353 rule governing which note head objects are used to produce the
354 note head symbol is changed during the music fragment.
356 @lilypond[quote,ragged-right]
357 #(set-global-staff-size 30)
359 #(define (mc-squared grob orig current)
360 (let* ((interfaces (ly:grob-interfaces grob))
361 (pos (ly:grob-property grob 'staff-position)))
362 (if (memq 'note-head-interface interfaces)
364 (ly:grob-set-property! grob 'stencil
365 (grob-interpret-markup grob
366 (make-lower-markup 0.5
370 ((-2) (make-smaller-markup (make-bold-markup "2")))
373 \new Voice \relative c' {
375 \set autoBeaming = ##f
378 \once \override NoteHead #'stencil = #ly:note-head::brew-ez-stencil
379 \once \override NoteHead #'font-size = #-7
380 \once \override NoteHead #'font-family = #'sans
381 \once \override NoteHead #'font-series = #'bold
383 \once \override NoteHead #'style = #'cross
385 \applyOutput #'Voice #mc-squared
388 { d8[ es-( fis^^ g] fis2-) }
389 \repeat unfold 5 { \applyOutput #'Voice #mc-squared s8 }
395 @node What symbols to engrave?
396 @unnumberedsubsec What symbols to engrave?
403 The formatting process decides where to place symbols. However,
404 this can only be done once it is decided @emph{what} symbols
405 should be printed -- in other words, what notation to use.
407 Common music notation is a system of recording music that has
408 evolved over the past 1000 years. The form that is now in common
409 use dates from the early Renaissance. Although the basic form
410 (i.e., note heads on a 5-line staff) has not changed, the details
411 still evolve to express the innovations of contemporary notation.
412 Hence, common music notation encompasses some 500 years of music.
413 Its applications range from monophonic melodies to monstrous
414 counterpoints for a large orchestra.
416 How can we get a grip on such a seven-headed beast, and force it
417 into the confines of a computer program? Our solution is to break
418 up the problem of notation (as opposed to engraving, i.e.,
419 typography) into digestible and programmable chunks: every type of
420 symbol is handled by a separate module, a so-called plug-in. Each
421 plug-in is completely modular and independent, so each can be
422 developed and improved separately. Such plug-ins are called
423 @code{engraver}s, by analogy with craftsmen who translate musical
424 ideas to graphic symbols.
426 In the following example, we start out with a plug-in for note
427 heads, the @code{Note_heads_engraver}.
429 @lilypond[quote,ragged-right]
430 \include "engraver-example.ily"
437 \remove "Stem_engraver"
438 \remove "Phrasing_slur_engraver"
439 \remove "Slur_engraver"
440 \remove "Script_engraver"
441 \remove "Beam_engraver"
442 \remove "Auto_beam_engraver"
446 \remove "Accidental_engraver"
447 \remove "Key_engraver"
448 \remove "Clef_engraver"
449 \remove "Bar_engraver"
450 \remove "Time_signature_engraver"
451 \remove "Staff_symbol_engraver"
452 \consists "Pitch_squash_engraver"
459 Then a @code{Staff_symbol_engraver} adds the staff,
461 @lilypond[quote,ragged-right]
462 \include "engraver-example.ily"
469 \remove "Stem_engraver"
470 \remove "Phrasing_slur_engraver"
471 \remove "Slur_engraver"
472 \remove "Script_engraver"
473 \remove "Beam_engraver"
474 \remove "Auto_beam_engraver"
478 \remove "Accidental_engraver"
479 \remove "Key_engraver"
480 \remove "Clef_engraver"
481 \remove "Bar_engraver"
482 \consists "Pitch_squash_engraver"
483 \remove "Time_signature_engraver"
490 the @code{Clef_engraver} defines a reference point for the staff,
492 @lilypond[quote,ragged-right]
493 \include "engraver-example.ily"
500 \remove "Stem_engraver"
501 \remove "Phrasing_slur_engraver"
502 \remove "Slur_engraver"
503 \remove "Script_engraver"
504 \remove "Beam_engraver"
505 \remove "Auto_beam_engraver"
509 \remove "Accidental_engraver"
510 \remove "Key_engraver"
511 \remove "Bar_engraver"
512 \remove "Time_signature_engraver"
519 and the @code{Stem_engraver} adds stems.
521 @lilypond[quote,ragged-right]
522 \include "engraver-example.ily"
529 \remove "Phrasing_slur_engraver"
530 \remove "Slur_engraver"
531 \remove "Script_engraver"
532 \remove "Beam_engraver"
533 \remove "Auto_beam_engraver"
537 \remove "Accidental_engraver"
538 \remove "Key_engraver"
539 \remove "Bar_engraver"
540 \remove "Time_signature_engraver"
547 The @code{Stem_engraver} is notified of any note head coming
548 along. Every time one (or more, for a chord) note head is seen, a
549 stem object is created and connected to the note head. By adding
550 engravers for beams, slurs, accents, accidentals, bar lines, time
551 signature, and key signature, we get a complete piece of notation.
553 @lilypond[quote,ragged-right]
554 \include "engraver-example.ily"
559 @cindex engraving multiple voices
562 This system works well for monophonic music, but what about
563 polyphony? In polyphonic notation, many voices can share a staff.
565 @lilypond[quote,ragged-right]
566 \include "engraver-example.ily"
567 \new Staff << \topVoice \\ \botVoice >>
570 In this situation, the accidentals and staff are shared, but the
571 stems, slurs, beams, etc., are private to each voice. Hence,
572 engravers should be grouped. The engravers for note heads, stems,
573 slurs, etc., go into a group called @q{Voice context,} while the
574 engravers for key, accidental, bar, etc., go into a group called
575 @q{Staff context.} In the case of polyphony, a single Staff
576 context contains more than one Voice context. Similarly, multiple
577 Staff contexts can be put into a single Score context. The Score
578 context is the top level notation context.
582 Internals Reference: @rinternals{Contexts}.
585 @lilypond[quote,ragged-right]
586 \include "engraver-example.ily"
589 \new Staff << \topVoice \\ \botVoice >>
590 \new Staff << \pah \\ \hoom >>
596 @node Music representation
597 @unnumberedsubsec Music representation
600 @cindex recursive structures
602 Ideally, the input format for any high-level formatting system is
603 an abstract description of the content. In this case, that would
604 be the music itself. This poses a formidable problem: how can we
605 define what music really is? Instead of trying to find an answer,
606 we have reversed the question. We write a program capable of
607 producing sheet music, and adjust the format to be as lean as
608 possible. When the format can no longer be trimmed down, by
609 definition we are left with content itself. Our program serves as
610 a formal definition of a music document.
612 The syntax is also the user-interface for LilyPond, hence it is
622 to create a quarter note on middle C (C1) and an eighth note on
623 the D above middle C (D1).
631 On a microscopic scale, such syntax is easy to use. On a larger
632 scale, syntax also needs structure. How else can you enter
633 complex pieces like symphonies and operas? The structure is
634 formed by the concept of music expressions: by combining small
635 fragments of music into larger ones, more complex music can be
636 expressed. For example
638 @lilypond[quote,verbatim,fragment,relative=1]
643 Simultaneous notes can be constructed by enclosing them with
644 @code{<<} and @code{>>}:
650 @lilypond[quote,fragment,relative=1]
651 \new Voice { <<c4 d4 e>> }
655 This expression is put in sequence by enclosing it in curly braces
656 @code{@{@tie{}@dots{}@tie{}@}}:
659 @{ f4 <<c4 d4 e4>> @}
662 @lilypond[quote,relative=1,fragment]
667 The above is also an expression, and so it may be combined again
668 with another simultaneous expression (a half note) using
669 @code{<<}, @code{\\}, and @code{>>}:
672 << g2 \\ @{ f4 <<c4 d4 e4>> @} >>
675 @lilypond[quote,fragment,relative=2]
676 \new Voice { << g2 \\ { f4 <<c d e>> } >> }
679 Such recursive structures can be specified neatly and formally in
680 a context-free grammar. The parsing code is also generated from
681 this grammar. In other words, the syntax of LilyPond is clearly
682 and unambiguously defined.
684 User-interfaces and syntax are what people see and deal with most.
685 They are partly a matter of taste, and also the subject of much
686 discussion. Although discussions on taste do have their merit,
687 they are not very productive. In the larger picture of LilyPond,
688 the importance of input syntax is small: inventing neat syntax is
689 easy, while writing decent formatting code is much harder. This
690 is also illustrated by the line-counts for the respective
691 components: parsing and representation take up less than 10% of
695 @node Example applications
696 @unnumberedsubsec Example applications
698 @cindex simple examples
699 @cindex examples, simple
701 We have written LilyPond as an experiment of how to condense the
702 art of music engraving into a computer program. Thanks to all
703 that hard work, the program can now be used to perform useful
704 tasks. The simplest application is printing notes.
706 @lilypond[quote,relative=1]
714 By adding chord names and lyrics we obtain a lead sheet.
716 @lilypond[quote,ragged-right]
718 \chords { c2 c f2 c }
724 \addlyrics { twin -- kle twin -- kle lit -- tle star }
728 Polyphonic notation and piano music can also be printed. The
729 following example combines some more exotic constructs.
733 title = "Screech and boink"
734 subtitle = "Random complex notation"
735 composer = "Han-Wen Nienhuys"
739 \context PianoStaff <<
744 \revert Stem #'direction
746 \set subdivideBeams = ##t
758 \set followVoice = ##t
759 c'''32([ b''16 a''16 gis''16 g''32)]
761 s4 \times 2/3 { d'16[ f' g'] } as'32[ b''32 e'' d'']
763 s4 \autoBeamOff d''8.. f''32
769 \new Staff = "down" {
772 \set subdivideBeams = ##f
773 \override Stem #'french-beaming = ##t
774 \override Beam #'thickness = #0.3
775 \override Stem #'thickness = #4.0
782 \override Staff.Arpeggio #'arpeggio-direction =#down
783 <cis, e, gis, b, cis>4\arpeggio
790 tempoWholesPerMinute = #(ly:make-moment 60 8)
796 \consists Horizontal_bracket_engraver
802 The fragments shown above have all been written by hand, but that
803 is not a requirement. Since the formatting engine is mostly
804 automatic, it can serve as an output means for other programs that
805 manipulate music. For example, it can also be used to convert
806 databases of musical fragments to images for use on websites and
807 multimedia presentations.
809 This manual also shows an application: the input format is text,
810 and can therefore be easily embedded in other text-based formats
811 such as @LaTeX{}, HTML, or in the case of this manual, Texinfo.
812 By means of a special program, the input fragments can be replaced
813 by music images in the resulting PDF or HTML output files. This
814 makes it easy to mix music and text in documents.
817 @node About the documentation
818 @section About the documentation
820 This section explains the different portions of the documentation.
822 @cindex Learning Manual
823 @cindex Music Glossary
824 @cindex Notation Reference
825 @cindex Application Usage
827 @cindex Internals Reference
829 @c leave these lines wrapping around. It's some texinfo 4.12 thing. -gp
830 @c This is actually a limitation of texi2html. -jm
832 * About the Learning Manual:: this manual introduces LilyPond, giving in-depth explanations of how to create notation.
833 * About the Music Glossary:: this manual explains musical terms and gives translations of terms in other languages.
834 * About the Notation Reference:: this manual is the main portion of the documentation. It provides detailed information about creating notation. This book assumes that the reader knows basic material covered in the Learning Manual and is familiar with the English musical terms presented in the Musical Glossary.
835 * About the Application Usage:: this discusses the actual programs and operating system-specific issues.
836 * About the Snippet List:: this is a collection of short LilyPond examples.
837 * About the Internals Reference:: this document gives reference information about LilyPond's internal structures, which is required for constructing tweaks.
838 * Other documentation:: there are a few other portions of the documentation, such as News items and the mailist archives.
842 @node About the Learning Manual
843 @unnumberedsubsec About the Learning Manual
845 @cindex Learning Manual
847 This book explains how to begin learning LilyPond, as well as
848 explaining some key concepts in easy terms. You should read these
849 chapters in a linear fashion.
851 There is a paragraph @strong{See also} at the end of each section,
852 which contains cross-references to other sections: you should not
853 follow these cross-references at first reading; when you have read all
854 of the Learning Manual, you may want to read some sections again and
855 follow cross-references for further reading.
860 @ref{Introduction}: explains the background and overall goal of
864 @ref{Tutorial}: gives a gentle introduction to typesetting music.
865 First time users should start here.
868 @ref{Fundamental concepts}: explains some general concepts about
869 the LilyPond file format. If you are not certain where to place a
870 command, read this chapter!
873 @ref{Tweaking output}: shows how to change the default engraving
874 that LilyPond produces.
877 @ref{Working on LilyPond projects}: discusses practical uses of
878 LilyPond and how to avoid some common problems. Read this before
879 undertaking large projects!
883 The Learning Manual also contains appendices which are not part of the
884 recommended linear reading. They may be useful for later
890 @ref{Templates}: shows ready-made templates of LilyPond pieces.
891 Just cut and paste a template into a file, add notes, and you're
895 @ref{Scheme tutorial}: presents a short introduction to Scheme,
896 the programming language that music functions use. This is
897 material for advanced tweaks; many users never touch Scheme at
903 @node About the Music Glossary
904 @unnumberedsubsec About the Music Glossary
906 @cindex Music Glossary
910 @cindex foreign languages
913 @rglosnamed{Top,Music glossary}
914 this explains musical terms, and includes translations to various
915 languages. If you are not familiar with music notation or music
916 terminology (especially if you are a non-native English speaker),
917 it is highly advisable to consult the glossary.
920 @node About the Notation Reference
921 @unnumberedsubsec About the Notation Reference
923 @cindex Notation Reference
925 @cindex reference charts
926 @cindex charts, reference
928 This book explains all the LilyPond commands which produce
929 notation. It assumes that readers are familiar with the concepts
930 in the Learning Manual.
935 @ruser{Musical notation}:
936 discusses topics grouped by notation construct. This section
937 gives details about basic notation that will be useful in almost
938 any notation project.
941 @ruser{Specialist notation}:
942 discusses topics grouped by notation construct. This section
943 gives details about special notation that will only be useful for
944 particular instrument (or vocal) groups.
947 @ruser{General input and output}:
948 discusses general information about LilyPond input files and
952 @ruser{Spacing issues}:
953 discusses issues which affect the global output, such as selecting
954 paper size or specifying page breaks.
957 @ruser{Changing defaults}:
958 explains how to tweak LilyPond to produce exactly the notation you
962 @ruser{Interfaces for programmers}:
963 explains how to create music functions with scheme.
967 The Notation Reference also contains appendices with useful
973 @ruser{Literature list}:
974 contains a set of useful reference books for those who wish to
975 know more on notation and engraving.
978 @ruser{Notation manual tables}:
979 are a set of tables showing the chord names, MIDI instruments, a
980 list of color names, and the Feta font.
984 is a handy reference of the most common LilyPond commands.
987 @ruser{LilyPond command index}:
988 an index of all LilyPond @code{\commands}.
991 @ruser{LilyPond index}:
997 @node About the Application Usage
998 @unnumberedsubsec About the Application Usage
1000 @cindex Application Usage
1001 @cindex integrating LilyPond with other programs
1003 This book explains how to execute the programs and how to integrate
1004 LilyPond notation with other programs.
1010 explains how to install LilyPond, including compilation if
1015 describes how to configure your computer for optimum LilyPond
1016 usage, such as using special environments for certain text
1020 @rprogram{Running LilyPond}:
1021 shows how to run LilyPond and its helper programs. In addition,
1022 this section explains how to upgrade input files from previous
1023 versions of LilyPond.
1026 @rprogram{LilyPond-book}:
1027 explains the details behind creating documents with in-line music
1028 examples, like this manual.
1031 @rprogram{Converting from other formats}:
1032 explains how to run the conversion programs. These programs are
1033 supplied with the LilyPond package, and convert a variety of music
1034 formats to the @code{.ly} format.
1039 @node About the Snippet List
1040 @unnumberedsubsec About the Snippet List
1044 @cindex Snippet List
1045 @cindex LilyPond Snippet Repository
1047 @rlsrnamed{Top,LilyPond Snippet List}: this shows a
1048 selected set of LilyPond snippets from the
1049 @uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository}
1050 (LSR). All the snippets are in the public domain.
1052 Please note that this document is not an exact subset of LSR. LSR
1053 is running a stable LilyPond version, so any snippet which
1054 demonstrates new features of a development version must be added
1055 separately. These are stored in @file{input/new/} in the LilyPond
1058 The list of snippets for each subsection of the Notation Reference are
1059 also linked from the @strong{See also} portion.
1062 @node About the Internals Reference
1063 @unnumberedsubsec About the Internals Reference
1065 @cindex Internals Reference
1067 @rinternalsnamed{Top,Internals Reference}: this is a set
1068 of heavily cross linked HTML pages which document the nitty-gritty
1069 details of each and every LilyPond class, object, and function.
1070 It is produced directly from the formatting definitions in the
1073 Almost all formatting functionality that is used internally is
1074 available directly to the user. For example, most variables that
1075 control thickness values, distances, etc., can be changed in input
1076 files. There are a huge number of formatting options, and all of
1077 them are described in this document. Each section of the Notation
1078 Reference has a @b{See also} subsection, which refers to the
1079 generated documentation. In the HTML document, these subsections
1080 have clickable links.
1083 @node Other documentation
1084 @unnumberedsubsec Other documentation
1086 There are a number of other sources of information which may be
1094 @uref{../topdocs/NEWS.html,News}:
1097 @uref{../../topdocs/NEWS.html,News}:
1103 this is a summary of important changes
1104 and new features in LilyPond since the previous version.
1106 @item @uref{http://lists.gnu.org/archive/html/lilypond-user/, The
1107 lilypond-user mailist archives}: this is a collection of previous
1108 emails sent to the user list. Many questions have been asked
1109 multiple times; there is a very good chance that if you have a
1110 question, the answer might be found in these archives.
1112 @item @uref{http://lists.gnu.org/archive/html/lilypond-devel/, The
1113 lilypond-devel mailist archives}: this is a collection of previous
1114 emails sent to the developer's list. The discussion here is more
1115 technical; if you have an advanced question about lilypond
1116 internals, the answer might be in these archives.
1118 @item Embedded music fragments: in all HTML documents that have
1119 music fragments embedded, the exact LilyPond input that was used
1120 to produce that image can be viewed by clicking the image.
1122 @item Init files: the location of the documentation files that are
1123 mentioned here can vary from system to system. On occasion, this
1124 manual refers to initialization and example files. Throughout this
1125 manual, we refer to input files relative to the top-directory of the
1126 source archive. For example, @file{input/@/lsr/@/dirname/@/bla@/.ly}
1127 may refer to the file
1128 @file{lilypond@/2.x.y/@/input/@/lsr/@/dirname/@/bla@/.ly}. On binary
1129 packages for the UNIX platform, the documentation and examples can
1130 typically be found somewhere below
1131 @file{/usr/@/share/@/doc/@/lilypond/}. Initialization files, for
1132 example @file{scm/@/lily@/.scm}, or @file{ly/@/engraver@/-init@/.ly},
1133 are usually found in the directory @file{/usr/@/share/@/lilypond/}.
1134 For more details, see @ref{Other sources of information}.