-@c -*- coding: latin-1; mode: texinfo; -*-
+@c -*- coding: utf-8; mode: texinfo; -*-
@c This file is part of lilypond.tely
@node Introduction
@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
@item @tab
@ifnotinfo
@iftex
-@image{henle-flat-bw,4cm}
+@image{henle-flat-gray,,8cm}
@end iftex
@ifnottex
-@image{henle-flat-bw,,,png}
+@image{henle-flat-gray,,,png}
@end ifnottex
@tab
@iftex
-@image{baer-flat-bw,4cm}
+@image{baer-flat-gray,,8.4cm}
@end iftex
@ifnottex
-@image{baer-flat-bw,,,png}
+@image{baer-flat-gray,,,png}
@end ifnottex
@tab
@iftex
-@image{lily-flat-bw,4cm}
+@image{lily-flat-bw,,8cm}
@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
spot which fragment is which?
@cindex optical spacing
-@lilypondfile[quote,noindent]{spacing-optical.ly}
+@c file spacing-optical.
+@c need to include it here, because we want two images.
+@lilypond
+\paper {
+ ragged-right = ##t
+ indent = #0.0
+}
+
+music = {
+ c'4 e''4 e'4 b'4 |
+ \stemDown
+ b'8[ e'' a' e'']
+ \stemNeutral
+ e'8[ e'8 e'8 e'8]
+}
+
+\score
+{
+ \music
+ \layout {
+ \context {
+ \Staff
+ \override NoteSpacing #'stem-spacing-correction = #0.6
+ }
+ }
+}
+@end lilypond
+
+@lilypond
+\paper {
+ ragged-right = ##t
+ indent = #0.0
+}
+
+music = {
+ c'4 e''4 e'4 b'4 |
+ \stemDown
+ b'8[ e'' a' e'']
+ \stemNeutral
+ e'8[ e'8 e'8 e'8]
+}
+\score
+{
+ \music
+ \layout {
+ \context {
+ \Staff
+ \override NoteSpacing #'stem-spacing-correction = #0.0
+ \override NoteSpacing #'same-direction-correction = #0.0
+ \override StaffSpacing #'stem-spacing-correction = #0.0
+ }
+ }
+}
+@end lilypond
@cindex regular rhythms
@cindex regular spacing
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
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.
-@c FIXME: this example has errors:
-@c programming error: Grob `NoteHead' has no interface for property `text'
-@c Continuing; crossing fingers
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
#(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)))
(begin
- (ly:grob-set-property! grob 'print-function 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
\set autoBeaming = ##f
\time 2/4
<d f g>4
- \once \override NoteHead #'print-function = #Note_head::brew_ez_stencil
+ \once \override NoteHead #'stencil = #ly:note-head::brew-ez-stencil
<d f g>
\once \override NoteHead #'style = #'cross
<d f g>
- \applyoutput #mc-squared
+ \applyOutput #mc-squared
<d f g>
<<
{ d8[ es-( fis^^ g] fis2-) }
- \repeat unfold 5 { \applyoutput #mc-squared s8 }
+ \repeat unfold 5 { \applyOutput #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 {
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
-@ifhtml
-The
-@end ifhtml
-@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
-@ifhtml
-The chapter
-@end ifhtml
-@emph{@ref{Running LilyPond}} shows how to run LilyPond and its helper
+@emph{@ref{Running LilyPond}}
+shows how to run LilyPond and its helper
programs. In addition, this section explains how to upgrade input
files from previous versions of LilyPond.
@item
-@ifhtml
-The
-@end ifhtml
@emph{@ref{Basic notation}}
-@ifhtml
-chapter
-@end ifhtml
discusses topics grouped by notation construct. This section gives
details about basic notation that will be useful in almost any
notation project.
@item
-@ifhtml
-The
-@end ifhtml
@emph{@ref{Instrument-specific notation}}
-@ifhtml
-chapter
-@end ifhtml
discusses topics grouped by notation construct. This section gives
details about special notation that will only be useful for particular
instrument (or vocal) groups.
@item
-@ifhtml
-The
-@end ifhtml
@emph{@ref{Advanced notation}}
-@ifhtml
-chapter
-@end ifhtml
discusses topics grouped by notation construct. This section gives
details about complicated or unusual notation.
@item
-@ifhtml
-The
-@end ifhtml
-@emph{@ref{Global issues}}
-@ifhtml
-chapter
-@end ifhtml
-discusses issues which affect the whole lilypond file.
-
-@item
-@ifhtml
-The
-@end ifhtml
@emph{@ref{Changing defaults}}
explains how to fine tune layout.
@item
-@ifhtml
-The chapter
-@end ifhtml
+@emph{@ref{Global issues}}
+discusses issues which affect the global output, such as selecting
+paper size or which MIDI instruments to use.
+
+@item
@emph{@ref{LilyPond-book}} explains the details behind creating
documents with in-line music examples, like this manual.
@item
-@ifhtml
-The chapter
-@end ifhtml
@emph{@ref{Converting from other formats}}
explains how to run the conversion programs. These programs
are supplied with the LilyPond package, and convert a variety of music
@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
@cindex internal documentation
@cindex Scheme
@cindex extending lilypond
-@cindex bug report
@cindex index
Finally, this and all other manuals, are available online both as PDF
files and HTML from the web site, which can be found at
@uref{http://@/www@/.lilypond@/.org/}.
-@cindex website
-@cindex URL