@menu
-* Engraving::
-* Automated engraving::
-* What symbols to engrave?::
-* Music representation::
-* Example applications::
-* About this manual::
+* Engraving::
+* Automated engraving::
+* What symbols to engrave?::
+* Music representation::
+* Example applications::
+* About this manual::
@end menu
our staff lines, which are also much thicker than lines in the
computer edition.
-@multitable @columnfractions .05 .3 .3 .3 .05
+@multitable @columnfractions .125 .25 .25 .25 .125
@item @tab
@ifnotinfo
@iftex
-@image{henle-flat-gray,,8cm}
+@image{henle-flat-gray,,4cm}
@end iftex
@ifnottex
@image{henle-flat-gray,,,png}
@tab
@iftex
-@image{baer-flat-gray,,8.4cm}
+@image{baer-flat-gray,,4cm}
@end iftex
@ifnottex
@image{baer-flat-gray,,,png}
@tab
@iftex
-@image{lily-flat-bw,,8cm}
+@image{lily-flat-bw,,4cm}
@end iftex
@ifnottex
@image{lily-flat-bw,,,png}
@end ifnotinfo
@ifinfo
@c workaround for makeinfo-4.6: line breaks and multi-column cookies
-@image{henle-flat-bw,,,png} @image{baer-flat-bw,,,png} @image{lily-flat-bw,,,png}
+@image{henle-flat-bw,,,png} @image{baer-flat-bw,,,png}
+@image{lily-flat-bw,,,png}
@end ifinfo
@item @tab
@c need to include it here, because we want two images.
@lilypond
\paper {
- raggedright = ##t
+ ragged-right = ##t
indent = #0.0
}
\stemDown
b'8[ e'' a' e'']
\stemNeutral
- e'8[ e'8 e'8 e'8]
+ e'8[ e'8 e'8 e'8]
}
\score
@lilypond
\paper {
- raggedright = ##t
+ ragged-right = ##t
indent = #0.0
}
\stemDown
b'8[ e'' a' e'']
\stemNeutral
- e'8[ e'8 e'8 e'8]
+ e'8[ e'8 e'8 e'8]
}
\score
{
@cindex regular rhythms
@cindex regular spacing
-The fragment only uses quarter notes: notes that are played in a
+Each bar in the fragment only uses notes that are played in a
constant rhythm. The spacing should reflect that. Unfortunately, the
eye deceives us a little; not only does it notice the distance between
note heads, it also takes into account the distance between
consecutive stems. As a result, the notes of an up-stem/@/down-stem
-combination should be put farther apart, and the notes of a down-stem/@/up-stem
+combination should be put farther apart, and the notes of a
+down-stem/@/up-stem
combination should be put closer together, all depending on the
-combined vertical positions of the notes. The first two measures are
-printed with this correction, the last two measures without. The notes
-in the last two measures form down-stem/@/up-stem clumps of notes.
+combined vertical positions of the notes. The upper two measures are
+printed with this correction, the lower two measures without, forming
+down-stem/@/up-stem clumps of notes.
@cindex typography
have all directions down (or left). The second chord has all
directions up (right).
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
\new Score \with {
\override SpacingSpanner #'spacing-increment = #3
\override TimeSignature #'transparent = ##t
style -- is a variable with a preset value. You are free to alter this
value, giving your score a different typographical impression.
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
fragment = {
\clef bass f8 as8
c'4-~ c'16 as g f e16 g bes c' des'4
head objects are used to produce their symbol is changed during the music
fragment.
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
+#(set-global-staff-size 30)
+
#(define (mc-squared grob orig current)
- (let ((interfaces (ly:grob-property grob 'interfaces))
- (pos (ly:grob-property grob 'staff-position)))
- (if (and (memq 'note-head-interface interfaces)
- (memq pos '(-2 -3 -5)))
+ (let* ((interfaces (ly:grob-interfaces grob))
+ (pos (ly:grob-property grob 'staff-position)))
+ (if (memq 'note-head-interface interfaces)
(begin
- (ly:grob-set-callback! grob 'stencil Text_interface::print)
+ (ly:grob-set-property! grob 'stencil ly:text-interface::print)
(ly:grob-set-property! grob 'font-family 'roman)
- (ly:grob-set-property!
- grob 'text
- (make-raise-markup
- -0.5
- (case pos
- ((-5) (make-simple-markup "m"))
- ((-3) (make-simple-markup "c "))
- ((-2) (make-smaller-markup (make-bold-markup "2")))
- (else (make-simple-markup "bla")))))))))
+ (ly:grob-set-property! grob 'text
+ (make-raise-markup -0.5
+ (case pos
+ ((-5) (make-simple-markup "m"))
+ ((-3) (make-simple-markup "c "))
+ ((-2) (make-smaller-markup (make-bold-markup "2")))
+ (else (make-simple-markup "bla")))))))))
\new Voice \relative c' {
\stemUp
\set autoBeaming = ##f
\time 2/4
<d f g>4
- \once \override NoteHead #'stencil = #Note_head::brew_ez_stencil
+ \once \override NoteHead #'stencil = #ly:note-head::brew-ez-stencil
+ \once \override NoteHead #'font-size = #-7
+ \once \override NoteHead #'font-family = #'sans
+ \once \override NoteHead #'font-series = #'bold
<d f g>
\once \override NoteHead #'style = #'cross
<d f g>
- \applyOutput #mc-squared
+ \applyOutput #'Voice #mc-squared
<d f g>
<<
{ d8[ es-( fis^^ g] fis2-) }
- \repeat unfold 5 { \applyOutput #mc-squared s8 }
+ \repeat unfold 5 { \applyOutput #'Voice #mc-squared s8 }
>>
}
@end lilypond
In the following example, we see how we start out with a plug-in for
note heads, the @code{Note_heads_engraver}.
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
\include "engraver-example.ily"
\score {
@noindent
Then a @code{Staff_symbol_engraver} adds the staff
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
\include "engraver-example.ily"
\score {
@noindent
the @code{Clef_engraver} defines a reference point for the staff
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
\include "engraver-example.ily"
\score {
@noindent
and the @code{Stem_engraver} adds stems.
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
\include "engraver-example.ily"
\score {
}
@end lilypond
+@noindent
The @code{Stem_engraver} is notified of any note head coming along.
Every time one (or more, for a chord) note head is seen, a stem
object is created and connected to the note head. By adding
time signature, and key signature, we get a complete piece of
notation.
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
\include "engraver-example.ily"
\score { \topVoice }
@end lilypond
This system works well for monophonic music, but what about
polyphony? In polyphonic notation, many voices can share a staff.
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
\include "engraver-example.ily"
-\new Staff << \topVoice \\ \botVoice >>
+\new Staff << \topVoice \\ \botVoice >>
@end lilypond
In this situation, the accidentals and staff are shared, but the stems,
Program reference: @internalsref{Contexts}.
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
\include "engraver-example.ily"
\score {
<<
@noindent
Chords can be constructed with @code{<<} and @code{>>} enclosing the notes
-@c < > is not a music expression,
+@c < > is not a music expression,
@c so we use <<>> iso. <> to drive home the point of
@c expressions. Don't change this back --hwn.
@example
@noindent
By adding chord names and lyrics we obtain a lead sheet.
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
<<
\chords { c2 c f2 c }
\new Staff \relative c' { \time 2/4 c4 c g'4 g a4 a g2 }
Polyphonic notation and piano music can also be printed. The following
example combines some more exotic constructs.
-@lilypondfile[quote,raggedright]{screech-boink.ly}
+@lilypondfile[quote,ragged-right]{screech-boink.ly}
The fragments shown above have all been written by hand, but that is
not a requirement. Since the formatting engine is mostly automatic, it
users should start here.
@item
-@emph{@ref{Example templates}}
-provides templates of LilyPond pieces. Just cut and paste a
-template into a file, add notes, and you're done!
-
-@item
-@emph{@ref{Putting it all together}}
+@emph{@ref{Working on LilyPond projects}}
demonstrates practical uses of LilyPond.
@item
explains how to fine tune layout.
@item
-@emph{@ref{Output formats}}
+@emph{@ref{Non-musical notation}}
+discusses non-musical output such as titles, multiple movements,
+and how to select which MIDI instruments to use.
+
+@item
+@emph{@ref{Spacing issues}}
discusses issues which affect the global output, such as selecting
-paper size or which MIDI instruments to use.
+paper size or specifying page breaks.
@item
@emph{@ref{LilyPond-book}} explains the details behind creating
@emph{@ref{Literature list}}
contains a set of useful reference books for those who wish to know
more on notation and engraving.
+
+@item
+@emph{@ref{Example templates}}
+provides templates of LilyPond pieces. Just cut and paste a
+template into a file, add notes, and you're done!
+
@end itemize
+
Once you are an experienced user, you can use the manual as reference:
there is an extensive index@footnote{If you are looking for something,
and you cannot find it in the manual, that is considered a bug. In
a big HTML page,
@end iftex
@ifhtml
-@uref{source/Documentation/user/out-www/lilypond.html, one big page},
+@uref{source/Documentation/user/lilypond.html, one big page},
@end ifhtml
which can be searched easily using the search facility of a web
browser.
@ifhtml
@c Works, but link name is not so nice; so write-out macro
@c @inputfileref{input/test,Various input examples}.
-@uref{source/input/test/out-www/collated-files.html,Various input examples}.
+@uref{source/input/test/collated-files.html,Various input examples}.
@end ifhtml
This collection of files shows various tips and tricks, and is
@ifhtml
@c Works, but link name is not so nice; so write-out macro
@c @inputfileref{input/regression,The regression tests}.
-@uref{source/input/regression/out-www/collated-files.html,The regression tests}.
+@uref{source/input/regression/collated-files.html,The regression tests}.
@end ifhtml
This collection of files tests each notation and engraving feature of
initialization and example files. Throughout this manual, we refer to
input files relative to the top-directory of the source archive. For
example, @file{input/@/test/@/bla@/.ly} may refer to the file
-@file{lilypond@/-2.6.0/@/input/@/test/@/bla@/.ly}. On binary packages
+@file{lilypond@/-2.8.0/@/input/@/test/@/bla@/.ly}. On binary packages
for the Unix platform, the documentation and examples can typically be
found somewhere below @file{/usr/@/share/@/doc/@/lilypond/}.
Initialization files, for example @file{scm/@/lily@/.scm}, or