configure
gcstat*.scm
lily-[0-9a-f][0-9a-f][0-9a-f]*
+lsr-unsafe.txt
nohup.out
out
out-cov
@node Ancient notation
@section Ancient notation
+@lilypondfile[quote]{ancient-headword.ly}
+
@cindex Vaticana, Editio
@cindex Medicaea, Editio
@cindex hufnagel
@cindex mensural
@menu
-* Introduction to ancient notation::
-* Alternative note signs::
-* Additional note signs::
-* Pre-defined contexts::
-* Transcribing ancient music::
-* Editorial markings::
+* Introduction to ancient notation::
+* Alternative note signs::
+* Additional note signs::
+* Pre-defined contexts::
+* Transcribing ancient music::
+* Editorial markings::
@end menu
+
@node Introduction to ancient notation
@subsection Introduction to ancient notation
@menu
-* Ancient notation supported::
+* Ancient notation supported::
@end menu
+
@node Ancient notation supported
@subsubsection Ancient notation supported
-Support for ancient notation includes features for mensural notation
-and Gregorian Chant notation. There is also limited support for
-figured bass notation, see @ref{Figured bass}.
+Support for ancient notation includes features for mensural notation and
+Gregorian chant notation, as well as limited support for figured bass notation.
Many graphical objects provide a @code{style} property, see
+
@itemize
-@item
-@ref{Ancient note heads},
-@item
-@ref{Ancient accidentals},
-@item
-@ref{Ancient rests},
-@item
-@ref{Ancient clefs},
-@item
-@ref{Ancient flags},
-@item
-@ref{Ancient time signatures}.
+@item @ref{Ancient note heads},
+@item @ref{Ancient accidentals},
+@item @ref{Ancient rests},
+@item @ref{Ancient clefs},
+@item @ref{Ancient flags},
+@item @ref{Ancient time signatures}.
@end itemize
-By manipulating such a grob property, the typographical appearance of
-the affected graphical objects can be accommodated for a specific
-notation flavor without the need for introducing any new notational
-concept.
+By manipulating these grob properties, the typographical appearance of a
+specific type of notation can be accommodated without needing to introduce any
+new notational concepts.
In addition to the standard articulation signs described in
-section @ref{Articulations and ornamentations}, specific
-articulation signs for ancient notation are provided.
+@ref{Articulations and ornamentations}, specific articulation signs for
+Gregorian chant are provided.
@itemize
-@item
-@ref{Ancient articulations}
+@item @ref{Ancient articulations}
@end itemize
-Other aspects of ancient notation can not that easily be expressed
-in terms of just changing a style property of a graphical object or
-adding articulation signs. Some notational concepts are introduced
-specifically for ancient notation,
+Other aspects of ancient notation cannot be easily expressed by changing a
+style property of a graphical object or by adding articulation signs. Some
+notational concepts are introduced specifically for ancient notation,
@itemize
-@item
-@ref{Custodes},
-@item
-@ref{Divisiones},
-@item
-@ref{Ligatures}.
+@item @ref{Custodes},
+@item @ref{Divisiones},
+@item @ref{Ligatures}.
@end itemize
-If this all is too much of documentation for you, and you just want to
-dive into typesetting without worrying too much about the details on
-how to customize a context, you may have a look at the predefined
-contexts. Use them to set up predefined style-specific voice and
-staff contexts, and directly go ahead with the note entry,
+To start typesetting without worrying too much about the details on how to
+customize a context, there are predefined contexts for Gregorian chant and
+mensural notation. They set up predefined style-specific voice and staff
+contexts, and allow one to proceed directly with note entry:
@itemize
-@item
-@ref{Gregorian Chant contexts},
-@item
-@ref{Mensural contexts}.
+@item @ref{Gregorian chant contexts},
+@item @ref{Mensural contexts}.
@end itemize
-There is limited support for figured bass notation which came
-up during the baroque period.
+There is limited support for figured bass notation from the Baroque period:
@itemize
-@item
-@ref{Figured bass}
+@item @ref{Figured bass}
@end itemize
@c Here are all subtopics at a glance:
+
@node Alternative note signs
@subsection Alternative note signs
@menu
-* Ancient note heads::
-* Ancient accidentals::
-* Ancient rests::
-* Ancient clefs::
-* Ancient flags::
-* Ancient time signatures::
+* Ancient note heads::
+* Ancient accidentals::
+* Ancient rests::
+* Ancient clefs::
+* Ancient flags::
+* Ancient time signatures::
@end menu
+
@node Ancient note heads
@subsubsection Ancient note heads
@cindex note heads, ancient
-For ancient notation, a note head style other than the @code{default}
-style may be chosen. This is accomplished by setting the @code{style}
-property of the @rinternals{NoteHead} object to @code{baroque},
-@code{neomensural}, @code{mensural} or @code{petrucci}. The
-@code{baroque} style differs from the @code{default} style only in
-using a square shape for @code{\breve} note heads. The
-@code{neomensural} style differs from the @code{baroque} style in that
-it uses rhomboidal heads for whole notes and all smaller durations.
-Stems are centered on the note heads. This style is particularly
-useful when transcribing mensural music, e.g., for the incipit. The
-@code{mensural} style produces note heads that mimic the look of note
-heads in historic printings of the 16th century. Finally, the
-@code{petrucci} style also mimics historic printings, but uses bigger
-note heads.
+For ancient notation, a note head style other than the @code{default} style
+may be chosen. This is accomplished by setting the @code{style} property of
+the @rinternals{NoteHead} object to @code{baroque}, @code{neomensural},
+@code{mensural} or @code{petrucci}.
-The following example demonstrates the @code{neomensural} style
+The @code{baroque} style differs from the @code{default} style by:
+
+@itemize
+@item Providing a @code{maxima} notehead, and
+@item Using a square shape for @code{\breve} note heads.
+@end itemize
+
+The @code{neomensural}, @code{mensural}, and @code{petrucci} styles differ from
+the @code{baroque} style by:
+
+@itemize
+@item Using rhomboidal heads for semibreves and all smaller durations, and
+@item Centering the stems on the note heads.
+@end itemize
+
+The @code{mensural} and @code{petrucci} styles aim to emulate the appearance
+of historic printed music. The @code{petrucci} style uses larger note
+heads.
+
+The following example demonstrates the @code{petrucci} style
+
+@c Renaissance music doesn't use bar lines ... but they do help to
+@c separate the notes for easier identification.
@lilypond[quote,fragment,ragged-right,verbatim]
\set Score.skipBars = ##t
-\override NoteHead #'style = #'neomensural
-a'\longa a'\breve a'1 a'2 a'4 a'8 a'16
+\autoBeamOff
+\override NoteHead #'style = #'petrucci
+a'\maxima a'\longa a'\breve a'1 a'2 a'4 a'8 a'16 a'
@end lilypond
-When typesetting a piece in Gregorian Chant notation, the
-@rinternals{Gregorian_ligature_engraver} will automatically select
-the proper note heads, so there is no need to explicitly set the
-note head style. Still, the note head style can be set, e.g., to
-@code{vaticana_punctum} to produce punctum neumes. Similarly, a
-@rinternals{Mensural_ligature_engraver} is used to automatically
-assemble mensural ligatures. See @ref{Ligatures}, for how ligature
-engravers work.
+When typesetting a piece in Gregorian chant notation, the
+@rinternals{Gregorian_ligature_engraver} automatically selects the proper
+note heads, so there is no need to explicitly set the note head style.
+Still, the note head style can be set, e.g., to @code{vaticana_punctum} to
+produce punctum neumes. Similarly, the
+@rinternals{Mensural_ligature_engraver} automatically assembles mensural
+ligatures. See @ref{Ligatures}, for how ligature engravers work.
@seealso
-@ref{Note head styles}, gives an overview over all available note head styles.
+@ref{Note head styles}, gives an overview of all available note head styles.
@node Ancient accidentals
@cindex accidentals
-
-Use the @code{glyph-name-alist} property of grob
-@rinternals{Accidental} and @rinternals{KeySignature} to select
-ancient accidentals.
+Use the @code{glyph-name-alist} property of grob @rinternals{Accidental} and
+@rinternals{KeySignature} to select ancient accidentals.
@lilypond[quote,ragged-right,staffsize=26]
\score {
@cindex rests, ancient
-
Use the @code{style} property of grob @rinternals{Rest} to select
ancient rests. Supported styles are @code{classical},
@code{neomensural}, and @code{mensural}. @code{classical} differs
neo-mensural style. Instead, the rests from the default style will be
taken. See @c @lsr{pitches,rests} for a chart of all rests.
-There are no rests in Gregorian Chant notation; instead, it uses
+There are no rests in Gregorian chant notation; instead, it uses
@ref{Divisiones}.
@seealso
@cindex clefs
-
LilyPond supports a variety of clefs, many of them ancient.
The following table shows all ancient clefs that are supported via the
@end lilypond
@end multitable
+@emph{Modern} or @emph{Neo-mensural style} means @qq{as is typeset in
+modern editions of transcribed mensural music.}
-
-@emph{Modern style} means @qq{as is typeset in contemporary editions of
-transcribed mensural music.}
-
-@emph{Petrucci style} means @qq{inspired by printings published by the
-famous engraver Petrucci (1466-1539).}
+@emph{Petrucci style} means @qq{inspired by music published by the famous
+engraver Petrucci (1466-1539).}
@emph{Historic style} means @qq{as was typeset or written in historic
-editions (other than those of Petrucci).}
+editions other than those of Petrucci.}
@emph{Editio XXX style} means @qq{as is/was printed in Editio XXX.}
The mensural g clef is mapped to the Petrucci g clef.
-
@node Ancient flags
@subsubsection Ancient flags
@cindex flags
-
Use the @code{flag-style} property of grob @rinternals{Stem} to
select ancient flags. Besides the @code{default} flag style,
only the @code{mensural} style is supported
There is no particular flag style for neo-mensural notation. Hence,
when typesetting the incipit of a transcribed piece of mensural
music, the default flag style should be used. There are no flags in
-Gregorian Chant notation.
+Gregorian chant notation.
+
+@seealso
+
+TODO: nothing here yet ...
@knownissues
features of classical notation (which however are typically out of
scope for mensural notation).
+
@node Ancient time signatures
@subsubsection Ancient time signatures
+@cindex mensuration sign
@cindex time signatures
-
-There is limited support for mensural time signatures. The
-glyphs are hard-wired to particular time fractions. In other words,
-to get a particular mensural signature glyph with the @code{\time n/m}
-command, @code{n} and @code{m} have to be chosen according to the
-following table
+There is limited support for mensuration signs (which are similar to, but
+not exactly the same as time signatures). The glyphs are hard-wired to
+particular time fractions. In other words, to get a particular mensuration
+sign with the @code{\time n/m} command, @code{n} and @code{m} have to be
+chosen according to the following table
@lilypond[quote,ragged-right]
\layout {
@seealso
-This manual: @ref{Time signature}, gives a general introduction to
+Notation Reference: @ref{Time signature}, gives a general introduction to
the use of time signatures.
@knownissues
Ratios of note durations do not change with the time signature. For
-example, the ratio of 1 brevis = 3 semibrevis (tempus perfectum) must
+example, the ratio of 1 breve = 3 semibreves (@emph{tempus perfectum}) must
be made by hand, by setting
@example
@subsection Additional note signs
@menu
-* Ancient articulations::
-* Custodes::
-* Divisiones::
-* Ligatures::
-* White mensural ligatures::
-* Gregorian square neumes ligatures::
+* Ancient articulations::
+* Custodes::
+* Divisiones::
+* Ligatures::
+* White mensural ligatures::
+* Gregorian square neumes ligatures::
@end menu
}
@end lilypond
+@seealso
+
+TODO: nothing here yet ...
+
@knownissues
Some articulations are vertically placed too closely to the
The episem line is not displayed in many cases. If it is displayed,
the right end of the episem line is often too far to the right.
+
@node Custodes
@subsubsection Custodes
only marks the end of a chant, but is also frequently used within a
single antiphonal/responsorial chant to mark the end of each section.
-
To use divisiones, include the file @file{gregorian@/-init@/.ly}. It
contains definitions that you can apply by just inserting
@code{\divisioMinima}, @code{\divisioMaior}, @code{\divisioMaxima},
the following subsections. Only white mensural ligatures
are supported with certain limitations.
+@seealso
+TODO: nothing here yet ...
@knownissues
* Gregorian square neumes ligatures::
@end menu
+
@node White mensural ligatures
@subsubsection White mensural ligatures
}
@end lilypond
+@seealso
+
+TODO: nothing here yet ...
+
@knownissues
Horizontal spacing is poor.
+
@node Gregorian square neumes ligatures
@subsubsection Gregorian square neumes ligatures
@end multitable
-
Unlike most other neumes notation systems, the input language for
neumes does not reflect the typographical appearance, but is designed
to focus on musical meaning. For example, @code{\[ a \pes b
@funindex \augmentum
Use the unary music function @code{\augmentum} to add augmentum dots.
+@seealso
+
+TODO: nothing here yet ...
+
@knownissues
When an @code{\augmentum} dot appears at the end of the last staff
@subsection Pre-defined contexts
@menu
-* Gregorian Chant contexts::
-* Mensural contexts::
+* Gregorian chant contexts::
+* Mensural contexts::
@end menu
-@node Gregorian Chant contexts
-@subsubsection Gregorian Chant contexts
+@node Gregorian chant contexts
+@subsubsection Gregorian chant contexts
@cindex VaticanaVoiceContext
@cindex VaticanaStaffContext
The predefined @code{VaticanaVoiceContext} and
@code{VaticanaStaffContext} can be used to engrave a piece of
-Gregorian Chant in the style of the Editio Vaticana. These contexts
+Gregorian chant in the style of the Editio Vaticana. These contexts
initialize all relevant context properties and grob properties to
proper values, so you can immediately go ahead entering the chant, as
the following excerpt demonstrates
}
@end lilypond
+@seealso
+
+TODO: nothing here yet ...
@node Mensural contexts
@subsubsection Mensural contexts
}
@end lilypond
+@seealso
+
+TODO: nothing here yet ...
+
+
@node Transcribing ancient music
@subsection Transcribing ancient music
@menu
-* Ancient and modern from one source::
-* Incipits::
-* Mensurstriche layout::
-* Transcribing Gregorian chant::
+* Ancient and modern from one source::
+* Incipits::
+* Mensurstriche layout::
+* Transcribing Gregorian chant::
@end menu
@c Here among others the snippets about reducing note length
TBC
+@seealso
+
+@c ... and reference to other sections ...
+
@node Incipits
@subsubsection Incipits
@c TODO Add text
@c clefs, mensuration signs etc from lsr and -user
@c use snippet Transcription-of-ancient-music-with-incipit
-
TBC
+@seealso
+
+@c ... and reference to other sections ...
@node Mensurstriche layout
@subsubsection Mensurstriche layout
@c from lsr and -user
TBC
+@seealso
+
+@c ... and reference to other sections ...
+
@node Transcribing Gregorian chant
@subsubsection Transcribing Gregorian chant
@c extract from 1.6.1.1
TBC
+@seealso
+
+@c ... and reference to other sections ...
+
@node Editorial markings
@subsection Editorial markings
@menu
-* Annotational accidentals::
-* Baroque rhythmic notation::
+* Annotational accidentals::
+* Baroque rhythmic notation::
@end menu
In European music from before about 1600, singers were often
expected to chromatically alter notes at their own initiative.
-This is called @q{Musica Ficta}. In modern transcriptions, these
+This is called @notation{musica ficta}. In modern transcriptions, these
accidentals are usually printed over the note.
@cindex Accidental, musica ficta
ais bis
@end lilypond
-This will treat @emph{every} subsequent accidentals as
-@emph{musica ficta} until it is unset with @code{\set
-suggestAccidentals = ##f}. A more convenient way is to use
-@code{\once}:
+This will treat @emph{every} subsequent accidental as @emph{musica ficta}
+until it is unset with @code{\set suggestAccidentals = ##f}. A more
+convenient way is to use @code{\once}:
@lilypond[verbatim,fragment,relative=1]
fis gis
TBC
+
+@seealso
+
+@c ... and reference to other sections ...
@menu
-* Interpretation contexts::
-* Explaining the Internals Reference::
-* Modifying properties::
-* Common properties::
-* Advanced tweaks::
-* old The \override command::
-* Discussion of specific tweaks::
+* Interpretation contexts::
+* Explaining the Internals Reference::
+* Modifying properties::
+* Useful concepts and properties::
+* Common properties::
+* Advanced tweaks::
+* old The \override command::
+* Discussion of specific tweaks::
@end menu
This section describes what contexts are, and how to modify them.
@menu
-* Contexts explained::
-* Creating contexts::
-* Modifying context plug-ins::
-* Changing context default settings::
-* Defining new contexts::
-* Aligning contexts::
+* Contexts explained::
+* Creating contexts::
+* Modifying context plug-ins::
+* Changing context default settings::
+* Defining new contexts::
+* Aligning contexts::
@end menu
@node Contexts explained
@subsection Contexts explained
->> > > - list of contexts: my *danger unmaintainable*
+>> > > - list of contexts: my *danger unmaintainable*
>> > > alarm just went off. I'm
I knew it would... And leaving out some of them is perfectly fine
details.
+@node Useful concepts and properties
+@section Useful concepts and properties
+
+
+@menu
+* Input modes::
+* Direction and placement::
+* Distances and measurements::
+* Spanners::
+@end menu
+
+@node Input modes
+@subsection Input modes
+
+The way in which the notation contained within an input file is
+interpreted is determined by the current input mode.
+
+@strong{Chord mode}
+
+This is activated with the @code{\chordmode} command, and causes
+input to be interpreted with the syntax of chord notation, see
+@ref{Chord notation}. Chords are rendered as notes on a staff.
+
+Chord mode is also activated with the @code{\chords} command.
+This also creates a new @code{ChordNames} context and
+causes the following input to be interpreted with the syntax of
+chord notation and rendered as chord names in the @code{ChordNames}
+context, see @ref{Printing chord names}.
+
+@strong{Drum mode}
+
+This is activated with the @code{\drummode} command, and causes
+input to be interpreted with the syntax of drum notation, see
+@ref{Basic percussion notation}.
+
+Drum mode is also activated with the @code{\drums} command.
+This also creates a new @code{DrumStaff} context and causes the
+following input to be interpreted with the syntax of drum notation
+and rendered as drum symbols on a drum staff, see @ref{Basic
+percussion notation}.
+
+@strong{Figure mode}
+
+This is activated with the @code{\figuremode} command, and causes
+input to be interpreted with the syntax of figured bass, see
+@ref{Entering figured bass}.
+
+Figure mode is also activated with the @code{\figures} command.
+This also creates a new @code{FiguredBass} context and causes the
+following input to be interpreted with the figured bass syntax
+and rendered as figured bass symbols in the @code{FiguredBass}
+context, see @ref{Introduction to figured bass}.
+
+@strong{Fret and tab modes}
+
+There are no special input modes for entering fret and tab symbols.
+
+To create tab diagrams, enter notes or chords in note mode and
+render them in a @code{TabStaff} context, see
+@ref{Default tablatures}.
+
+To create fret diagrams above a staff, enter them as markup
+above the notes using the @code{\fret-diagram} command, see
+@ref{Fret diagrams}.
+
+@strong{Lyrics mode}
+
+This is activated with the @code{\lyricmode} command, and causes
+input to be interpreted as lyric syllables with optional durations
+and associated lyric modifiers, see @ref{Vocal music}.
+
+Lyric mode is also activated with the @code{\addlyrics} command.
+This also creates a new @code{Lyrics} context and an implicit
+@code{\lyricsto} command which associates the following lyrics
+with the preceding music.
+
+@strong{Markup mode}
+
+This is activated with the @code{\markup} command, and causes
+input to be interpreted with the syntax of markup, see
+@ref{Text markup commands}.
+
+@c silly work-around for texinfo broken-ness
+@c (@strong{Note...} causes a spurious cross-reference in Info)
+@b{Note mode}
+
+This is the default mode or it may be activated with the
+@code{\notemode} command. Input is interpreted as pitches,
+durations, markup, etc and typeset as musical notation on a staff.
+
+It is not normally necessary to specify note mode explicitly, but
+it may be useful to do so in certain situations, for example if you
+are in lyric mode, chord mode or any other mode and want to insert
+something that only can be done with note mode syntax.
+
+For example, to indicate dynamic markings for the verses of a
+choral pieces it is necessary to enter note mode to interpret
+the markings:
+
+@lilypond[verbatim,relative=2,quote]
+{ c4 c4 c4 c4 }
+\addlyrics {
+ \notemode{\set stanza = \markup{ \dynamic f 1. } }
+ To be sung loudly
+}
+\addlyrics {
+ \notemode{\set stanza = \markup{ \dynamic p 2. } }
+ To be sung quietly
+}
+@end lilypond
+
+
+
+@node Direction and placement
+@subsection Direction and placement
+
+In typesetting music the direction and placement of many items is
+a matter of choice. For example, the stems of notes can
+be directed up or down; lyrics, dynamics, and other expressive
+marks may be placed above or below the staff; text may be aligned
+left, right or center; etc. Most of these choices may be left to
+be determined automatically by LilyPond, but in some cases it may
+be desirable to force a particular direction or placement.
+
+@strong{Default actions}
+
+By default some directions are always up or always down (e.g.
+dynamics or fermata), while other things can alternate between
+up or down based on the stem direction (like slurs or accents).
+
+@c TODO Add table showing these
+
+@strong{Context layout}
+
+Contexts are positioned in a system from top to bottom in the
+order in which they are encountered. Note, however, that a
+context will be created implicitly if a command is encountered
+when there is no suitable context available to contain it.
+
+@c TODO Add example ?
+
+The default order in which contexts are laid out can be changed,
+see @ref{Aligning contexts}
+
+@strong{Articulation direction indicators}
+
+When adding articulations to notes the direction indicator,
+@code{^} (meaning @qq{up}), @code{_} (meaning @qq{down}) or
+@code{-} (meaning @qq{use default direction}), can usually be
+omitted, in which case @code{-} is assumed. But a direction
+indicator is @strong{always} required before
+
+@itemize
+@item @code{\tweak} commands
+@item @code{\markup} commands
+@item @code{\tag} commands
+@item string markups, e.g. -"string"
+@item fingering instructions, e.g. @code{-1}
+@item articulation shortcuts, e.g. @code{-.}, @code{->}, @code{--}
+@end itemize
+
+@strong{The direction property}
+
+The position or direction of many layout objects is controlled
+by the @code{direction} property.
+
+The value of the @code{direction} property may be
+set to @code{1}, meaning @qq{up} or @qq{above}, or to @code{-1},
+meaning @qq{down} or @qq{below}. The symbols @code{UP} and
+@code{DOWN} may be used instead of @code{1} and @code{-1}
+respectively. The default direction may be specified by setting
+@code{direction} to @code{0} or @code{CENTER}. Alternatively,
+in many cases predefined commands
+exist to specify the direction. These are all of the form
+
+@noindent
+@code{\xxxUp}, @code{xxxDown}, @code{xxxNeutral}
+
+@noindent
+where @code{xxxNeutral} means @qq{use the default direction}.
+See @rlearning{Within-staff objects}.
+
+In a few cases, arpeggio being the only common example, the value
+of the @code{direction} property specifies whether the object
+is to be placed to the right or left of the parent object. In
+this case @code{-1} or @code{LEFT} means @qq{to the left} and
+@code{1} or @code{RIGHT} means @qq{to the right}. @code{0}
+or @code{CENTER} means @qq{use the default} direction, as before.
+
+@ignore
+These all have side-axis set to #X
+AmbitusAccidental - direction has no effect
+Arpeggio - works
+StanzaNumber - not tried
+TrillPitchAccidental - not tried
+TrillPitchGroup - not tried
+@end ignore
+
+
+
+@node Distances and measurements
+@subsection Distances and measurements
+
+DISCUSS after working on other sections.
+
+TODO: staff spaces. Maybe move into tweaks?
+
+
+@node Spanners
+@subsection Spanners
+
+Many objects of musical notation extend over several notes or even
+several bars. Examples are crescendi, trills, tuplet brackets, and
+volta repeat brackets. Such objects are called @qq{spanners}, and
+have special properties to control their appearance and behaviour.
+Some of these properties are common to all spanners; others are
+restricted to a sub-set of the spanners.
+
@node Common properties
@section Common properties
@menu
-* Controlling visibility of objects::
-* Line styles::
-* Rotating objects::
-* Aligning objects::
+* Controlling visibility of objects::
+* Line styles::
+* Rotating objects::
+* Aligning objects::
@end menu
@node Controlling visibility of objects
}
@end lilypond
+@noindent
+Note that @code{c:5} is identical to @code{c} -- both produce a C major triad.
+
Since an unaltered 11 does not sound good when combined with an
unaltered 13, the 11 is removed from a @code{:13} chord (unless it
is added explicitly).
@funindex ^
-A step to be removed from the chord must come at the end of a
-modifier string and be prefixed by @code{^}. Only one removal with @code{^}
+A step to be removed from the chord indicated in a
+modifier string with a prefix of @code{^}. Only one removal with @code{^}
is allowed in a modifier string.
@lilypond[quote,verbatim,fragment,relative=1]
removed steps is desired, it must be built through addition of
multiple steps.
+Only the first inversion can be created by adding a bass note. The
+second inversion requires changing the root of the chord.
+
+@lilypond[quote,ragged-right,verbatim,fragment]
+\chordmode {
+ c'1: c':/g e:6-3-^5 e:m6-^5
+}
+@end lilypond
@node Displaying chords
@subsection Displaying chords
chord mode. The displayed chord name will be the same, regardless
of the mode of entry, unless there are inversions or added bass notes:
-@lilypond[quote,ragged-right,verbatim,relative=1]
+@lilypond[verbatim,quote,relative=1]
<<
\new ChordNames {
<c e g>2 <f bes c>
@snippets
-@c TODO -- replace this with a snippet
-Chord names can be displayed only at the start of lines and when
-the chord changes.
-
-@lilypond[quote,verbatim,ragged-right]
-harmonies = \chordmode {
- c1:m c:m \break c:m c:m d
-}
-<<
- \new ChordNames {
- \set chordChanges = ##t
- \harmonies
- }
- \new Staff {
- \relative c' { \harmonies }
- }
->>
-@end lilypond
-
-@c TODO -- replace this with a snippet
-To add bar indications in the @code{ChordNames}
-context, add @rinternals{Bar_engraver}.
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{showing-chords-at-changes.ly}
-@lilypond[ragged-right,verbatim]
-\new ChordNames \with {
- \override BarLine #'bar-size = #4
- \consists "Bar_engraver"
-}
-\chordmode {
- f1:maj7 f:7 bes:7 c:maj7 ees e
-}
-@end lilypond
+@c @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+@c {adding-bar-lines-to-chordnames-context.ly}
-@c TODO -- replace this with a snippet
-When put together, chord names, a melody, and lyrics form a lead
-sheet:
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{simple-lead-sheet.ly}
-@lilypond[verbatim,quote,ragged-right]
-<<
- \chords { c2 g:sus4 f e }
- \relative c'' {
- a4 e c8 e r4
- b2 c4( d)
- }
- \addlyrics { One day this shall be free __ }
->>
-@end lilypond
@seealso
alternate Jazz notation is also shown on the chart in @ref{Chord
name chart}.
+@c TODO -- Change this so we don't have a non-verbatim example.
+@c Make short example in docs, then move longer example to
+@c appendix, where the length of the snippet won't matter.
+
In addition to the different naming systems, different note names
are used for the root in different languages. The predefined
variables @code{\germanChords}, @code{\semiGermanChords},
@snippets
-@c TODO fix indentation of snippet -- lots of tabs!
@cindex exceptions, chord names.
@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
{chord-name-exceptions.ly}
+@c TODO - tweak snippet to use \blackTriangleMarkup as well
@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
{chord-name-major7.ly}
@c {volta-brackets-over-chord-names.ly}
@c TODO convert to snippet
+@c @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+@c {changing-chord-separator.ly}
+
The separator between different parts of a chord name
can be set to any markup.
@lilypond[verbatim,quote,ragged-right,fragment]
\new FiguredBass {
\figuremode {
- <4 6>2
+ <6 4>2
}
}
@end lilypond
-Accidentals can be added to figures:
+Accidentals (including naturals) can be added to figures:
@lilypond[verbatim,quote,ragged-right,fragment]
\figures {
- <4- 6+ 7!> <5++> <3-->
+ <7! 6+ 4-> <5++> <3-->
}
@end lilypond
-Plus signs, diminished fifths, and diminished sevenths
-can be notated.
+Augmented and diminished steps can be indicated.
@lilypond[verbatim,quote,ragged-right,fragment]
\figures {
}
@end lilypond
-Vertical spaces and brackets can be be included in figures:
+A backward slash through a figure (typically used for raised
+sixth steps) can be created.
@lilypond[verbatim,quote,ragged-right,fragment]
\figures {
- < [4 6] 8 [_! 12] >
+<6>
+% FIXME: broken.
+ %<6\\>
}
@end lilypond
-Any text markup can be inserted as a figure:
+Vertical spaces and brackets can be be included in figures:
@lilypond[verbatim,quote,ragged-right,fragment]
\figures {
- < 5 \markup{ \tiny \number 6 \super (1)} >
+ <[12 _!] 8 [6 4]>
}
@end lilypond
-Continuation lines can be used to indicate repeated figures:
-@c \set to be replaced with predefined command once it is
-@c included in property-init.ly
+Any text markup can be inserted as a figure:
+
@lilypond[verbatim,quote,ragged-right,fragment]
\figures {
- \set useBassFigureExtenders = ##t
- <4 6> <3 6> <3 7>
+ < \markup{ \tiny \number 6 \super (1)} 5 >
}
@end lilypond
-@noindent
-In this case, the extender lines always replace existing figures.
+@c TODO We need to include notes any time we use extenders to
+@c avoid extraneous staff creation due to Staff.use... in
+@c \bassFigureExtendersOn
-@c @predefined
+Continuation lines can be used to indicate repeated figures:
-@c @snippets
-@c This probably isn't notation, but rather adjusting output. I guess this
-@c should be converted to a snippet? -cds
-Accidentals and plus signs can appear before or after the numbers,
-depending on the @code{figuredBassAlterationDirection} and
-@code{figuredBassPlusDirection}
-properties
+@lilypond[verbatim,quote,ragged-right,fragment]
+<<
+ {
+ \clef bass
+ e d c b,
+ e d c b,
+ }
+ \figures {
+ \bassFigureExtendersOn
+ <6 4> <6 3> <7 3> <7 3>
+ \bassFigureExtendersOff
+ <6 4> <6 3> <7 3> <7 3>
+ }
+>>
+@end lilypond
+
+@noindent
+In this case, the extender lines replace existing figures,
+unless the continuation lines have been explicitly terminated.
-@c TODO Need to set predefined commands for these directions as well. -cs
-@lilypond
+@lilypond[verbatim,quote,ragged-right,fragment]
+<<
\figures {
- <6\+> <5+> <6 4-> r
- \set figuredBassAlterationDirection = #RIGHT
- <6\+> <5+> <6 4-> r
- \set figuredBassPlusDirection = #LEFT
- <6\+> <5+> <6 4-> r
- \set figuredBassAlterationDirection = #LEFT
- <6\+> <5+> <6 4-> r
+ \bassFigureExtendersOn
+ <6 4> <6 4> <6\! 4\!> <6 4>
}
+ {
+ \clef bass
+ d d c c
+ }
+>>
@end lilypond
+
+
+@predefined
+@cindex figured bass extender lines
+@code{\bassFigureExtendersOn},
+@code{\bassFigureExtendersOff}.
+
+
+@snippets
+@c TODO Fix this snippet -- Plus direction should be RIGHT.
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{changing-the-positions-of-figured-bass-alterations.ly}
+
@seealso
@c Music Glossary:
@c @rglos{}.
@c @file{}.
Snippets:
-@rlsr{Figured Bass}.
+@rlsr{Chords}.
-@c Internals Reference:
+Internals Reference:
@rinternals{NewBassFigure},
@rinternals{BassFigureAlignment},
@rinternals{BassFigureLine},
}
\new FiguredBass {
\figuremode {
- <4>4 <6 10>8 s8
- <4 6>4 <4 6>
+ <4>4 <10 6>8 s8
+ <6 4>4 <6 4>
}
}
>>
directly. In this case, the vertical position of the
figures is adjusted automatically.
+@c TODO add a second paragraph to show direction change. First
+@c example should be UP (default), second should be DOWN.
+
@c TODO change to use predefined command once it is added to
@c property-init.ly -cds
@lilypond[verbatim,ragged-right,fragment,quote]
<<
\new Staff = myStaff
\figuremode {
- \override Staff.BassFigureAlignmentPositioning #'direction = #DOWN
- <4>4 <6 10>8 s8
- <4 6>4 <4 6>
+ <4>4 <10 6>8 s8
+ <6 4>4 <6 4>
}
%% Put notes on same Staff as figures
\context Staff = myStaff
- \relative c'' {
- c4 c'8 r8 c,4 c'
+ {
+ \clef bass
+ c4 c'8 r8 c4 c'
+ }
+>>
+@end lilypond
+
+
+When added in a Staff context, figured bass can be displayed above
+or below the staff.
+
+@lilypond[verbatim,ragged-right,fragment,quote]
+<<
+ \new Staff = myStaff
+ \figuremode {
+ <4>4 <10 6>8 s8
+ \bassFigureStaffAlignmentDown
+ <6 4>4 <6 4>
+ }
+ %% Put notes on same Staff as figures
+ \context Staff = myStaff
+ {
+ \clef bass
+ c4 c'8 r8 c4 c'
}
>>
@end lilypond
example, you can write
@example
-<4 6>8 r8
+<6 4>8 r8
@end example
@noindent
@end example
@end ignore
-@c @predefined
+@predefined
+@cindex figured bass alignment
+@code{\bassFigureStaffAlignmentDown},
+@code{\bassFigureStaffAlignmentUp},
+@code{\bassFigureStaffAlignmentNeutral}.
-@c @snippets
+@snippets
@seealso
@c Music Glossary:
\repeat unfold 4 {f16. g32} f8. es16 d8 es
}
\figures {
- \set useBassFigureExtenders = ##t
+ \bassFigureExtendersOn
% The extenders are correct here, with the same rhythm as the bass
\repeat unfold 4 {<6 4->16. <6 4->32}
<5>8. r16 <6>8 <6\! 5->
\repeat unfold 4 {f16. g32} f8. es16 d8 es
}
\figures {
- \set useBassFigureExtenders = ##t
+ \bassFigureExtendersOn
% The extenders are incorrect here, even though the timing is the same
<6 4->4 <6 4->4
%\repeat unfold 4 {<6 4->16. <6 4->32}
@c I have no idea what this means -cds
@c A predefined command for changing this has been proposed -cds
+@c TODO -- put stacking direction snippet here -cds
When using figured bass above the staff with extender lines and
@code{implicitBassFigures} the lines may become swapped around.
Maintaining order consistently will be impossible when multiple figures
@lilypond[verbatim,quote,relative=2]
c4-^ c-+ c-- c-|
-c-> c-. c-_
+c4-> c-. c-_
@end lilypond
The rules for the default placement of articulations are defined
@lilypond[verbatim,quote,relative=2]
c2\ppp c\mp
-c\rfz c^\mf
-c_\spp c^\ff
+c2\rfz c^\mf
+c2_\spp c^\ff
@end lilypond
@cindex hairpin
revert to hairpins again:
@lilypond[verbatim,quote,relative=2]
-c\< d e f\!
-e\> d c b\!
+c4\< d e f\!
+e4\> d c b\!
\setTextCresc
-c\< d e f\!
+c4\< d e f\!
\setTextDecresc
-e\> d c b\!
+e4\> d c b\!
\setHairpinCresc
-c\< d e f\!
+c4\< d e f\!
@end lilypond
To create new absolute dynamic marks or text that should be
@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
{vertically-aligning-dynamics-across-multiple-notes.ly}
-@c I can't figure this one out. Consider removing this. -pm
-
-@notation{Crescendi} and @notation{decrescendi} that cross a line
-break will be continued on the second line. If they end on the
-first note of a new line, nothing will be printed on that line.
-To change this behavior, use
-
-@example
-\override Score.Hairpin #'after-line-breaking = ##t
-@end example
-
@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
{hiding-the-extender-line-for-text-dynamics.ly}
-@c The following snippet goes in input/new/
-@c @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
-@c {changing-text-and-spanner-styles-for-text-dynamics.ly}
-
-The text used for @notation{crescendos} and
-@notation{decrescendos} can be changed by modifying the context
-properties @code{crescendoText} and @code{decrescendoText}. The
-style of the spanner line can be changed by modifying the
-@code{'style} property of @code{DynamicTextSpanner}. The default
-value is @code{'hairpin}, and other possible values include
-@code{'line}, @code{'dashed-line}, and @code{'dotted-line}:
-
-@lilypond[verbatim,quote,relative=2]
-\set crescendoText = \markup { \italic "cresc. poco" }
-\set crescendoSpanner = #'text
-\override DynamicTextSpanner #'style = #'dotted-line
-a2\< a
-a2 a
-a2 a
-a2 a\mf
-@end lilypond
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{changing-text-and-spanner-styles-for-text-dynamics.ly}
@seealso
@cindex new dynamic marks
@cindex dynamic marks, new
-It is possible to print new dynamic marks or text that should be
-aligned with dynamics. Use @code{make-dynamic-script} to create
-these marks. Note that the dynamic font only contains the
-characters @code{f,m,p,r,s} and @code{z}.
-
-Some situations (such as dynamic marks) have preset font-related
-properties. If you are creating text in such situations, it is
-advisable to cancel those properties with @code{normal-text}. See
-@ref{Text markup commands} for more details.
-
-@cindex make-dynamic-script
+The easiest way to create dynamic indications is to use
+@code{\markup} objects.
@lilypond[verbatim,quote]
-sfzp = #(make-dynamic-script "sfzp")
+moltoF = \markup { molto \dynamic f }
+
\relative c' {
- c4 c c\sfzp c
+ <d e>16 <d e>
+ <d e>2.._\moltoF
}
@end lilypond
@cindex dynamics, editorial
@cindex dynamics, parenthesis
-It is also possible to print dynamics in round parenthesis or
-square brackets. These are often used for adding editorial
-dynamics.
+Markup mode makes possible, for instance, to add
+editorial dynamics, printed in round parenthesis or square
+brackets. Its syntax is described in @ref{Formatting text}.
@lilypond[verbatim,quote]
-rndf = \markup { \center-align { \line { \bold { \italic ( }
+roundf = \markup { \center-align { \line { \bold { \italic ( }
\dynamic f \bold { \italic ) } } } }
boxf = \markup { \bracket { \dynamic f } }
\relative c' {
- c1_\rndf
+ c1_\roundf
c1_\boxf
}
@end lilypond
+Markup objects are treated differently from authentic dynamic marks.
+Defining dynamic objects that will be entered and printed exactly like
+standard dynamic marks is also possible, using the following function:
+
+@cindex make-dynamic-script
+
+@lilypond[verbatim,quote]
+sfzp = #(make-dynamic-script "sfzp")
+\relative c' {
+ c4 c c\sfzp c
+}
+@end lilypond
+
+@noindent
+Note that the dynamic font only contains the characters
+@code{f,m,p,r,s} and @code{z}. To switch to other font families,
+it is necessary to use markup mode in its Scheme form, as
+explained in @ref{Markup construction in Scheme}.
+
+@lilypond[verbatim,quote]
+moltoF = #(make-dynamic-script (markup
+ #:normal-text "molto"
+ #:dynamic "f"))
+\relative c' {
+ <d e>16 <d e>
+ <d e>2..\moltoF
+}
+@end lilypond
+
+@noindent
+Font settings in markup mode are described in
+@ref{Common markup commands}.
+
@seealso
+Notation Reference:
+@ref{Formatting text},
+@ref{Common markup commands},
+@ref{Markup construction in Scheme}.
+
Snippets:
@rlsr{Expressive marks}.
@cindex slurs
-A @notation{slur} indicates that notes are to be played bound or
-@emph{legato}. They are entered using parentheses:
+@notation{Slurs} are entered using parentheses:
@lilypond[verbatim,quote,relative=2]
-f( g a) a8 b( a4 g2 f4)
+f4( g a) a8 b(
+a4 g2 f4)
<c e>2( <b d>2)
@end lilypond
-Just as with ties, the direction of a slur can be specified with
-@code{\slur@emph{DIR}}, where @code{@emph{DIR}} is either
-@code{Up}, @code{Down}, or @code{Neutral} (@code{Neutral} is the
-default). Slurs may be manually placed above or below the staff,
+The direction of a @notation{slur} can be specified with
+@code{\slurUp} or @code{\slurDown}. The @code{\slurNeutral}
+command reverts back to the default slur direction.
+@notation{Slurs} may be manually placed above or below the staff,
see @ref{Direction and placement}.
@lilypond[verbatim,quote,relative=2]
-c4_( c) c^( c)
+c2( d)
+\slurDown
+c2( d)
+\slurNeutral
+c2( d)
@end lilypond
-Using this method, only one slur can be printed at once. To print
-a long slur over a few small slurs, see @ref{Phrasing slurs}.
+Different styles of @notation{slurs} may be created with the
+commands @code{\slurDashed} and @code{slurDotted};
+@code{\slurSolid} reverts back to the default @notation{slur}
+style:
+
+@lilypond[verbatim,quote,relative=1]
+c4( e g2)
+\slurDashed
+g4( e c2)
+\slurDotted
+c4( e g2)
+\slurSolid
+g4( e c2)
+@end lilypond
+
+Using this method, only one slur can be printed at once.
+@notation{Phrasing slurs} must be used to print a long slur over
+one or more small slurs. For details, see @ref{Phrasing slurs}.
@predefined
@funindex \(
@funindex \)
-A phrasing slur (or phrasing mark) connects notes and is used to
-indicate a musical sentence. It is written using @code{\(} and
-@code{\)} respectively:
+@notation{Phrasing slurs} (or @notation{phrasing marks}) that
+indicate a musical sentence are written using the commands
+@code{\(} and @code{\)} respectively:
@lilypond[verbatim,quote,relative=2]
-\time 6/4 c\( d( e) f( e) d\)
+c4\( d( e) f(
+e2) d\)
@end lilypond
-Typographically, the phrasing slur behaves almost exactly like a
-normal slur. However, they are treated as different objects. A
-@code{\slurUp} will have no effect on a phrasing slur; instead,
-use @code{\phrasingSlurUp}, @code{\phrasingSlurDown}, and
-@code{\phrasingSlurNeutral}. Phrasing slurs may be manually
-placed above or below the staff, see @ref{Direction
-and placement}.
+Typographically, a @notation{phrasing slur} behaves almost exactly
+like a normal @notation{slur}. However, they are treated as
+different objects; a @code{\slurUp} will have no effect on a
+@notation{phrasing slur}. The commands @code{\phrasingSlurUp},
+@code{\phrasingSlurDown}, and @code{\phrasingSlurNeutral} are used
+instead. Phrasing slurs may be manually placed above or below the
+staff, see @ref{Direction and placement}.
+
+@lilypond[verbatim,quote,relative=1]
+c4\( g' c,( b) | c1\)
+\phrasingSlurUp
+c4\( g' c,( b) | c1\)
+@end lilypond
-You cannot have simultaneous phrasing slurs.
+Simultaneous phrasing slurs are not permitted.
@predefined
Breath marks are entered using @code{\breathe}:
@lilypond[verbatim,quote,relative=2]
-c4 \breathe d4
+c2. \breathe d4
@end lilypond
@lilypond[verbatim,quote,relative=2]
c2-\bendAfter #+4
-c-\bendAfter #-4
-c-\bendAfter #+8
-c-\bendAfter #-8
+c2-\bendAfter #-4
+c2-\bendAfter #+8
+c2-\bendAfter #-8
@end lilypond
-The dash (@tie{-}) following the note name is @emph{required} when
-writing @notation{falls} and @notation{doits}.
+The dash (@tie{-}) immediately preceding the @code{\bendAfter}
+command is @emph{required} when writing @notation{falls} and
+@notation{doits}.
@snippets
@cindex glissando
@funindex \glissando
-A @notation{glissando} is a smooth change in pitch. It is denoted
-by a line or a wavy line between two notes. A
-@notation{glissando} is created by attaching @code{\glissando} to
-a note:
+A @notation{glissando} is created by attaching @code{\glissando}
+to a note:
@lilypond[verbatim,quote,relative=2]
c2\glissando c'
@cindex broken chord
@cindex chord, broken
-@c Add documentation for new 'parenthesis' style arpeggio. Maybe
-@c create a new \arpeggioParen command, or something similar. -pm
+An @notation{arpeggio} on a chord (also known as a
+@notation{broken chord}) is denoted by appending @code{\arpeggio}
+to the chord construct:
+
+@lilypond[verbatim,quote,relative=1]
+<c e g c>1\arpeggio
+@end lilypond
-You can specify an @notation{arpeggio} (also known as a
-@notation{broken chord}) on a chord by attaching an
-@code{\arpeggio} to the chord:
+The direction of an @notation{arpeggio} is indicated by adding an
+arrowhead to the wiggly line. The commands @code{\arpeggioUp} and
+@code{\arpeggioDown} are used for this task.
+@code{\arpeggioNeutral} reverts back to an arrow-less
+@notation{arpeggio}:
@lilypond[verbatim,quote,relative=1]
-<c e g c>\arpeggio
+\arpeggioUp
+<c e g c>2\arpeggio
+\arpeggioDown
+<c e g c>2\arpeggio
+\arpeggioNeutral
+<c e g c>1\arpeggio
@end lilypond
-A square bracket on the left, denoted by @code{\arpeggioBracket},
-is used to indicate that the chord should @emph{not} be
-arpeggiated:
+The command @code{\arpeggioBracket} can be used to create a square
+bracket on the left of a chord, indicating that the chord should
+@emph{not} be arpeggiated. @code{\arpeggioNeutral} reverts back
+to a regular arpeggio:
@lilypond[verbatim,quote,relative=1]
+<c e g c>2
\arpeggioBracket
-<c e g c>\arpeggio
+<c e g c>2\arpeggio
+\arpeggioNeutral
+<c e g c>1\arpeggio
@end lilypond
-The direction of the arpeggio can be denoted by adding an
-arrowhead to the wiggly line. This is done with the commands
-@code{arpeggioUp} and @code{arpeggioDown}. @code{arpeggioNeutral}
-reverts to the arrow-less version:
+A @emph{parenthesis} style bracket may be attached to an
+@notation{arpeggio} instead of a square bracket.
+
+@c Maybe create a new \arpeggioParen command, or something
+@c like that. -pm
@lilypond[verbatim,quote,relative=1]
-\new Voice {
- \arpeggioUp
- <c e g c>\arpeggio
- \arpeggioDown
- <c e g c>\arpeggio
- \arpeggioNeutral
- <c e g c>\arpeggio
-}
+<c e g c>2
+\override Arpeggio #'stencil = #ly:arpeggio::brew-chord-slur
+\override Arpeggio #'X-extent = #ly:grob::stencil-width
+<c e g c>2\arpeggio
+\arpeggioNeutral
+<c e g c>1\arpeggio
@end lilypond
-@notation{Arpeggios} can be explicitly written out using
+@notation{Arpeggios} can be explicitly written out with
@notation{ties}. For more information, see @ref{Ties}.
@predefined
under heavy development.
@menu
-* Input structure::
-* Useful concepts and properties::
-* Titles and headers::
-* Working with input files::
-* Controlling output::
-* MIDI output::
+* Input structure::
+* Titles and headers::
+* Working with input files::
+* Controlling output::
+* MIDI output::
@end menu
these files end with @code{.ly}.
@menu
-* Structure of a score::
-* Multiple scores in a book::
-* File structure::
+* Structure of a score::
+* Multiple scores in a book::
+* File structure::
@end menu
Learning Manual:
@rlearning{How LilyPond input files work}.
-@node Useful concepts and properties
-@section Useful concepts and properties
-
-
-@menu
-* Input modes::
-* Direction and placement::
-* Distances and measurements::
-* Spanners::
-@end menu
-
-@node Input modes
-@subsection Input modes
-
-The way in which the notation contained within an input file is
-interpreted is determined by the current input mode.
-
-@strong{Chord mode}
-
-This is activated with the @code{\chordmode} command, and causes
-input to be interpreted with the syntax of chord notation, see
-@ref{Chord notation}. Chords are rendered as notes on a staff.
-
-Chord mode is also activated with the @code{\chords} command.
-This also creates a new @code{ChordNames} context and
-causes the following input to be interpreted with the syntax of
-chord notation and rendered as chord names in the @code{ChordNames}
-context, see @ref{Printing chord names}.
-
-@strong{Drum mode}
-
-This is activated with the @code{\drummode} command, and causes
-input to be interpreted with the syntax of drum notation, see
-@ref{Basic percussion notation}.
-
-Drum mode is also activated with the @code{\drums} command.
-This also creates a new @code{DrumStaff} context and causes the
-following input to be interpreted with the syntax of drum notation
-and rendered as drum symbols on a drum staff, see @ref{Basic
-percussion notation}.
-
-@strong{Figure mode}
-
-This is activated with the @code{\figuremode} command, and causes
-input to be interpreted with the syntax of figured bass, see
-@ref{Entering figured bass}.
-
-Figure mode is also activated with the @code{\figures} command.
-This also creates a new @code{FiguredBass} context and causes the
-following input to be interpreted with the figured bass syntax
-and rendered as figured bass symbols in the @code{FiguredBass}
-context, see @ref{Introduction to figured bass}.
-
-@strong{Fret and tab modes}
-
-There are no special input modes for entering fret and tab symbols.
-
-To create tab diagrams, enter notes or chords in note mode and
-render them in a @code{TabStaff} context, see
-@ref{Default tablatures}.
-
-To create fret diagrams above a staff, enter them as markup
-above the notes using the @code{\fret-diagram} command, see
-@ref{Fret diagrams}.
-
-@strong{Lyrics mode}
-
-This is activated with the @code{\lyricmode} command, and causes
-input to be interpreted as lyric syllables with optional durations
-and associated lyric modifiers, see @ref{Vocal music}.
-
-Lyric mode is also activated with the @code{\addlyrics} command.
-This also creates a new @code{Lyrics} context and an implicit
-@code{\lyricsto} command which associates the following lyrics
-with the preceding music.
-
-@strong{Markup mode}
-
-This is activated with the @code{\markup} command, and causes
-input to be interpreted with the syntax of markup, see
-@ref{Text markup commands}.
-
-@c silly work-around for texinfo broken-ness
-@c (@strong{Note...} causes a spurious cross-reference in Info)
-@b{Note mode}
-
-This is the default mode or it may be activated with the
-@code{\notemode} command. Input is interpreted as pitches,
-durations, markup, etc and typeset as musical notation on a staff.
-
-It is not normally necessary to specify note mode explicitly, but
-it may be useful to do so in certain situations, for example if you
-are in lyric mode, chord mode or any other mode and want to insert
-something that only can be done with note mode syntax.
-
-For example, to indicate dynamic markings for the verses of a
-choral pieces it is necessary to enter note mode to interpret
-the markings:
-
-@lilypond[verbatim,relative=2,quote]
-{ c4 c4 c4 c4 }
-\addlyrics {
- \notemode{\set stanza = \markup{ \dynamic f 1. } }
- To be sung loudly
-}
-\addlyrics {
- \notemode{\set stanza = \markup{ \dynamic p 2. } }
- To be sung quietly
-}
-@end lilypond
-
-
-
-@node Direction and placement
-@subsection Direction and placement
-
-In typesetting music the direction and placement of many items is
-a matter of choice. For example, the stems of notes can
-be directed up or down; lyrics, dynamics, and other expressive
-marks may be placed above or below the staff; text may be aligned
-left, right or center; etc. Most of these choices may be left to
-be determined automatically by LilyPond, but in some cases it may
-be desirable to force a particular direction or placement.
-
-@strong{Default actions}
-
-By default some directions are always up or always down (e.g.
-dynamics or fermata), while other things can alternate between
-up or down based on the stem direction (like slurs or accents).
-
-@c TODO Add table showing these
-
-@strong{Context layout}
-
-Contexts are positioned in a system from top to bottom in the
-order in which they are encountered. Note, however, that a
-context will be created implicitly if a command is encountered
-when there is no suitable context available to contain it.
-
-@c TODO Add example ?
-
-The default order in which contexts are laid out can be changed,
-see @ref{Aligning contexts}
-
-@strong{Articulation direction indicators}
-
-When adding articulations to notes the direction indicator,
-@code{^} (meaning @qq{up}), @code{_} (meaning @qq{down}) or
-@code{-} (meaning @qq{use default direction}), can usually be
-omitted, in which case @code{-} is assumed. But a direction
-indicator is @strong{always} required before
-
-@itemize
-@item @code{\tweak} commands
-@item @code{\markup} commands
-@item @code{\tag} commands
-@item string markups, e.g. -"string"
-@item fingering instructions, e.g. @code{-1}
-@item articulation shortcuts, e.g. @code{-.}, @code{->}, @code{--}
-@end itemize
-
-@strong{The direction property}
-
-The position or direction of many layout objects is controlled
-by the @code{direction} property.
-
-The value of the @code{direction} property may be
-set to @code{1}, meaning @qq{up} or @qq{above}, or to @code{-1},
-meaning @qq{down} or @qq{below}. The symbols @code{UP} and
-@code{DOWN} may be used instead of @code{1} and @code{-1}
-respectively. The default direction may be specified by setting
-@code{direction} to @code{0} or @code{CENTER}. Alternatively,
-in many cases predefined commands
-exist to specify the direction. These are all of the form
-
-@noindent
-@code{\xxxUp}, @code{xxxDown}, @code{xxxNeutral}
-
-@noindent
-where @code{xxxNeutral} means @qq{use the default direction}.
-See @rlearning{Within-staff objects}.
-
-In a few cases, arpeggio being the only common example, the value
-of the @code{direction} property specifies whether the object
-is to be placed to the right or left of the parent object. In
-this case @code{-1} or @code{LEFT} means @qq{to the left} and
-@code{1} or @code{RIGHT} means @qq{to the right}. @code{0}
-or @code{CENTER} means @qq{use the default} direction, as before.
-
-@ignore
-These all have side-axis set to #X
-AmbitusAccidental - direction has no effect
-Arpeggio - works
-StanzaNumber - not tried
-TrillPitchAccidental - not tried
-TrillPitchGroup - not tried
-@end ignore
-
-
-
-@node Distances and measurements
-@subsection Distances and measurements
-
-DISCUSS after working on other sections.
-
-TODO: staff spaces. Maybe move into tweaks?
-
-
-@node Spanners
-@subsection Spanners
-
-Many objects of musical notation extend over several notes or even
-several bars. Examples are crescendi, trills, tuplet brackets, and
-volta repeat brackets. Such objects are called @qq{spanners}, and
-have special properties to control their appearance and behaviour.
-Some of these properties are common to all spanners; others are
-restricted to a sub-set of the spanners.
-
@node Titles and headers
@section Titles and headers
@section Controlling output
@menu
-* Extracting fragments of music::
-* Skipping corrected music::
+* Extracting fragments of music::
+* Skipping corrected music::
@end menu
@node Extracting fragments of music
Music Glossary: @rglos{staff}, @rglos{staves}.
Notation Reference: @ref{Percussion staves},
-@ref{Guitar tablatures}, @ref{Gregorian Chant contexts},
+@ref{Guitar tablatures}, @ref{Gregorian chant contexts},
@ref{Mensural contexts}.
Snippets:
@cindex Text scripts
@cindex text items, non-empty
@cindex non-empty texts
+@cindex quoted text
-It is possible to add arbitrary text indications
+Simple @q{quoted text} indications may be added
to a score, as demonstrated in the following example.
-Such indications can also be manually placed
+Such indications can be manually placed
above or below the staff, using the
simple syntax described in @ref{Direction and
placement}.
d8^"pizz." e f g a4-"scherz." f
@end lilypond
-In LilyPond, such text strings are called @command{markup}
-objects. This syntax is actually a shorthand; more complex text
+This syntax is actually a shorthand; more complex text
formatting may be added to a note by explicitly using a
@code{\markup} block, as described in @ref{Formatting text}.
Internals Reference: @rinternals{RehearsalMark}.
@knownissues
-@c IMO this is a bug; hopefully it'll be fixed soon, so I can
-@c delete this sentence. -gp
-@c A workaround is suggested in the first @snippets item -vv
+@c To be removed when Issue 69 in the tracker gets fixed. -vv
If a mark is entered at the end of the last bar of the score (where
there is no next line), then the mark will not be printed at
@predefined
-@funindex \markup
@code{\markup},
@funindex \markuplines
@code{\markuplines}
@cindex text markup
@cindex markup text
@cindex typeset text
+@funindex \markup
A @code{\markup} block is used to typeset text with an extensible
specific syntax called @qq{markup mode}.
@code{\markup} expression is enclosed in curly braces @code{@{
@dots{} @}}.
-In markup mode, specific commands are entered using the backslash
-@code{\} character. Such commands only affect the first following
-expression.
-
-Markup expressions may also be enclosed in double quotes
-@code{"..."}. Such expressions are treated as text strings
-and may not contain nested expressions or commands.
-Therefore, braces are generally prefered to double quotes;
-the following example demonstrates both syntaxes.
+Unlike simple @q{quoted text} indications, @code{\markup} blocks
+may contain nested expressions or specific commands,
+entered using the backslash @code{\} character.
+Such commands only affect the first following expression.
@lilypond[quote,verbatim,fragment,relative=1]
e1-\markup "intenso"
@cindex markup mode, special characters
@cindex reserved characters, printing
@cindex printing special characters
+@cindex quoted text in markup mode
-Special characters such as @code{\} and @code{#}
-can be printed in the output simply using double
-quotes. Double quotation marks are only printed
-in the output when preceded by backslashes:
+A @code{\markup} block may also contain quoted text, which
+can be useful to print special characters (such as @code{\} and @code{#}).
+Quoted text even allows to print double quotation marks, by preceding
+them with backslashes:
@lilypond[quote,verbatim,fragment,relative=1]
\clef bass
@end lilypond
Lists of words that are not enclosed with double quotes
-or preceded by a previous command are not kept distinct. In
+or preceded by a command are not kept distinct. In
the following example, the first two @code{\markup} expressions
are equivalent:
@knownissues
-@c FIXME: this is totally deprecated, isn't it? -vv
-Kerning or generation of ligatures is only done when the @TeX{}
-backend is used. In this case, LilyPond does not account for them
-so texts will be spaced slightly too wide.
-
-@c is the following sentence really relevant? -vv
Syntax errors for markup mode are confusing.
@node Common markup commands
@subsubsection Common markup commands
-Some basic formatting can be used blah blah
-
-
-
-@ignore
-TODO: here are some commands that could be described here.
-I'm putting them in bulk, prior to working on this section. -vv
-
-\simple
-
-\char
-\fraction
-
-\combine
-\concat
-\put-adjacent
-
-
-\page-ref (see also "Table of contents")
-\fromproperty
-\verbatim-file
-\with-url
-
-\on-the-fly
-\override
-
-
-\null
-\hspace
-
-\lower
-\raise
-\translate
-\translate-scaled
-\rotate
-\transparent
-\whiteout
-
-@end ignore
-
-
+Markup text may be formatted using simple commands.
@cindex font switching
+@funindex \italic
+@funindex \bold
+@funindex \underline
-Some font switching commands are demonstrated here.
+Basic font switching is supported:
-\italic
-\upright
-\bold
-\medium
-\underline
-
+@lilypond[quote,verbatim,relative=2]
+{
+ d1^\markup {
+ \bold { Più mosso }
+ \italic { non troppo \underline Vivo }
+ }
+ r2 r4 r8
+ d,_\markup { \italic quasi \smallCaps Tromba }
+ f1 d2 r
+}
+@end lilypond
-@c TODO: what's the difference between the following commands? -vv
-\smallCaps
-\caps
-\fontCaps
+@cindex font size
+@cindex text size
+@funindex \fontsize
+@funindex \small
+@funindex \large
+@funindex \smaller
+@funindex \larger
+@funindex \magnify
+
+The size of the characters can also be altered in different ways:
+@itemize
+@item
+the font size can be defined to an absolute value,
+@item
+predefined commands allow to easily select standard sizes,
-Some alternate font families can easily be selected:
+@item
+other commands allow to change the size relatively to its previous value.
+@end itemize
-\sans
-\typewriter
-\roman
-\number (only for numbers, such as fingerings and time signatures)
-@c TODO: add \slashed-digit here? -vv
+@noindent
+The following example demonstrates these three methods:
-The size can be blah blah blah
+@lilypond[quote,verbatim,relative=2]
+{
+ f1^\markup { \fontsize #5 Sinfonia }
+ a,_\markup {
+ \tiny espressivo
+ \large e
+ \normalsize intenso
+ }
+ bes^\markup { (con
+ \larger grande
+ \smaller emozione
+ \magnify #0.6 { e sentimento } )
+ }
+ d c2 r8 c bes a g1
+}
+@end lilypond
-\fontsize
+@cindex subscript
+@cindex superscript
+@funindex \super
+@funindex \sub
-Some predefined font sizes can be used blah blah
+Text may be printed as subscript or superscript. By default
+these are printed in a smaller size, but a normal size can be used as well:
-\teeny
-\tiny
-\small
-\normalsize
-\large
-\huge
+@lilypond[quote,verbatim]
+\markup {
+ \column {
+ \line { 1 \super st movement }
+ \line { 1 \normal-size-super st movement
+ \sub { (part two) } }
+ }
+}
+@end lilypond
-Some shorcuts allow to change the font size relatively to its previous value
+The markup mode provides an easy way to select alternate
+font families. The default serif font, of roman type, is automatically
+selected unless specified otherwise: on the last line of the following example,
+there is no difference between the first word and the following words.
-\smaller
-\bigger
-\larger
+@lilypond[quote,verbatim]
+\markup {
+ \column {
+ \line { Act \number 1 }
+ \line { \sans { Scene I. } }
+ \line { \typewriter { Verona. An open place. } }
+ \line { \roman Enter Valentine and Proteus. }
+ }
+}
+@end lilypond
+
+@noindent
+Some of these font families, used for specific items
+such as numbers or dynamics, do not provide all
+characters, as mentioned in @ref{New dynamic marks} and
+@ref{Manual repeat marks}.
-\magnify
-Text may be printed as subscript or superscript:
+Defining custom font sets is also possible, as explained in
+@ref{Fonts}.
-\sub
-\super
+An exhaustive list of font-switching, font-size and font-families related
+commands can be found in @ref{Font}.
-To obtain subscripts or superscripts in a normal text size, use
-\normal-size-sub
-\normal-size-super
+@c TODO: add @seealso
-All these settings (except the size) can be reverted to the default font:
+@knownissues
+When used inside a word, some of these commands may produce an unwanted
+blank space. This can easily be solved by concatenating the text
+elements together, using a specific command
+described in @ref{Text alignment}.
-\normal-text
@node Text alignment
@subsubsection Text alignment
+@warning{This subsection discusses how to place text in markup mode,
+inside a @code{\markup} block. However, markup objects can also
+be moved as a whole using the syntax described in
+@rlearning{Moving objects}.}
-Some objects have alignment procedures of their own, which cancel
-out any effects of alignments applied to their markup arguments as
-a whole. For example, the @rinternals{RehearsalMark} is
-horizontally centered, so using @code{\mark \markup @{ \left-align
-.. @}} has no effect.
-
-In addition, vertical placement is performed after creating the
-text markup object. If you wish to move an entire piece of
-markup, you need to use the #'padding property or create an
-@q{anchor} point inside the markup (generally with @code{\hspace
-#0}).
+Markup objects can be aligned in different ways. By default,
+a text indication is aligned on its left edge: in the following
+example, there's no difference between the first and the second
+markup.
@lilypond[quote,verbatim,fragment,relative=1]
-\textLengthOn
-c'4^\markup{ \raise #5 "not raised" }
-\once \override TextScript #'padding = #3
-c'4^\markup{ raised }
-c'4^\markup{ \hspace #0 \raise #1.5 raised }
+a1-\markup { poco }
+e'
+a,-\markup { \left-align poco }
+e'
+a,-\markup { \center-align { poco } }
+e'
+a,-\markup { \right-align poco }
@end lilypond
-Some situations (such as dynamic marks) have preset font-related
-properties. If you are creating text in such situations, it is
-advisable to cancel those properties with @code{normal-text}. See
-@ref{Text markup commands}, for more details.
-
-
-Alignment basics:
-\left-align
-\center-align
-\right-align
+@c FIXME: \center-align actually doesn't belong here
+@c \center-align vs \column
+@c \center-align vs \hcenter
Horizontal alignment:
\hcenter
\halign
+\null
+\hspace
+
+\lower
+\raise
+\translate
+\translate-scaled
+\rotate
+\transparent
+\whiteout
+
Vertical alignment:
\vcenter
\column
\wordwrap
\wordwrap-string
+
+@ignore
+TODO: here are some commands that could be described here.
+I'm putting them in bulk, prior to working on this section. -vv
+
+\simple
+
+\char
+\fraction
+
+\combine
+\concat
+\put-adjacent
+
+
+\page-ref (see also "Table of contents")
+\fromproperty
+\verbatim-file
+\with-url
+
+\on-the-fly
+\override
+
+
+
+@end ignore
+
+
+Some objects have alignment procedures of their own, which cancel
+out any effects of alignments applied to their markup arguments as
+a whole. For example, the @rinternals{RehearsalMark} is
+horizontally centered, so using @code{\mark \markup @{ \left-align
+.. @}} has no effect.
+
+
+
@node Graphic notation inside markup
@subsubsection Graphic notation inside markup
Graphics around text:
@code{\markuplines}
-
-@c TODO: move the following subsubsec into NR3 -vv
-@c maybe. -gp
@node Fonts
@subsection Fonts
@tab @code{2.5}, @code{0.34}
@item Direction
@tab A valid direction constant or its numerical equivalent
- @tab @code{#LEFT}, @code{#CENTER}, @code{#UP},
+ @tab @code{LEFT}, @code{CENTER}, @code{UP},
@code{1}, @code{-1}
@item Integer
@tab A positive whole number
to simulate a fermata in the MIDI output we would not want the
metronome markings to appear in the printed output, and we would
not want it to influence the spacing between the two systems or
-the spacing of the notes on the staff. So setting its
-@code{stencil} property to @code{#f} would be the best way.
+the positions of adjacent annotations on the staff. So setting
+its @code{stencil} property to @code{#f} would be the best way.
We show here the effect of the two methods:
@lilypond[quote,verbatim,ragged-right]
\tempo 4=120
a4 a a
\once \override Score.MetronomeMark #'transparent = ##t
- % Invisible tempo marking to lengthen fermata note in MIDI
+ % Invisible tempo marking to lengthen fermata in MIDI
\tempo 4=80
a\fermata
- \once \override Score.MetronomeMark #'stencil = ##f
- % Invisible tempo marking to restore tempo in MIDI
+ % New tempo for next section
+ \tempo 4=100
+ a a a a
+ }
+ \layout { }
+ \midi { }
+}
+@end lilypond
+
+@lilypond[quote,verbatim,ragged-right]
+\score {
+ \relative c'' {
+ % Visible tempo marking
\tempo 4=120
+ a4 a a
+ \once \override Score.MetronomeMark #'stencil = ##f
+ % Invisible tempo marking to lengthen fermata in MIDI
+ \tempo 4=80
+ a\fermata
+ % New tempo for next section
+ \tempo 4=100
a a a a
}
\layout { }
@end lilypond
@noindent
-Both methods remove the metronome mark from the printed output,
-and both affect the MIDI timing as required, but the first
-(transparent) metronome mark still influences the note spacing
-while the second (with no stencil) does not.
+Both methods remove the metronome mark which lengthens the fermata
+from the printed output, and both affect the MIDI timing as
+required, but the transparent metronome mark in the first line
+forces the following tempo indication too high while the
+second (with the stencil removed) does not.
@node Using variables for tweaks
@subsection Using variables for tweaks
PACKAGE_NAME=LilyPond
MAJOR_VERSION=2
MINOR_VERSION=11
-PATCH_LEVEL=48
+PATCH_LEVEL=49
MY_PATCH_LEVEL=
--- /dev/null
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.11.48"
+
+\header {
+ lsrtags = "chords"
+
+ texidoc = "
+To add bar line indications in the @code{ChordNames} context, add the
+@code{Bar_engraver}.
+
+"
+ doctitle = "Adding bar lines to ChordNames context"
+} % begin verbatim
+\new ChordNames \with {
+ \override BarLine #'bar-size = #4
+ \consists "Bar_engraver"
+}
+\chordmode {
+ f1:maj7 f:7 bes:7
+}
+
+++ /dev/null
-%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
-%% This file is in the public domain.
-\version "2.11.48"
-
-\header {
- lsrtags = "chords"
-
- texidoc = "
-To add bar indications in the @@code@{ChordNames@} context, add
-@@code@{Bar_engraver@}.
-
-"
- doctitle = "Adding bars to ChordNames"
-} % begin verbatim
-\new ChordNames \with {
- \override BarLine #'bar-size = #4
- \consists "Bar_engraver"
-}
-\chordmode {
- f1:maj7 f:7 bes:7
-}
-
\new DrumVoice { \stemDown \drl }
>>
>>
- \layout {}
+ \layout { }
\midi {
\context {
\Score
lsrtags = "titles"
texidoc = "
-I often find it useful to include a date on printed music, so that I
-can see if I'm using the latest version, or tell someone else that he
-should only use the version after a certain date. A simple solution is
-to enter the date manually to the @code{.ly} file. But that's very
-error prone. It's easy to forget updating the date. So i thought it
-would be useful if you can add the date on which the PDF file is
-generated automatically. I did't figure it out myself, but I asked on
-lilypond-user mailing list. And guess what? Someone came with an
-excellent solution! So thank you very much Toine Schreurs for sending
-this solution to the user mailing list. I post it here for future
-reference.
-
-The solution is to use two scheme functions called @code{strftime} and
-@code{localtime}, as shown in the snippet. It is a very flexible
-solution, you can format the date just as you like it by adapting the
-@code{\"%d-%m-%Y\"} string. See the Guile documentation for more
-details on this format string: Formatting Calendar Time.
+With a little Scheme code, the current date can easily be added to a
+score.
"
doctitle = "Adding the current date to a score"
} % begin verbatim
-\version "2.11.48"
% first, define a variable to hold the formatted date:
date = #(strftime "%d-%m-%Y" (localtime (current-time)))
--- /dev/null
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.11.48"
+
+\header {
+ lsrtags = "simultaneous-notes"
+
+ texidoc = "
+In some instances of complex polyphonic music, additional voices are
+necessary to avoid collisions between notes. Additional voices are
+added by defining a variable using the Scheme function
+@code{context-spec-music}.
+
+"
+ doctitle = "Additional voices to avoid collisions"
+} % begin verbatim
+voiceFive = #(context-spec-music (make-voice-props-set 4) 'Voice)
+\relative c'' {
+ \time 3/4 \key d \minor \partial 2
+ <<
+ { \voiceOne
+ a4. a8
+ e'4 e4. e8
+ f4 d4. c8
+ } \\ {
+ \voiceThree
+ f,2
+ bes4 a2
+ a4 s2
+ } \\ {
+ \voiceFive
+ s2
+ g4 g2
+ f4 f2
+ } \\ {
+ \voiceTwo
+ d2
+ d4 cis2
+ d4 bes2
+ }
+ >>
+}
lsrtags = "text, vocal-music, spacing"
texidoc = "
-This snippet shows you how to bring the lyrics line closer to the
-staff.
+This snippet shows how to bring the lyrics line closer to the staff.
"
doctitle = "Adjusting lyrics vertical spacing"
} % begin verbatim
% Default layout:
<<
- \new Staff \new Voice = melody \relative c '{ c4 d e f g f e d c1 }
+ \new Staff \new Voice = melody \relative c' {
+ c4 d e f
+ g4 f e d
+ c1
+ }
\new Lyrics \lyricsto melody { aa aa aa aa aa aa aa aa aa }
% Reducing the minimum space below the staff and above the lyrics:
\new Staff \with {
- \override VerticalAxisGroup #'minimum-Y-extent = #'(-1 . 4) }
- \new Voice = melody \relative c' { c4 d e f g f e d c1 }
+ \override VerticalAxisGroup #'minimum-Y-extent = #'(-1 . 4)
+ }
+ \new Voice = melody \relative c' {
+ c4 d e f
+ g4 f e d
+ c1
+ }
\new Lyrics \with {
- \override VerticalAxisGroup #'minimum-Y-extent = #'(-1.2 . 1) }
+ \override VerticalAxisGroup #'minimum-Y-extent = #'(-1.2 . 1)
+ }
\lyricsto melody { aa aa aa aa aa aa aa aa aa }
>>
lsrtags = "text, paper-and-layout, titles"
texidoc = "
-Instrument names are generally printed at the left side of the staves.
-To align the names of several different intruments, you can put them in
-a @code{\\markup} block and use one of the following possibilites:
+Instrument names are generally printed to the left of the staves. To
+align the names of several different intruments, put them in a
+@code{\\markup} block and use one of the following possibilites:
*
Right-aligned instrument names: this is the default behavior
*
- Center-aligned instrument names: with the @code{\\hcenter-in #n}
-command, you
- can place the instrument names inside a padded box (@code{n} being the
-width
- of the box)
+ Center-aligned instrument names: using the @code{\\hcenter-in #n}
+command
+ places the instrument names inside a padded box, with @code{n} being
+the width
+ of the box
*
- Left-aligned instrument names: you have to print the names on top of an
+ Left-aligned instrument names: the names are printed on top of an
empty box, using the @code{\\combine} command
with an @code{\\hspace #n} object.
line-width = #160
}
-\new StaffGroup \relative <<
+\new StaffGroup \relative c' <<
\new Staff {
- \set Staff.instrumentName = "Piccolo"
- c1^"default" c \break
- \set Staff.instrumentName = \markup { \hcenter-in #10 "Piccolo" }
- c1^"centered" c \break
- \set Staff.instrumentName = \markup { \combine \hspace #8 "Piccolo" }
- c1^"left-aligned" c
+ \set Staff.instrumentName = #"Piccolo"
+ c1^"default" | c \break
+ \set Staff.instrumentName = \markup { \hcenter-in #10 Piccolo }
+ c1^"centered" | c \break
+ \set Staff.instrumentName = \markup { \combine \hspace #8 Piccolo }
+ c1^"left-aligned" | c
}
\new Staff {
- \set Staff.instrumentName = "Flute"
- c1 c \break
- \set Staff.instrumentName = \markup { \hcenter-in #10 "Flute" }
- c1 c \break
- \set Staff.instrumentName = \markup { \combine \hspace #8 "Flute" }
- c1 c
+ \set Staff.instrumentName = #"Flute"
+ c1 | c \break
+ \set Staff.instrumentName = \markup { \hcenter-in #10 Flute }
+ c1 | c \break
+ \set Staff.instrumentName = \markup { \combine \hspace #8 Flute }
+ c1 | c
}
>>
texidoc = "
By setting properties in @code{NonMusicalPaperColumn}, vertical spacing
-of alignments can be adjusted per system.
+can be adjusted per system.
By setting @code{alignment-extra-space} or
stretched vertically.
-For technical reasons, @code{\\overrideProperty} has to be used for
-setting properties on individual objects. @code{\\override} in a
+For technical reasons, @code{\\overrideProperty} must be used for
+changing these properties within a staff; @code{\\override} in a
@code{\\context} block may still be used for global overrides.
"
\relative c''
\new StaffGroup <<
\new Staff {
- c1\break
- c\break
- c\break
+ c1 \break
+ c1 \break
+ c1 \break
}
- \new Staff {
- c1 c c
+ \new Staff {
+ c1 | c | c
}
\new PianoStaff <<
\new Voice {
#'((alignment-extra-space . 15))
c_"aligment-extra-space"
}
- { c1 c c }
+ { c1 | c | c }
>>
>>
-
-
-ancient-fonts.ly
-chant-or-psalms-notation.ly
+transcription-of-ancient-music-with-incipit.ly
+mensurstriche-layout-bar-lines-between-the-staves.ly
adding-a-figured-bass-above-or-below-the-notes.ly
incipit.ly
+chant-or-psalms-notation.ly
ancient-notation-template----modern-transcription-of-mensural-music.ly
-transcription-of-ancient-music-with-incipit.ly
+ancient-fonts.ly
ancient-time-signatures.ly
custodes.ly
-mensurstriche-layout-bar-lines-between-the-staves.ly
ancient-notation-template----modern-transcription-of-gregorian-music.ly
rest-styles.ly
+++ /dev/null
-%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
-%% This file is in the public domain.
-\version "2.11.48"
-
-\header {
- lsrtags = "repeats, staff-notation, editorial-annotations"
-
- texidoc = "
-This snippet provides an example how to emit bar counters which
-LilyPond doesn't provide currently.
-
-"
- doctitle = "Bar counter"
-} % begin verbatim
-
-<<
- \context Voice = "foo" {
- \clef bass
- c4 r g r |
- c4 r g r |
- c4 r g r |
- c4 r g r |
- }
- \context Voice = "foo" {
- \set countPercentRepeats = ##t
- \override PercentRepeat #'transparent = ##t
- \repeat percent 4 { s1 }
- }
->>
-positioning-segno-and-coda-with-line-break.ly
removing-the-first-empty-line.ly
+positioning-segno-and-coda-with-line-break.ly
beams-across-line-breaks.ly
adding-an-extra-staff-at-a-line-break.ly
texidoc = "
A caesura is sometimes denoted with a double \"railtracks\" breath mark
-with a fermata sign positioned over the top of the railtracks. This
-snippet should present an optically pleasing combination of railtracks
-and a fermata.
+with a fermata sign positioned above. This snippet should present an
+optically pleasing combination of railtracks and a fermata.
"
doctitle = "Caesura (\"railtracks\") with fermata"
% construct the symbol
\override BreathingSign #'text = \markup {
\line {
- \musicglyph #"scripts.caesura.curved" \translate #'(-1.75 . 1.6) \musicglyph #"scripts.ufermata"
+ \musicglyph #"scripts.caesura.curved"
+ \translate #'(-1.75 . 1.6)
+ \musicglyph #"scripts.ufermata"
}
}
\breathe c''4
--- /dev/null
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.11.48"
+
+\header {
+ lsrtags = "chords"
+
+ texidoc = "
+The separator between different parts of a chord name can be set to any
+markup.
+
+"
+ doctitle = "Changing chord separator"
+} % begin verbatim
+\chords {
+ c:7sus4
+ \set chordNameSeparator
+ = \markup { \typewriter | }
+ c:7sus4
+}
--- /dev/null
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.11.48"
+
+\header {
+ lsrtags = "contexts-and-engravers, midi"
+
+ texidoc = "
+When outputting MIDI, the default behavior is for each staff to
+represent one MIDI channel, with all the voices on a staff amalgamated.
+This minimizes the risk of running out of MIDI channels, since there
+are only 16 available per track.
+
+However, by moving the @code{Staff_performer} to the @code{Voice}
+context, each voice on a staff can have its own MIDI channel, as is
+demonstrated by the following example: despite being on the same staff,
+two MIDI channels are created, each with a different
+@code{midiInstrument}.
+
+"
+ doctitle = "Changing MIDI output to one channel per voice"
+} % begin verbatim
+\score {
+ \new Staff <<
+ \new Voice \relative c''' {
+ \set midiInstrument = #"flute"
+ \voiceOne
+ \key g \major
+ \time 2/2
+ r2 g-"Flute" ~
+ g fis ~
+ fis4 g8 fis e2 ~
+ e4 d8 cis d2
+ }
+ \new Voice \relative c'' {
+ \set midiInstrument = #"clarinet"
+ \voiceTwo
+ b1-"Clarinet"
+ a2. b8 a
+ g2. fis8 e
+ fis2 r
+ }
+ >>
+ \layout { }
+ \midi {
+ \context {
+ \Staff
+ \remove "Staff_performer"
+ }
+ \context {
+ \Voice
+ \consists "Staff_performer"
+ }
+ \context {
+ \Score
+ tempoWholesPerMinute = #(ly:make-moment 72 2)
+ }
+ }
+}
lsrtags = "tweaks-and-overrides"
texidoc = "
-The @code{\\applyOutput} command gives you the ability to tune any
-layout object, in any context. It requires a Scheme function with three
-arguments; advanced users can write it quite easily, whereas new users
-may want to use pre-defined functions such as this snippet, or the
-example in the manual.
+The @code{\\applyOutput} command allows the tuning of any layout
+object, in any context. It requires a Scheme function with three
+arguments.
"
doctitle = "Changing properties for individual grobs"
} % begin verbatim
-% ****************************************************************
-% ly snippet:
-% ****************************************************************
-
\layout {
ragged-right = ##t
}
-#(define (mc-squared gr org cur)
+#(define (mc-squared grob grob-origin context)
(let*
(
- (ifs (ly:grob-interfaces gr))
- (sp (ly:grob-property gr 'staff-position))
+ (ifs (ly:grob-interfaces grob))
+ (sp (ly:grob-property grob 'staff-position))
)
(if (memq 'note-head-interface ifs)
(begin
- (ly:grob-set-property! gr 'stencil ly:text-interface::print)
- (ly:grob-set-property! gr 'font-family 'roman)
- (ly:grob-set-property! gr 'text
+ (ly:grob-set-property! grob 'stencil ly:text-interface::print)
+ (ly:grob-set-property! grob 'font-family 'roman)
+ (ly:grob-set-property! grob 'text
(make-raise-markup -0.5
(case sp
((-5) (make-simple-markup "m"))
))))
)))
-\context Voice \relative c' {
- \stemUp
- \set autoBeaming = ##f
-
- { <d f g b>8
-
- \applyOutput #'Voice #mc-squared
- <d f g b>
- }
+\relative c' {
+ <d f g b>2
+ \applyOutput #'Voice #mc-squared
+ <d f g b>
}
-
-% ****************************************************************
-% end ly snippet
-% ****************************************************************
changing-the-positions-of-figured-bass-alterations.ly
-changing-the-chord-names-to-german-or-semi-german-notation.ly
+clusters.ly
adding-a-figured-bass-above-or-below-the-notes.ly
single-staff-template-with-notes,-lyrics,-chords-and-frets.ly
+changing-chord-separator.ly
+volta-below-chords.ly
showing-chords-at-changes.ly
-single-staff-template-with-notes-and-chords.ly
+chord-name-exceptions.ly
controlling-the-placement-of-chord-fingerings.ly
-clusters.ly
+changing-the-chord-names-to-german-or-semi-german-notation.ly
single-staff-template-with-notes,-lyrics,-and-chords.ly
-adding-bars-to-chordnames.ly
-chord-name-exceptions.ly
-volta-below-chords.ly
+single-staff-template-with-notes-and-chords.ly
+adding-bar-lines-to-chordnames-context.ly
simple-lead-sheet.ly
creating-blank-staves.ly
-vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly
+chant-or-psalms-notation.ly
changing-time-signatures-inside-a-polymetric-section-using-scaledurations.ly
adding-a-figured-bass-above-or-below-the-notes.ly
adding-an-extra-staff-at-a-line-break.ly
adding-an-extra-staff.ly
-chant-or-psalms-notation.ly
-use-square-bracket-at-the-start-of-a-staff-group.ly
mensurstriche-layout-bar-lines-between-the-staves.ly
+changing-midi-output-to-one-channel-per-voice.ly
engravers-one-by-one.ly
+use-square-bracket-at-the-start-of-a-staff-group.ly
+vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly
nesting-staves.ly
source = "urtext"
}
+\layout {
+ ragged-right = ##f
+}
+
\score {
- \relative c'' { c1 c c c }
+ \relative c'' { c1 | c | c | c }
}
\score {
- \relative c'' { c1 c c c }
+ \relative c'' { c1 | c | c | c }
\header {
title = "localtitle"
subtitle = "localsubtitle"
+measure-counter.ly
creating-blank-staves.ly
+controlling-the-placement-of-chord-fingerings.ly
making-some-staff-lines-thicker-than-the-others.ly
applying-note-head-styles-depending-on-the-step-of-the-scale.ly
embedding-native-postscript-in-a--markup-block.ly
changing-the-appearance-of-a-slur-from-solid-to-dotted-or-dashed.ly
-default-direction-of-stems-on-the-center-line-of-the-staff.ly
-changing-a-single-notes-size-in-a-chord.ly
grid-lines--emphasizing-rhythms-and-notes-synchronization.ly
+changing-a-single-notes-size-in-a-chord.ly
grid-lines--changing-their-appearance.ly
-controlling-the-placement-of-chord-fingerings.ly
+default-direction-of-stems-on-the-center-line-of-the-staff.ly
allowing-fingerings-to-be-printed-inside-the-staff.ly
blanking-staff-lines-using-the--whiteout-command.ly
-bar-counter.ly
combining-dynamics-with-markup-texts.ly
creating-slurs-across-voices.ly
caesura-railtracks-with-fermata.ly
-adjusting-the-shape-of-falls-and-doits.ly
+changing-the-breath-mark-symbol.ly
creating-simultaneous-rehearsal-marks.ly
suppressing-compiler-warnings-when-two-glissandos-intersect.ly
setting-hairpin-behavior-at-bar-lines.ly
changing--flageolet-mark-size.ly
piano-template-with-centered-dynamics.ly
-changing-the-breath-mark-symbol.ly
+adjusting-the-shape-of-falls-and-doits.ly
--- /dev/null
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.11.48"
+
+\header {
+ lsrtags = "simultaneous-notes, tweaks-and-overrides"
+
+ texidoc = "
+When the typesetting engine cannot cope, the @code{force-hshift}
+property of the @code{NoteColumn} object can be used to override
+typesetting decisions. The measure units used here are staff spaces.
+
+"
+ doctitle = "Forcing horizontal shift of notes"
+} % begin verbatim
+\relative c' <<
+ {
+ <d g>2 <d g>
+ }
+ \\
+ { <b f'>2
+ \once \override NoteColumn #'force-hshift = #1.7
+ <b f'>2
+ }
+>>
--- /dev/null
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.11.48"
+
+\header {
+ lsrtags = "repeats, staff-notation, editorial-annotations"
+
+ texidoc = "
+This snippet provides an workaround for emitting measure counters using
+transparent percent repeats.
+
+"
+ doctitle = "Measure counter"
+} % begin verbatim
+
+<<
+ \context Voice = "foo" {
+ \clef bass
+ c4 r g r
+ c4 r g r
+ c4 r g r
+ c4 r g r
+ }
+ \context Voice = "foo" {
+ \set countPercentRepeats = ##t
+ \override PercentRepeat #'transparent = ##t
+ \override PercentRepeatCounter #'staff-padding = #1
+ \repeat percent 4 { s1 }
+ }
+>>
+changing-midi-output-to-one-channel-per-voice.ly
demo-midiinstruments.ly
texidoc = "
If @code{strict-note-spacing} is set spacing of notes is not influenced
-by bars or clefs part way along the system. Rather, they are put just
-before the note that occurs at the same time. This may cause
-collisions.
+by bars or clefs within a system. Rather, they are placed just before
+the note that occurs at the same time. This may cause collisions.
"
doctitle = "Proportional strict notespacing"
} % begin verbatim
\paper {
ragged-right = ##t
- indent = 0
-}
-\layout {
- \context {
- \Score
- }
}
\relative c'' <<
\override Score.SpacingSpanner #'strict-note-spacing = ##t
\set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
\new Staff {
- c8[ c \clef alto c c \grace { d16 } c8 c] c4 c2
- \grace { c16[ c16] }
- c2 }
+ c8[ c \clef alto c c \grace { d16 } c8 c] c4
+ c2 \grace { c16[ c16] } c2
+ }
\new Staff {
- c2 \times 2/3 { c8 \clef bass cis,, c }
- c4
+ c2 \times 2/3 { c8 \clef bass cis,, c } c4
c1
}
>>
+measure-counter.ly
positioning-segno-and-coda-with-line-break.ly
-volta-below-chords.ly
-adding-volta-brackets-to-additional-staves.ly
+shortening-volta-brackets.ly
volta-multi-staff.ly
-bar-counter.ly
+volta-below-chords.ly
volta-text-markup-using-repeatcommands.ly
-shortening-volta-brackets.ly
+adding-volta-brackets-to-additional-staves.ly
modifying-tuplet-bracket-length.ly
printing-metronome-and-rehearsal-marks-below-the-staff.ly
making-an-object-invisible-with-the-transparent-property.ly
-merging-multi-measure-rests-in-a-polyphonic-part.ly
+permitting-line-breaks-within-beamed-tuplets.ly
automatic-beam-subdivisions.ly
changing-the-tuplet-number.ly
entering-several-tuplets-using-only-one--times-command.ly
rhythmic-slashes.ly
automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly
three-sided-box.ly
-permitting-line-breaks-within-beamed-tuplets.ly
-skips-in-lyric-mode.ly
-engraving-ties-manually.ly
+merging-multi-measure-rests-in-a-polyphonic-part.ly
printing-music-with-different-time-signatures.ly
+engraving-ties-manually.ly
+skips-in-lyric-mode.ly
"
doctitle = "Score for diatonic accordion"
} % begin verbatim
-% Created on Sat Aug 17 2007 by ak
-verse= \lyricmode { Wie gross bist du! Wie gross bist du! }
+verse = \lyricmode { Wie gross bist du! Wie gross bist du! }
-harmonies = \new ChordNames \chordmode {
- \germanChords \set chordChanges = ##t
- bes8 bes8 bes8 es2 f bes1
+harmonies = \new ChordNames \chordmode {
+ \germanChords
+ \set chordChanges = ##t
+ bes8 bes8 bes8
+ es2 f
+ bes1
}
NoStem = \override Stem #'transparent = ##t
-NoNoteHead= \override NoteHead #'transparent = ##t
+NoNoteHead = \override NoteHead #'transparent = ##t
ZeroBeam = \override Beam #'positions = #'(0 . 0)
-staffTabLine = \new Staff \with { \remove "Time_signature_engraver" \remove "Clef_engraver" } {
- \override Staff.StaffSymbol #'line-positions = #'( 0 )
+staffTabLine = \new Staff \with {
+ \remove "Time_signature_engraver"
+ \remove "Clef_engraver"
+} {
+ \override Staff.StaffSymbol #'line-positions = #'(0)
% Shows one horizontal line. The vertical line (simulating a bar-line) is simulated with a gridline
- \set Staff.midiInstrument="choir aahs"
+ \set Staff.midiInstrument = #"choir aahs"
\key c \major
\relative c''
{
% 10. re-enable the line \NoNoteHead
\autoBeamOff
\ZeroBeam
- s8 s s | e[ c c c c c c e] | s s s s s
+ s8 s s e[ c c c c c c e] | s s s s s
}
}
%{
-notePush= { e f fis g a c' c' d' ees' e' f' fis' g' a' bes' c'' c'' d'' ees'' e'' f'' fis'' g'' a'' c''' c''' ees''' e''' f''' g''' a''' }
-tabPush= { g f e b a d' c' bisis disis' f' e' aisis' a' g' fisis' b' c'' eisis'' cisis'' e'' d'' gisis'' g'' f'' a'' b'' bisis'' d''' c''' f''' e''' }
-
-notePull= { g aes bes b c' cis' d' ees' e' f' fis' g' aes' a' bes' b' c'' cis'' d'' ees'' e'' f'' g'' aes'' a'' bes'' b'' c''' cis''' d''' e''' }
-tabPull= { g e f b a disis' d' bisis c' f' fisis' e' aisis' a' g' c'' b' cisis'' e'' eisis'' d'' g'' f'' gisis'' b'' a'' d''' f''' bisis'' c''' e''' }
%}
% Accordion melody in tabulator score
% Tips:
% - In jEdit Search & Replace mark the Option 'Keep Dialog'
-AccordionTabTwoCBesDur= {
+AccordionTabTwoCBesDur = {
% pull 1
%<f' bes'>8 <f' a'>8 <d' bes'>8 |
<g'' a''>8 <g'' b''>8 <e'' a''>8 |
\staffBassRhytm
\context Lyrics = "lBassRhytmAboveI" \with {alignAboveContext=staffbass} \lyricsto VoiceBassRhytm \LyricBassRhythmI
>>
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% APPENDIX %
-% macro 'macro_conv2diaton_push.bsh' for jedit editor %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%{
-// original saved in 'Handorg_Adria_Diaton_III.xls'
-// Save this buffer, to the other recorded macros in the jedit editor
-// and the macro should appear in the
-// Macros menu.
-
-// /ak 17.8.07 This macro from converts lilypond piano notation into
-// lilypond tabulator notation for the push-part (at the bottom the pull-part) of a diatonic accordion
-// It replaces the piano notes of the line where the cursor is by the accordion notation
-
-
-
-// Known issues: 1) A note at the end of line is not replaced
-
-textArea.goToEndOfWhiteSpace(false);
-textArea.goToStartOfWhiteSpace(true);
-
-
-String firstName, lastName;
-
-int ReplaceTextInSelection(String sfind, String sreplace)
-{
-//MsgConcat = new StringBuffer(512);
-//MsgConcat.append("Ha");
-
-//Macros.message(view, "On that line replace \"" + sfind + "\" by \"" + sreplace+ "\"");
-SearchAndReplace.setSearchString(sfind.toString());
-SearchAndReplace.setReplaceString(sreplace.toString());
-SearchAndReplace.setBeanShellReplace(false);
-SearchAndReplace.setIgnoreCase(true);
-SearchAndReplace.replace(view);
-SearchAndReplace.setRegexp(true);
-return 1;
-}
-
-
-String smainfind;
-String smainrepl;
-
-
-// Push-part tmp
-smainfind="(\\s|^|<|\\{)(c,)([^\'^is^es])"; smainrepl="$1tmpd\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(cis,)([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(des,)([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(d,)([^\'^is^es])"; smainrepl="$1tmpbisis-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(dis,)([^\'^is^es])"; smainrepl="$1tmpdisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ees,)([^\'^is^es])"; smainrepl="$1tmpdisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(e,)([^\'^is^es])"; smainrepl="$1tmpg$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(f,)([^\'^is^es])"; smainrepl="$1tmpf$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(fis,)([^\'^is^es])"; smainrepl="$1tmpe$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ges,)([^\'^is^es])"; smainrepl="$1tmpe$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(g,)([^\'^is^es])"; smainrepl="$1tmpb$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(gis,)([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(aes,)([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(a,)([^\'^is^es])"; smainrepl="$1tmpa$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ais,)([^\'^is^es])"; smainrepl="$1tmpfisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(bes,)([^\'^is^es])"; smainrepl="$1tmpfisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(b,)([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(c)([^\'^is^es])"; smainrepl="$1tmpd\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(cis)([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(des)([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(d)([^\'^is^es])"; smainrepl="$1tmpbisis$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(dis)([^\'^is^es])"; smainrepl="$1tmpdisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ees)([^\'^is^es])"; smainrepl="$1tmpdisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(e)([^\'^is^es])"; smainrepl="$1tmpf\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(f)([^\'^is^es])"; smainrepl="$1tmpe\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(fis)([^\'^is^es])"; smainrepl="$1tmpaisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ges)([^\'^is^es])"; smainrepl="$1tmpaisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(g)([^\'^is^es])"; smainrepl="$1tmpa\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(gis)([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(aes)([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(a)([^\'^is^es])"; smainrepl="$1tmpg\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ais)([^\'^is^es])"; smainrepl="$1tmpfisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(bes)([^\'^is^es])"; smainrepl="$1tmpfisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(b)([^\'^is^es])"; smainrepl="$1tmpr$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(c\')([^\'^is^es])"; smainrepl="$1tmpb\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(cis\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(des\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(d\')([^\'^is^es])"; smainrepl="$1tmpeisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(dis\')([^\'^is^es])"; smainrepl="$1tmpcisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ees\')([^\'^is^es])"; smainrepl="$1tmpcisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(e\')([^\'^is^es])"; smainrepl="$1tmpe\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(f\')([^\'^is^es])"; smainrepl="$1tmpd\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(fis\')([^\'^is^es])"; smainrepl="$1tmpgisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ges\')([^\'^is^es])"; smainrepl="$1tmpgisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(g\')([^\'^is^es])"; smainrepl="$1tmpg\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(gis\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(as\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(a\')([^\'^is^es])"; smainrepl="$1tmpf\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ais\')([^\'^is^es])"; smainrepl="$1tmpfisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(bes\')([^\'^is^es])"; smainrepl="$1tmpfisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(b\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(c\'\')([^\'^is^es])"; smainrepl="$1tmpa\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(cis\'\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(des\'\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(d\'\')([^\'^is^es])"; smainrepl="$1tmpeisis\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(dis\'\')([^\'^is^es])"; smainrepl="$1tmpbisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ees\'\')([^\'^is^es])"; smainrepl="$1tmpbisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(e\'\')([^\'^is^es])"; smainrepl="$1tmpd\'\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(f\'\')([^\'^is^es])"; smainrepl="$1tmpc\'\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(fis\'\')([^\'^is^es])"; smainrepl="$1tmpgisis\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ges\'\')([^\'^is^es])"; smainrepl="$1tmpgisis\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(g\'\')([^\'^is^es])"; smainrepl="$1tmpf\'\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(gis\'\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(aes\'\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(a\'\')([^\'^is^es])"; smainrepl="$1tmpe\'\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ais\'\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(bes\'\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(b\'\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-
-smainfind="(\\s|^|<|\\{)(tmp)()"; smainrepl="$1$3"; ReplaceTextInSelection( smainfind, smainrepl );
-*/
-
-/*
-// Pull-part tmp
-smainfind="(\\s|^|<|\\{)(c,)([^\'^is^es])"; smainrepl="$1tmpa-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(cis,)([^\'^is^es])"; smainrepl="$1tmpdisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(des,)([^\'^is^es])"; smainrepl="$1tmpdisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(d,)([^\'^is^es])"; smainrepl="$1tmpd\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(dis,)([^\'^is^es])"; smainrepl="$1tmpbisis-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ees,)([^\'^is^es])"; smainrepl="$1tmpbisis-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(e,)([^\'^is^es])"; smainrepl="$1tmpc\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(f,)([^\'^is^es])"; smainrepl="$1tmpf\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(fis,)([^\'^is^es])"; smainrepl="$1tmpfisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ges,)([^\'^is^es])"; smainrepl="$1tmpfisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(g,)([^\'^is^es])"; smainrepl="$1tmpg$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(gis,)([^\'^is^es])"; smainrepl="$1tmpe$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(aes,)([^\'^is^es])"; smainrepl="$1tmpe$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(a,)([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ais,)([^\'^is^es])"; smainrepl="$1tmpf$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(bes,)([^\'^is^es])"; smainrepl="$1tmpf$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(b,)([^\'^is^es])"; smainrepl="$1tmpb$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(c)([^\'^is^es])"; smainrepl="$1tmpa$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(cis)([^\'^is^es])"; smainrepl="$1tmpdisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(des)([^\'^is^es])"; smainrepl="$1tmpdisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(d)([^\'^is^es])"; smainrepl="$1tmpd\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(dis)([^\'^is^es])"; smainrepl="$1tmpbisis$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ees)([^\'^is^es])"; smainrepl="$1tmpbisis$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(e)([^\'^is^es])"; smainrepl="$1tmpc\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(f)([^\'^is^es])"; smainrepl="$1tmpf\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(fis)([^\'^is^es])"; smainrepl="$1tmpfisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ges)([^\'^is^es])"; smainrepl="$1tmpfisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(g)([^\'^is^es])"; smainrepl="$1tmpe\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(gis)([^\'^is^es])"; smainrepl="$1tmpaisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(aes)([^\'^is^es])"; smainrepl="$1tmpaisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(a)([^\'^is^es])"; smainrepl="$1tmpa\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ais)([^\'^is^es])"; smainrepl="$1tmpg\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(bes)([^\'^is^es])"; smainrepl="$1tmpg\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(b)([^\'^is^es])"; smainrepl="$1tmpc\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(c\')([^\'^is^es])"; smainrepl="$1tmpb\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(cis\')([^\'^is^es])"; smainrepl="$1tmpcisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(des\')([^\'^is^es])"; smainrepl="$1tmpcisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(d\')([^\'^is^es])"; smainrepl="$1tmpe\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(dis\')([^\'^is^es])"; smainrepl="$1tmpeisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ees\')([^\'^is^es])"; smainrepl="$1tmpeisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(e\')([^\'^is^es])"; smainrepl="$1tmpd\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(f\')([^\'^is^es])"; smainrepl="$1tmpg\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(fis\')([^\'^is^es])"; smainrepl="$1tmpfisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ges\')([^\'^is^es])"; smainrepl="$1tmpfisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(g\')([^\'^is^es])"; smainrepl="$1tmpf\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(gis\')([^\'^is^es])"; smainrepl="$1tmpgisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(aes\')([^\'^is^es])"; smainrepl="$1tmpgisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(a\')([^\'^is^es])"; smainrepl="$1tmpb\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ais\')([^\'^is^es])"; smainrepl="$1tmpa\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(bes\')([^\'^is^es])"; smainrepl="$1tmpa\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(b\')([^\'^is^es])"; smainrepl="$1tmpd\'\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(c\'\')([^\'^is^es])"; smainrepl="$1tmpf\'\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(cis\'\')([^\'^is^es])"; smainrepl="$1tmpbisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(des\'\')([^\'^is^es])"; smainrepl="$1tmpbisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(d\'\')([^\'^is^es])"; smainrepl="$1tmpc\'\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(dis\'\')([^\'^is^es])"; smainrepl="$1tmpeisis\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ees\'\')([^\'^is^es])"; smainrepl="$1tmpeisis\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(e\'\')([^\'^is^es])"; smainrepl="$1tmpe\'\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(f\'\')([^\'^is^es])"; smainrepl="$1tmpg\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(fis\'\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ges\'\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(g\'\')([^\'^is^es])"; smainrepl="$1tmpf\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(gis\'\')([^\'^is^es])"; smainrepl="$1tmpgisis\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(aes\'\')([^\'^is^es])"; smainrepl="$1tmpgisis\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(a\'\')([^\'^is^es])"; smainrepl="$1tmpb\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ais\'\')([^\'^is^es])"; smainrepl="$1tmpa\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(bes\'\')([^\'^is^es])"; smainrepl="$1tmpa\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(b\'\')([^\'^is^es])"; smainrepl="$1tmpd\'\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-
-smainfind="(\\s|^|<|\\{)(tmp)()"; smainrepl="$1$3"; ReplaceTextInSelection( smainfind, smainrepl );
-*/
-
-
%}
-
+forcing-horizontal-shift-of-notes.ly
clusters.ly
+additional-voices-to-avoid-collisions.ly
changing-a-single-notes-size-in-a-chord.ly
combining-two-parts-on-the-same-staff.ly
-vertically-centered-dynamics-and-textscripts.ly
+vertically-aligned-dynamics-and-textscripts.ly
proportional-strict-notespacing.ly
vertically-aligning-ossias-and-lyrics.ly
allowing-fingerings-to-be-printed-inside-the-staff.ly
-removing-the-first-empty-line.ly
+creating-blank-staves.ly
mensurstriche-layout-bar-lines-between-the-staves.ly
changing-the-number-of-lines-in-a-staff.ly
incipit.ly
display-bracket-with-only-one-staff-in-a-system.ly
-time-signature-in-parentheses.ly
+adding-an-extra-staff.ly
printing-metronome-and-rehearsal-marks-below-the-staff.ly
tweaking-clef-properties.ly
+removing-the-first-empty-line.ly
quoting-another-voice.ly
volta-multi-staff.ly
-bar-counter.ly
non-traditional-key-signatures.ly
-creating-blank-staves.ly
+measure-counter.ly
adding-ambitus-per-voice.ly
making-some-staff-lines-thicker-than-the-others.ly
adding-an-extra-staff-at-a-line-break.ly
-adding-an-extra-staff.ly
+time-signature-in-parentheses.ly
changing-the-staff-size.ly
use-square-bracket-at-the-start-of-a-staff-group.ly
quoting-another-voice-with-transposition.ly
vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly
-single-staff-template-with-notes-and-lyrics.ly
+vocal-ensemble-template-with-automatic-piano-reduction.ly
single-staff-template-with-notes,-lyrics,-chords-and-frets.ly
single-staff-template-with-only-notes.ly
piano-template-with-centered-lyrics.ly
-vocal-ensemble-template-with-automatic-piano-reduction.ly
+score-for-diatonic-accordion.ly
piano-template-simple.ly
ancient-notation-template----modern-transcription-of-mensural-music.ly
-ancient-notation-template----modern-transcription-of-gregorian-music.ly
vocal-ensemble-template.ly
piano-template-with-melody-and-lyrics.ly
-string-quartet-template-with-separate-parts.ly
-single-staff-template-with-notes,-lyrics,-and-chords.ly
string-quartet-template-simple.ly
+single-staff-template-with-notes-and-lyrics.ly
+single-staff-template-with-notes,-lyrics,-and-chords.ly
single-staff-template-with-notes-and-chords.ly
-piano-template-with-centered-dynamics.ly
+string-quartet-template-with-separate-parts.ly
jazz-combo-template.ly
-score-for-diatonic-accordion.ly
+ancient-notation-template----modern-transcription-of-gregorian-music.ly
+piano-template-with-centered-dynamics.ly
creating-real-parenthesized-dynamics.ly
center-text-below-hairpin-dynamics.ly
demonstrating-all-headers.ly
-how-to-put-ties-between-syllables-in-lyrics.ly
combining-two-parts-on-the-same-staff.ly
+how-to-put-ties-between-syllables-in-lyrics.ly
combining-dynamics-with-markup-texts.ly
aligning-marks-with-various-notation-objects.ly
piano-template-with-centered-lyrics.ly
doctitle = "Time signature in parentheses"
} % begin verbatim
tsMarkup = \markup {
- \override #'(baseline-skip . 2) \number {
+ \override #'(baseline-skip . 0)
+ \number {
\bracket \column { 2 4 }
}
}
+forcing-horizontal-shift-of-notes.ly
display-bracket-with-only-one-staff-in-a-system.ly
-time-signature-in-parentheses.ly
+rhythmic-slashes.ly
changing-the-default-text-font-family.ly
drawing-boxes-around-grobs.ly
manually-controlling-beam-positions.ly
custodes.ly
move-specific-text.ly
+creating-text-spanners.ly
rest-styles.ly
using-the--tweak-command-to-tweak-individual-grobs.ly
controlling-tuplet-bracket-visibility.ly
controlling-the-vertical-ordering-of-scripts.ly
vertically-aligning-ossias-and-lyrics.ly
changing-properties-for-individual-grobs.ly
-removing-the-first-empty-line.ly
+vertically-aligned-dynamics-and-textscripts.ly
mensurstriche-layout-bar-lines-between-the-staves.ly
printing-metronome-and-rehearsal-marks-below-the-staff.ly
tweaking-clef-properties.ly
-vertically-centered-dynamics-and-textscripts.ly
proportional-strict-notespacing.ly
making-an-object-invisible-with-the-transparent-property.ly
transcription-of-ancient-music-with-incipit.ly
alignment-vertical-spacing.ly
drawing-circles-around-various-objects.ly
-creating-text-spanners.ly
+removing-the-first-empty-line.ly
caesura-railtracks-with-fermata.ly
changing-form-of-multi--measure-rests.ly
-rhythmic-slashes.ly
+time-signature-in-parentheses.ly
changing-a-single-notes-size-in-a-chord.ly
creating-simultaneous-rehearsal-marks.ly
nesting-staves.ly
string-quartet-template-with-separate-parts.ly
+string-quartet-template-simple.ly
changing--flageolet-mark-size.ly
creating-slurs-across-voices.ly
-string-quartet-template-simple.ly
demo-midiinstruments.ly
--- /dev/null
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.11.48"
+
+\header {
+ lsrtags = "tweaks-and-overrides, spacing"
+
+ texidoc = "
+By setting the @code{Y-extent} property to a suitable value, all
+@code{DynamicLineSpanner} objects (hairpins and dynamic texts) can be
+aligned to a common reference point, regardless of their actual extent.
+This way, every element will be vertically aligned, thus producing a
+more pleasing output.
+
+The same idea is used to align the text scripts along their baseline.
+
+"
+ doctitle = "Vertically aligned dynamics and textscripts"
+} % begin verbatim
+music = \relative c'' {
+ c2\p^\markup { gorgeous } c\f^\markup { fantastic }
+ c4\p c\f\> c c\!\p
+}
+
+{
+ \music \break
+ \override DynamicLineSpanner #'staff-padding = #2.0
+ \override DynamicLineSpanner #'Y-extent = #'(-1.5 . 1.5)
+ \override TextScript #'Y-extent = #'(-1.5 . 1.5)
+ \music
+}
lsrtags = "vocal-music, tweaks-and-overrides, spacing"
texidoc = "
-This snippet demonstrates the use of the @code{alignBelowContext} and
-@code{alignAboveContext} properties to control the positioning of
-lyrics and ossias.
+This snippet demonstrates the use of the context properties
+@code{alignBelowContext} and @code{alignAboveContext} to control the
+positioning of lyrics and ossias.
"
doctitle = "Vertically aligning ossias and lyrics"
ragged-right = ##t
}
-\relative <<
+\relative c' <<
\new Staff = "1" { c4 c s2 }
\new Staff = "2" { c4 c s2 }
\new Staff = "3" { c4 c s2 }
{ \skip 2
<<
\lyrics {
- \set alignBelowContext = #"1"
- below8 first staff
+ \set alignBelowContext = #"1"
+ lyrics4 below
}
- \new Staff {
- \set Staff.alignAboveContext = #"3"
- \times 4/6 {
- \override TextScript #'padding = #3
- c8^"this" d_"staff" e^"above" d_"last" e^"staff" f
- }
+ \new Staff \with {
+ alignAboveContext = #"3"
+ fontSize = #-2
+ \override StaffSymbol #'staff-space = #(magstep -2)
+ \remove "Time_signature_engraver"
+ } {
+ \times 4/6 {
+ \override TextScript #'padding = #3
+ c8^"ossia above" d e d e f
+ }
}
- >> }
+ >>
+ }
>>
+++ /dev/null
-%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
-%% This file is in the public domain.
-\version "2.11.48"
-
-\header {
- lsrtags = "tweaks-and-overrides, spacing"
-
- texidoc = "
-By setting the @code{Y-extent} property to a fixed value, all
-@code{DynamicLineSpanner} objects (hairpins and dynamic texts) are
-aligned to a common reference point, regardless of their actual extent.
-This way, every element will be vertically centered, for a nicer output
-(you can compare the first and the second line in this example; the
-trick is only applied on the second line).
-
-The same idea is used to align the text scripts along their baseline.
-
-"
- doctitle = "Vertically centered dynamics and textscripts"
-} % begin verbatim
-music = \relative c'' {
- c2\p^\markup { gorgeous } c\f^\markup { fantastic }
- c4\p c\f\> c c\!\p
-}
-
-{
- \music \break
- \override DynamicLineSpanner #'staff-padding = #2.0
- \override DynamicLineSpanner #'Y-extent = #'(-1.5 . 1.5)
- \override TextScript #'Y-extent = #'(-1.5 . 1.5)
- \music
-}
-vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly
+chant-or-psalms-notation.ly
single-staff-template-with-notes-and-lyrics.ly
adding-ambitus-per-voice.ly
single-staff-template-with-notes,-lyrics,-chords-and-frets.ly
skips-in-lyric-mode-2.ly
-skips-in-lyric-mode.ly
vocal-ensemble-template-with-automatic-piano-reduction.ly
ambitus-with-multiple-voices.ly
+aligning-lyrics.ly
how-to-put-ties-between-syllables-in-lyrics.ly
-vertically-aligning-ossias-and-lyrics.ly
+piano-template-with-melody-and-lyrics.ly
+vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly
single-staff-template-with-notes,-lyrics,-and-chords.ly
formatting-lyrics-syllables.ly
-piano-template-with-melody-and-lyrics.ly
+vertically-aligning-ossias-and-lyrics.ly
demo-midiinstruments.ly
-chant-or-psalms-notation.ly
vocal-ensemble-template.ly
adjusting-lyrics-vertical-spacing.ly
-aligning-lyrics.ly
+skips-in-lyric-mode.ly
--- /dev/null
+\version "2.11.48"
+
+#(set-global-staff-size 15)
+\paper{
+ ragged-right=##t
+ line-width=17\cm
+ indent=0\cm
+}
+
+\include "gregorian-init.ly"
+
+\score {
+ <<
+ \new VaticanaVoice = "cantus" {
+ \clef "vaticana-do3"
+ % Verse 1 — Salve, Regína
+ a\melisma \[ a \flexa g \pes a\melismaEnd \] d
+ \divisioMinima
+ \[ a\melisma \flexa g\melismaEnd \]
+ \[ f\melisma \flexa e f \pes g \flexa f\melismaEnd \]
+ \[ e\melisma \flexa d\melismaEnd \]
+ \divisioMaior
+ c d \[d\melisma \flexa c\melismaEnd \] d
+ \[ e\melisma \pes f\melismaEnd\] g
+ \[d\melisma \pes e \flexa c\melismaEnd \] d
+ \finalis
+ % Verse 2 — Vita, dulcédo
+ % a\melisma \[ a \flexa g \pes a\melismaEnd \] d
+ % \divisioMinima
+ % \[ a\melisma \flexa g\melismaEnd \]
+ % \[ f\melisma \flexa e f \pes g \flexa f\melismaEnd \]
+ % \[ e\melisma \flexa d\melismaEnd \]
+ % \divisioMaior
+ % c d \[e\melisma \pes f\melismaEnd \] g
+ % \[d\melisma \pes e \flexa c\melismaEnd \] d
+ % \finalis
+ % Verse 3 — Ad te clamámus
+ \[ d\melisma \pes f\melismaEnd\] a g
+ \[ g\melisma \flexa f \pes a\melismaEnd\] e
+ \divisioMaior
+ g f \[ e\melisma \flexa d \pes g\melismaEnd \]
+ \divisioMinima
+ c d \[ e\melisma \flexa d \pes g\melismaEnd \]
+ \[ f\melisma \flexa e\melismaEnd \] d
+ \finalis
+ % Verse 4 — Ad te suspirámus
+ \[ d\melisma \pes f\melismaEnd \] a c' g
+ \[ g\melisma \flexa f \pes g\melismaEnd \] a
+ \divisioMaior
+ d \[ f\melisma \pes \deminutum g\melismaEnd \] g d
+ \[ \virga f\melisma \inclinatum e \inclinatum d\melismaEnd \]
+ c \divisioMaior
+ d \[ d\melisma \flexa c \pes f\melismaEnd \]
+ \[ g\melisma \pes a\melismaEnd \]
+ g \[ f\melisma \flexa e\melismaEnd \] g
+ \[ f\melisma \flexa \deminutum e\melismaEnd \]
+ \[ d\melisma \flexa c \pes d\melismaEnd \]
+ \finalis
+ % Verse 5 — Eia ergo, Advocáta nostra
+ f\melisma \[ f \pes g\melismaEnd \] f
+ \[ g\melisma \pes \deminutum a\melismaEnd \] a
+ \divisioMinima
+ c' g \[ \virga a\melisma \inclinatum g \inclinatum f\melismaEnd \] d g a
+ \divisioMaior
+ d' d' \[ c'\melisma \flexa b c' \pes d'\melismaEnd \] a
+ \divisioMinima
+ d' c' a \[ g\melisma \flexa f \pes a\melismaEnd \] g
+ \[ d\melisma \pes e\melismaEnd \] f
+ \[ \virga e\melisma \inclinatum d \inclinatum c\melismaEnd \]
+ \divisioMaior
+ \[ c\melisma \pes d\melismaEnd \]
+ f \[ g\melisma \flexa \deminutum f\melismaEnd \]
+ \[ d\melisma \flexa c \pes d\melismaEnd \] d
+ \finalis
+ % Verse 6 — Et Jesum
+ d a, \[ c\melisma \pes d\melismaEnd \]
+ \divisioMinima
+ d \[ d\melisma \pes e\melismaEnd \] \[ e\melisma \flexa d d\melismaEnd \]
+ c g f \[ e\melisma \flexa \deminutum d\melismaEnd \] g
+ \[ f\melisma \flexa e\melismaEnd \]
+ \[ d\melisma \flexa c \pes d\melismaEnd \]
+ \[ d\melisma \pes a \] \virga bes\melismaEnd a
+ \divisioMinima
+ \[ \virga a\melisma \inclinatum g \inclinatum f\melismaEnd \] g d f
+ \[ f\melisma \flexa e\melismaEnd \] \[ d\melisma \flexa c\melismaEnd \]
+ \divisioMinima
+ \[ e\melisma \pes f \flexa e\melismaEnd \] d d
+ \finalis
+ % Verse 7 ad finem — O clemens: O pia: O dulcis Virgo María
+ a\melisma \[a \flexa g a \quilisma b \pes c'\melismaEnd \]
+ \[ \virga b\melisma \inclinatum a \inclinatum g\melismaEnd \] a
+ \finalis
+ \[ g\melisma \pes a \quilisma b \pes c' \] \[ c' \flexa b\melismaEnd \]
+ \[ a\melisma \flexa g\melismaEnd \] \[ g\melisma \pes a\melismaEnd \]
+ \finalis
+ \[ a\melisma \flexa d \virga f \inclinatum e \inclinatum d \inclinatum c d \]
+ \divisioMinima
+ \[ d \pes e f \pes g\melismaEnd \]
+ \[ g\melisma \flexa \deminutum f\melismaEnd \]
+ \[ g\melisma \pes a\melismaEnd \]
+ d c d \[ d\melisma \pes g \flexa f f\melismaEnd \]
+ \[ e\melisma \flexa d\melismaEnd \]
+ \finalis
+ }
+ \new Lyrics \lyricsto "cantus" {
+ Sal- ve, Re- gí- na, ma- ter mi- se- ri- cór- di- ae:
+ % Vi- ta, dul- cé- do, et spes no- stra, sal- ve.
+ Ad te cla- má- mus, éx- su- les, fi- li- i He- vae.
+ Ad te su- spi- rá- mus, ge- mén- tes et flen- tes in hac la- cri- má- rum
+ val- le.
+ E- ia er- go, Ad- vo- cá- ta no- stra, il- los tu- os mi- se- ri- cór- des
+ ó- cu- los ad nos con- vér- te.
+ Et Je- sum, be- ne- díc- tum fruc- tum ven- tris tu- i, no- bis post hoc
+ ex- sí- li- um os- tén- de.
+ O cle- mens:
+ O pi- a:
+ O dul- cis Vir- go Ma- rí- a.
+ }
+ >>
+}
+
+\layout {
+ \context {
+ \Staff
+ \consists Custos_engraver
+ }
+}
+
--- /dev/null
+\header {
+
+ texidoc = "Reset fontname for musicglyph. For unknown glyphs, we print a warning."
+
+}
+
+\version "2.11.47"
+
+{
+ c'^\markup
+ {
+ \override #'(font-name . "Sans")
+ { c'est un B \flat \musicglyph #"UNKNOWN-GLYPH" }
+ % to get \flat, do:
+ % \normal-text \flat
+ }
+}
2, 0, 0,
(SCM font, SCM name),
"Return a stencil from @var{font} for the glyph named @var{name}."
- " @var{font} must be available as an AFM file. If the glyph"
- " is not available, return @code{#f}.")
+ " If the glyph is not available, return an empty stencil.")
{
Font_metric *fm = unsmob_metrics (font);
LY_ASSERT_SMOB (Font_metric, font, 1);
else if (type == ly_symbol2scm ("trill"))
return make_trill_line (me, from, to);
- Stencil stil;
+ Stencil stencil;
if (type == ly_symbol2scm ("dashed-line") || type == ly_symbol2scm ("dotted-line"))
{
*/
period = ((to-from).length () - period * fraction) / n;
}
- stil = make_dashed_line (thick, from, to, period, fraction);
+ stencil = make_dashed_line (thick, from, to, period, fraction);
}
else
- stil = make_line (thick, from, to);
+ stencil = make_line (thick, from, to);
- return stil;
+ return stencil;
}
ADD_INTERFACE (Line_interface,
(if (eq? PLATFORM 'windows)
(begin
(set! cmd (string-regexp-substitute "=" "#" cmd))
- (set! cmd (string-regexp-substitute "-dSAFER " "" cmd))))
-
- (if (access? pdf-name W_OK)
- (delete-file pdf-name))
+ (set! cmd (string-regexp-substitute "-dSAFER " "" cmd))
+ (if (access? pdf-name W_OK)
+ (delete-file pdf-name))))
(ly:message (_ "Converting to `~a'...") pdf-name)
(ly:progress "\n")
"
@cindex drawing lines within text
-A simple line."
+A simple line.
+@lilypond[verbatim,quote]
+\\markup {
+ \\draw-line #'(4 . 4)
+ \\override #'(thickness . 5)
+ \\draw-line #'(-3 . 0)
+}
+@end lilypond"
(let ((th (* (ly:output-def-lookup layout 'line-thickness)
thickness))
(x (car dest))
optionally filled.
@lilypond[verbatim,quote]
-\\markup { \\draw-circle #2 #0.5 ##f \\hspace #2 \\draw-circle #2 #0 ##t }
+\\markup {
+ \\draw-circle #2 #0.5 ##f
+ \\hspace #2
+ \\draw-circle #2 #0 ##t
+}
@end lilypond"
(make-circle-stencil radius thickness fill))
A triangle, either filled or empty.
@lilypond[verbatim,quote]
-\\markup { \\triangle ##t \\hspace #2 \\triangle ##f }
+\\markup {
+ \\triangle ##t
+ \\hspace #2
+ \\triangle ##f
+}
@end lilypond"
(let ((ex (* (magstep font-size) 0.8 baseline-skip)))
(ly:make-stencil
Draw a circle around @var{arg}. Use @code{thickness},
@code{circle-padding} and @code{font-size} properties to determine line
-thickness and padding around the markup."
+thickness and padding around the markup.
+
+@lilypond[verbatim,quote]
+\\markup \\circle { Hi }
+@end lilypond"
(let ((th (* (ly:output-def-lookup layout 'line-thickness)
thickness))
(pad (* (magstep font-size) circle-padding))
"
@cindex drawing beams within text
-Create a beam with the specified parameters."
+Create a beam with the specified parameters.
+@lilypond[verbatim,quote]
+\\markup \\beam #5 #1 #2
+@end lilypond"
(let* ((y (* slope width))
(yext (cons (min 0 y) (max 0 y)))
(half (/ thickness 2)))
@cindex underlining text
Underline @var{arg}. Looks at @code{thickness} to determine line
-thickness and y offset."
+thickness and y offset.
+
+@lilypond[verbatim,quote]
+\\markup \\underline { CONTENTS }
+@end lilypond"
(let* ((thick (* (ly:output-def-lookup layout 'line-thickness)
thickness))
(markup (interpret-markup layout props arg))
Draw a box round @var{arg}. Looks at @code{thickness},
@code{box-padding} and @code{font-size} properties to determine line
-thickness and padding around the markup."
+thickness and padding around the markup.
+
+@lilypond[verbatim,quote]
+\\markup {
+ \\override #'(box-padding . 0.5)
+ \\box
+ \\line { V. S. }
+}
+@end lilypond"
(let* ((th (* (ly:output-def-lookup layout 'line-thickness)
thickness))
(pad (* (magstep font-size) box-padding))
\\filled-box #'(0 . 4) #'(0 . 4) #0
\\filled-box #'(0 . 2) #'(-4 . 2) #0.4
\\filled-box #'(1 . 8) #'(0 . 7) #0.2
- \\with-color #white \\filled-box #'(-4.5 . -2.5) #'(3.5 . 5.5) #0.7
+ \\with-color #white
+ \\filled-box #'(-4.5 . -2.5) #'(3.5 . 5.5) #0.7
}
@end lilypond"
(ly:round-filled-box
makes possible to define another shape for the corners (default is 1).
@lilypond[quote,verbatim,fragment,relative=2]
-c^\\markup{ \\rounded-box Overtura }
+c^\\markup \\rounded-box { Overtura }
c,8. c16 c4 r
@end lilypond"
(let ((th (* (ly:output-def-lookup layout 'line-thickness)
\\markup {
\\fontsize #5
\\override #'(thickness . 2)
- \\combine \\draw-line #'(0 . 4) \\arrow-head #Y #DOWN ##f
+ \\combine
+ \\draw-line #'(0 . 4)
+ \\arrow-head #Y #DOWN ##f
}
@end lilypond"
(let* ((s1 (interpret-markup layout props m1))
@cindex stacking text in a column
Stack the markups in @var{args} vertically. The property
-@code{baseline-skip} determines the space between each markup in @var{args}."
+@code{baseline-skip} determines the space between each
+markup in @var{args}.
+
+@lilypond[verbatim,quote]
+\\markup \\column { one two three }
+@end lilypond"
(let ((arg-stencils (interpret-markup-list layout props args)))
(stack-lines -1 0.0 baseline-skip
(remove ly:stencil-empty? arg-stencils))))
@cindex changing direction of text columns
Make a column of args, going up or down, depending on the setting
-of the @code{#'direction} layout property."
+of the @code{#'direction} layout property.
+
+@lilypond[verbatim,quote]
+\\markup {
+ \\override #'(direction . 1)
+ \\dir-column { going up }
+ \\dir-column { going down }
+}
+@end lilypond"
(stack-lines (if (number? direction) direction -1)
0.0
baseline-skip
"
@cindex centering a column of text
-Put @code{args} in a centered column."
+Put @code{args} in a centered column.
+
+@lilypond[verbatim,quote]
+\\markup \\center-align { one two three }
+@end lilypond"
(let* ((mols (interpret-markup-list layout props args))
(cmols (map (lambda (x) (ly:stencil-aligned-to x X CENTER)) mols)))
(stack-lines -1 0.0 baseline-skip cmols)))
(markup?)
font
()
- "Increase the font size relative to current setting."
+ "Increase the font size relative to current setting.
+
+@lilypond[verbatim,quote]
+\\markup \\bigger {
+ Voici venir les temps où vibrant sur sa tige
+}
+@end lilypond"
(interpret-markup layout props
`(,fontsize-markup 1 ,arg)))
(markup?)
font
()
- "Switch to bold font-series."
+ "Switch to bold font-series.
+
+@lilypond[verbatim,quote]
+\\markup \\bold {
+ Chaque fleur s'évapore ainsi qu'un encensoir
+}
+@end lilypond"
(interpret-markup layout (prepend-alist-chain 'font-series 'bold props) arg))
(define-builtin-markup-command (sans layout props arg)
(markup?)
font
()
- "Set @code{font-shape} to @code{caps}."
+ "Set @code{font-shape} to @code{caps}"
(interpret-markup layout (prepend-alist-chain 'font-shape 'caps props) arg))
;; Poor man's caps
(markup?)
font
()
- "Emit @var{arg} as small caps."
+ "Emit @var{arg} as small caps.
+
+@lilypond[verbatim,quote]
+\\markup \\caps {
+ Les sons et les parfums tournent dans l'air du soir
+}
+@end lilypond"
(interpret-markup layout props (make-smallCaps-markup arg)))
(define-builtin-markup-command (dynamic layout props arg)
\\musicglyph #\"clefs.G_change\"
}
@end lilypond"
- (ly:font-get-glyph
- (ly:paper-get-font layout (cons '((font-encoding . fetaMusic))
- props))
- glyph-name))
+ (let* ((font (ly:paper-get-font layout
+ (cons '((font-encoding . fetaMusic)
+ (font-name . #f))
+
+ props)))
+ (glyph (ly:font-get-glyph font glyph-name)))
+ (if (null? (ly:stencil-expr glyph))
+ (ly:warning (_ "Cannot find glyph ~a") glyph-name))
+
+ glyph))
+
(define-builtin-markup-command (lookup layout props glyph-name)
(string?)
(ly:stencil-add number-stencil slash-stencil))
(ly:warning "invalid number for slashed digit ~a" num))
number-stencil))
-\f
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; the note command.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@cindex notes within text by log and dot-count
Construct a note symbol, with stem. By using fractional values for
-@var{dir}, you can obtain longer or shorter stems."
+@var{dir}, you can obtain longer or shorter stems.
+@lilypond[verbatim,quote]
+\\markup {
+ \\note-by-number #3 #0 #DOWN
+ \\hspace #1
+ \\note-by-number #1 #2 #0.8
+}
+@end lilypond"
(define (get-glyph-name-candidates dir log style)
(map (lambda (dir-name)
(format "noteheads.~a~a~a" dir-name (min log 2)
This produces a note with a stem pointing in @var{dir} direction, with
the @var{duration} for the note head type and augmentation dots. For
example, @code{\\note #\"4.\" #-0.75} creates a dotted quarter note, with
-a shortened down stem."
+a shortened down stem.
+
+@lilypond[verbatim,quote]
+\\markup {
+ \\override #'(style . cross)
+ \\note #\"4..\" #UP
+ \\hspace #1
+ \\note #\"breve\" #0
+}
+@end lilypond"
(let ((parsed (parse-simple-duration duration)))
(note-by-number-markup layout props (car parsed) (cadr parsed) dir)))
\f
"
@cindex placing vertical brackets around text
-Draw vertical brackets around @var{arg}."
+Draw vertical brackets around @var{arg}.
+
+@lilypond[verbatim,quote]
+\\markup \\bracket \\note #\"2.\" #UP
+@end lilypond"
(let ((th 0.1) ;; todo: take from GROB.
(m (interpret-markup layout props arg)))
(bracketify-stencil m Y th (* 2.5 th) th)))
'diminished-seventh': 'dim7',
'augmented-seventh': 'aug7',
'half-diminished': 'dim5m7',
- 'major-minor': '7m5',
+ 'major-minor': 'maj7m5',
# Sixths:
'major-sixth': '6',
'minor-sixth': 'm6',
#'German': '???',
# Other:
#'pedal': '???',(pedal-point bass)
- #'power': '???',(perfect fifth)
+ 'power': '5^3',
#'Tristan': '???',
'other': '1',
'none': None,
inversion = n.get_maybe_exist_named_child ('inversion')
if inversion:
# TODO: Lilypond does not support inversions, does it?
+
+ # Mail from Carl Sorensen on lilypond-devel, June 11, 2008:
+ # 4. LilyPond supports the first inversion in the form of added
+ # bass notes. So the first inversion of C major would be c:/g.
+ # To get the second inversion of C major, you would need to do
+ # e:6-3-^5 or e:m6-^5. However, both of these techniques
+ # require you to know the chord and calculate either the fifth
+ # pitch (for the first inversion) or the third pitch (for the
+ # second inversion) so they may not be helpful for musicxml2ly.
+ inversion_count = string.atoi (inversion.get_text ())
+ if inversion_count == 1:
+ # TODO: Calculate the bass note for the inversion...
+ pass
pass
for deg in n.get_named_children ('degree'):
d = musicexp.ChordModification ()