somewhat familiar with LilyPond.
@menu
-* Note entry::
-* Easier music entry::
-* Staff notation::
-* Polyphony::
-* Beaming::
-* Accidentals::
-* Expressive marks::
-* Repeats::
-* Rhythmic music::
-* Piano music::
-* Vocal music::
-* Other instrument specific notation::
-* Tablatures::
-* Popular music::
-* Orchestral music::
-* Ancient notation::
-* Contemporary notation::
-* Educational use::
+* Note entry::
+* Easier music entry::
+* Staff notation::
+* Polyphony::
+* Beaming::
+* Accidentals::
+* Expressive marks::
+* Repeats::
+* Rhythmic music::
+* Piano music::
+* Vocal music::
+* Other instrument specific notation::
+* Tablatures::
+* Popular music::
+* Orchestral music::
+* Ancient notation::
+* Contemporary notation::
+* Educational use::
@end menu
@c FIXME: Note entry vs Music entry at top level menu is confusing.
related constructs, such as stems, tuplets and ties.
@menu
-* Notes::
-* Pitches::
-* Chromatic alterations::
-* Micro tones::
-* Chords::
-* Rests::
-* Skips::
-* Durations::
-* Augmentation dots::
-* Scaling durations::
-* Stems::
-* Ties::
-* Tuplets::
+* Notes::
+* Pitches::
+* Chromatic alterations::
+* Micro tones::
+* Chords::
+* Rests::
+* Skips::
+* Durations::
+* Augmentation dots::
+* Scaling durations::
+* Stems::
+* Ties::
+* Tuplets::
@end menu
cisis
@end lilypond
+In accordance with standard typsetting rules, a natural sign is printed
+before a sharp or flat if a previous accidental needs to be
+cancelled. To change this behaviour, use
+@code{\set Staff.extraNatural = ##f}
+
+@lilypond[fragment,quote,raggedright,verbatim,relative=2]
+ceses4 ces cis c
+\set Staff.extraNatural = ##f
+ceses4 ces cis c
+@end lilypond
+
There are predefined sets of note names for various other languages.
To use them, include the language specific init file. For
example: @code{\include "english.ly"}. The available language files
@menu
-* Relative octaves::
-* Octave check::
-* Bar check::
-* Skipping corrected music::
-* Automatic note splitting::
+* Relative octaves::
+* Octave check::
+* Bar check::
+* Skipping corrected music::
+* Automatic note splitting::
@end menu
@cindex Staff notation
@menu
-* Staff symbol::
-* Key signature::
-* Clef::
-* Ottava brackets::
-* Time signature::
-* Partial measures::
-* Unmetered music::
-* Bar lines::
-* Time administration::
-* Controlling formatting of prefatory matter::
+* Staff symbol::
+* Key signature::
+* Clef::
+* Ottava brackets::
+* Time signature::
+* Partial measures::
+* Unmetered music::
+* Bar lines::
+* Time administration::
+* Controlling formatting of prefatory matter::
@end menu
@node Staff symbol
@internalsref{Staff}.@code{keySignature}. Non-standard key signatures
can be specified by setting this property directly.
+A natural sign is printed to cancel any previous accidentals. This
+can be suppressed by setting the @code{Staff.printKeyCancellation}
+property.
+
+@lilypond[quote,raggedright,fragment,verbatim,relative=2]
+{
+ \key d \major
+ a b cis d
+ \key g \minor
+ a bes c d
+ \set Staff.printKeyCancellation = ##f
+ \key d \major
+ a b cis d
+ \key g \minor
+ a bes c d
+}
+@end lilypond
+
Accidentals and key signatures often confuse new users, because
unaltered notes get natural signs depending on the key signature. For
more information, see @ref{More about pitches}.
This command is equivalent to setting @code{clefGlyph},
@code{clefPosition} (which controls the Y position of the clef),
-@code{centralCPosition} and @code{clefOctavation}. A clef is printed
+@code{middleCPosition} and @code{clefOctavation}. A clef is printed
when any of these properties are changed. The following example shows
possibilities when setting properties manually.
+@ignore
+should to be fixed very quickly -gp
+
@lilypond[quote,raggedright,verbatim]
{
- \set Staff.clefGlyph = #"clefs-F"
+ \set Staff.clefGlyph = #"clefs.F"
\set Staff.clefPosition = #2
c'4
- \set Staff.clefGlyph = #"clefs-G"
+ \set Staff.clefGlyph = #"clefs.G"
c'4
- \set Staff.clefGlyph = #"clefs-C"
+ \set Staff.clefGlyph = #"clefs.C"
c'4
\set Staff.clefOctavation = #7
c'4
c'4
\clef "bass"
c'4
+ \set Staff.middleCPosition = #4
+ c'4
}
@end lilypond
+@end ignore
@seealso
Timing can be changed by setting any of these variables explicitly.
In the next example, the 4/4 time signature is printed, but
@code{measureLength} is set to 5/4. After a while, the measure is
-shortened by 1/8, by setting @code{measurePosition} to -3/8 at 2/4 in
-the measure, so the next bar line will fall at 2/4 + 3/8.
+shortened by 1/8, by setting @code{measurePosition} to 7/8 at 2/4
+in the measure, so the next bar line will fall at 2/4 + 3/8. The
+3/8 arises because 5/4 normally has 10/8, but we have manually
+set the measure position to be 7/8 and 10/8 - 7/8 = 3/8.
@lilypond[quote,raggedright,verbatim,relative,fragment]
\set Score.measureLength = #(ly:make-moment 5 4)
c1 c4
c1 c4
c4 c4
-\set Score.measurePosition = #(ly:make-moment -3 8)
+\set Score.measurePosition = #(ly:make-moment 7 8)
b8 b b
c4 c1
@end lilypond
@node Controlling formatting of prefatory matter
@subsection Controlling formatting of prefatory matter
-TODO: Somebody needs to explain this example, but I don't know what
-they're trying to do, so it won't be me. -gp
+@c This section will be moved to somewhere else soon. -gp
+This example demonstrates how to place prefatory matter
+(such as the clef and key signature) at the end of a line.
@lilypond[quote,verbatim]
\transpose c c' {
one voice on the same staff.
@menu
-* Writing polyphonic music::
+* Writing polyphonic music::
@end menu
@node Writing polyphonic music
@cindex layers
to be instantiated. They bear the names @code{"1"}, @code{"2"}, etc. In
each of these contexts, vertical direction of slurs, stems, etc., is set
-appropriately.
+appropriately. Specifically,
+
+@example
+<< \upper \\ \lower >>
+@end example
+
+@noindent
+is equivalent to
+
+@example
+<<
+ \context Voice = "1" @{ \voiceOne \upper @}
+ \context Voice = "2" @{ \voiceTwo \lower @}
+>>
+@end example
@cindex @code{\voiceOne}
@cindex @code{\voiceFour}
The command @code{\oneVoice} will revert back to the normal setting.
@cindex @code{\oneVoice}
+Defining voices (either with the separator @code{\\} or with
+@code{\voiceXXX}) will set the direction of stems, slurs, ties,
+articulations, text annotations, augmentation dots of dotted
+notes, and fingerings. @code{\voiceOne} makes these objects
+point upwards, while @code{\voiceTwo} makes them point down.
Normally, note heads with a different number of dots are not merged, but
when the object property @code{merge-differently-dotted} is set in
@cindex Automatic beams
@menu
-* Automatic beams::
-* Manual beams::
-* Setting automatic beam behavior::
-* Beam formatting::
+* Automatic beams::
+* Manual beams::
+* Setting automatic beam behavior::
+* Beam formatting::
@end menu
@node Automatic beams
@code{autoBeamSettings}. The defaults for @code{autoBeamSettings}
are defined in @file{scm/@/auto@/-beam@/.scm}.
-The value of @code{autoBeamSettings} is changed with two functions,
+The value of @code{autoBeamSettings} is changed with three functions,
@example
#(override-auto-beam-setting
'(@var{be} @var{p} @var{q} @var{n} @var{m}) @var{a} @var{b}
[@var{context}])
-#(revert-auto-beam-setting '(@var{be} @var{p} @var{q} @var{n} @var{m}))
+#(score-override-auto-beam-setting
+ '(@var{be} @var{p} @var{q} @var{n} @var{m}) @var{a} @var{b})
+#(revert-auto-beam-setting '(@var{be} @var{p} @var{q} @var{n} @var{m})
+ [@var{context}])
@end example
Here, @var{be} is the symbol @code{begin} or @code{end}, and
@var{context} is an optional context (default: @code{'Voice}). It
designate all time signatures), @var{a}/@var{b} is a duration. By
default, this command changes settings for the current voice. It is
also possible to adjust settings at higher contexts, by adding a
-@var{context} argument.
+@var{context} argument. @code{score-override-auto-beam-setting} is
+equal to @code{override-auto-beam-setting} with the argument
+@var{context} set to @code{'Score}.
For example, if automatic beams should end on every quarter note, use
the following
inserted automatically before notes.
@menu
-* Automatic accidentals::
+* Automatic accidentals::
@end menu
@node Automatic accidentals
notes and rhythms.
@menu
-* Slurs::
-* Phrasing slurs::
-* Breath marks::
-* Metronome marks::
-* Text scripts::
-* Text spanners::
-* Analysis brackets::
-* Articulations::
-* Running trills::
-* Fingering instructions::
-* Grace notes::
-* Glissando::
-* Dynamics::
+* Slurs::
+* Phrasing slurs::
+* Breath marks::
+* Metronome marks::
+* Text scripts::
+* Text spanners::
+* Analysis brackets::
+* Articulations::
+* Running trills::
+* Fingering instructions::
+* Grace notes::
+* Glissando::
+* Dynamics::
@end menu
@node Slurs
@cindex accent
@cindex marcato
@cindex staccatissimo
+@cindex espressivo
@cindex fermata
@cindex stopped
@cindex staccato
-If you want to end a note with a grace, the standard trick is to put
-the grace notes after a ``space note''
+If you want to end a note with a grace, use the @code{\afterGrace}
+command. It takes two arguments: the main note, and the grace notes
+following the main note.
+
+@lilypond[raggedright, verbatim,relative=2,fragment]
+c1 \afterGrace d1 { c16[ d] } c4
+@end lilypond
+
+This will put the grace notes after a ``space'' lasting 3/4 of the
+length of the main note. The fraction 3/4 can be changed by setting
+@code{afterGraceFraction}, ie.
+
+@example
+afterGraceFraction = #(cons 7 8)
+@end example
+
+@noindent
+will put the grace note at 7/8 of the main note.
+
+
+The same effect can be achieved manually by doing
+
@lilypond[quote,raggedright,fragment,verbatim,relative=2]
\context Voice {
the space between the main-note and the grace is adjusted.
+
+
A @code{\grace} section will introduce special typesetting settings,
for example, to produce smaller type, and set directions. Hence, when
introducing layout tweaks, they should be inside the grace section,
@lilypond[quote,raggedright,fragment,relative=2,verbatim]
\setTextCresc
-c \< d e f\!
+c\< d e f\!
\setHairpinCresc
e\> d c b\!
+\setTextDecresc
+c\> d e f\!
+\setTextDim
+e\> d c b\!
@end lilypond
@cindex crescendo
@cindex diminuendo
+To create new dynamic marks or text that should be aligned
+with dynamics, see @ref{New dynamic marks}.
+
@refcommands
for repetitions.
@menu
-* Repeat types::
-* Repeat syntax::
-* Repeats and MIDI::
-* Manual repeat commands::
-* Tremolo repeats::
-* Tremolo subdivisions::
-* Measure repeats::
+* Repeat types::
+* Repeat syntax::
+* Repeats and MIDI::
+* Manual repeat commands::
+* Tremolo repeats::
+* Tremolo subdivisions::
+* Measure repeats::
@end menu
@node Repeat types
@item percent
Make beat or measure repeats. These look like percent signs. These
-are not played in MIDI output by default.
+are not played in MIDI output by default. Percent repeats must be
+declared within a Voice context.
@end table
Brackets for the repeat are normally only printed over the topmost
staff. This can be adjusted by setting the @code{voltaOnThisStaff}
-property @inputfileref{input/@/regression,volta@/-multi@/-staff@/.ly},
-@inputfileref{input/@/regression,volta@/-chord@/-names@/.ly}.
+property; see @inputfileref{input/@/regression,volta@/-multi@/-staff@/.ly}.
+
+@c not necessary
+@c @inputfileref{input/@/regression,volta@/-chord@/-names@/.ly}.
@refbugs
In the @code{percent} style, a note pattern can be repeated. It is
printed once, and then the pattern is replaced with a special sign.
Patterns of one and two measures are replaced by percent-like signs,
-patterns that divide the measure length are replaced by slashes
+patterns that divide the measure length are replaced by slashes.
+Percent repeats must be declared within a @code{Voice} context.
@lilypond[quote,verbatim,raggedright]
\new Voice \relative c' {
also be used to show the rhythms of melodies.
@menu
-* Showing melody rhythms::
-* Entering percussion::
-* Percussion staves::
+* Showing melody rhythms::
+* Entering percussion::
+* Percussion staves::
@end menu
@menu
-* Automatic staff changes::
-* Manual staff switches::
-* Pedals::
-* Arpeggio::
-* Staff switch lines::
-* Cross staff stems::
+* Automatic staff changes::
+* Manual staff switches::
+* Pedals::
+* Arpeggio::
+* Staff switch lines::
+* Cross staff stems::
@end menu
@refbugs
@menu
-* Setting simple songs::
-* Entering lyrics::
-* Hyphens and extenders::
-* The Lyrics context::
-* Flexibility in alignment::
-* More stanzas::
-* Ambitus::
+* Setting simple songs::
+* Entering lyrics::
+* Hyphens and extenders::
+* The Lyrics context::
+* Flexibility in alignment::
+* More stanzas::
+* Ambitus::
+* Other vocal issues::
@end menu
@node Setting simple songs
The @code{\addlyrics} command is actually just a convienient way
to write a more complicated LilyPond structure that sets up the
-lyrics. You should use @code{\addlyrics} unless you need to
+lyrics. You should use @code{\addlyrics} unless you need to do
fancy things, in which case you should investigate
@code{\lyricsto} or @code{\lyricmode}.
@example
\context Voice = blah @{ music @}
-\lyricsto "blah" \lyricsmode \new lyrics @{ LYRICS @}
+\lyricsto "blah" \new lyrics @{ LYRICS @}
@end example
+@refbugs
+
+@code{\addlyrics} cannot handle polyphony.
+
@node Entering lyrics
@subsection Entering lyrics
usually a mistake in the input file. The syllable includes a @code{@}}, so the
opening brace is not balanced
@example
-\lyricmode @{ twinkle @}
+\lyricmode @{ twinkle@}
@end example
@cindex @code{\property}, in @code{\lyricmode}
next one. Such a line is called an extender line, and it is entered as
@code{__}.
+@ignore
+FIXME: check that this compiles and displays correctly. I don't want
+to commit this part blindly.
+
+In tighly engraved music, hyphens can be removed. In some languages
+(e.g. German and Hungarian), hyphens should not disappear, since
+spelling depends on hyphenation. For that purpose, hyphens can be
+forced to remain by overriding @code{minimum-length} of
+the @code{LyricHyphen} grob.
+
+(code from 2.2)
+\score {
+<< \notes \new Staff \relative c'' { \time 1/4 c16[ c c c]
+\time 1/4
+c16[ c c c]
+\time 1/4
+c16[ c c c]
+
+}
+ \lyrics \new Lyrics \with {
+ % Otherwise lyrics are so far apart that hyphens don't disappear
+ \override SeparationItem #'padding = #0.0
+ }{ bla -- bla -- bla -- bla --
+ bla -- bla -- bla -- bla --
+
+ \override LyricHyphen #'minimum-length = #0.7
+ \override LyricHyphen #'spacing-procedure =
+ #Hyphen_spanner::set_spacing_rods
+
+ bla -- bla -- bla -- bla
+ }>>
+ \paper {
+ indent = 0.0 \cm
+ linewidth = 3.4 \cm
+
+ \context {
+ \StaffContext \remove "Time_signature_engraver"
+ }
+
+ }
+
+}
+@end ignore
+
@seealso
@internalsref{ExtenderEvent}, @internalsref{LyricHyphen}, and
@internalsref{LyricExtender}
-Examples: @inputfileref{input/@/test,lyric@/-hyphen@/-retain@/.ly}.
-
@node The Lyrics context
@cindex choral score
A complete example of a SATB score setup is in section
-@ref{Small ensembles}.
+@ref{Vocal ensembles}.
@refcommands
Program reference: @internalsref{LyricCombineMusic},
@internalsref{Lyrics}, @internalsref{Melisma_translator}.
-Examples: @ref{Small ensembles},
-@inputfileref{input/@/regression,lyric@/-combine@/-new@/.ly},
+
+@inputfileref{input/@/regression,lyric@/-combine@/-new@/.ly}.
@c TODO: make separate section for melismata
-@inputfileref{input/@/test,lyrics@/-melisma@/-variants@/.ly}.
-@inputfileref{input/@/test,lyrics@/-melisma@/-faster@/.ly}.
+
+@c I can't find these examples in 2.0 or 2.2; remove. -gp
+@c @inputfileref{input/@/test,lyrics@/-melisma@/-variants@/.ly}.
+@c @inputfileref{input/@/test,lyrics@/-melisma@/-faster@/.ly}.
@refbugs
rather than to the @internalsref{Voice} context. Here is an example,
@lilypond[verbatim,raggedright,quote]
-\new Staff <<
+\new Staff \with {
+ \consists "Ambitus_engraver"
+}
+<<
\new Voice \with {
- \consists "Ambitus_engraver"
+ \remove "Ambitus_engraver"
} \relative c'' {
\override Ambitus #'X-offset-callbacks
= #(list (lambda (grob axis) -1.0))
c4 a d e f2
}
\new Voice \with {
- \consists "Ambitus_engraver"
+ \remove "Ambitus_engraver"
} \relative c' {
\voiceTwo
es4 f g as b2
There is no collision handling in the case of multiple per-voice
ambitus.
+@node Other vocal issues
+@subsection Other vocal issue
+
+@ignore
+yeah, I'm giving up somewhat by stuffing a bunch of things in
+here. But at least they're in the manual now; it's easier to
+move them around in the manual once they're already here.
+
+Besides, if users complain about everything stuffed in here, I
+can ask them for specific instructions about where to move these
+examples, and that might get them more involved in the docs. -gp
+@end ignore
+
+You can display alternate (or divisi) lyrics by naming voice
+contexts and attaching lyrics to those specific contexts.
+
+@lilypond[verbatim,raggedright,quote]
+\score{ <<
+ \context Voice = "melody" {
+ \relative c' {
+ c4
+ <<
+ { \voiceOne c8 e }
+ \context Voice = splitpart { \voiceTwo c4 }
+ >>
+ \oneVoice c4 c | c
+ }
+ }
+ \new Lyrics \lyricsto "melody" { we shall not o- ver- come }
+ \new Lyrics \lyricsto "splitpart" { shall }
+>> }
+@end lilypond
+
+
+You can use this trick to display different lyrics for a repeated
+section.
+
+@lilypond[verbatim,raggedright,quote]
+\score{ <<
+ \context Voice = melody \relative c' {
+ c2 e | g e | c1 |
+ \context Voice = verse \repeat volta 2 {c4 d e f | g1 | }
+ a2 b | c1}
+ \lyricsto melody \context Lyrics = mainlyrics \lyricmode {
+ do mi sol mi do
+ la si do }
+ \lyricsto verse \context Lyrics = mainlyrics \lyricmode {
+ do re mi fa sol }
+ \lyricsto verse \context Lyrics = repeatlyrics \lyricmode {
+ dodo rere mimi fafa solsol }
+>>
+}
+@end lilypond
+
+
@node Other instrument specific notation, Tablatures, Vocal music, Notation manual
@section Other instrument specific notation
include extra information for other instruments in the future.
@menu
-* Harmonic notes::
+* Harmonic notes::
@end menu
@node Harmonic notes, , Other instrument specific notation, Other instrument specific notation
offers limited support for tablature.
@menu
-* Tablatures basic::
-* Non-guitar tablatures::
+* Tablatures basic::
+* Non-guitar tablatures::
@end menu
@node Tablatures basic, Non-guitar tablatures, Tablatures, Tablatures
This section discusses issues that arise when writing popular music.
@menu
-* Chord names::
-* Chords mode::
-* Printing chord names::
-* Fret diagrams::
-* Improvisation::
+* Chord names::
+* Chords mode::
+* Printing chord names::
+* Fret diagrams::
+* Improvisation::
@end menu
@node Chord names, Chords mode, Popular music, Popular music
Examples: @inputfileref{input/@/regression,chord@/-name@/-major7@/.ly},
@inputfileref{input/@/regression,chord@/-name@/-exceptions@/.ly},
-@inputfileref{input/@/test,chord@/-names@/-jazz@/.ly},
-@inputfileref{input/@/test,chords@/-without@/-melody@/.ly}.
+@inputfileref{input/@/test,chord@/-names@/-jazz@/.ly}.
Init files: @file{scm/@/chords@/-ignatzek@/.scm}, and
@menu
-* System start delimiters::
-* Aligning to cadenzas::
-* Rehearsal marks::
-* Bar numbers::
-* Instrument names::
-* Transpose::
-* Instrument transpositions::
-* Multi measure rests::
-* Automatic part combining::
-* Hiding staves::
-* Different editions from one source::
-* Quoting other voices::
-* Formatting cue notes::
+* System start delimiters::
+* Aligning to cadenzas::
+* Rehearsal marks::
+* Bar numbers::
+* Instrument names::
+* Transpose::
+* Instrument transpositions::
+* Multi measure rests::
+* Automatic part combining::
+* Hiding staves::
+* Different editions from one source::
+* Quoting other voices::
+* Formatting cue notes::
@end menu
@node System start delimiters
@c umm, is the manual the right place for feature requests? :) -gp
@c FIXME - should make that tunable.
-To use boxed bar numbers instead of letters, see @ref{Bar numbers}.
-
The mark is incremented automatically if you use @code{\mark
\default}, but you can also use an integer argument to set the mark
manually. The value to use is stored in the property
\set Score.markFormatter = #format-mark-numbers
c1 \mark \default
c1 \mark \default
-\set Score.markFormatter
- = #(lambda (mark context)
- (make-bold-markup
- (make-box-markup (number->string mark))))
+\set Score.markFormatter = #format-mark-box-numbers
c1 \mark \default
c1 \mark \default
c1
@end lilypond
The file @file{scm/@/translation@/-functions@/.scm} contains the definitions
-of @code{format-mark-numbers} (the default format) and
-@code{format-mark-letters}. These can be used as inspiration for other
-formatting functions.
+of @code{format-mark-numbers} (the default format), @code{format-mark-box-numbers},
+@code{format-mark-letters} and @code{format-mark-box-letters}.
+These can be used as inspiration for other formatting functions.
@cindex coda on bar line
c1
@end lilypond
-In the case of a line break, marks must also be printed at the end of
-the line, and not at the beginning. Use the following to force that
-behavior
+If the mark occurs at a line break, the mark will be printed at the
+beginning of the next line.
+@c IMO this is a bug; hopefully it'll be fixed soon, so I can
+@c delete this sentence. -gp
+If there is no next line, then the mark will not be printed at all.
+To print the mark at the end of the current line, use
+
@example
\override Score.RehearsalMark
#'break-visibility = #begin-of-line-invisible
@lilypond[quote,fragment,verbatim,raggedright]
\set Staff.instrument = \markup {
- \column < "Clarinetti"
- { "in B" \smaller \flat } > }
+ \column { "Clarinetti"
+ \line { "in B" \smaller \flat } } }
c''1
@end lilypond
specified twice (once in each part). Stem, slur, and tie directions are
set automatically, depending whether there is a solo or unisono. The
first part (with context called @code{one}) always gets up stems, and
-`solo', while the second (called @code{two}) always gets down stems and
+`Solo', while the second (called @code{two}) always gets down stems and
`Solo II'.
If you just want the merging parts, and not the textual markings, you
>>
@end lilypond
+To change the text that is printed for solos or merging, you may
+set the @code{soloText}, @code{soloIIText}, and @code{aDueText}
+properties.
+
+@lilypond[quote,verbatim,raggedright,fragment,relative=2]
+\new Staff <<
+ \set Score.soloText = #"ichi"
+ \set Score.soloIIText = #"ni"
+ \set Score.aDueText = #"tachi"
+ \partcombine
+ \relative g' { g4 g a( b) r }
+ \relative g' { g4 g r r f }
+>>
+@end lilypond
Both arguments to @code{\partcombine} will be interpreted as
@internalsref{Voice} contexts. If using relative octaves,
@node Different editions from one source
@subsection Different editions from one source
+@cindex tag
The @code{\tag} command marks music expressions with a name. These
tagged expressions can be filtered out later. With this mechanism it
is possible to make different versions of the same music source.
This defines a note with a conditional fingering indication.
+@cindex keepWithTag
+@cindex removeWithTag
By applying the @code{\keepWithTag} and @code{\removeWithTag}
commands, tagged expressions can be filtered. For example,
@example
Here are all suptopics at a glance:
@menu
-* Ancient note heads::
-* Ancient accidentals::
-* Ancient rests::
-* Ancient clefs::
-* Ancient flags::
-* Ancient time signatures::
-* Ancient articulations::
-* Custodes::
-* Divisiones::
-* Ligatures::
-* Gregorian Chant contexts::
-* Mensural contexts::
-* Figured bass::
+* Ancient note heads::
+* Ancient accidentals::
+* Ancient rests::
+* Ancient clefs::
+* Ancient flags::
+* Ancient time signatures::
+* Ancient articulations::
+* Custodes::
+* Divisiones::
+* Ligatures::
+* Gregorian Chant contexts::
+* Mensural contexts::
+* Figured bass::
@end menu
{
\fatText
s^\markup {
- \column <
+ \column {
"vaticana"
- { " " \musicglyph #"accidentals-vaticana-1"
- " " \musicglyph #"accidentals-vaticana0" }
- >
- \column <
+ \line { " " \musicglyph #"accidentals-vaticana-1"
+ " " \musicglyph #"accidentals-vaticana0" }
+ }
+ \column {
"medicaea"
- { " " \musicglyph #"accidentals-medicaea-1" }
- >
- \column <
+ \line { " " \musicglyph #"accidentals-medicaea-1" }
+ }
+ \column {
"hufnagel"
- { " " \musicglyph #"accidentals-hufnagel-1" }
- >
- \column <
+ \line { " " \musicglyph #"accidentals-hufnagel-1" }
+ }
+ \column {
"mensural"
- { " " \musicglyph #"accidentals-mensural-1"
- " " \musicglyph #"accidentals-mensural1" }
- >
+ \line { " " \musicglyph #"accidentals-mensural-1"
+ " " \musicglyph #"accidentals-mensural1" }
+ }
}
}
\layout {
Use the @code{style} property of grob @internalsref{Rest} to select
-ancient accidentals. Supported styles are @code{classical},
+ancient rests. Supported styles are @code{classical},
@code{neomensural}, and @code{mensural}. @code{classical} differs
from the @code{default} style only in that the quarter rest looks like
a horizontally mirrored 8th rest. The @code{neomensural} style suits
@lilypond[quote,raggedright,fragment]
\new Lyrics \lyricmode {
- \markup { \column <
+ \markup { \column {
\typewriter "vaticana"
- { " " \musicglyph #"custodes-vaticana-u0" }
- > }
- \markup { \column <
+ \line { " " \musicglyph #"custodes-vaticana-u0" }
+ } }
+ \markup { \column {
\typewriter "medicaea"
- { " " \musicglyph #"custodes-medicaea-u0" }
- >}
- \markup { \column <
+ \line { " " \musicglyph #"custodes-medicaea-u0" }
+ }}
+ \markup { \column {
\typewriter "hufnagel"
- { " " \musicglyph #"custodes-hufnagel-u0" }
- >}
- \markup { \column <
+ \line { " " \musicglyph #"custodes-hufnagel-u0" }
+ }}
+ \markup { \column {
\typewriter "mensural"
- { " " \musicglyph #"custodes-mensural-u0" }
- >}
+ \line { " " \musicglyph #"custodes-mensural-u0" }
+ }}
}
@end lilypond
@menu
-* White mensural ligatures::
-* Gregorian square neumes ligatures::
+* White mensural ligatures::
+* Gregorian square neumes ligatures::
@end menu
@node White mensural ligatures
@lilypond[quote,raggedright,verbatim,fragment]
<<
- \context Voice { \clef bass dis4 c d ais }
+ \context Voice { \clef bass dis4 c d ais g fis}
\context FiguredBass \figuremode {
< 6 >4 < 7 >8 < 6+ [_!] >
< 6 >4 <6 5 [3+] >
+ < _ >4 < 6 >4
}
>>
@end lilypond
@menu
-* Polymetric notation::
-* Clusters::
-* Special fermatas::
-* Feathered beams::
+* Polymetric notation::
+* Clusters::
+* Special fermatas::
+* Feathered beams::
@end menu
@node Polymetric notation
% create 2/4 + 5/8
tsMarkup =\markup {
\number {
- \column < "2" "4" >
+ \column { "2" "4" }
\musicglyph #"scripts-stopped"
- \bracket \column < "5" "8" >
+ \bracket \column { "5" "8" }
}
}
teaching tools in addition to great musical scores.
@menu
-* Balloon help::
-* Blank music sheet::
-* Hidden notes::
-* Easy Notation note heads::
+* Balloon help::
+* Blank music sheet::
+* Hidden notes::
+* Shaped note heads ::
+* Easy Notation note heads::
@end menu
@node Balloon help
@end lilypond
+@node Shaped note heads
+@subsection Shaped note heads
+
+In shaped note head notation, the shape of the note head corresponds
+to the harmonic function of a note in the scale. This notation was
+popular in the 19th century American song books.
+
+Shaped note heads can be produced by setting @code{\aikenHeads} or
+@code{\sacredHarpHeads}, depending on the style desired.
+
+@lilypond[verbatim,relative=1,fragment]
+ \aikenHeads
+ c8 d4 e8 a2 g1
+ \sacredHarpHeads
+ c8 d4. e8 a2 g1
+@end lilypond
+
+Shapes are determined on the step in the scale, where the base of the
+scale is determined by the @code{\key} command
+
+@findex \key
+@findex shapeNoteStyles
+@findex \aikenHeads
+@findex \sacredHarpHeads
+
+Shaped note heads are implemented through the @code{shapeNoteStyles}
+property. Its value is a vector of symbols. The k-th element indicates
+the style to use for the k-th step of the scale. Arbitrary
+combinations are possible, eg.,
+
+
+@lilypond[verbatim,relative=1,fragment]
+ \set shapeNoteStyles = ##(cross triangle fa #f mensural xcircle diamond)
+ c8 d4. e8 a2 g1
+@end lilypond
+
+
@node Easy Notation note heads
@subsection Easy Notation note heads