change to reduce changes produced by diff.
25 files changed:
+2006-05-17 Graham Percival <gpermus@gmail.com>
+
+ * Documentation/user/ various: remove trailing whitespace, cosmetic
+ change to reduce changes produced by diff.
+
2006-05-17 Han-Wen Nienhuys <hanwen@lilypond.org>
* lily/main.cc (do_chroot_jail): correctness tweak.
2006-05-17 Han-Wen Nienhuys <hanwen@lilypond.org>
* lily/main.cc (do_chroot_jail): correctness tweak.
@c -*- coding: utf-8; mode: texinfo; -*-
@c This file is part of lilypond.tely
@c -*- coding: utf-8; mode: texinfo; -*-
@c This file is part of lilypond.tely
-@c A menu is needed before every deeper *section nesting of @node's; run
+@c A menu is needed before every deeper *section nesting of @node's; run
@c M-x texinfo-all-menus-update
@c to automatically fill in these menus before saving changes
@c M-x texinfo-all-menus-update
@c to automatically fill in these menus before saving changes
-Checking to make sure that text scripts and lyrics are within the margins is
-a relatively large computational task. To speed up processing, lilypond does
+Checking to make sure that text scripts and lyrics are within the margins is
+a relatively large computational task. To speed up processing, lilypond does
not perform such calculations by default; to enable it, use
@example
not perform such calculations by default; to enable it, use
@example
@cindex textSpannerUp
@code{textSpannerUp},
@cindex textSpannerUp
@code{textSpannerUp},
@code{textSpannerDown},
@cindex textSpannerNeutral
@code{textSpannerNeutral}.
@code{textSpannerDown},
@cindex textSpannerNeutral
@code{textSpannerNeutral}.
To print a solid line, use
@example
To print a solid line, use
@example
-\override TextSpanner #'dash-fraction = #'()
+\override TextSpanner #'dash-fraction = #'()
@cindex font switching
The markup in the example demonstrates font switching commands. The
@cindex font switching
The markup in the example demonstrates font switching commands. The
-command @code{\bold} and @code{\italic} apply to the first following
+command @code{\bold} and @code{\italic} apply to the first following
word only; to apply a command to more than one word, enclose the
words with braces,
word only; to apply a command to more than one word, enclose the
words with braces,
Lists with no previous command are not kept distinct. The expression
@example
Lists with no previous command are not kept distinct. The expression
@example
-\center-align @{ @{ a b @} @{ c d @} @}
+\center-align @{ @{ a b @} @{ c d @} @}
@item @code{font-family}
is a symbol indicating the general class of the typeface. Supported are
@code{roman} (Computer Modern), @code{sans}, and @code{typewriter}.
@item @code{font-family}
is a symbol indicating the general class of the typeface. Supported are
@code{roman} (Computer Modern), @code{sans}, and @code{typewriter}.
@item @code{font-shape}
is a symbol indicating the shape of the font. There are typically
several font shapes available for each font family. Choices are
@item @code{font-shape}
is a symbol indicating the shape of the font. There are typically
several font shapes available for each font family. Choices are
@item @code{font-series}
is a symbol indicating the series of the font. There are typically
several font series for each font family and shape. Choices are
@item @code{font-series}
is a symbol indicating the series of the font. There are typically
several font series for each font family and shape. Choices are
-@code{medium} and @code{bold}.
+@code{medium} and @code{bold}.
@end itemize
Fonts selected in the way sketched above come from a predefined style
@end itemize
Fonts selected in the way sketched above come from a predefined style
-sheet. If you want to use a font from outside the style sheet,
-then set the
-@code{font-name} property,
+sheet. If you want to use a font from outside the style sheet,
+then set the
+@code{font-name} property,
@lilypond[fragment,verbatim]
{
@lilypond[fragment,verbatim]
{
@lilypond[verbatim]
\paper {
myStaffSize = #20
@lilypond[verbatim]
\paper {
myStaffSize = #20
#(define fonts
(make-pango-font-tree "Times New Roman"
"Nimbus Sans"
#(define fonts
(make-pango-font-tree "Times New Roman"
"Nimbus Sans"
@end lilypond
@c we don't do Helvetica / Courier, since GS incorrectly loads
@end lilypond
@c we don't do Helvetica / Courier, since GS incorrectly loads
Collisions are not checked. If you have notes above the top line of
the staff (or notes with articulations, slurs, text, etc), then the
metronome marking may be printed on top of musical symbols. If this
Collisions are not checked. If you have notes above the top line of
the staff (or notes with articulations, slurs, text, etc), then the
metronome marking may be printed on top of musical symbols. If this
-occurs, increase the padding of the metronome mark to place it
+occurs, increase the padding of the metronome mark to place it
further away from the staff.
@example
further away from the staff.
@example
@end lilypond
The file @file{scm/@/translation@/-functions@/.scm} contains the definitions
@end lilypond
The file @file{scm/@/translation@/-functions@/.scm} contains the definitions
-of @code{format-mark-numbers} (the default format),
+of @code{format-mark-numbers} (the default format),
@code{format-mark-box-numbers},
@code{format-mark-letters} and @code{format-mark-box-letters}.
These can be used as inspiration for other formatting functions.
@code{format-mark-box-numbers},
@code{format-mark-letters} and @code{format-mark-box-letters}.
These can be used as inspiration for other formatting functions.
Multiple rests are not merged if you create the score with both tagged
sections.
Multiple rests are not merged if you create the score with both tagged
sections.
\addquote clarinet \relative {
R1*20
r2 r8 c f f
\addquote clarinet \relative {
R1*20
r2 r8 c f f
\new Staff \relative <<
% setup a context for cue notes.
\new Voice = "cue" { \smaller \skip 1*21 }
\new Staff \relative <<
% setup a context for cue notes.
\new Voice = "cue" { \smaller \skip 1*21 }
\set Score.skipBars = ##t
\set Score.skipBars = ##t
\new Voice {
R1*20
\cueDuring #"clarinet" #1 {
R1
}
\new Voice {
R1*20
\cueDuring #"clarinet" #1 {
R1
}
Here are a couple of hints for successful cue notes
Here are a couple of hints for successful cue notes
@c Yes, this is good practice. Otherwise, the start of the original
@c part can only be seen from the font size. This is not good enough
@c for sight-reading. It is possilbe to use other
@c Yes, this is good practice. Otherwise, the start of the original
@c part can only be seen from the font size. This is not good enough
@c for sight-reading. It is possilbe to use other
-@c markers (e.g. a big close-bracket over the staff) to indicate the cue
+@c markers (e.g. a big close-bracket over the staff) to indicate the cue
@c notes are
@c finished.
@c -hwn
@c notes are
@c finished.
@c -hwn
Double time signatures are not supported explicitly, but they can be
faked. In the next example, the markup for the time signature is
created with a markup text. This markup text is inserted in the
Double time signatures are not supported explicitly, but they can be
faked. In the next example, the markup for the time signature is
created with a markup text. This markup text is inserted in the
-@internalsref{TimeSignature} grob. See also
+@internalsref{TimeSignature} grob. See also
@inputfileref{input/@/test,compound@/-time@/.ly}).
@lilypond[verbatim,ragged-right]
@inputfileref{input/@/test,compound@/-time@/.ly}).
@lilypond[verbatim,ragged-right]
\consists "Timing_translator"
\consists "Default_bar_line_engraver"
@}
\consists "Timing_translator"
\consists "Default_bar_line_engraver"
@}
@noindent
As the example illustrates, @code{ly:make-moment n m} constructs a
@noindent
As the example illustrates, @code{ly:make-moment n m} constructs a
-duration of n/m of a whole note. For example, @code{ly:make-moment 1 8} is
+duration of n/m of a whole note. For example, @code{ly:make-moment 1 8} is
an eighth
note duration and @code{ly:make-moment 7 16} is the duration of
seven sixteenths notes.
an eighth
note duration and @code{ly:make-moment 7 16} is the duration of
seven sixteenths notes.
* Balloon help::
* Blank music sheet::
* Hidden notes::
* Balloon help::
* Blank music sheet::
* Hidden notes::
* Easy Notation note heads::
* Analysis brackets::
* Coloring objects::
* Easy Notation note heads::
* Analysis brackets::
* Coloring objects::
-@node Shape note heads
-@subsection Shape note heads
+@node Shape note heads
+@subsection Shape note heads
In shape note head notation, the shape of the note head corresponds
to the harmonic function of a note in the scale. This notation was
In shape note head notation, the shape of the note head corresponds
to the harmonic function of a note in the scale. This notation was
@refbugs
Not all x11 colors are distinguishable in a web browser. For web use
@refbugs
Not all x11 colors are distinguishable in a web browser. For web use
-normal colors are recommended.
+normal colors are recommended.
An x11 color is not necessarily exactly the same shade as a similarly
An x11 color is not necessarily exactly the same shade as a similarly
Notes in a chord cannot be colored with @code{\override}; use
@code{\tweak} instead. See @ref{Objects connected to the input}
Notes in a chord cannot be colored with @code{\override}; use
@code{\tweak} instead. See @ref{Objects connected to the input}
@cindex notes, ghost
@cindex notes, parenthesized
@cindex notes, ghost
@cindex notes, parenthesized
-Objects may be parenthesized by prefixing @code{\parenthesize} to the music
-event,
+Objects may be parenthesized by prefixing @code{\parenthesize} to the music
+event,
@lilypond[relative=2,fragment,verbatim,ragged-right]
<
c
\parenthesize d
g
@lilypond[relative=2,fragment,verbatim,ragged-right]
<
c
\parenthesize d
g
This chapter explains how to use basic notation features.
@menu
This chapter explains how to use basic notation features.
@menu
-* Note entry::
-* Alternate music entry::
-* Staff notation::
-* Connecting notes::
-* Expressive marks::
-* Polyphony::
-* Repeats::
+* Note entry::
+* Alternate music entry::
+* Staff notation::
+* Connecting notes::
+* Expressive marks::
+* Polyphony::
+* Repeats::
related constructs, such as stems, tuplets and ties.
@menu
related constructs, such as stems, tuplets and ties.
@menu
-* Notes::
-* Pitches::
-* Cautionary accidentals::
-* Micro tones::
-* Chords::
-* Rests::
-* Skips::
-* Durations::
-* Augmentation dots::
-* Tuplets::
-* Scaling durations::
-* Stems::
+* Notes::
+* Pitches::
+* Cautionary accidentals::
+* Micro tones::
+* Chords::
+* Rests::
+* Skips::
+* Durations::
+* Augmentation dots::
+* Tuplets::
+* Scaling durations::
+* Stems::
-Program reference: @internalsref{LedgerLineSpanner},
+Program reference: @internalsref{LedgerLineSpanner},
website for more information.
@menu
website for more information.
@menu
-* Relative octaves::
-* Octave check::
-* Transpose::
-* Bar check::
-* Barnumber check::
-* Skipping corrected music::
-* Automatic note splitting::
-* Writing music in parallel::
+* Relative octaves::
+* Octave check::
+* Transpose::
+* Bar check::
+* Barnumber check::
+* Skipping corrected music::
+* Automatic note splitting::
+* Writing music in parallel::
@cindex @code{skipTypesetting}
@cindex @code{showLastLength}
@cindex @code{skipTypesetting}
@cindex @code{showLastLength}
-When entering or copying music, usually only the music near the end (where
+When entering or copying music, usually only the music near the end (where
you
are adding notes) is interesting to view and correct. To speed up
this correction process, it is possible to skip typesetting of all but
you
are adding notes) is interesting to view and correct. To speed up
this correction process, it is possible to skip typesetting of all but
such as key signatures, clefs and time signatures.
@menu
such as key signatures, clefs and time signatures.
@menu
-* Clef::
-* Key signature::
-* Time signature::
-* Partial measures::
-* Bar lines::
-* Unmetered music::
-* System start delimiters::
-* Staff symbol::
+* Clef::
+* Key signature::
+* Time signature::
+* Partial measures::
+* Bar lines::
+* Unmetered music::
+* System start delimiters::
+* Staff symbol::
-The command @code{\clef "treble_8"} is equivalent to setting
+The command @code{\clef "treble_8"} is equivalent to setting
@code{clefGlyph},
@code{clefPosition} (which controls the Y position of the clef),
@code{middleCPosition} and @code{clefOctavation}. A clef is printed
@code{clefGlyph},
@code{clefPosition} (which controls the Y position of the clef),
@code{middleCPosition} and @code{clefOctavation}. A clef is printed
A bar line is created whenever the @code{whichBar} property is set.
At the start of a measure it is set to the contents of
A bar line is created whenever the @code{whichBar} property is set.
At the start of a measure it is set to the contents of
-@code{Timing.defaultBarType}. The contents of @code{repeatCommands} are
+@code{Timing.defaultBarType}. The contents of @code{repeatCommands} are
used
to override default measure bars.
used
to override default measure bars.
This section deals with notation that affects groups of notes.
@menu
This section deals with notation that affects groups of notes.
@menu
-* Ties::
-* Slurs::
-* Phrasing slurs::
-* Laissez vibrer ties::
-* Automatic beams::
-* Manual beams::
-* Grace notes::
+* Ties::
+* Slurs::
+* Phrasing slurs::
+* Laissez vibrer ties::
+* Automatic beams::
+* Manual beams::
+* Grace notes::
-* Articulations::
-* Fingering instructions::
-* Dynamics::
-* Breath marks::
-* Trills::
-* Glissando::
-* Arpeggio::
+* Articulations::
+* Fingering instructions::
+* Dynamics::
+* Breath marks::
+* Trills::
+* Glissando::
+* Arpeggio::
one voice on the same staff.
@menu
one voice on the same staff.
@menu
-* Basic polyphony::
-* Explicitly instantiating voices::
-* Collision Resolution::
+* Basic polyphony::
+* Explicitly instantiating voices::
+* Collision Resolution::
same voice. Here is the same example, with different noteheads for each
voice. Note that the change to the note-head style in the main voice does
not affect
same voice. Here is the same example, with different noteheads for each
voice. Note that the change to the note-head style in the main voice does
not affect
-the inside of the @code{<< \\ >>} constructs. Also, the change to the
+the inside of the @code{<< \\ >>} constructs. Also, the change to the
second
voice in the first @code{<< \\ >>} construct is effective in the second
@code{<< \\ >>}, and the voice is tied across the two constructs.
second
voice in the first @code{<< \\ >>} construct is effective in the second
@code{<< \\ >>}, and the voice is tied across the two constructs.
-* Repeat types::
-* Repeat syntax::
-* Repeats and MIDI::
-* Manual repeat commands::
-* Tremolo repeats::
-* Tremolo subdivisions::
-* Measure repeats::
+* Repeat types::
+* Repeat syntax::
+* Repeats and MIDI::
+* Manual repeat commands::
+* Tremolo repeats::
+* Tremolo subdivisions::
+* Measure repeats::
-Program reference: @internalsref{VoltaBracket},
+Program reference: @internalsref{VoltaBracket},
@internalsref{RepeatedMusic},
@internalsref{VoltaRepeatedMusic},
@internalsref{UnfoldedRepeatedMusic}, and
@internalsref{RepeatedMusic},
@internalsref{VoltaRepeatedMusic},
@internalsref{UnfoldedRepeatedMusic}, and
Output: changing the appearance of individual
objects. For example, changing stem directions or the location of
subscripts.
Output: changing the appearance of individual
objects. For example, changing stem directions or the location of
subscripts.
@item
Context: changing aspects of the translation from music events to
@item
Context: changing aspects of the translation from music events to
-notation. For example, giving each staff a separate time signature.
-
+notation. For example, giving each staff a separate time signature.
+
@item
Global layout: changing the appearance of the spacing, line
breaks, and page dimensions. These modifications are discussed
@item
Global layout: changing the appearance of the spacing, line
breaks, and page dimensions. These modifications are discussed
* The \override command::
@end menu
* The \override command::
@end menu
@node Automatic notation
@section Automatic notation
@node Automatic notation
@section Automatic notation
this rule should apply. Set @code{n} and @code{m} to @code{'*'}
to have this apply in any time signature.
this rule should apply. Set @code{n} and @code{m} to @code{'*'}
to have this apply in any time signature.
-@item @code{a/b} is the position in the bar at which the beam should
+@item @code{a/b} is the position in the bar at which the beam should
begin/end.
@item @code{context} is optional, and it specifies the context at which
begin/end.
@item @code{context} is optional, and it specifies the context at which
@ifhtml
@internalsref{Contexts}.
@end ifhtml
@ifhtml
@internalsref{Contexts}.
@end ifhtml
Translation @arrow{} Context.
@end ifnothtml
Translation @arrow{} Context.
@end ifnothtml
interpreting the @var{music expression} with that.
A practical application of @code{\new} is a score with many
interpreting the @var{music expression} with that.
A practical application of @code{\new} is a score with many
-staves. Each part that should be on its own staff, is preceded with
+staves. Each part that should be on its own staff, is preceded with
@code{\new Staff}.
@lilypond[quote,verbatim,relative=2,ragged-right,fragment]
@code{\new Staff}.
@lilypond[quote,verbatim,relative=2,ragged-right,fragment]
so the texts can be properly aligned to its notes,
@example
so the texts can be properly aligned to its notes,
@example
-\new Lyrics \lyricsto "@b{tenor}" @var{lyrics}
+\new Lyrics \lyricsto "@b{tenor}" @var{lyrics}
For example,
@lilypond[quote,verbatim,relative=2,fragment]
For example,
@lilypond[quote,verbatim,relative=2,fragment]
\set Score.skipBars = ##t
R1*2
@end lilypond
\set Score.skipBars = ##t
R1*2
@end lilypond
have no effect.
@lilypond[quote,verbatim,relative=2,fragment]
have no effect.
@lilypond[quote,verbatim,relative=2,fragment]
\set skipBars = ##t
R1*2
@end lilypond
\set skipBars = ##t
R1*2
@end lilypond
`on-the-fly', during the music, so that the setting only affects the
second group of eighth notes.
`on-the-fly', during the music, so that the setting only affects the
second group of eighth notes.
There is also an @code{\unset} command,
@example
There is also an @code{\unset} command,
@example
specified for a bottom context, so the two statements
@example
specified for a bottom context, so the two statements
@example
-\set Voice.autoBeaming = ##t
-\set autoBeaming = ##t
-@end example
+\set Voice.autoBeaming = ##t
+\set autoBeaming = ##t
+@end example
@noindent
are equivalent.
@noindent
are equivalent.
@code{Note_head_engraver} and the @code{Staff} context contains a
@code{Key_signature_engraver}.
@code{Note_head_engraver} and the @code{Staff} context contains a
@code{Key_signature_engraver}.
-For a full a description of each plug-in, see
+For a full a description of each plug-in, see
@ifhtml
@internalsref{Engravers}.
@end ifhtml
@ifhtml
@internalsref{Engravers}.
@end ifhtml
@ifhtml
@internalsref{Contexts}
@end ifhtml
@ifhtml
@internalsref{Contexts}
@end ifhtml
Program reference @arrow Translation @arrow{} Context.
@end ifnothtml
lists the engravers used for that context.
Program reference @arrow Translation @arrow{} Context.
@end ifnothtml
lists the engravers used for that context.
objects. The settings used for printing these objects are also stored by
context. By changing these settings, the appearance of objects can be
altered.
objects. The settings used for printing these objects are also stored by
context. By changing these settings, the appearance of objects can be
altered.
The syntax for this is
@example
The syntax for this is
@example
-\override Staff.Stem #'thickness = #4.0
+\override Staff.Stem #'thickness = #4.0
@lilypond[quote,verbatim,relative=2,fragment]
c4
@lilypond[quote,verbatim,relative=2,fragment]
c4
-\override Staff.Stem #'thickness = #4.0
+\override Staff.Stem #'thickness = #4.0
Analogous to @code{\set}, the @var{context} argument may be left out,
causing it to default to @context{Voice}, and adding @code{\once} applies
Analogous to @code{\set}, the @var{context} argument may be left out,
causing it to default to @context{Voice}, and adding @code{\once} applies
-the change during one timestep only
+the change during one timestep only
@lilypond[quote,fragment,verbatim,relative=2]
c4
@lilypond[quote,fragment,verbatim,relative=2]
c4
-\once \override Stem #'thickness = #4.0
+\once \override Stem #'thickness = #4.0
+c4
@end lilypond
The @code{\override} must be done before the object is
@end lilypond
The @code{\override} must be done before the object is
\override Slur #'thickness = #3.0
c8[( c
\override Beam #'thickness = #0.6
\override Slur #'thickness = #3.0
c8[( c
\override Beam #'thickness = #0.6
@end example
Here @code{\Staff} takes the existing definition for context @context{Staff} from the
@end example
Here @code{\Staff} takes the existing definition for context @context{Staff} from the
-identifier @code{\Staff}.
+identifier @code{\Staff}.
- a4 d8 bes8 \new ImproVoice { c4^"ad lib" c
- c4 c^"undress" c_"while playing :)" c }
- a1
+ a4 d8 bes8 \new ImproVoice { c4^"ad lib" c
+ c4 c^"undress" c_"while playing :)" c }
+ a1
@example
\context @{
\Staff
@example
\context @{
\Staff
\relative c'' @{
a4 d8 bes8
\new ImproVoice @{
\relative c'' @{
a4 d8 bes8
\new ImproVoice @{
c4 c^"undress"
c c_"while playing :)"
@}
a1
@}
@end example
c4 c^"undress"
c c_"while playing :)"
@}
a1
@}
@end example
@node The \override command
@section The \override command
@node The \override command
@section The \override command
@item the layout object: here @code{Stem}.
@item the layout property: here @code{thickness}.
@item a sensible value: here @code{3.0}.
@item the layout object: here @code{Stem}.
@item the layout property: here @code{thickness}.
@item a sensible value: here @code{3.0}.
Some tweakable options are called ``subproperties'' and reside inside
properties. To tweak those, use commands in the form
Some tweakable options are called ``subproperties'' and reside inside
properties. To tweak those, use commands in the form
@cindex internal documentation
@cindex finding graphical objects
@cindex internal documentation
@cindex finding graphical objects
-@cindex graphical object descriptions
+@cindex graphical object descriptions
@cindex tweaking
@cindex @code{\override}
@cindex internal documentation
@cindex tweaking
@cindex @code{\override}
@cindex internal documentation
@quotation
Accepted by: @internalsref{Fingering_engraver},
@quotation
Accepted by: @internalsref{Fingering_engraver},
@noindent
That link brings us to the documentation for the Engraver, the
@noindent
That link brings us to the documentation for the Engraver, the
chapter lists all the definitions used and all properties that may be
tuned.
chapter lists all the definitions used and all properties that may be
tuned.
@node Layout interfaces
@subsection Layout interfaces
@node Layout interfaces
@subsection Layout interfaces
@quotation
@code{padding} (dimension, in staff space):
@quotation
@code{padding} (dimension, in staff space):
@code{0.5}
@end quotation
@code{0.5}
@end quotation
@node Determining the grob property
@subsection Determining the grob property
@node Determining the grob property
@subsection Determining the grob property
-Recall that we wanted to change the position of the @b{2} in
+Recall that we wanted to change the position of the @b{2} in
@lilypond[quote,fragment,relative=2,verbatim]
c-2
@lilypond[quote,fragment,relative=2,verbatim]
c-2
Since the @b{2} is vertically positioned next to its note, we have to
meddle with the interface associated with this positioning. This is
Since the @b{2} is vertically positioned next to its note, we have to
meddle with the interface associated with this positioning. This is
-done using @code{side-position-interface}. The page for this interface
+done using @code{side-position-interface}. The page for this interface
@item padding
(dimension, in staff space)
@item padding
(dimension, in staff space)
-Add this much extra space between objects that are next to each other.
+Add this much extra space between objects that are next to each other.
@end table
@end quotation
@end table
@end quotation
\tweak #'color #red d
g
\tweak #'duration-log #1 a
\tweak #'color #red d
g
\tweak #'duration-log #1 a
->4-\tweak #'padding #10 -.
+>4-\tweak #'padding #10 -.
@end lilypond
As you can see, properties are set directly in the objects directly,
@end lilypond
As you can see, properties are set directly in the objects directly,
@code{studlyCaps}. They mostly control the translation from
music to notatino, eg. @code{localKeySignature} (for determining
whether to print accidentals), @code{measurePosition} (for
@code{studlyCaps}. They mostly control the translation from
music to notatino, eg. @code{localKeySignature} (for determining
whether to print accidentals), @code{measurePosition} (for
-determining when to print a barline). Context properties can
+determining when to print a barline). Context properties can
change value over time while interpreting a piece of music;
@code{measurePosition} is an obvious example of
this. Context properties are modified with @code{\set}.
change value over time while interpreting a piece of music;
@code{measurePosition} is an obvious example of
this. Context properties are modified with @code{\set}.
@node Difficult tweaks
@subsection Difficult tweaks
@node Difficult tweaks
@subsection Difficult tweaks
-There are a few classes of difficult adjustments.
+There are a few classes of difficult adjustments.
In the following example, we define a procedure
@code{my-callback}. This procedure
In the following example, we define a procedure
@code{my-callback}. This procedure
@itemize @bullet
@item
determines if we have been split across line breaks
@itemize @bullet
@item
determines if we have been split across line breaks
@lilypond[quote,verbatim,ragged-right]
#(define (my-callback grob)
(let* (
@lilypond[quote,verbatim,ragged-right]
#(define (my-callback grob)
(let* (
(orig (ly:grob-original grob))
; if yes, get the split pieces (our siblings)
(orig (ly:grob-original grob))
; if yes, get the split pieces (our siblings)
(eq? (car (last-pair siblings)) grob))
(ly:grob-set-property! grob 'extra-offset '(-2 . 5)))))
(eq? (car (last-pair siblings)) grob))
(ly:grob-set-property! grob 'extra-offset '(-2 . 5)))))
\override Tie #'after-line-breaking =
#my-callback
c1 ~ \break c2 ~ c
\override Tie #'after-line-breaking =
#my-callback
c1 ~ \break c2 ~ c
@code{\outputProperty} function, which works similar to @code{\once
\override}, but uses a different syntax,
@code{\outputProperty} function, which works similar to @code{\once
\override}, but uses a different syntax,
\outputProperty
#"Score.NonMusicalPaperColumn" % Grob name
\outputProperty
#"Score.NonMusicalPaperColumn" % Grob name
-#'line-break-system-details % Property name
+#'line-break-system-details % Property name
#'((next-padding . 20)) % Value
@end example
#'((next-padding . 20)) % Value
@end example
* Invoking midi2ly:: Importing MIDI.
* Invoking etf2ly:: Importing Finale.
* Invoking musicxml2ly::
* Invoking midi2ly:: Importing MIDI.
* Invoking etf2ly:: Importing Finale.
* Invoking musicxml2ly::
-* Invoking abc2ly:: Importing ABC.
-* Invoking mup2ly:: Importing MUP.
+* Invoking abc2ly:: Importing ABC.
+* Invoking mup2ly:: Importing MUP.
* Generating LilyPond files::
@end menu
* Generating LilyPond files::
@end menu
%%LY voices \set autoBeaming = ##f
@end example
%%LY voices \set autoBeaming = ##f
@end example
-This will cause the text following the keyword ``voices'' to be inserted
+This will cause the text following the keyword ``voices'' to be inserted
into the current voice of the LilyPond output file.
Similarly,
into the current voice of the LilyPond output file.
Similarly,
@refbugs
The ABC standard is not very ``standard''. For extended features
@refbugs
The ABC standard is not very ``standard''. For extended features
-(e.g., polyphonic music) different conventions exist.
+(e.g., polyphonic music) different conventions exist.
Multiple tunes in one file cannot be converted.
Multiple tunes in one file cannot be converted.
@item -v,--version
version information
@item -w,--warranty
@item -v,--version
version information
@item -w,--warranty
-print warranty and copyright.
+print warranty and copyright.
@item
@uref{http://@/denemo@/.sourceforge@/.net/,Denemo}, a graphical score editor.
@item
@item
@uref{http://@/denemo@/.sourceforge@/.net/,Denemo}, a graphical score editor.
@item
-@uref{http://www@/.volny@/.cz/smilauer/rumor/rumor@/.html,Rumor}, a realtime
+@uref{http://www@/.volny@/.cz/smilauer/rumor/rumor@/.html,Rumor}, a realtime
monophonic MIDI to LilyPond converter.
@item
monophonic MIDI to LilyPond converter.
@item
-@uref{http://nicolas@/.sceaux@/.free@/.fr/lilypond/lyqi@/.html,lyqi}, an
+@uref{http://nicolas@/.sceaux@/.free@/.fr/lilypond/lyqi@/.html,lyqi}, an
Emacs major mode.
@item
@uref{http://@/www@/.nongnu@/.org/@/xml2ly/, xml2ly}, which imports
Emacs major mode.
@item
@uref{http://@/www@/.nongnu@/.org/@/xml2ly/, xml2ly}, which imports
%%%%% vn1.ly
\version "2.7.39"
\include "piece.ly"
%%%%% vn1.ly
\version "2.7.39"
\include "piece.ly"
\keepWithTag #'vn1 \music
\layout { }
}
\keepWithTag #'vn1 \music
\layout { }
}
%%%%% vn2.ly
\version "2.7.39"
\include "piece.ly"
%%%%% vn2.ly
\version "2.7.39"
\include "piece.ly"
\keepWithTag #'vn2 \music
\layout { }
}
\keepWithTag #'vn2 \music
\layout { }
}
%%%%% vla.ly
\version "2.7.39"
\include "piece.ly"
%%%%% vla.ly
\version "2.7.39"
\include "piece.ly"
\keepWithTag #'vla \music
\layout { }
}
\keepWithTag #'vla \music
\layout { }
}
%%%%% vlc.ly
\version "2.7.39"
\include "piece.ly"
%%%%% vlc.ly
\version "2.7.39"
\include "piece.ly"
\keepWithTag #'vlc \music
\layout { }
}
\keepWithTag #'vlc \music
\layout { }
}
@c -*- coding: utf-8; mode: texinfo; -*-
@c This file is part of lilypond.tely
@c -*- coding: utf-8; mode: texinfo; -*-
@c This file is part of lilypond.tely
-@c A menu is needed before every deeper *section nesting of @node's; run
+@c A menu is needed before every deeper *section nesting of @node's; run
@c M-x texinfo-all-menus-update
@c to automatically fill in these menus before saving changes
@c M-x texinfo-all-menus-update
@c to automatically fill in these menus before saving changes
@item
A @code{\header} block. This sets the global header block. This
is the block containing the definitions for book-wide settings, like
@item
A @code{\header} block. This sets the global header block. This
is the block containing the definitions for book-wide settings, like
@item
An @code{\addquote} statement. See @ref{Quoting other voices}
@item
An @code{\addquote} statement. See @ref{Quoting other voices}
\header @{ @}
@}
@end example
\header @{ @}
@}
@end example
This behavior can be changed by setting the variable
@code{toplevel-music-handler} at toplevel. The default handler is
defined in the init file @file{scm/@/lily@/.scm}.
This behavior can be changed by setting the variable
@code{toplevel-music-handler} at toplevel. The default handler is
defined in the init file @file{scm/@/lily@/.scm}.
- % movements are non-justified by default
+ % movements are non-justified by default
ragged-right = ##t
@}
\header @{
title = "Do-re-mi"
@}
ragged-right = ##t
@}
\header @{
title = "Do-re-mi"
@}
@{ c'4 d' e2 @}
@end example
@{ c'4 d' e2 @}
@end example
@item @code{\version}
@item @code{\include}
@item @code{\renameinput}
@item @code{\version}
@item @code{\include}
@item @code{\renameinput}
@node Including LilyPond files
@node Including LilyPond files
current working directory are available to \include, but a file of the same
name in LilyPond's installation takes precedence. Files are
available to \include from directories in the search path specified as an
current working directory are available to \include, but a file of the same
name in LilyPond's installation takes precedence. Files are
available to \include from directories in the search path specified as an
-option when invoking @code{lilypond --include=DIR} which adds DIR to the
+option when invoking @code{lilypond --include=DIR} which adds DIR to the
search path.
The @code{\include} statement can use full path information, but with the Unix
search path.
The @code{\include} statement can use full path information, but with the Unix
\book {
\header {
dedication = "dedicated to me"
\book {
\header {
dedication = "dedicated to me"
- title = \markup \center-align { "Title first line" "Title second line,
+ title = \markup \center-align { "Title first line" "Title second line,
longer" }
subtitle = "the subtitle,"
longer" }
subtitle = "the subtitle,"
- subsubtitle = #(string-append "subsubtitle LilyPond version "
+ subsubtitle = #(string-append "subsubtitle LilyPond version "
(lilypond-version))
poet = "Poet"
composer = \markup \center-align { "composer" \small "(1847-1973)" }
texttranslator = "Text Translator"
(lilypond-version))
poet = "Poet"
composer = \markup \center-align { "composer" \small "(1847-1973)" }
texttranslator = "Text Translator"
- meter = \markup { \teeny "m" \tiny "e" \normalsize "t" \large "e" \huge
+ meter = \markup { \teeny "m" \tiny "e" \normalsize "t" \large "e" \huge
- arranger = \markup { \fontsize #8.5 "a" \fontsize #2.5 "r" \fontsize
+ arranger = \markup { \fontsize #8.5 "a" \fontsize #2.5 "r" \fontsize
#-2.5 "r" \fontsize #-5.3 "a" \fontsize #7.5 "nger" }
instrument = \markup \bold \italic "instrument"
piece = "Piece"
#-2.5 "r" \fontsize #-5.3 "a" \fontsize #7.5 "nger" }
instrument = \markup \bold \italic "instrument"
piece = "Piece"
{ c'1 }
\header {
piece = "piece1"
{ c'1 }
\header {
piece = "piece1"
{ c'1 }
\header {
piece = "piece2"
{ c'1 }
\header {
piece = "piece2"
-As demonstrated before, you can use multiple @code{\header} blocks.
-When same fields appear in different blocks, the latter is used.
+As demonstrated before, you can use multiple @code{\header} blocks.
+When same fields appear in different blocks, the latter is used.
\header @{
composer = "Composer"
@}
\header @{
composer = "Composer"
@}
@item bookTitleMarkup
This is the title put over an entire @code{\book} block. Typically,
it has the composer and the title of the piece
@item bookTitleMarkup
This is the title put over an entire @code{\book} block. Typically,
it has the composer and the title of the piece
@cindex @code{scoreTitleMarkup}
@item scoreTitleMarkup
This is the title put over a @code{\score} block within a
@cindex @code{scoreTitleMarkup}
@item scoreTitleMarkup
This is the title put over a @code{\score} block within a
@cindex @code{oddHeaderMarkup}
@item oddHeaderMarkup
@cindex @code{oddHeaderMarkup}
@item oddHeaderMarkup
- This is the page header for odd-numbered pages.
+ This is the page header for odd-numbered pages.
@cindex @code{evenHeaderMarkup}
@item evenHeaderMarkup
@cindex @code{evenHeaderMarkup}
@item evenHeaderMarkup
@cindex @code{oddFooterMarkup}
@item oddFooterMarkup
@cindex @code{oddFooterMarkup}
@item oddFooterMarkup
- This is the page footer for odd-numbered pages.
-
+ This is the page footer for odd-numbered pages.
+
@cindex @code{evenFotterMarkup}
@item evenFooterMarkup
This is the page footer for even-numbered pages. If unspecified,
@cindex @code{evenFotterMarkup}
@item evenFooterMarkup
This is the page footer for even-numbered pages. If unspecified,
-The @code{breakbefore=##t} header requires that there is a @code{piece}
-header as well. It may be used as a normal header, or left blank
+The @code{breakbefore=##t} header requires that there is a @code{piece}
+header as well. It may be used as a normal header, or left blank
(@code{=""}) as in the example above, but it must be present.
(@code{=""}) as in the example above, but it must be present.
-The first command sets the size of all pages. The second command sets the
+The first command sets the size of all pages. The second command sets the
size
of the pages that the @code{\paper} block applies to -- if the @code{\paper}
block is at the top of the file, then it will apply to all pages. If the
size
of the pages that the @code{\paper} block applies to -- if the @code{\paper}
block is at the top of the file, then it will apply to all pages. If the
@example
#(set-default-paper-size "a6" 'landscape)
@example
#(set-default-paper-size "a6" 'landscape)
Setting the paper size will adjust a number of @code{\paper} variables
(such as margins). To use a particular paper size with altered
Setting the paper size will adjust a number of @code{\paper} variables
(such as margins). To use a particular paper size with altered
This should be set to true for pieces that have only two or three
systems per page, for example orchestral scores.
This should be set to true for pieces that have only two or three
systems per page, for example orchestral scores.
@cindex @code{ragged-last-bottom}
@item ragged-last-bottom
If set to false, systems will be spread vertically to fill the last page.
@cindex @code{ragged-last-bottom}
@item ragged-last-bottom
If set to false, systems will be spread vertically to fill the last page.
Amount of space between the title and the first system.
@cindex @code{after-title-space}
Amount of space between the title and the first system.
@cindex @code{after-title-space}
-@item before-title-space
+@item before-title-space
Amount of space between the last system of the previous piece and the
title of the next.
Amount of space between the last system of the previous piece and the
title of the next.
- #(define bottom-margin (* 2 cm))
+ #(define bottom-margin (* 2 cm))
@tab pocket scores
@item feta13
@tab 12.60
@tab 4.4
@tab
@tab pocket scores
@item feta13
@tab 12.60
@tab 4.4
@tab
@item feta14
@tab 14.14
@tab 5.0
@item feta14
@tab 14.14
@tab 5.0
@item feta16
@tab 15.87
@tab 5.6
@item feta16
@tab 15.87
@tab 5.6
@item feta20
@tab 20
@tab 7.0
@item feta20
@tab 20
@tab 7.0
@tab 8.9
@tab
@c modern rental material?
@tab 8.9
@tab
@c modern rental material?
The following commands set @code{fontSize} for the current voice:
@cindex @code{\tiny}
The following commands set @code{fontSize} for the current voice:
@cindex @code{\tiny}
@cindex @code{\normalsize}
@code{\normalsize}.
@cindex @code{\normalsize}
@code{\normalsize}.
@lilypond[ragged-right, fragment, relative=2, staffsize=13]
\new StaffGroup <<
@lilypond[ragged-right, fragment, relative=2, staffsize=13]
\new StaffGroup <<
- \new Staff {
- c1\break
-
+ \new Staff {
+ c1\break
+
\overrideProperty
#"Score.NonMusicalPaperColumn"
#'line-break-system-details
#'((fixed-alignment-extra-space . 15))
\overrideProperty
#"Score.NonMusicalPaperColumn"
#'line-break-system-details
#'((fixed-alignment-extra-space . 15))
@c let's wait for a some comments before writing more.
@c let's wait for a some comments before writing more.
-The vertical spacing on a page can also be changed for each system
+The vertical spacing on a page can also be changed for each system
individually.
Some examples are found in the example file
@inputfileref{input/regression/,page-spacing.ly}.
individually.
Some examples are found in the example file
@inputfileref{input/regression/,page-spacing.ly}.
Internals: Vertical alignment of staves is handled by the
@internalsref{VerticalAlignment} object. The context parameters
Internals: Vertical alignment of staves is handled by the
@internalsref{VerticalAlignment} object. The context parameters
-specifying the vertical extent are described in connection with
+specifying the vertical extent are described in connection with
the @internalsref{Axis_group_engraver}.
Example files: @inputfileref{input/regression/,page-spacing.ly},
the @internalsref{Axis_group_engraver}.
Example files: @inputfileref{input/regression/,page-spacing.ly},
The distance between staves of a @internalsref{PianoStaff} cannot be
computed during formatting. Rather, to make cross-staff beaming work
correctly, that distance has to be fixed beforehand.
The distance between staves of a @internalsref{PianoStaff} cannot be
computed during formatting. Rather, to make cross-staff beaming work
correctly, that distance has to be fixed beforehand.
The distance of staves in a @code{PianoStaff} is set with the
@code{forced-distance} property of the
@internalsref{VerticalAlignment} object, created in
The distance of staves in a @code{PianoStaff} is set with the
@code{forced-distance} property of the
@internalsref{VerticalAlignment} object, created in
\new Staff { c }
\new Staff { c }
>>
\new Staff { c }
\new Staff { c }
>>
@end lilypond
It is also possible to change the distance between for each system
@end lilypond
It is also possible to change the distance between for each system
-individually. This is done by including the command
+individually. This is done by including the command
@example
\overrideProperty
@example
\overrideProperty
@lilypond[ragged-right, fragment, relative=2, staffsize=13]
\new PianoStaff <<
@lilypond[ragged-right, fragment, relative=2, staffsize=13]
\new PianoStaff <<
- \new Staff {
- c1\break
-
+ \new Staff {
+ c1\break
+
\overrideProperty
#"Score.NonMusicalPaperColumn"
#'line-break-system-details
#'((fixed-alignment-extra-space . 15))
\overrideProperty
#"Score.NonMusicalPaperColumn"
#'line-break-system-details
#'((fixed-alignment-extra-space . 15))
@code{spacing-increment}) of space to the note.
For example, the following piece contains lots of half, quarter, and
@code{spacing-increment}) of space to the note.
For example, the following piece contains lots of half, quarter, and
-8th notes; the eighth note is followed by 1 note head width (NHW).
+8th notes; the eighth note is followed by 1 note head width (NHW).
The quarter note is followed by 2 NHW, the half by 3 NHW, etc.
@lilypond[quote,fragment,verbatim,relative=1]
The quarter note is followed by 2 NHW, the half by 3 NHW, etc.
@lilypond[quote,fragment,verbatim,relative=1]
\override Staff.NoteSpacing #'stem-spacing-correction = #1.5
\override Staff.StaffSpacing #'stem-spacing-correction = #1.5
c'4 e''4 e'4 b'4 |
\override Staff.NoteSpacing #'stem-spacing-correction = #1.5
\override Staff.StaffSpacing #'stem-spacing-correction = #1.5
c'4 e''4 e'4 b'4 |
regard for clefs, bar lines, and grace notes,
@lilypond[quote,ragged-right,relative=2,fragment,verbatim]
regard for clefs, bar lines, and grace notes,
@lilypond[quote,ragged-right,relative=2,fragment,verbatim]
-\override Score.SpacingSpanner #'strict-note-spacing = ##t
+\override Score.SpacingSpanner #'strict-note-spacing = ##t
\new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
@end lilypond
\new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
@end lilypond
this point. Line breaks can only occur at places where there are bar
lines. If you want to have a line break where there is no bar line,
you can force an invisible bar line by entering @code{\bar
this point. Line breaks can only occur at places where there are bar
lines. If you want to have a line break where there is no bar line,
you can force an invisible bar line by entering @code{\bar
-""}. Similarly, @code{\noBreak} forbids a line break at a
+""}. Similarly, @code{\noBreak} forbids a line break at a
point.
@cindex regular line breaks
point.
@cindex regular line breaks
For line breaks at regular intervals use @code{\break} separated by
skips and repeated with @code{\repeat}:
For line breaks at regular intervals use @code{\break} separated by
skips and repeated with @code{\repeat}:
s1 \noBreak s1 \noBreak
s1 \noBreak s1 \break @}
@emph{the real music}
s1 \noBreak s1 \noBreak
s1 \noBreak s1 \break @}
@emph{the real music}
a line break.
Page breaks are computed by the @code{page-breaking} function in the
a line break.
Page breaks are computed by the @code{page-breaking} function in the
To force a new page for a new piece (in a collection of pieces or a
piece in several movements), use @code{breakbefore} in the header.
To force a new page for a new piece (in a collection of pieces or a
piece in several movements), use @code{breakbefore} in the header.
@cindex @code{\pageBreak}
@code{\pageBreak}
@cindex @code{\pageBreak}
@code{\pageBreak}
-@cindex @code{\noPageBreak}
-@code{\noPageBreak}
+@cindex @code{\noPageBreak}
+@code{\noPageBreak}
-The @code{breakbefore=##t} header requires that there is a @code{piece}
-header as well. It may be used as a normal header, or left blank
+The @code{breakbefore=##t} header requires that there is a @code{piece}
+header as well. It may be used as a normal header, or left blank
(@code{=""}) as in the example above, but it must be present.
(@code{=""}) as in the example above, but it must be present.
@cindex Engraved by LilyPond
@cindex signature line
@cindex Engraved by LilyPond
@cindex signature line
- title = "Eight miniatures"
+ title = "Eight miniatures"
composer = "Igor Stravinsky"
@}
\score @{
composer = "Igor Stravinsky"
@}
\score @{
@end menu
@node Creating MIDI files
@end menu
@node Creating MIDI files
-@subsection Creating MIDI files
+@subsection Creating MIDI files
To create a MIDI from a music piece of music, add a @code{\midi} block
to a score, for example,
To create a MIDI from a music piece of music, add a @code{\midi} block
to a score, for example,
\score @{
@var{...music...}
\midi @{ \tempo 4=72 @}
@}
\score @{
@var{...music...}
\midi @{ \tempo 4=72 @}
@}
The tempo is specified using the @code{\tempo} command. In this
example the tempo of quarter notes is set to 72 beats per minute.
The tempo is specified using the @code{\tempo} command. In this
example the tempo of quarter notes is set to 72 beats per minute.
be produced. When notation is needed too, a @code{\layout} block must
be added
be produced. When notation is needed too, a @code{\layout} block must
be added
\score @{
@var{...music...}
\midi @{ \tempo 4=72 @}
\layout @{ @}
@}
\score @{
@var{...music...}
\midi @{ \tempo 4=72 @}
\layout @{ @}
@}
inserted, for example
@example
inserted, for example
@example
-\midi @{ \tempo 4 . = 120 @}
+\midi @{ \tempo 4 . = 120 @}
@c -*- coding: utf-8; mode: texinfo; -*-
@c This file is part of lilypond.tely
@c -*- coding: utf-8; mode: texinfo; -*-
@c This file is part of lilypond.tely
-@c A menu is needed before every deeper *section nesting of @node's; run
+@c A menu is needed before every deeper *section nesting of @node's; run
@c M-x texinfo-all-menus-update
@c to automatically fill in these menus before saving changes
@c M-x texinfo-all-menus-update
@c to automatically fill in these menus before saving changes
@cindex @code{chordPrefixSpacer}
@item chordPrefixSpacer
@cindex @code{chordPrefixSpacer}
@item chordPrefixSpacer
-The ``m'' for minor chords is usually printed right after the root of
-the chord. By setting @code{chordPrefixSpacer}, you can fix a spacer
+The ``m'' for minor chords is usually printed right after the root of
+the chord. By setting @code{chordPrefixSpacer}, you can fix a spacer
between the root and ``m''. The spacer is not used when the root
is altered.
@end table
The predefined variables @code{\germanChords},
between the root and ``m''. The spacer is not used when the root
is altered.
@end table
The predefined variables @code{\germanChords},
-@code{\semiGermanChords}, @code{\italianChords} and @code{\frenchChords}
+@code{\semiGermanChords}, @code{\italianChords} and @code{\frenchChords}
set these variables. The effect is
demonstrated here,
set these variables. The effect is
demonstrated here,
-Checking to make sure that text scripts and lyrics are within the margins is
-a relatively large computational task. To speed up processing, lilypond does
+Checking to make sure that text scripts and lyrics are within the margins is
+a relatively large computational task. To speed up processing, lilypond does
not perform such calculations by default; to enable it, use
@example
not perform such calculations by default; to enable it, use
@example
-\override Score.PaperColumn #'keep-inside-line = ##t
+\override Score.PaperColumn #'keep-inside-line = ##t
@end example
To make lyrics avoid barlines as well, use
@end example
To make lyrics avoid barlines as well, use
\addlyrics { joue le jeu }
@end lilypond
\addlyrics { joue le jeu }
@end lilypond
-The command @code{\addlyrics} cannot handle polyphony settings. For these
+The command @code{\addlyrics} cannot handle polyphony settings. For these
cases you should use @code{\lyricsto} and @code{\lyricmode}.
cases you should use @code{\lyricsto} and @code{\lyricmode}.
the lyrics to a melody or other voice of music, using @code{\addlyrics}
or @code{\lyricsto}. For more details see @ref{The Lyrics context}.
the lyrics to a melody or other voice of music, using @code{\addlyrics}
or @code{\lyricsto}. For more details see @ref{The Lyrics context}.
-A word or syllable of lyrics begins with an alphabetic character, and ends
+A word or syllable of lyrics begins with an alphabetic character, and ends
with
any space or digit. The following characters can be any character
that is not a digit or white space. One important consequence of this
is that a word can end with @code{@}}. The following example is
with
any space or digit. The following characters can be any character
that is not a digit or white space. One important consequence of this
is that a word can end with @code{@}}. The following example is
-usually a mistake in the input file. The syllable includes a @code{@}}, so
+usually a mistake in the input file. The syllable includes a @code{@}}, so
the
opening brace is not balanced
@example
the
opening brace is not balanced
@example
@node The Lyrics context
@subsection The Lyrics context
@node The Lyrics context
@subsection The Lyrics context
-Lyrics are printed by interpreting them in the context caleld
+Lyrics are printed by interpreting them in the context caleld
@internalsref{Lyrics}.
@example
@internalsref{Lyrics}.
@example
The following example uses different commands for entering lyrics.
@lilypond[quote,fragment,ragged-right,verbatim]
The following example uses different commands for entering lyrics.
@lilypond[quote,fragment,ragged-right,verbatim]
\new Voice = "one" \relative c'' {
\autoBeamOff
\time 2/4
\new Voice = "one" \relative c'' {
\autoBeamOff
\time 2/4
- c4 b8. a16 g4. f8 e4 d c2
+ c4 b8. a16 g4. f8 e4 d c2
}
\new Lyrics \lyricmode { Joy4 to8. the16 world!4. the8 Lord4 is come.2 }
\new Lyrics \lyricmode { Joy to the earth! the Sav -- our reigns. }
}
\new Lyrics \lyricmode { Joy4 to8. the16 world!4. the8 Lord4 is come.2 }
\new Lyrics \lyricmode { Joy to the earth! the Sav -- our reigns. }
@example
verseOne = \lyricmode @{ Joy to the world the Lord is come @}
\score @{
@example
verseOne = \lyricmode @{ Joy to the world the Lord is come @}
\score @{
\new Voice = "one" \relative c'' @{
\autoBeamOff
\time 2/4
\new Voice = "one" \relative c'' @{
\autoBeamOff
\time 2/4
- c4 b8. a16 g4. f8 e4 d c2
+ c4 b8. a16 g4. f8 e4 d c2
@}
\addlyrics @{ \verseOne @}
>>
@}
\addlyrics @{ \verseOne @}
>>
The @code{\addlyrics} command is actually just a convenient way
to write a more complicated LilyPond structure that sets up the
The @code{\addlyrics} command is actually just a convenient way
to write a more complicated LilyPond structure that sets up the
@end menu
@node Lyrics to multiple notes of a melisma
@end menu
@node Lyrics to multiple notes of a melisma
-@subsubsection Lyrics to multiple notes of a melisma
+@subsubsection Lyrics to multiple notes of a melisma
One possibility is that the text has a melisma in one stanza, but
One possibility is that the text has a melisma in one stanza, but
It is also possible to define melismata entirely in the lyrics. This
can be done by entering @code{_} for every note that is part of the
It is also possible to define melismata entirely in the lyrics. This
can be done by entering @code{_} for every note that is part of the
-@lilypond[relative=1,verbatim,fragment]
+@lilypond[relative=1,verbatim,fragment]
{ \set melismaBusyProperties = #'()
c d( e) f f( e) e e }
\addlyrics
{ \set melismaBusyProperties = #'()
c d( e) f f( e) e e }
\addlyrics
LyricSpace.
@lilypond[relative,verbatim,fragment,quote,ragged-right]
LyricSpace.
@lilypond[relative,verbatim,fragment,quote,ragged-right]
c c c c
\override Lyrics.LyricSpace #'minimum-distance = #1.0
c c c c
c c c c
\override Lyrics.LyricSpace #'minimum-distance = #1.0
c c c c
-To make this change for all lyrics in the score, set the property in the
+To make this change for all lyrics in the score, set the property in the
layout.
@lilypond[relative,verbatim,quote,ragged-right]
layout.
@lilypond[relative,verbatim,quote,ragged-right]
-Program reference: @internalsref{LyricText}, @internalsref{StanzaNumber},
+Program reference: @internalsref{LyricText}, @internalsref{StanzaNumber},
@internalsref{VocalName}.
@internalsref{VocalName}.
@cindex String numbers
String numbers can be added to chords, by indicating the string number
@cindex String numbers
String numbers can be added to chords, by indicating the string number
-with @code{\}@var{number},
+with @code{\}@var{number},
@lilypond[relative,relative=1,ragged-right,fragment]
<c\1 e\2 g\3>
@lilypond[relative,relative=1,ragged-right,fragment]
<c\1 e\2 g\3>
\set TabStaff.stringTunings = #bass-tuning
@end example
\set TabStaff.stringTunings = #bass-tuning
@end example
-The default string tuning is @code{guitar-tuning} (the standard EADGBE
+The default string tuning is @code{guitar-tuning} (the standard EADGBE
tuning).
Some other predefined tunings are @code{guitar-open-g-tuning},
@code{mandolin-tuning} and @code{banjo-open-g-tuning}.
@seealso
tuning).
Some other predefined tunings are @code{guitar-open-g-tuning},
@code{mandolin-tuning} and @code{banjo-open-g-tuning}.
@seealso
-The file @file{scm/@/output@/-lib@/.scm} contains the predefined string
+The file @file{scm/@/output@/-lib@/.scm} contains the predefined string
tunings.
Program reference: @internalsref{Tab_note_heads_engraver}.
tunings.
Program reference: @internalsref{Tab_note_heads_engraver}.
@cindex Banjo tablatures
LilyPond has basic support for five stringed banjo. When making tablatures
@cindex Banjo tablatures
LilyPond has basic support for five stringed banjo. When making tablatures
-for five stringed banjo, use the banjo tablature format function to get
+for five stringed banjo, use the banjo tablature format function to get
correct
fret numbers for the fifth string:
correct
fret numbers for the fifth string:
-Stopped (X) note heads are used in guitar music to signal a place where the
-guitarist must play a certain note or chord, with its fingers just
-touching the strings instead of fully pressing them. This gives the sound a
+Stopped (X) note heads are used in guitar music to signal a place where the
+guitarist must play a certain note or chord, with its fingers just
+touching the strings instead of fully pressing them. This gives the sound a
percussive noise-like sound that still maintains part of the original
pitch. It is notated with cross noteheads; this is
demonstrated in @ref{Special noteheads}.
percussive noise-like sound that still maintains part of the original
pitch. It is notated with cross noteheads; this is
demonstrated in @ref{Special noteheads}.
{ \grg G4 \grg a \grg b \grg c \grg d \grg e \grg f \grA g A }
@end lilypond
{ \grg G4 \grg a \grg b \grg c \grg d \grg e \grg f \grA g A }
@end lilypond
-Bagpipe music nominally uses the key of D Major (even though that
-isn't really true). However, since that is the only key that can be used,
-the key signature is normally not written out. To set this up correctly,
-always start your music with @code{\hideKeySignature}. If you for some
+Bagpipe music nominally uses the key of D Major (even though that
+isn't really true). However, since that is the only key that can be used,
+the key signature is normally not written out. To set this up correctly,
+always start your music with @code{\hideKeySignature}. If you for some
reason want to show the key signature, you can use @code{\showKeySignature}
instead.
Some modern music use cross fingering on c and f to flatten those notes.
This can be indicated by @code{cflat} or @code{fflat}. Similarly, the
reason want to show the key signature, you can use @code{\showKeySignature}
instead.
Some modern music use cross fingering on c and f to flatten those notes.
This can be indicated by @code{cflat} or @code{fflat}. Similarly, the
-piobaireachd high g can be written @code{gflat} when it occurs in light
+piobaireachd high g can be written @code{gflat} when it occurs in light
{
\hideKeySignature
\time 3/4
{
\hideKeySignature
\time 3/4
- \grg \partial 4 a8. d16
+ \grg \partial 4 a8. d16
\slurd d2 \grg f8[ e32 d16.]
\grg f2 \grg f8 e
\thrwd d2 \grg b4
\slurd d2 \grg f8[ e32 d16.]
\grg f2 \grg f8 e
\thrwd d2 \grg b4
-In this manual: @ref{Rests} gives a general introduction into the use of
+In this manual: @ref{Rests} gives a general introduction into the use of
{
\set Score.timing = ##f
\set Score.barAlways = ##t
{
\set Score.timing = ##f
\set Score.barAlways = ##t
- s_\markup { "\\time 4/4" }^\markup { " " \musicglyph
+ s_\markup { "\\time 4/4" }^\markup { " " \musicglyph
#"timesig.neomensural44" }
s
#"timesig.neomensural44" }
s
- s_\markup { "\\time 2/2" }^\markup { " " \musicglyph
+ s_\markup { "\\time 2/2" }^\markup { " " \musicglyph
#"timesig.neomensural22" }
s
#"timesig.neomensural22" }
s
- s_\markup { "\\time 6/4" }^\markup { " " \musicglyph
+ s_\markup { "\\time 6/4" }^\markup { " " \musicglyph
#"timesig.neomensural64" }
s
#"timesig.neomensural64" }
s
- s_\markup { "\\time 6/8" }^\markup { " " \musicglyph
+ s_\markup { "\\time 6/8" }^\markup { " " \musicglyph
#"timesig.neomensural68" }
\break
#"timesig.neomensural68" }
\break
- s_\markup { "\\time 3/2" }^\markup { " " \musicglyph
+ s_\markup { "\\time 3/2" }^\markup { " " \musicglyph
#"timesig.neomensural32" }
s
#"timesig.neomensural32" }
s
- s_\markup { "\\time 3/4" }^\markup { " " \musicglyph
+ s_\markup { "\\time 3/4" }^\markup { " " \musicglyph
#"timesig.neomensural34" }
s
#"timesig.neomensural34" }
s
- s_\markup { "\\time 9/4" }^\markup { " " \musicglyph
+ s_\markup { "\\time 9/4" }^\markup { " " \musicglyph
#"timesig.neomensural94" }
s
#"timesig.neomensural94" }
s
- s_\markup { "\\time 9/8" }^\markup { " " \musicglyph
+ s_\markup { "\\time 9/8" }^\markup { " " \musicglyph
#"timesig.neomensural98" }
\break
#"timesig.neomensural98" }
\break
- s_\markup { "\\time 4/8" }^\markup { " " \musicglyph
+ s_\markup { "\\time 4/8" }^\markup { " " \musicglyph
#"timesig.neomensural48" }
s
#"timesig.neomensural48" }
s
- s_\markup { "\\time 2/4" }^\markup { " " \musicglyph
+ s_\markup { "\\time 2/4" }^\markup { " " \musicglyph
#"timesig.neomensural24" }
}
@end lilypond
#"timesig.neomensural24" }
}
@end lilypond
fis gis
\set suggestAccidentals = ##t
ais bis
fis gis
\set suggestAccidentals = ##t
ais bis
- \set useBassFigureExtenders = ##t
+ \set useBassFigureExtenders = ##t
@noindent
In this case, the extender lines always replace existing figures.
@noindent
In this case, the extender lines always replace existing figures.
The @code{FiguredBass} context doesn't pay attention to the actual
bass line. As a consequence, you may have to insert extra figures to
get extender lines below all notes, and you may have to add @code{\!}
The @code{FiguredBass} context doesn't pay attention to the actual
bass line. As a consequence, you may have to insert extra figures to
get extender lines below all notes, and you may have to add @code{\!}
- \set useBassFigureExtenders = ##t
+ \set useBassFigureExtenders = ##t
<6 4->4. <6 4->16. <6 4->32 <5>8. r16 <6>8 <6\! 5->
}
{
<6 4->4. <6 4->16. <6 4->32 <5>8. r16 <6>8 <6\! 5->
}
{
When using continuation lines, common figures are always put in the
same vertical position. When this is unwanted, you can insert a rest
with @code{r}. The rest will clear any previous alignment. For
When using continuation lines, common figures are always put in the
same vertical position. When this is unwanted, you can insert a rest
with @code{r}. The rest will clear any previous alignment. For
@example
<4 6>8 r8
@end example
@noindent
@example
<4 6>8 r8
@end example
@noindent
@example
<4 6>4
@end example
Accidentals and plus signs can appear before or after the numbers,
@example
<4 6>4
@end example
Accidentals and plus signs can appear before or after the numbers,
-depending on the @code{figuredBassAlterationDirection} and
+depending on the @code{figuredBassAlterationDirection} and
@code{figuredBassPlusDirection}
properties
@code{figuredBassPlusDirection}
properties
-* 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 ifnotinfo
@ifinfo
@c workaround for makeinfo-4.6: line breaks and multi-column cookies
@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{henle-flat-bw,,,png} @image{baer-flat-bw,,,png}
@image{lily-flat-bw,,,png}
@end ifinfo
@image{lily-flat-bw,,,png}
@end ifinfo
\stemDown
b'8[ e'' a' e'']
\stemNeutral
\stemDown
b'8[ e'' a' e'']
\stemNeutral
\stemDown
b'8[ e'' a' e'']
\stemNeutral
\stemDown
b'8[ e'' a' e'']
\stemNeutral
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
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
+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
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
@lilypond[quote,ragged-right]
\include "engraver-example.ily"
@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,
@end lilypond
In this situation, the accidentals and staff are shared, but the stems,
@noindent
Chords can be constructed with @code{<<} and @code{>>} enclosing the notes
@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
@c so we use <<>> iso. <> to drive home the point of
@c expressions. Don't change this back --hwn.
@example
-at the top of the @code{.ly} file.
+at the top of the @code{.ly} file.
@item -f,--format=@var{format}
which formats should be written. Choices are @code{svg}, @code{ps},
@item -f,--format=@var{format}
which formats should be written. Choices are @code{svg}, @code{ps},
Postscript files include TTF, Type1 and OTF fonts. No subsetting of
these fonts is done. When using oriental character sets, this can
Postscript files include TTF, Type1 and OTF fonts. No subsetting of
these fonts is done. When using oriental character sets, this can
@item eps
for encapsulated PostScript. This dumps every page (system) as a separate
@file{EPS} file, without fonts, and as one collated @file{EPS} file with
@item eps
for encapsulated PostScript. This dumps every page (system) as a separate
@file{EPS} file, without fonts, and as one collated @file{EPS} file with
for SVG (Scalable Vector Graphics). This dumps every page as a separate
@file{SVG} file, with embedded fonts.
@cindex SVG (Scalable Vector Graphics)
for SVG (Scalable Vector Graphics). This dumps every page as a separate
@file{SVG} file, with embedded fonts.
@cindex SVG (Scalable Vector Graphics)
- You need a SVG viewer which supports embedded fonts, or a SVG
- viewer which is able to replace the embedded fonts with OTF fonts.
- Under Unix, you may use @uref{http://www.inkscape.org,Inkscape}
- (version 0.42 or later), after copying the OTF fonts in directory
+ You need a SVG viewer which supports embedded fonts, or a SVG
+ viewer which is able to replace the embedded fonts with OTF fonts.
+ Under Unix, you may use @uref{http://www.inkscape.org,Inkscape}
+ (version 0.42 or later), after copying the OTF fonts in directory
@file{PATH/TO/share/lilypond/VERSION/fonts/otf/} to @file{~/.fonts/}.
@item scm
for a dump of the raw, internal Scheme-based drawing commands.
@cindex Scheme dump
@end table
@file{PATH/TO/share/lilypond/VERSION/fonts/otf/} to @file{~/.fonts/}.
@item scm
for a dump of the raw, internal Scheme-based drawing commands.
@cindex Scheme dump
@end table
@cindex output format, setting
@item -d,--define-default=@var{var}=@var{val}
@cindex output format, setting
@item -d,--define-default=@var{var}=@var{val}
Generate pictures of each page, in PNG format. This implies
@code{--ps}. The resolution in DPI of the image may be set with
@example
Generate pictures of each page, in PNG format. This implies
@code{--ps}. The resolution in DPI of the image may be set with
@example
@item -j,--jail=@var{user},@var{group},@var{jail},@var{dir}
Run LilyPond in a chroot jail.
@item -j,--jail=@var{user},@var{group},@var{jail},@var{dir}
Run LilyPond in a chroot jail.
-The @code{--jail} option provides a more flexible alternative to
+The @code{--jail} option provides a more flexible alternative to
@code{--safe} when LilyPond formatting is available through a web
server or whenever LilyPond executes externally provided
sources.
@code{--safe} when LilyPond formatting is available through a web
server or whenever LilyPond executes externally provided
sources.
The scripts (such as lilypond-book, convert-ly, abc2ly, etc.) are also
included inside MacOS X .app. They can be run from the command line by
The scripts (such as lilypond-book, convert-ly, abc2ly, etc.) are also
included inside MacOS X .app. They can be run from the command line by
-invoking them directly, e.g.
+invoking them directly, e.g.
@example
@var{path/to}/LilyPond.app/Contents/Resources/bin/convert-ly
@example
@var{path/to}/LilyPond.app/Contents/Resources/bin/convert-ly
Alternatively, you may add this directory to your path. Modify (or create)
a file called @code{.profile} in your home directory such that it contains
Alternatively, you may add this directory to your path. Modify (or create)
a file called @code{.profile} in your home directory such that it contains
will guess this, on the basis of @code{\version} strings in the file.
@item -n,--no-version
will guess this, on the basis of @code{\version} strings in the file.
@item -n,--no-version
-Normally, @command{convert-ly} adds a @code{\version} indicator
-to the output. Specifying this option suppresses this.
+Normally, @command{convert-ly} adds a @code{\version} indicator
+to the output. Specifying this option suppresses this.
@item -s, --show-rules
Show all known conversions and exit.
@item -s, --show-rules
Show all known conversions and exit.
-There are a few things that the convert-ly cannot handle. Here's a list of
+There are a few things that the convert-ly cannot handle. Here's a list of
limitations
that the community has complained about.
limitations
that the community has complained about.
-This bug report structure has been chosen because convert-ly has a structure
+This bug report structure has been chosen because convert-ly has a structure
-allow to smoothly implement all needed changes. Thus this is just a wishlist,
+allow to smoothly implement all needed changes. Thus this is just a wishlist,
placed
here for reference.
1.6->2.0:
placed
here for reference.
1.6->2.0:
- Doesn't always convert figured bass correctly, specifically things like {<
+ Doesn't always convert figured bass correctly, specifically things like {<
>}. Mats' comment on working around this:
To be able to run convert-ly
on it, I first replaced all occurencies of '{<' to some dummy like '{#'
and similarly I replaced '>}' with '&}'. After the conversion, I could
then change back from '{ #' to '{ <' and from '& }' to '> }'.
Doesn't convert all text markup correctly. In the old markup syntax,
>}. Mats' comment on working around this:
To be able to run convert-ly
on it, I first replaced all occurencies of '{<' to some dummy like '{#'
and similarly I replaced '>}' with '&}'. After the conversion, I could
then change back from '{ #' to '{ <' and from '& }' to '> }'.
Doesn't convert all text markup correctly. In the old markup syntax,
- it was possible to group a number of markup commands together within
+ it was possible to group a number of markup commands together within
parentheses, e.g.
-#'((bold italic) "string")
This will incorrectly be converted into
parentheses, e.g.
-#'((bold italic) "string")
This will incorrectly be converted into
-\markup{\bold \italic "string"}
2.0->2.2:
Doesn't handle \partcombine
-\markup{\bold \italic "string"}
2.0->2.2:
Doesn't handle \partcombine
- Doesn't do \addlyrics => \lyricsto, this breaks some scores with multiple
+ Doesn't do \addlyrics => \lyricsto, this breaks some scores with multiple
stanzas.
2.0->2.4:
\magnify isn't changed to \fontsize.
stanzas.
2.0->2.4:
\magnify isn't changed to \fontsize.
- \rced => \!
- \rc => \!
2.2->2.4:
- \rced => \!
- \rc => \!
2.2->2.4:
- \turnOff (used in \set Staff.VoltaBracket = \turnOff) is not properly
+ \turnOff (used in \set Staff.VoltaBracket = \turnOff) is not properly
converted.
2.4.2->2.5.9
\markup{ \center-align <{ ... }> } should be converted to:
converted.
2.4.2->2.5.9
\markup{ \center-align <{ ... }> } should be converted to:
-@c the bug database is not up to date enough.
+@c the bug database is not up to date enough.
When you've found a bug, have a look at our
@uref{http://@/lilypond@/.org/@/doc/@/v2.5/@/bugs/,bug database} to see if
When you've found a bug, have a look at our
@uref{http://@/lilypond@/.org/@/doc/@/v2.5/@/bugs/,bug database} to see if
When this functionality is active, LilyPond adds hyperlinks to the PDF
file. These hyperlinks are sent to the web-browser, which opens a
When this functionality is active, LilyPond adds hyperlinks to the PDF
file. These hyperlinks are sent to the web-browser, which opens a
-text-editor with the cursor in the right place.
+text-editor with the cursor in the right place.
To make this chain work, you should configure your PDF viewer to
follow hyperlinks using the @file{lilypond-invoke-editor} script
To make this chain work, you should configure your PDF viewer to
follow hyperlinks using the @file{lilypond-invoke-editor} script
\end{lilypond}
\begin{enumerate}
\end{lilypond}
\begin{enumerate}
-\item Vers one. aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa
-\item Vers two. bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb
+\item Vers one. aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa
+\item Vers two. bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb
\end{enumerate}
\end{document}
\end{enumerate}
\end{document}
% keep \documentclass on 1st line for lilypond-book auto-detection
%
% keep \documentclass on 1st line for lilypond-book auto-detection
%
-% This is way too long and hairy --
+% This is way too long and hairy --
\subsection{verb and verbatim}
\subsection{verb and verbatim}
-As you see, the begin/end verbatim command inside
+As you see, the begin/end verbatim command inside
does not confuse lilypond-book:
\verb|\begin[fragment]{lilypond}c d e\end{lilypond}|
does not confuse lilypond-book:
\verb|\begin[fragment]{lilypond}c d e\end{lilypond}|
\subsection{To float or not to float}
This music
\begin[fragment]{lilypond}
\subsection{To float or not to float}
This music
\begin[fragment]{lilypond}
\end{lilypond}
should be floating inside the text by using the \verb|eps| options.
\end{lilypond}
should be floating inside the text by using the \verb|eps| options.
\pagebreak
Testing of spacing. The next music is surrounded by an empty line.
\pagebreak
Testing of spacing. The next music is surrounded by an empty line.
-text text text text text text text text text text text text
-text text text text text text text text text text text text
+text text text text text text text text text text text text
+text text text text text text text text text text text text
\begin{lilypond}
\score{ \relative c'{ c d e f g a b c} }
\end{lilypond}
\begin{lilypond}
\score{ \relative c'{ c d e f g a b c} }
\end{lilypond}
-text text text text text text text text text text text text
-text text text text text text text text text text text text
-text text text text text text text text text text text text
+text text text text text text text text text text text text
+text text text text text text text text text text text text
+text text text text text text text text text text text text
-text text text text text text text text text text text text
-text text text text text text text text text text text text
-text text text text text text text text text text text text
+text text text text text text text text text text text text
+text text text text text text text text text text text text
+text text text text text text text text text text text text
\begin{lilypond}
\score{ \relative c'{ c d e f g a b c} }
\end{lilypond}
\begin{lilypond}
\score{ \relative c'{ c d e f g a b c} }
\end{lilypond}
-text text text text text text text text text text text text
-text text text text text text text text text text text text
+text text text text text text text text text text text text
+text text text text text text text text text text text text
%% need to use an -I ../../../input/test to find the file
%% \lilypondfile{tie.ly}
%% need to use an -I ../../../input/test to find the file
%% \lilypondfile{tie.ly}
-@c -*- coding: utf-8; mode: texinfo; -*-
+c -*- coding: utf-8; mode: texinfo; -*-
This procedure may be applied to La@TeX{}, HTML or Texinfo documents.
@menu
This procedure may be applied to La@TeX{}, HTML or Texinfo documents.
@menu
-* An example of a musicological document::
-* Integrating LaTeX and music::
-* Integrating Texinfo and music::
-* Integrating HTML and music::
-* Music fragment options::
-* Invoking lilypond-book::
-* Filename extensions::
+* An example of a musicological document::
+* Integrating LaTeX and music::
+* Integrating Texinfo and music::
+* Integrating HTML and music::
+* Music fragment options::
+* Invoking lilypond-book::
+* Filename extensions::
@end example
Running @command{lilypond-book} yields a file that can be further
@end example
Running @command{lilypond-book} yields a file that can be further
-processed with La@TeX{}.
+processed with La@TeX{}.
We show some examples here. The lilypond environment
We show some examples here. The lilypond environment
@code{\betweenLilyPondSystem[1]} is called between systems if
@code{lilypond-book} has split the snippet into several postscript
files. It must be defined as taking one parameter and will be
@code{\betweenLilyPondSystem[1]} is called between systems if
@code{lilypond-book} has split the snippet into several postscript
files. It must be defined as taking one parameter and will be
-passed the number of files already included in this snippet.
+passed the number of files already included in this snippet.
The default is to simply insert a @code{\linebreak}.
@ignore
The default is to simply insert a @code{\linebreak}.
@ignore
install-info --info-dir=/usr/share/info out/lilypond.info
* Prepend GNU for dir, must be unique.
install-info --info-dir=/usr/share/info out/lilypond.info
* Prepend GNU for dir, must be unique.
* Do not list the `lilypond' node at toplevel, so that `info lilypond'
goes to Top.
* List all commands in direntry.
* Do not list the `lilypond' node at toplevel, so that `info lilypond'
goes to Top.
* List all commands in direntry.
@c * lilypond: (lilypond/lilypond)Running LilyPond. Invoking the
@c LilyPond program.
@end ignore
@c * lilypond: (lilypond/lilypond)Running LilyPond. Invoking the
@c LilyPond program.
@end ignore
@dircategory GNU music project
@direntry
* LilyPond: (lilypond/lilypond). The GNU music typesetter.
@dircategory GNU music project
@direntry
* LilyPond: (lilypond/lilypond). The GNU music typesetter.
-* abc2ly: (lilypond/lilypond)Invoking abc2ly. Importing ABC.
+* abc2ly: (lilypond/lilypond)Invoking abc2ly. Importing ABC.
* convert-ly: (lilypond/lilypond)Invoking convert-ly. Older LilyPond versions.
* etf2ly: (lilypond/lilypond)Invoking etf2ly. Importing Finale.
* lilypond-book: (lilypond/lilypond)LilyPond-book. Itegrating text and music.
* midi2ly: (lilypond/lilypond)Invoking midi2ly. Importing MIDI.
* convert-ly: (lilypond/lilypond)Invoking convert-ly. Older LilyPond versions.
* etf2ly: (lilypond/lilypond)Invoking etf2ly. Importing Finale.
* lilypond-book: (lilypond/lilypond)LilyPond-book. Itegrating text and music.
* midi2ly: (lilypond/lilypond)Invoking midi2ly. Importing MIDI.
-* mup2ly: (lilypond/lilypond)Invoking mup2ly. Importing Mup.
+* mup2ly: (lilypond/lilypond)Invoking mup2ly. Importing Mup.
-This document is also available as a
+This document is also available as a
@uref{source/Documentation/user/lilypond.pdf,PDF}.
@end ifhtml
@uref{source/Documentation/user/lilypond.pdf,PDF}.
@end ifhtml
\score {
\context Lyrics {
\override Score.RehearsalMark #'self-alignment-X = #LEFT
\score {
\context Lyrics {
\override Score.RehearsalMark #'self-alignment-X = #LEFT
- \override Score.RehearsalMark #'font-size = #-2
+ \override Score.RehearsalMark #'font-size = #-2
\mark #(ly:export (string-append
"(For LilyPond version " (lilypond-version) ")"))
s2
\mark #(ly:export (string-append
"(For LilyPond version " (lilypond-version) ")"))
s2
@include macros.itexi
@include preface.itely
@include macros.itexi
@include preface.itely
-@include introduction.itely
+@include introduction.itely
@include tutorial.itely
@include putting.itely
@include working.itely
@include tutorial.itely
@include putting.itely
@include working.itely
Gardner Read, Music Notation: A Manual of Modern Practice.
Taplinger Publishing, New York (2nd edition).
Gardner Read, Music Notation: A Manual of Modern Practice.
Taplinger Publishing, New York (2nd edition).
-A standard work on music notation.
+A standard work on music notation.
@item Ross 1987
Ted Ross, Teach yourself the art of music engraving and processing.
@item Ross 1987
Ted Ross, Teach yourself the art of music engraving and processing.
@item Schirmer 2001
The G.Schirmer/AMP Manual of Style and Usage. G.Schirmer/AMP, NY, 2001.
@item Schirmer 2001
The G.Schirmer/AMP Manual of Style and Usage. G.Schirmer/AMP, NY, 2001.
-(This book can be ordered from the rental department.)
+(This book can be ordered from the rental department.)
This manual specifically focuses on preparing print for publication by
Schirmer. It discusses many details that are not in other, normal
This manual specifically focuses on preparing print for publication by
Schirmer. It discusses many details that are not in other, normal
@ref{\NAME\,,,music-glossary}@c
@findex \NAME\
@end macro
@ref{\NAME\,,,music-glossary}@c
@findex \NAME\
@end macro
@ref{\NAME\,,,lilypond-internals}@c
@findex @code{\NAME\}
@end macro
@ref{\NAME\,,,lilypond-internals}@c
@findex @code{\NAME\}
@end macro
@macro inputfileref{DIR,NAME}
@uref{source/\DIR\/collated-files.html#\NAME\,@file{\DIR\/\NAME\}}@c
@end macro
@macro inputfileref{DIR,NAME}
@uref{source/\DIR\/collated-files.html#\NAME\,@file{\DIR\/\NAME\}}@c
@end macro
@macro refcommand{WHAT}
@findex \WHAT\
@macro refcommand{WHAT}
@findex \WHAT\
@end macro
@macro commonprop
@end macro
@macro commonprop
-This document is also available in
+This document is also available in
@uref{source/Documentation/user/music-glossary.pdf,PDF}
and as @uref{source/Documentation/user/music-glossary.html,one big page}.
@end ifhtml
@uref{source/Documentation/user/music-glossary.pdf,PDF}
and as @uref{source/Documentation/user/music-glossary.html,one big page}.
@end ifhtml
under the terms of the GNU Free Documentation License, Version 1.1
or any later version published by the Free Software Foundation,
without Invariant Sections.
under the terms of the GNU Free Documentation License, Version 1.1
or any later version published by the Free Software Foundation,
without Invariant Sections.
ES: alteración,
I: alterazione
F: altération
ES: alteración,
I: alterazione
F: altération
NL: verhoging of verlaging,
DK:
S:
NL: verhoging of verlaging,
DK:
S:
NL: cent,
DK: cent,
S: cent,
NL: cent,
DK: cent,
S: cent,
-FI: sentti, puolisävelaskeleen sadasosa tasavireisessä
+FI: sentti, puolisävelaskeleen sadasosa tasavireisessä
viritysjärjestelmässä.
Logarithmic unit of measurement. 1@tie{}cent is 1/1200 of an octave (1/100
viritysjärjestelmässä.
Logarithmic unit of measurement. 1@tie{}cent is 1/1200 of an octave (1/100
-Three or more tones sounding simultaneously. In traditional European music
+Three or more tones sounding simultaneously. In traditional European music
-base chord is a @emph{triad} consisting of 2@w{ }thirds. @emph{Major} (major
+base chord is a @emph{triad} consisting of 2@w{ }thirds. @emph{Major} (major
+
minor @aref{third}) as well as @emph{minor} (minor + major third)
chords may be extended with more thirds. Four-tone @emph{seventh chords}
+
minor @aref{third}) as well as @emph{minor} (minor + major third)
chords may be extended with more thirds. Four-tone @emph{seventh chords}
S: hoppande rörelse,
FI: melodian hyppivä liike.
S: hoppande rörelse,
FI: melodian hyppivä liike.
-Progressing melodically by intervals larger than a major second.
+Progressing melodically by intervals larger than a major second.
Opposite of @aref{conjunct movement}.
@lilypond[fragment,ragged-right]
Opposite of @aref{conjunct movement}.
@lilypond[fragment,ragged-right]
S: intervall,
FI: intervalli, kahden sävelen korkeusero.
S: intervall,
FI: intervalli, kahden sävelen korkeusero.
-Difference in pitch between two notes. Intervals may be perfect, minor,
+Difference in pitch between two notes. Intervals may be perfect, minor,
major,
diminished, or augmented. The augmented fourth and the diminished fifth are
identical (@aref{enharmonic}) and are called @emph{tritonus}
major,
diminished, or augmented. The augmented fourth and the diminished fifth are
identical (@aref{enharmonic}) and are called @emph{tritonus}
S: legato,
FI: legato, sitoen.
S: legato,
FI: legato, sitoen.
-To be performed (a) without any perceptible interruption between the notes,
+To be performed (a) without any perceptible interruption between the notes,
unlike (b) @emph{leggiero} or @emph{non-legato}, (c) @emph{portato}, and
(d) @aref{staccato}.
unlike (b) @emph{leggiero} or @emph{non-legato}, (c) @emph{portato}, and
(d) @aref{staccato}.
@node melisma
@section melisma
@node melisma
@section melisma
FI: melisma, laulettavan tavun sävelkuvio.
A melisma (plural: melismata) is a group of notes or tones sung on one
FI: melisma, laulettavan tavun sävelkuvio.
A melisma (plural: melismata) is a group of notes or tones sung on one
FI: nuotin aika-arvo.
Note values (durations) are measured as fractions, normally 1/2, of the next
FI: nuotin aika-arvo.
Note values (durations) are measured as fractions, normally 1/2, of the next
-higher note value. The longest duration normally used is called
+higher note value. The longest duration normally used is called
@emph{brevis},
but sometimes (mostly in pre-baroque music) the double length note value
@emph{longa} is used.
@emph{brevis},
but sometimes (mostly in pre-baroque music) the double length note value
@emph{longa} is used.
-Other frequently used ornaments are the @emph{turn}, the @emph{mordent}, and
+Other frequently used ornaments are the @emph{turn}, the @emph{mordent}, and
the
@emph{prall} (inverted mordent).
the
@emph{prall} (inverted mordent).
NL: syntonische komma,
DK: syntonisk komma,
S: syntoniskt komma,
NL: syntonische komma,
DK: syntonisk komma,
S: syntoniskt komma,
-FI: syntoninen komma, terssien taajuusero luonnollisessa ja Pytagorisessa
+FI: syntoninen komma, terssien taajuusero luonnollisessa ja Pytagorisessa
viritysjärjestelmässä.
Difference between the natural third and the third obtained by Pythagorean
viritysjärjestelmässä.
Difference between the natural third and the third obtained by Pythagorean
FI: viritysavain.
A two-pronged piece of steel used to indicate absolute pitch. Tuning forks
FI: viritysavain.
A two-pronged piece of steel used to indicate absolute pitch. Tuning forks
-give the international pitch for the tone @emph{a} (440 vibrations per
+give the international pitch for the tone @emph{a} (440 vibrations per
@c @multitable @columnfractions .105 .145 .125 .125 .125 .125 .125 .125
@multitable @columnfractions .11 .14 .14 .11 .1 .1 .1 .1 .1
@c @multitable @columnfractions .105 .145 .125 .125 .125 .125 .125 .125
@multitable @columnfractions .11 .14 .14 .11 .1 .1 .1 .1 .1
-@item @tab @strong{ES} @tab @strong{I} @tab @strong{F} @tab @strong{D}
-@tab @strong{NL} @tab @strong{DK} @tab @strong{S} @tab @strong{FI}
+@item @tab @strong{ES} @tab @strong{I} @tab @strong{F} @tab @strong{D}
+@tab @strong{NL} @tab @strong{DK} @tab @strong{S} @tab @strong{FI}
-@item @strong{c-sharp} @tab do diesis @tab do diesis @tab ut dièse @tab
+@item @strong{c-sharp} @tab do diesis @tab do diesis @tab ut dièse @tab
Cis @tab cis @tab
cis @tab cis @tab cis
@item
Cis @tab cis @tab
cis @tab cis @tab cis
@item
-@item @strong{d-flat} @tab re bemolle @tab re bemolle @tab ré bémol @tab
+@item @strong{d-flat} @tab re bemolle @tab re bemolle @tab ré bémol @tab
Des @tab des @tab
des @tab des @tab des
Des @tab des @tab
des @tab des @tab des
-@item @strong{g} @tab sol @tab sol @tab sol @tab G @tab g @tab g @tab g
+@item @strong{g} @tab sol @tab sol @tab sol @tab G @tab g @tab g @tab g
-@item @strong{a-flat} @tab la bemol @tab la bemolle @tab la bémol @tab As
+@item @strong{a-flat} @tab la bemol @tab la bemolle @tab la bémol @tab As
@tab as @tab as
@tab as @tab as
@tab as @tab as
@tab as @tab as
-@item @strong{a-sharp} @tab la sostenido @tab la diesis @tab la dièse @tab
+@item @strong{a-sharp} @tab la sostenido @tab la diesis @tab la dièse @tab
Ais @tab ais @tab
ais @tab ais @tab ais
@item
Ais @tab ais @tab
ais @tab ais @tab ais
@item
-@item @strong{b-flat} @tab si bemol @tab si bemolle @tab si bémol @tab B
+@item @strong{b-flat} @tab si bemol @tab si bemolle @tab si bémol @tab B
@tab bes @tab b
@tab b @tab b
@tab bes @tab b
@tab b @tab b
The following is a list of names that can be used for the
@code{midiInstrument} property.
The following is a list of names that can be used for the
@code{midiInstrument} property.
acoustic grand contrabass lead 7 (fifths)
bright acoustic tremolo strings lead 8 (bass+lead)
electric grand pizzicato strings pad 1 (new age)
acoustic grand contrabass lead 7 (fifths)
bright acoustic tremolo strings lead 8 (bass+lead)
electric grand pizzicato strings pad 1 (new age)
synth bass 2 lead 3 (calliope) helicopter
violin lead 4 (chiff) applause
viola lead 5 (charang) gunshot
synth bass 2 lead 3 (calliope) helicopter
violin lead 4 (chiff) applause
viola lead 5 (charang) gunshot
-cello lead 6 (voice)
-@end example
+cello lead 6 (voice)
+@end example
(e.g. ``LightSlateBlue'') can also be spelled as space separated
words without capitalisation (e.g. ``light slate blue'').
(e.g. ``LightSlateBlue'') can also be spelled as space separated
words without capitalisation (e.g. ``light slate blue'').
-The word ``grey'' can always be spelled ``gray'' (e.g. ``DarkSlateGray'').
+The word ``grey'' can always be spelled ``gray'' (e.g. ``DarkSlateGray'').
Some names can take a numerical suffix (e.g. ``LightSalmon4'').
Some names can take a numerical suffix (e.g. ``LightSalmon4'').
When this functionality is active, LilyPond adds hyperlinks to the PDF
file. These hyperlinks are sent to the web-browser, which opens a
When this functionality is active, LilyPond adds hyperlinks to the PDF
file. These hyperlinks are sent to the web-browser, which opens a
-text-editor with the cursor in the right place.
+text-editor with the cursor in the right place.
To make this chain work, you should configure your PDF viewer to
follow hyperlinks using the @file{lilypond-invoke-editor} script
To make this chain work, you should configure your PDF viewer to
follow hyperlinks using the @file{lilypond-invoke-editor} script
@end menu
@node Overview of music functions
@end menu
@node Overview of music functions
-@subsection Overview of music functions
+@subsection Overview of music functions
Making a funcion which substitutes a variable into LilyPond
code is easy. The general form of these functions is
Making a funcion which substitutes a variable into LilyPond
code is easy. The general form of these functions is
c4^"piu mosso" d e f
\padText #2.6
c4^"piu mosso" fis a g
c4^"piu mosso" d e f
\padText #2.6
c4^"piu mosso" fis a g
@end lilypond
Music expressions may be substituted as well,
@end lilypond
Music expressions may be substituted as well,
@lilypond[quote,verbatim,ragged-right]
custosNote = #(define-music-function (parser location note)
(ly:music?)
@lilypond[quote,verbatim,ragged-right]
custosNote = #(define-music-function (parser location note)
(ly:music?)
- #{
- \once \override Voice.NoteHead #'stencil =
+ #{
+ \once \override Voice.NoteHead #'stencil =
#ly:text-interface::print
#ly:text-interface::print
- \once \override Voice.NoteHead #'text =
+ \once \override Voice.NoteHead #'text =
\markup \musicglyph #"custodes.mensural.u0"
\markup \musicglyph #"custodes.mensural.u0"
- \once \override Voice.Stem #'stencil = ##f
+ \once \override Voice.Stem #'stencil = ##f
@lilypond[quote,verbatim,ragged-right]
tempoMark = #(define-music-function (parser location padding marktext)
@lilypond[quote,verbatim,ragged-right]
tempoMark = #(define-music-function (parser location padding marktext)
#{
\once \override Score . RehearsalMark #'padding = $padding
\once \override Score . RehearsalMark #'no-spacing-rods = ##t
#{
\once \override Score . RehearsalMark #'padding = $padding
\once \override Score . RehearsalMark #'no-spacing-rods = ##t
(number? number?)
#{
\once \override Beam #'positions = #(cons $beg $end)
(number? number?)
#{
\once \override Beam #'positions = #(cons $beg $end)
\relative {
\manualBeam #3 #6 c8 d e f
}
\relative {
\manualBeam #3 #6 c8 d e f
}
@node Mathematics in functions
@node Mathematics in functions
addition to simple substitution,
@lilypond[quote,verbatim,ragged-right]
addition to simple substitution,
@lilypond[quote,verbatim,ragged-right]
-AltOn = #(define-music-function (parser location mag) (number?)
+AltOn = #(define-music-function (parser location mag) (number?)
#{ \override Stem #'length = #$(* 7.0 mag)
#{ \override Stem #'length = #$(* 7.0 mag)
- \override NoteHead #'font-size =
+ \override NoteHead #'font-size =
#$(inexact->exact (* (/ 6.0 (log 2.0)) (log mag))) #})
AltOff = {
\revert Stem #'length
#$(inexact->exact (* (/ 6.0 (log 2.0)) (log mag))) #})
AltOff = {
\revert Stem #'length
- \revert NoteHead #'font-size
+ \revert NoteHead #'font-size
}
{ c'2 \AltOn #0.5 c'4 c'
}
{ c'2 \AltOn #0.5 c'4 c'
This example may be rewritten to pass in music expressions,
@lilypond[quote,verbatim,ragged-right]
This example may be rewritten to pass in music expressions,
@lilypond[quote,verbatim,ragged-right]
-withAlt = #(define-music-function (parser location mag music) (number? ly:music?)
+withAlt = #(define-music-function (parser location mag music) (number? ly:music?)
#{ \override Stem #'length = #$(* 7.0 mag)
#{ \override Stem #'length = #$(* 7.0 mag)
- \override NoteHead #'font-size =
+ \override NoteHead #'font-size =
#$(inexact->exact (* (/ 6.0 (log 2.0)) (log mag)))
$music
\revert Stem #'length
#$(inexact->exact (* (/ 6.0 (log 2.0)) (log mag)))
$music
\revert Stem #'length
@end example
`@code{let}' is used to declare local variables. Here we use one local
@end example
`@code{let}' is used to declare local variables. Here we use one local
-variable, named `@code{result-event-chord}', to which we give the value
+variable, named `@code{result-event-chord}', to which we give the value
@code{(ly:music-deep-copy event-chord)}. `@code{ly:music-deep-copy}' is
a function specific to LilyPond, like all functions prefixed by
`@code{ly:}'. It is use to make a copy of a music
@code{(ly:music-deep-copy event-chord)}. `@code{ly:music-deep-copy}' is
a function specific to LilyPond, like all functions prefixed by
`@code{ly:}'. It is use to make a copy of a music
@code{EventChord} which was given as an argument, because it may be
used elsewhere.
@code{EventChord} which was given as an argument, because it may be
used elsewhere.
-Now we have a @code{result-event-chord}, which is a
+Now we have a @code{result-event-chord}, which is a
@code{oteEventChord} expression and is a copy of @code{event-chord}. We
add the marcato to its elements list property.
@code{oteEventChord} expression and is a copy of @code{event-chord}. We
add the marcato to its elements list property.
@node Markup construction in Scheme
@subsection Markup construction in Scheme
@node Markup construction in Scheme
@subsection Markup construction in Scheme
-@cindex defining markup commands
+@cindex defining markup commands
The @code{markup} macro builds markup expressions in Scheme while
providing a LilyPond-like syntax. For example,
The @code{markup} macro builds markup expressions in Scheme while
providing a LilyPond-like syntax. For example,
@multitable @columnfractions .3 .3
@item @b{LilyPond} @tab @b{Scheme}
@item @code{\markup markup1} @tab @code{(markup markup1)}
@multitable @columnfractions .3 .3
@item @b{LilyPond} @tab @b{Scheme}
@item @code{\markup markup1} @tab @code{(markup markup1)}
-@item @code{\markup @{ markup1 markup2 ... @}} @tab
+@item @code{\markup @{ markup1 markup2 ... @}} @tab
@code{(markup markup1 markup2 ... )}
@item @code{\command} @tab @code{#:command}
@item @code{\variable} @tab @code{variable}
@code{(markup markup1 markup2 ... )}
@item @code{\command} @tab @code{#:command}
@item @code{\variable} @tab @code{variable}
@item layout
the `layout' definition
@item props
@item layout
the `layout' definition
@item props
-a list of alists, containing all active properties.
+a list of alists, containing all active properties.
@end table
As a simple example, we show how to add a @code{\smallcaps} command,
@end table
As a simple example, we show how to add a @code{\smallcaps} command,
#(define-markup-command (character layout props name) (string?)
"Print the character name in small caps, translated to the left and
top. Syntax: \\character #\"name\""
#(define-markup-command (character layout props name) (string?)
"Print the character name in small caps, translated to the left and
top. Syntax: \\character #\"name\""
- (interpret-markup layout props
+ (interpret-markup layout props
(markup #:hspace 0 #:translate (cons -3 1) #:smallcaps name)))
@end example
(markup #:hspace 0 #:translate (cons -3 1) #:smallcaps name)))
@end example
#(define-markup-command (character layout props name) (string?)
"Print the character name in small caps, translated to the left and
top. Syntax: \\character #\"name\""
#(define-markup-command (character layout props name) (string?)
"Print the character name in small caps, translated to the left and
top. Syntax: \\character #\"name\""
- (interpret-markup layout props
+ (interpret-markup layout props
(markup #:hspace 0 #:translate (cons -3 1) #:smallcaps name)))
{
(markup #:hspace 0 #:translate (cons -3 1) #:smallcaps name)))
{
its argument,
@lilypond[quote,verbatim,ragged-right]
#(define (rev-music-1 m)
its argument,
@lilypond[quote,verbatim,ragged-right]
#(define (rev-music-1 m)
- (ly:music-set-property! m 'elements
+ (ly:music-set-property! m 'elements
(reverse (ly:music-property m 'elements)))
m)
(reverse (ly:music-property m 'elements)))
m)
-\applyMusic #rev-music-1 { c'4 d'4 }
+\applyMusic #rev-music-1 { c'4 d'4 }
@end lilypond
The use of such a function is very limited. The effect of this
@end lilypond
The use of such a function is very limited. The effect of this
automatically (@inputfileref{input/@/test,unfold@/-all@/-repeats@/.ly}),
saving keystrokes (@inputfileref{input/@/test,music@/-box@/.ly}) and
exporting LilyPond input to other formats
automatically (@inputfileref{input/@/test,unfold@/-all@/-repeats@/.ly}),
saving keystrokes (@inputfileref{input/@/test,music@/-box@/.ly}) and
exporting LilyPond input to other formats
-@c no @inputfileref{} here
+@c no @inputfileref{} here
(eg. @file{input/@/no@/-notation/@/to@/-xml@/.ly}).
@seealso
(eg. @file{input/@/no@/-notation/@/to@/-xml@/.ly}).
@seealso
@example
mynotes = @{ \override Stem #'thickness = #4
@{ c'8 d' @} @}
@example
mynotes = @{ \override Stem #'thickness = #4
@{ c'8 d' @} @}
#(define mynotes #@{ \override Stem #'thickness = #4
@{ c'8 d' @} #@})
@end example
#(define mynotes #@{ \override Stem #'thickness = #4
@{ c'8 d' @} #@})
@end example
\score @{
\new Staff \melody
\layout @{ @}
\score @{
\new Staff \melody
\layout @{ @}
@item Numbers
Numbers are entered in the standard fashion,
@code{1} is the (integer) number one, while @code{-1.5} is a
@item Numbers
Numbers are entered in the standard fashion,
@code{1} is the (integer) number one, while @code{-1.5} is a
-floating point number (a non-integer number).
+floating point number (a non-integer number).
@item Strings
Strings are enclosed in double quotes,
@item Strings
Strings are enclosed in double quotes,
mark @code{#}. So, the previous examples translated in LilyPond are
@example
mark @code{#}. So, the previous examples translated in LilyPond are
@example
#1 #-1.5
#"this is a string"
#"this
#1 #-1.5
#"this is a string"
#"this
@end lisp
The arrow @result{} shows that the result of evaluating @code{(+ 1 2)}
@end lisp
The arrow @result{} shows that the result of evaluating @code{(+ 1 2)}
@result{} #13
@end lisp
These calculations are examples of evaluations; an expression like
@code{(* 3 4)} is replaced by its value @code{12}. A similar thing
@result{} #13
@end lisp
These calculations are examples of evaluations; an expression like
@code{(* 3 4)} is replaced by its value @code{12}. A similar thing
-happens with variables. After defining a variable
+happens with variables. After defining a variable
@end example
@noindent
variables can also be used in expressions, here
@example
@end example
@noindent
variables can also be used in expressions, here
@example
-twentyFour = #(* 2 twelve)
-@end example
+twentyFour = #(* 2 twelve)
+@end example
@noindent
the number 24 is stored in the variable @code{twentyFour}.
@noindent
the number 24 is stored in the variable @code{twentyFour}.
while @code{twentyFour} is an identifier.
@cindex properties vs. identifiers
while @code{twentyFour} is an identifier.
@cindex properties vs. identifiers
-@cindex identifiers vs. properties
+@cindex identifiers vs. properties
Two-dimensional offsets (X and Y coordinates) as well as object sizes
(intervals with a left and right point) are entered as @code{pairs}. A
Two-dimensional offsets (X and Y coordinates) as well as object sizes
(intervals with a left and right point) are entered as @code{pairs}. A
is entered as @code{(first . second)} and, like symbols, they must be quoted,
@example
is entered as @code{(first . second)} and, like symbols, they must be quoted,
@example
-\override TextScript #'extra-offset = #'(1 . 2)
-@end example
+\override TextScript #'extra-offset = #'(1 . 2)
+@end example
This assigns the pair (1, 2) to the @code{extra-offset} property of the
TextScript object. These numbers are measured in staff-spaces, so
This assigns the pair (1, 2) to the @code{extra-offset} property of the
TextScript object. These numbers are measured in staff-spaces, so
@c A clef here may lead to confusion, remove it.
@lilypond[fragment,quote]
@c A clef here may lead to confusion, remove it.
@lilypond[fragment,quote]
-\override Staff.Clef #'transparent = ##t
+\override Staff.Clef #'transparent = ##t
\time 3/4
s4_" "
\time 6/8
\time 3/4
s4_" "
\time 6/8
@quotation
@table @asis
@item Entering pitches and durations
@quotation
@table @asis
@item Entering pitches and durations
@ref{Pitches}, and @ref{Durations}.
@item Clefs
see @ref{Clef}.
@item Rests
@ref{Pitches}, and @ref{Durations}.
@item Clefs
see @ref{Clef}.
@item Rests
@item Time signatures and other timing commands
see @ref{Time signature}.
@end table
@item Time signatures and other timing commands
see @ref{Time signature}.
@end table
Processing `test.ly'
Parsing...
Interpreting music... [1]
Processing `test.ly'
Parsing...
Interpreting music... [1]
-Preprocessing graphical objects...
+Preprocessing graphical objects...
Calculating line breaks... [2]
Layout output to `test.ps'...
Converting to `test.pdf'...
Calculating line breaks... [2]
Layout output to `test.ps'...
Converting to `test.pdf'...
available package for viewing and printing PDF and PostScript files.}
@node More about pitches
available package for viewing and printing PDF and PostScript files.}
@node More about pitches
-@section More about pitches
+@section More about pitches
A @rglos{sharp} (@texisharp{}) pitch is made by adding @samp{is} to
the name, a @rglos{flat} (@texiflat{}) pitch by adding @samp{es}. As
A @rglos{sharp} (@texisharp{}) pitch is made by adding @samp{is} to
the name, a @rglos{flat} (@texiflat{}) pitch by adding @samp{es}. As
@node Automatic and manual beams
@section Automatic and manual beams
@node Automatic and manual beams
@section Automatic and manual beams
All @rglos{beam}s are drawn automatically
@lilypond[quote,fragment,relative=2,verbatim]
All @rglos{beam}s are drawn automatically
@lilypond[quote,fragment,relative=2,verbatim]
@c tie) examples...
@c better to have this just before the `octaves are bad' snipped
@c tie) examples...
@c better to have this just before the `octaves are bad' snipped
-@c but we'd need to remove the ', from \key and tie
+@c but we'd need to remove the ', from \key and tie
To raise a note by an octave, add a high quote @code{'} (apostrophe) to
the note name, to lower a note one octave, add a `low quote' @code{,}
(comma). Middle C is @code{c'}
To raise a note by an octave, add a high quote @code{'} (apostrophe) to
the note name, to lower a note one octave, add a `low quote' @code{,}
(comma). Middle C is @code{c'}
\key a \major
\time 6/8
cis''8. d''16 cis''8 e''4 e''8
\key a \major
\time 6/8
cis''8. d''16 cis''8 e''4 e''8
-b'8. cis''16 b'8 d''4 d''8
+b'8. cis''16 b'8 d''4 d''8
In input files, music is represent by so-called @emph{music
In input files, music is represent by so-called @emph{music
-expression}s. We have already seen some in the previous examples;
+expression}s. We have already seen some in the previous examples;
a single note is a music expression
@lilypond[fragment,quote,verbatim,relative=3]
a single note is a music expression
@lilypond[fragment,quote,verbatim,relative=3]
notes
@lilypond[fragment,quote,verbatim,relative=3]
notes
@lilypond[fragment,quote,verbatim,relative=3]
@end lilypond
This technique is useful for non-monophonic music. To enter music
@end lilypond
This technique is useful for non-monophonic music. To enter music
LilyPond looks at the first element. If it is a single note, there is one
staff; if there is a simultaneous expression, there is more than one staff.
LilyPond looks at the first element. If it is a single note, there is one
staff; if there is a simultaneous expression, there is more than one staff.
-@lilypond[fragment,quote,verbatim,relative=2]
+@lilypond[fragment,quote,verbatim,relative=2]
{
c <<c e>>
<< { e f } { c <<b d>> } >>
{
c <<c e>>
<< { e f } { c <<b d>> } >>
\relative <<
\new Staff {
\time 3/4
\relative <<
\new Staff {
\time 3/4
}
\new Staff {
\clef bass
}
\new Staff {
\clef bass
are ignored, since they are in a
block comment.
are ignored, since they are in a
block comment.
@example
@{ I want to break free __ @}
@example
@{ I want to break free __ @}
@lilypond[fragment,quote,ragged-right]
<<
@lilypond[fragment,quote,ragged-right]
<<
of @code{\chordmode}. This uses the same syntax as @code{\chordmode},
but renders the notes in a @code{ChordNames} context, with the
following result.
of @code{\chordmode}. This uses the same syntax as @code{\chordmode},
but renders the notes in a @code{ChordNames} context, with the
following result.
@lilypond[quote,verbatim,ragged-right]
\chords { c2 f4.:m g4.:maj7 gis8:dim7 }
@end lilypond
@lilypond[quote,verbatim,ragged-right]
\chords { c2 f4.:m g4.:maj7 gis8:dim7 }
@end lilypond
@lilypond[quote,ragged-right]
<<
@lilypond[quote,ragged-right]
<<
- \chords { r2 c:sus4 f }
+ \chords { r2 c:sus4 f }
\relative {
r4 c' \times 2/3 { f g g }
\times 2/3 { g4( a2) }
\relative {
r4 c' \times 2/3 { f g g }
\times 2/3 { g4( a2) }
@{@tie{}@dots{}@tie{}@}}. The @code{\header} block is usually put at
the top of the file. For example,
@{@tie{}@dots{}@tie{}@}}. The @code{\header} block is usually put at
the top of the file. For example,
composer = "Igor Stravinsky"
@}
composer = "Igor Stravinsky"
@}
-More information on formatting piano music is given in @ref{Piano music}.
+More information on formatting piano music is given in @ref{Piano music}.
@node Organizing larger pieces
@node Organizing larger pieces
@lilypond[quote,ragged-right]
\transpose f c' \relative c {
\time 2/4
@lilypond[quote,ragged-right]
\transpose f c' \relative c {
\time 2/4
- \set Score.skipBars = ##t
+ \set Score.skipBars = ##t
R2*3
r4 f8 a cis4 f e d
}
R2*3
r4 f8 a cis4 f e d
}
@lilypond[quote,ragged-right]
\relative c <<
@lilypond[quote,ragged-right]
\relative c <<
can move it horizontally or vertically. This is done with the
@code{extra-offset} property. It is slightly more complicated and can
cause other problems. When we move objects with @code{extra-offset},
can move it horizontally or vertically. This is done with the
@code{extra-offset} property. It is slightly more complicated and can
cause other problems. When we move objects with @code{extra-offset},
-the movement is done after LilyPond has placed all other objects. This
+the movement is done after LilyPond has placed all other objects. This
means
that the result can overlap with other objects.
means
that the result can overlap with other objects.
using a few years ago. @code{convert-ly} requires you to declare
which version of LilyPond you used.
using a few years ago. @code{convert-ly} requires you to declare
which version of LilyPond you used.
-@item @strong{Include checks}: @ref{Bar check} and @ref{Octave check}. If
+@item @strong{Include checks}: @ref{Bar check} and @ref{Octave check}. If
you
include checks every so often, then if you make a mistake, you can pinpoint
it quicker. How often is ``every so often''? It depends on the complexity
of the music. For very simple music, perhaps just once or twice. For
very complex music, perhaps every bar.
you
include checks every so often, then if you make a mistake, you can pinpoint
it quicker. How often is ``every so often''? It depends on the complexity
of the music. For very simple music, perhaps just once or twice. For
very complex music, perhaps every bar.
-@item @strong{One bar per line of text}. If there is anything complicated,
+@item @strong{One bar per line of text}. If there is anything complicated,
either in the music
itself or in the output you desire, it's often good to write only one bar
per line. Saving screen space by cramming eight bars per line just isn't
worth it if you have to `debug' your files.
either in the music
itself or in the output you desire, it's often good to write only one bar
per line. Saving screen space by cramming eight bars per line just isn't
worth it if you have to `debug' your files.
-@item @strong{Comment your files}. Use either bar numbers (every so often)
+@item @strong{Comment your files}. Use either bar numbers (every so often)
-references to musical themes (``second theme in violins,'' ``fourth
+references to musical themes (``second theme in violins,'' ``fourth
variation'', etc). You may not need comments when you're writing the piece
variation'', etc). You may not need comments when you're writing the piece
-for the first time, but if you want to go back to change something two or
-three years later, or if you pass the source over to a friend, it will
+for the first time, but if you want to go back to change something two or
+three years later, or if you pass the source over to a friend, it will
-challenging to determine your intentions or how your file is structured if
+challenging to determine your intentions or how your file is structured if
you didn't comment the file.
you didn't comment the file.
-@item @strong{Indent your braces}. A lot of problems are caused by an
+@item @strong{Indent your braces}. A lot of problems are caused by an
imbalance
in the number of @code{@{} and @code{@}}.
imbalance
in the number of @code{@{} and @code{@}}.
violin = \relative c'' @{
\repeat volta 2 @{
c4._\markup@{ \italic \bold dolce @} b8 a8 g a b |
violin = \relative c'' @{
\repeat volta 2 @{
c4._\markup@{ \italic \bold dolce @} b8 a8 g a b |
- \once \override TextScript #'padding = #5.0
+ \once \override TextScript #'padding = #5.0
c4.^"hi there!" d8 e' f g d |
c,4.\markup@{ \dynamic f \italic \small @{ 2nd @}
\hspace #0.1 \dynamic p @} b8 c4 c-. |
c4.^"hi there!" d8 e' f g d |
c,4.\markup@{ \dynamic f \italic \small @{ 2nd @}
\hspace #0.1 \dynamic p @} b8 c4 c-. |