@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
a'2 b
-#(set-octavation 1)
+\ottava #1
a b
-#(set-octavation 0)
+\ottava #0
a b
@end lilypond
-La función @code{set-octavation} también admite los valores -1 (para
+La función @code{ottava} también admite los valores -1 (para
8va bassa), 2@tie{}(para 15ma) y -2 (para 15ma bassa) como argumentos.
% Place dynamics above staff
\dynamicUp
% Start Ottava Bracket
-#(set-octavation 1)
+\ottava #1
c' \startTextSpan
% Add Dynamic Text
c\pp
% Add Dynamic Text
c\ff c \stopTextSpan
% Stop Ottava Bracket
-#(set-octavation 0)
+\ottava #0
c, c c c
@end lilypond
%Place following Ottava Bracket below Text Spanners
\once \override Staff.OttavaBracket #'outside-staff-priority = #340
% Start Ottava Bracket
-#(set-octavation 1)
+\ottava #1
c' \startTextSpan
% Add Dynamic Text
c\pp
% Add Dynamic Text
c\ff c \stopTextSpan
% Stop Ottava Bracket
-#(set-octavation 0)
+\ottava #0
c, c c c
@end lilypond
Les marques d'octaviation, @emph{Ottava}, permettent d'introduire une
transposition spécifique d'une octave pour la portée en cours. C'est
-la fonction @code{set-octavation} qui s'en charge.
+la fonction @code{ottava} qui s'en charge.
@cindex ottava
@cindex 15ma
@lilypond[quote,ragged-right,verbatim,fragment]
\relative c''' {
a2 b
- #(set-octavation 1)
+ \ottava #1
a b
- #(set-octavation 0)
+ \ottava #0
a b
}
@end lilypond
-La fonction @code{set-octavation} peut aussi prendre en argument les
+La fonction @code{ottava} peut aussi prendre en argument les
valeurs -1@tie{}(pour 8va bassa), 2@tie{}(pour 15ma --- 2 octaves) ou
-2@tie{}(pour 15ma bassa). En interne, cette fonction détermine les
propriétés @code{ottavation} (p.ex. en @code{"8va"} ou @code{"8vb"})
et @code{centralCPosition}. Vous pouvez modifier le texte d'une marque
d'octaviation en définissant @code{ottavation} après avoir fait appel
-Ã @code{set-octavation} :
+Ã @code{ottava} :
@lilypond[quote,ragged-right,verbatim]
{
- #(set-octavation 1)
+ \ottava #1
\set Staff.ottavation = #"8"
c'''
}
@knownissues
-@code{set-octavation} gère difficilement les changements de clé qui
+@code{ottava} gère difficilement les changements de clé qui
pourraient intervenir alors qu'elle est effective.
@node Contexts explained
@subsection Contexts explained
-@c FIXME Rethink and rewrite
+@ignore
+@c TODO Rethink and rewrite
>> > > - list of contexts: my *danger unmaintainable*
->> > > alarm just went off. I'm
+>> > > alarm just went off. I'm
I knew it would... And leaving out some of them is perfectly fine
with me.
should be there, and then we could simply list the remaining ones
without
further explanation and with links to the IR.
+@end ignore
+
+@c TODO Improve layout, order and consistency of wording -td
+
+@c TODO Add introduction which explains contexts in generality -td
+
+@unnumberedsubsec Score - the master of all contexts
+
+This is the top level notation context. No other context can
+contain a Score context. By default the Score context handles
+the administration of time signatures and makes sure that items
+such as clefs, time signatures, and key-signatures are aligned
+across staves.
+
+A Score context is instantiated implicitly when a
+@code{\score @{@dots{}@}} or @code{\layout @{@dots{}@}} block is
+processed, or explicitly when a @code{\new Score} command is
+executed.
+
+@subheading Top-level contexts: Staff containers
+
+@subsubheading StaffGroup
+
+Groups staves while adding a bracket on the left side, grouping
+the staves together. The bar lines of the contained staves are
+connected vertically. StaffGroup only consists of a collection
+of staves, with a bracket in front and spanning bar lines.
+
+@unnumberedsubsubsec ChoirStaff
+
+Identical to StaffGroup except that the bar lines of the contained
+staves are not connected vertically.
+
+@unnumberedsubsubsec GrandStaff
+
+A group of staves, with a brace on the left side, grouping
+the staves together. The bar lines of the contained staves are
+connected vertically.
+
+@unnumberedsubsubsec PianoStaff
+
+TODO No longer correct? Check. -td
+
+Just like GrandStaff but with a forced distance between the
+staves, so cross staff beaming and slurring can be used.
+
+@unnumberedsubsubsec DrumStaff
+
+Handles typesetting for percussion. Can contain DrumVoice
+
+@unnumberedsubsubsec InnerStaffGroup
+
+TODO -td
+
+@unnumberedsubsubsec InnerChoirStaff
+
+TODO -td
+
+@heading Staff-level contexts
+
+@unnumberedsubsubsec Staff
+
+Handles clefs, bar lines, keys, accidentals. It can contain
+Voice contexts.
+
+@unnumberedsubsubsec RhythmicStaff
+
+Like Staff but for printing rhythms. Pitches are ignored;
+the notes are printed on one line.
+@unnumberedsubsubsec TabStaff
-The Master Of All Contexts
-==========================
-
- * Score
- This is the top level notation context. No other context
-can
- contain a Score context. This context handles the
- administration of time signatures. It also makes sure that
- items such as clefs, time signatures, and key-signatures
-are
- aligned across staves.
- You cannot explicitly instantiate a Score context (since
-it is
- not contained in any other context). It is instantiated
- automatically when an output definition (a \score or
-\layout
- block) is processed.
- (it should also be made clear somewhere what the
-difference is between
- \score and \Score).
-
-Top-level contexts: Staff containers
-====================================
- * StaffGroup
- Groups staves while adding a bracket on the left side,
- grouping the staves together. The bar lines of the
-contained
- staves are connected vertically. StaffGroup only consists
-of a
- collection of staves, with a bracket in front and spanning
-bar
- lines.
- * ChoirStaff
- Identical to StaffGroup except that the contained staves
-are
- not connected vertically.
- * GrandStaff
- A group of staves, with a brace on the left side, grouping
-the
- staves together. The bar lines of the contained staves are
- connected vertically.
- * PianoStaff
- Just like GrandStaff but with a forced distance between
-the
- staves, so cross staff beaming and slurring can be used.
- * DrumStaff
- Handles typesetting for percussion. Can contain DrumVoice
- * InnerStaffGroup
- * InnerChoirStaff
-
-Staff-level contexts
-====================
- * Staff
- Handles clefs, bar lines, keys, accidentals. It can
-contain
- Voice contexts.
- * RhythmicStaff
- Like Staff but for printing rhythms. Pitches are
- ignored; the notes are printed on one line.
- * TabStaff
- Context for generating tablature. By default lays the
-music
- expression out as a guitar tablature, printed on six
-lines.
- * VaticanaStaff
- Same as Staff, except that it is accommodated for
- typesetting a piece in gregorian style.
- * MensuralStaff
- Same as Staff, except that it is accommodated for
- typesetting a piece in mensural style.
-
-Voice-level (bottom) contexts
-=============================
-What is generated by default here? The voice-level contexts
-initiate
-certain properties and start engravers.
-
- * Voice
- Corresponds to a voice on a staff. This context handles
-the
- conversion of dynamic signs, stems, beams, super- and
- subscripts, slurs, ties, and rests.
- You have to instantiate this explicitly if you want to
-have
- multiple voices on the same staff.
- Bottom context.
- * VaticanaVoice
- Same as Voice, except that it is accommodated for
- typesetting a piece in gregorian style.
- * MensuralVoice
- Same as Voice, except that it is accommodated for
- typesetting a piece in mensural style.
- * Lyrics
- Corresponds to a voice with lyrics. Handles the printing
-of a
- single line of lyrics.
- Bottom context.
- * DrumVoice
- A voice on a percussion staff.
- * FiguredBass
-
- * ChordNames
- Typesets chord names. This context is a `bottom' context;
-it
- cannot contain other contexts.
+Context for generating tablature. By default lays the music
+expression out as a guitar tablature, printed on six lines.
+
+@unnumberedsubsubsec VaticanaStaff
+
+Same as Staff, except that it is designed for typesetting
+a piece in gregorian style.
+
+@unnumberedsubsubsec MensuralStaff
+
+Same as Staff, except that it is designed for typesetting
+a piece in mensural style.
+
+@unnumberedsubsec Voice-level (bottom) contexts
+
+Voice-level contexts initialise certain properties and start
+appropriate engravers. Being bottom-level contexts, they cannot
+contain other contexts.
+
+@unnumberedsubsubsec Voice
+
+Corresponds to a voice on a staff. This context handles the
+conversion of dynamic signs, stems, beams, super- and sub-scripts,
+slurs, ties, and rests. You have to instantiate this explicitly
+if you require multiple voices on the same staff.
+
+@unnumberedsubsubsec VaticanaVoice
+
+Same as Voice, except that it is designed for typesetting a piece
+in gregorian style.
+
+@unnumberedsubsubsec MensuralVoice
+
+Same as Voice, with modifications for typesetting a piece in
+mensural style.
+
+@unnumberedsubsubsec Lyrics
+
+Corresponds to a voice with lyrics. Handles the printing of a
+single line of lyrics.
+
+@unnumberedsubsubsec DrumVoice
+
+The voice context used in a percussion staff.
+
+@unnumberedsubsubsec FiguredBass
+
+The context in which BassFigure objects are created from
+input entered in @code{\figuremode} mode.
+
+@unnumberedsubsubsec TabVoice
+
+The voice context used within a TabStaff context. Usually left to
+be created implicitly.
+
+@unnumberedsubsubsec ChordNames
+
+Typesets chord names.
------------------------------
+
+TODO
+
Then the following, which I don't know what to do with:
- * TabVoice
* GregorianTranscriptionVoice
* GregorianTranscriptionStaff
context.
-
@node Creating contexts
@subsection Creating contexts
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
* Aligning objects::
@end menu
+@c TODO Add new subsection Shapes of objects
+@c which would include Slur shapes
+@c with a Known issue: can't modify shapes if there are
+@c more than one at the same musical moment
+
@node Controlling visibility of objects
@subsection Controlling visibility of objects
is found at @ref{Common chord modifiers}.
@c @table @code
-@multitable @columnfractions .2 .5 .2
+@multitable @columnfractions .2 .4 .3
@item
@b{Modifier}
@end lilypond
@item
-m
+m, m7
@tab
The minor chord. This modifier lowers the 3rd and (if present) the
7th step.
@item
-dim
+dim, dim7
@tab
The diminished chord. This modifier lowers the 3rd, 5th and (if
present) the 7th step.
\chordmode { c1:5.5-.5+ }
@end lilypond
-Only the first inversion can be created by adding a bass note. The
-second inversion requires changing the root of the chord.
+Only the second inversion can be created by adding a bass
+note. The first inversion requires changing the root of
+the chord.
@lilypond[quote,ragged-right,verbatim,fragment]
\chordmode {
@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
{controlling-the-placement-of-chord-fingerings.ly}
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{allowing-fingerings-to-be-printed-inside-the-staff.ly}
+
@seealso
@cindex pitches
@cindex absolute
@cindex absolute octave specification
+@cindex absolute octave entry
A pitch name is specified using lowercase letters@tie{}@code{a}
through@tie{}@code{g}. The note names @code{c} to @code{b} are
d e f g
@end lilypond
+@cindex octave changing mark
@funindex '
@funindex ,
@unnumberedsubsubsec Relative octave entry
@cindex relative
+@cindex relative octave entry
@cindex relative octave specification
@funindex \relative
@rinternals{RelativeOctaveMusic}.
+@cindex relative octave entry and transposition
+@cindex transposition and relative octave entry
@funindex \transpose
@funindex \chordmode
@funindex \relative
@cindex double flat
@cindex flat, double
@cindex natural sign
+@cindex natural pitch
A @notation{sharp} pitch is made by adding @code{is} to the note
name, and a @notation{flat} pitch by adding @code{es}. As you
cis cis cis! cis? c c c! c?
@end lilypond
+@cindex accidental on tied note
+@cindex tied note, accidental
+
Accidentals on tied notes are only printed at the beginning of a
new system:
@rinternals{accidental-interface}.
+@cindex accidental, quarter-tone
+@cindex quarter-tone accidental
+
@knownissues
There are no generally accepted standards for denoting
@node Note names in other languages
@unnumberedsubsubsec Note names in other languages
+@cindex note names, other languages
+@cindex pitch names, other languages
+@cindex language, note names in other
+@cindex language, pitch names in other
+
There are predefined sets of note names for various other
languages. To use them, include the language-specific init file.
For example, to use English notes names, add
@w{@code{\include "english.ly"}} to the top of the input file.
The available language files and the note names they define are:
-@cindex note names, other languages
-@cindex pitch names, other languages
@smallexample
@multitable {nederlands.ly} {do re mi fa sol la sib si} {-iss/-is} {-ess/-es} {-ss/-x/-sharpsharp} {-essess/-eses}
@item nederlands.ly
@tab c d e f g a bes b
@tab -is @tab -es @tab -isis @tab -eses
-@item english.ly
- @tab c d e f g a bf b
- @tab -s/-sharp @tab -f/-flat @tab -ss/-x/-sharpsharp
- @tab -ff/-flatflat
-@item deutsch.ly
- @tab c d e f g a b h
- @tab -is @tab -es @tab -isis @tab -eses
-@item norsk.ly
- @tab c d e f g a b h
- @tab -iss/-is @tab -ess/-es @tab -ississ/-isis
- @tab -essess/-eses
-@item svenska.ly
- @tab c d e f g a b h
- @tab -iss @tab -ess @tab -ississ @tab -essess
-@item suomi.ly
- @tab c d e f g a b h
- @tab -is @tab -es @tab -isis @tab -eses
-@item italiano.ly
+@item arabic.ly
@tab do re mi fa sol la sib si
@tab -d @tab -b @tab -dd @tab -bb
@item catalan.ly
@tab do re mi fa sol la sib si
@tab -d/-s @tab -b @tab -dd/-ss @tab -bb
+@item deutsch.ly
+ @tab c d e f g a b h
+ @tab -is @tab -es @tab -isis @tab -eses
+@item english.ly
+ @tab c d e f g a bf b
+ @tab -s/-sharp @tab -f/-flat @tab -ss/-x/-sharpsharp
+ @tab -ff/-flatflat
@item espanol.ly
@tab do re mi fa sol la sib si
@tab -s @tab -b @tab -ss @tab -bb
+@item italiano.ly
+ @tab do re mi fa sol la sib si
+ @tab -d @tab -b @tab -dd @tab -bb
+@item norsk.ly
+ @tab c d e f g a b h
+ @tab -iss/-is @tab -ess/-es @tab -ississ/-isis
+ @tab -essess/-eses
@item portugues.ly
@tab do re mi fa sol la sib si
@tab -s @tab -b @tab -ss @tab -bb
+@item suomi.ly
+ @tab c d e f g a b h
+ @tab -is @tab -es @tab -isis @tab -eses
+@item svenska.ly
+ @tab c d e f g a b h
+ @tab -iss @tab -ess @tab -ississ @tab -essess
@item vlaams.ly
@tab do re mi fa sol la sib si
@tab -k @tab -b @tab -kk @tab -bb
@end lilypond
+@cindex microtones
+@cindex semi-sharp
+@cindex semi-flat
+@cindex sesqui-sharp
+@cindex sesqui-flat
+
Some music uses microtones whose alterations are fractions of a
@q{normal} sharp or flat. The note names for quarter-tones
defined in the various language files are listed in the following
@item nederlands.ly
@tab c d e f g a bes b
@tab -ih @tab -eh @tab -isih @tab -eseh
-@item english.ly
- @tab c d e f g a bf b
- @tab -qs @tab -qf @tab -tqs @tab -tqf
+@item arabic.ly
+ @tab do re mi fa sol la sib si
+ @tab -sd @tab -sb @tab -dsd @tab -bsb
@item deutsch.ly
@tab c d e f g a b h
@tab -ih @tab -eh @tab -isih @tab -eseh
+@item english.ly
+ @tab c d e f g a bf b
+ @tab -qs @tab -qf @tab -tqs @tab -tqf
@item italiano.ly
@tab do re mi fa sol la sib si
@tab -sd @tab -sb @tab -dsd @tab -bsb
@cindex octave correction
@cindex octave check
+@cindex control pitch
@funindex =
@funindex \octaveCheck
+@funindex controlpitch
In relative mode, it is easy to forget an octave changing mark.
Octave checks make such errors easier to find by displaying a
@unnumberedsubsubsec Transpose
@cindex transpose
+@cindex transposing
@cindex transposition
@cindex transposition of pitches
+@cindex transposition of notes
+@cindex pitches, transposition of
+@cindex notes, transposition of
@funindex \transpose
A music expression can be transposed with @code{\transpose}. The
}
@end lilypond
+@cindex transposing instruments
+@cindex instruments, transposing
+
If a part written in C (normal @notation{concert pitch}) is to be
played on the A clarinet (for which an A is notated as a C and
thus sounds a minor third lower than notated), the appropriate
@end lilypond
@cindex transposing instruments
+@cindex instruments, transposing
@code{\transpose} may also be used in a different way, to input
written notes for a transposing instrument. The previous examples
@funindex \dorian
@cindex church modes
@cindex modes
+@cindex major
+@cindex minor
+@cindex ionian
+@cindex locrian
+@cindex aeolian
+@cindex mixolydian
+@cindex lydian
+@cindex phrygian
+@cindex dorian
Here, @var{mode} should be @code{\major} or @code{\minor} to get a
key signature of @var{pitch}-major or @var{pitch}-minor,
@cindex 8va
@cindex 8ve
@cindex octavation
+@funindex set-octavation
@notation{Ottava brackets} introduce an extra transposition of an
octave for the staff:
@lilypond[verbatim,quote,relative=2]
a'2 b
-#(set-octavation 1)
+\ottava #1
a b
-#(set-octavation 0)
+\ottava #0
a b
@end lilypond
-The @code{set-octavation} function also takes -1 (for 8va bassa),
+The @code{ottava} function also takes -1 (for 8va bassa),
2@tie{}(for 15ma), and -2 (for 15ma bassa) as arguments.
@cindex transposition, instrument
@cindex transposing instrument
@cindex MIDI
+@cindex MIDI transposition
@funindex \transposition
When typesetting scores that involve transposing instruments, some
@cindex automatic accidentals
@cindex default accidental style
@funindex set-accidental-style
+@funindex voice
There are many different conventions on how to typeset
accidentals. LilyPond provides a function to specify which
The following accidental styles are supported. To demonstrate
each style, we use the following example:
+@funindex default
+
@lilypond[verbatim,quote]
musicA = {
<<
@c don't use verbatim in this table.
@table @code
@item default
+
+@cindex default accidental style
+@cindex accidental style, default
+@funindex default
+
This is the default typesetting behavior. It corresponds to
eighteenth-century common practice: accidentals are remembered to
the end of the measure in which they occur and only in their own
@end lilypond
@item voice
+
+@cindex accidental style, voice
+@cindex voice accidental style
+@cindex accidental style, modern
+@cindex modern accidental style
+@cindex accidental style, modern-cautionary
+@cindex modern-cautionary accidental style
+@funindex voice
+
The normal behavior is to remember the accidentals at
@code{Staff}-level. In this style, however, accidentals are
typeset individually for each voice. Apart from that, the rule is
@end lilypond
@item modern
+
@cindex accidentals, modern style
@cindex modern style accidentals
-@funindex modern style accidentals
+@funindex modern
This rule corresponds to the common practice in the twentieth
century. It prints the same accidentals as @code{default}, with
@end lilypond
@item modern-cautionary
+
@cindex accidentals, modern cautionary style
@cindex modern accidental style
@cindex modern cautionary accidental style
@end lilypond
@item modern-voice
+
@cindex accidental style, modern
@cindex accidentals, modern
@cindex accidentals, multivoice
@cindex accidental style, modern voice cautionary
@cindex accidental style, voice, modern cautionary
@funindex modern-voice-cautionary
+
@item modern-voice-cautionary
This rule is the same as @code{modern-voice}, but with the extra
@end lilypond
@item piano
+
@cindex accidental style, piano
@cindex accidentals, piano
@cindex piano accidental style
@cindex piano accidentals
+@funindex piano
This rule reflects twentieth-century practice for piano notation.
Its behavior is very similar to @code{modern} style, but here
@end lilypond
@item piano-cautionary
-@funindex #(set-accidental-style 'piano-cautionary)
+
+@funindex piano-cautionary
@cindex accidentals, piano cautionary
@cindex cautionary accidentals, piano
@cindex piano cautionary accidentals
@end lilypond
@item no-reset
-@funindex no-reset accidental style
+
+@funindex no-reset
@cindex accidental style, no reset
@cindex no reset accidental style
@end lilypond
@item forget
-@funindex forget accidental style
+
+@funindex forget
@cindex forget accidental style
@cindex accidental style, forget
@cindex parlato note heads
@cindex harmonic note heads
@cindex guitar note heads
+@cindex note head styles
+@cindex styles, note heads
+@funindex cross
Note heads may be altered:
@unnumberedsubsubsec Easy notation note heads
@cindex note heads, practice
+@cindex practice note heads
@cindex note heads, easy notation
@cindex easy notation
@cindex Hal Leonard
@cindex Aiken shape note heads
@cindex sacred harp note heads
@funindex \key
-@funindex shapeNoteStyles
@funindex \aikenHeads
@funindex \sacredHarpHeads
is preferred. (instead of `Time signature') Only use capital
letters for musical terms which demand them, like D.S. al Fine.
+ For scheme functions, only include the final part, ie
+ @funindex modern-voice-cautionary
+ and NOT
+ @funindex #(set-accidental-style modern-voice-cautionary)
+
* Preferred terms:
- in general, use the American spellings. The internal
lilypond property names use this spelling.
@itemx @var{scm markup}
@itemx @var{scm scm}
@itemx @var{scm scm markup}
+@itemx @var{scm scm markup markup}
@itemx @var{scm markup markup}
@itemx @var{scm scm scm}
@end table
@item volta
The repeated music is not written out but enclosed between repeat bar
lines. If the repeat is at the beginning of a piece, a repeat bar
-line is only printed at the endof the repeat. Alternative endings
+line is only printed at the end of the repeat. Alternative endings
(volte) are printed left to right with brackets. This is the standard
notation for repeats with alternatives.
@cindex seconda volta
@cindex volta, prima
@cindex volta, seconda
+@cindex repeat, normal
+@cindex normal repeat
+@cindex repeat with alternate endings
+@cindex alternate endings
@funindex \repeat
+@funindex \alternative
+@funindex \partial
@node Normal repeats
@unnumberedsubsubsec Normal repeats
@end example
where @var{musicexpr} is a music expression. Alternate endings can be
-produced using @code{\alternative}. If there are more repeats than
-there are alternate endings, the earliest repeats are given the first
-alternative.
+produced using @code{\alternative}. In order to delimit the alternate
+endings, the group of alternatives must be enclosed in a set of
+braces. If there are more repeats than there are alternate endings,
+the earliest repeats are given the first alternative.
Normal repeats without alternate endings:
@end lilypond
+@cindex repeat with upbeat
+@cindex upbeat in a repeat
+@cindex anacrucis in a repeat
+@cindex repeat with anacrucis
+@cindex repeat with pickup
+@cindex pickup in a repeat
+@funindex \partial
+
Repeats with upbeats can be entered in two ways:
@lilypond[verbatim,quote,relative=2]
@end lilypond
+@cindex repeats with ties
+@cindex alternative endings with ties
+@cindex ties in repeats
+@cindex ties in alternative endings
@funindex \repeatTie
Ties may be added to a second ending:
{adding-volta-brackets-to-additional-staves.ly}
-@c Is there a way to have a final bar ("|.") at the end of the
-@c previous line? Doesn't seem to be.
-@c It could be done by overriding
-@c the BreakAlignment property. Want a separate example?
-If you want to start a repeat at the beginning of a line and have a
-double bar at the end of the previous line, use @code{\bar}. For more
-information, see @ref{Bar lines}.
-
-@lilypond[verbatim,quote,relative=2]
-c4 c c c
-\bar "||:" \break
-\repeat volta 2 { c4 d e f }
-@end lilypond
-
-
@seealso
Music Glossary: @rglos{repeat}, @rglos{volta}.
@knownissues
@cindex repeat, ambiguous
+@cindex nested repeat
+@cindex repeat, nested
+@cindex repeat timing information
+@cindex repeat and measure number
+@cindex timing information and repeats
+@cindex measure number and repeats
+@cindex repeat and slur
+@cindex slur and repeat
A nested repeat like
@node Manual repeat marks
@unnumberedsubsubsec Manual repeat marks
+@cindex manual repeat mark
+@cindex repeat, manual
+@cindex start repeat
+@cindex repeat, start
+@cindex end repeat
+@cindex repeat, end
+@cindex repeat number, changing
+@cindex repeat volta, changing
+@cindex volta bracket
+@cindex bracket, volta
@funindex repeatCommands
+@funindex start-repeat
@warning{These methods are only used for displaying unusual repeat
constructs, and may produce unexpected behavior. In most cases,
@lilypond[verbatim,quote,relative=2]
c1
-\set Score.repeatCommands = #'( start-repeat )
+\set Score.repeatCommands = #'(start-repeat)
d4 e f g
c1
@end lilypond
@lilypond[verbatim,quote,relative=2]
c1
d4 e f g
-\set Score.repeatCommands = #'( end-repeat )
+\set Score.repeatCommands = #'(end-repeat)
c1
@end lilypond
@lilypond[verbatim,quote,relative=2]
f4 g a b
-\set Score.repeatCommands = #'( ( volta "2" ) )
+\set Score.repeatCommands = #'((volta "2"))
g4 a g a
-\set Score.repeatCommands = #'( ( volta #f ) )
+\set Score.repeatCommands = #'((volta #f))
c1
@end lilypond
@lilypond[verbatim,quote,relative=2]
f4 g a b
-\set Score.repeatCommands = #'( ( volta "2, 5" ) end-repeat )
+\set Score.repeatCommands = #'((volta "2, 5") end-repeat)
g4 a g a
c1
-\set Score.repeatCommands = #'( ( volta #f ) ( volta "95" ) end-repeat )
+\set Score.repeatCommands = #'((volta #f) (volta "95") end-repeat)
b1
@end lilypond
+@cindex volta bracket with text
+@cindex text in volta bracket
+
Text can be included with the volta bracket. The text can be a
number or numbers or markup text, see @ref{Formatting text}. The
simplest way to use markup text is to define the markup first,
voltaAdLib = \markup { 1. 2. 3... \text \italic { ad lib. } }
\relative c'' {
c1
- \set Score.repeatCommands = #(list (list 'volta voltaAdLib) 'start-repeat)
+ \set Score.repeatCommands = #(list(list 'volta voltaAdLib) 'start-repeat)
c4 b d e
\set Score.repeatCommands = #'((volta #f) (volta "4.") end-repeat)
f1
@snippets
-@ignore
-@c FIXME: send these to Neil or Valentin to be added as snippets,
-@c delete them.
-@c FIXME: will do, rp.
-Manual control of the volte, including a @code{|:} bar line at the
-beginning and explicit volta numbers:
-
-@c FIXME: I can't believe this is right.
-@c TODO: I think it is. I plan
-@c to delete this example, since it's
-@c already been given at L238. rp
-@lilypond[verbatim,quote,relative=2]
-s1*1/10
-\set Score.repeatCommands = #'( start-repeat )
-c1*9/10
-d4 e f g
-\set Score.repeatCommands = #'( ( volta "1, 2, 5" ) )
-f4 g a b
-\set Score.repeatCommands = #'( ( volta #f ) ( volta "95" ) end-repeat )
-g4 a g a
-\set Score.repeatCommands = #'( ( volta #f ) )
-c1
-@end lilypond
-
-In order to print a @code{|:} bar line at the beginning of a piece,
-the @code{BreakAlignment} property must be overridden:
-
-@lilypond[verbatim,quote,relative=2]
-\once \override Score.BreakAlignment #'break-align-orders =
-#(make-vector 3 '(
-instrument-name
-left-edge
-ambitus
-span-bar
-breathing-sign
-clef
-key-signature
-time-signature
-staff-bar
-custos
-span-bar
-))
-\bar "|:"
-c1
-d1
-d4 e f g
-@end lilypond
-@end ignore
-
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{printing-a-repeat-sign-at-the-beginning-of-a-piece.ly}
@seealso
@cindex written-out repeats
@cindex repetitious music
@cindex repeats, written-out
+@cindex repeat, unfold
+@cindex unfold music
+@cindex unfold repeat
+@cindex unfold repeat with alternate endings
+@cindex unfold music with alternate endings
+@cindex alternate ending in written-out repeats
+@funindex unfold
By using the @code{unfold} command, repeats can be used to simplify
the writing out of repetitious music. The syntax is
\repeat unfold @var{repeatcount} @var{musicexpr}
@end example
-where @var{musicexpr} is a music expression. Unfold repeats can be
-made with or without alternate endings. If there are more repeats
-than there are alternate endings, the first alternative ending is
-applied to the earliest endings. Unfold repeats without alternate
-endings:
+where @var{musicexpr} is a music expression and @var{repeatcount} is
+the number of times @var{musicexpr} is repeated.
@lilypond[verbatim,quote,relative=2]
c1
c1
@end lilypond
-Unfold repeats with alternate endings:
+Unfold repeats can be made with alternate endings. If there are
+more repeats than there are alternate endings, the first
+alternative ending is applied to the earliest endings.
@lilypond[verbatim,quote,relative=2]
c1
@cindex percent repeats
@cindex measure repeats
+@cindex repeat, percent
+@cindex repeat, measure
+@cindex repeat, short
+@funindex \repeat percent
+@funindex percent
Repeated short patterns of notes are supported. The music is printed
once, and the pattern is replaced with a special sign. Patterns that
@snippets
-@c FIXME: email these to Valentin or Neil to be made into snippets
-Measure repeats of more than two repeats get a counter if you switch
-on the @code{countPercentRepeats} property:
-
-@lilypond[verbatim,quote,relative=2]
-\set countPercentRepeats = ##t
-\repeat percent 4 { c1 }
-@end lilypond
-
-Isolated percents can also be printed. This is done by entering a
-multi-measure rest with a different print function:
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{percent-repeat-counter.ly}
-@lilypond[verbatim,quote,relative=2]
-\override MultiMeasureRest #'stencil
- = #ly:multi-measure-rest::percent
-R1
-@end lilypond
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{isolated-percent-repeats.ly}
@seealso
@node Tremolo repeats
@unnumberedsubsubsec Tremolo repeats
-Tremolos can take two forms: alternation between two chords or two
-notes, and rapid repetition of a single
-note or chord. Tremolos consisting of an alternation are indicated by
-adding beams between the notes or chords being alternated, while
-tremolos consisting of the rapid repetition of a single note are
-indicated by adding beams or slashes to a single note.
-
@cindex tremolo beams
+@cindex tremolo
+@cindex repeat, tremolo
+@funindex \repeat tremolo
+@funindex tremolo
+
+Tremolos can take two forms: alternation between two chords or two
+notes, and rapid repetition of a single note or chord. Tremolos
+consisting of an alternation are indicated by adding beams between the
+notes or chords being alternated, while tremolos consisting of the
+rapid repetition of a single note are indicated by adding beams or
+slashes to a single note.
To place tremolo marks between notes, use @code{\repeat} with
tremolo style:
@cindex tremolo marks
@funindex tremoloFlags
+@funindex :
The same output can be obtained by adding
@q{@code{:}[@var{number}]} after the note. The number indicates
Snippets: @rlsr{Repeats}.
+@cindex tremolo, cross-staff
+@cindex cross-staff tremolo
+
+@knownissues
+
+Cross-staff tremolos do not work well.
+
@menu
* Paper and pages::
-* Music layout::
-* Displaying spacing::
-* Breaks::
+* Music layout::
+* Breaks::
* Vertical spacing::
* Horizontal spacing::
* Fitting music onto fewer pages::
This manual: @ref{Changing context default settings}.
-@node Displaying spacing
-@section Displaying spacing
-
-@funindex annotate-spacing
-@cindex Spacing, display of properties
-
-To graphically display the dimensions of vertical properties that may
-be altered for page formatting, set @code{annotate-spacing} in the
-@code{\paper} block, like this
-
-
-@c need to have \book{} otherwise we get the separate systems. -hwn
-@lilypond[verbatim]
-#(set-default-paper-size "a6" 'landscape)
-
-\book {
- \score { { c4 } }
- \paper { annotate-spacing = ##t }
-}
-@end lilypond
-
-
-@c TODO: really bad vagueness due to bug in annotate-spacing. -gp
-@noindent
-Some unit dimensions are measured in staff spaces, while others
-are measured in millimeters.
-The pairs
-(@var{a},@var{b}) are intervals, where @var{a} is the lower edge and
-@var{b} the upper edge of the interval.
-
-
@node Breaks
@section Breaks
When investigating layout issues, @code{annotate-spacing} is
an invaluable tool. This command prints the values of various
-layout spacing commands; see @ref{Displaying spacing}, for more
-details. From the output of @code{annotate-spacing}, we can
+layout spacing commands; for more details see the following
+section, @ref{Displaying spacing}.
+
+@menu
+* Displaying spacing::
+* Changing spacing::
+@end menu
+
+@node Displaying spacing
+@subsection Displaying spacing
+
+@funindex annotate-spacing
+@cindex Spacing, display of properties
+
+To graphically display the dimensions of vertical properties that may
+be altered for page formatting, set @code{annotate-spacing} in the
+@code{\paper} block, like this:
+
+@c need to have \book{} otherwise we get the separate systems. -hwn
+@lilypond[verbatim]
+#(set-default-paper-size "a6" 'landscape)
+\book {
+ \score { { c4 } }
+ \paper { annotate-spacing = ##t }
+}
+@end lilypond
+
+
+@c TODO: really bad vagueness due to bug in annotate-spacing. -gp
+@noindent
+Some unit dimensions are measured in staff spaces, while others
+are measured in millimeters.
+The pairs
+(@var{a},@var{b}) are intervals, where @var{a} is the lower edge and
+@var{b} the upper edge of the interval.
+
+@node Changing spacing
+@subsection Changing spacing
+
+From the output of @code{annotate-spacing}, we can
see which margins we may wish to alter.
+@c TODO add info about or pointers to margin settings
+
Other than margins, there are a few other options to save space:
@itemize
% Place dynamics above staff
\dynamicUp
% Start Ottava Bracket
-#(set-octavation 1)
+\ottava #1
c' \startTextSpan
% Add Dynamic Text
c\pp
% Add Dynamic Text
c\ff c \stopTextSpan
% Stop Ottava Bracket
-#(set-octavation 0)
+\ottava #0
c, c c c
@end lilypond
%Place following Ottava Bracket below Text Spanners
\once \override Staff.OttavaBracket #'outside-staff-priority = #340
% Start Ottava Bracket
-#(set-octavation 1)
+\ottava #1
c' \startTextSpan
% Add Dynamic Text
c\pp
% Add Dynamic Text
c\ff c \stopTextSpan
% Stop Ottava Bracket
-#(set-octavation 0)
+\ottava #0
c, c c c
@end lilypond
@}
@end example
+@c TODO Replace the following with a better example -td
+@c Skylining handles this correctly without padText
+
So far we've seen static substitution -- when LilyPond
sees @code{\padText}, it replaces it with the stuff that
we've defined it to be (ie the stuff to the right of
@node World music
@section World music
-FIXME
+The purpose of this section is to highlight musical notation issues
+that are relevant to traditions outside the Western tradition.
@menu
* Arabic music::
@node Arabic music
@subsection Arabic music
-FIXME
+This section highlights issues that are relevant to notating Arabic
+music.
@menu
-* Arabic music notation overview::
+* References for Arabic music::
* Arabic note names ::
* Arabic key signatures::
-* Arabic time signatures::
-* References for Arabic music::
+* Arabic time signatures::
+* Arabic music example::
+* Further reading::
@end menu
-@node Arabic music notation overview
-@unnumberedsubsubsec Arabic music notation overview
+@node References for Arabic music
+@unnumberedsubsubsec References for Arabic music
@cindex Arabic music
@cindex medium intervals
In general, Arabic music notation does not attempt to precisely
indicate microtonal elements that are present in musical practice.
+Several issues that are relevant to Arabic music are covered
+elsewhere:
+
+@itemize
+@item Note names and accidentals (including quarter tones) can be
+tailored as discussed in @ref{Note names in other languages}.
+
+@item Additional key signatures can also be tailored as described
+in @ref{Key signature}.
+
+@item Complex time signatures may require that notes be grouped
+manually as described in @ref{Manual beams}.
+
+@item @notation{Takasim} which are rhythmically free
+improvisations may be written down omitting bar lines as
+described in @ref{Unmetered music}.
+
+@end itemize
+
@seealso
+Notation Reference:
+@ref{Note names in other languages},
+@ref{Key signature},
+@ref{Manual beams}.
+
Snippets:
@rlsr{World music}.
@node Arabic note names
-@unnumberedsubsubsec Arabic note names
+@unnumberedsubsubsec Arabic note names
+
@cindex Arabic note names
The more traditional Arabic note names can be quite long and are
not suitable for the purpose of music writing, so they are not
-defined by the inclusion of @code{"arabic.ly"}. English note
-names @code{a, b, c, d, e, f, g} are not very familiar in Arabic
-music education. Italian or Solfege note names @code{do, re, mi,
-fa, sol, la, si} are more familiar, and are used when
-@code{"arabic.ly"} is included. Modifiers can also be used, as
-discussed in @ref{Note names in other languages}.
+used. English note names are not very familiar in Arabic music
+education, so Italian or Solfege note names (@code{do, re, mi, fa,
+sol, la, si}) are used instead. Modifiers (accidentals) can also
+be used, as discussed in @ref{Note names in other languages}.
For example, this is how the Arabic @notation{rast} scale can be
notated:
@end lilypond
+@cindex Arabic semi-flat symbol
+@cindex Semi-flat symbol appearance
+
+The symbol for semi-flat does not match the symbol which is used
+in Arabic notation. The @code{\dwn} symbol defined in
+@code{arabic.ly} may be used preceding a flat symbol as a work
+around if it is important to use the specific Arabic semi-flat
+symbol. The appearance of the semi-flat symbol in the key
+signature cannot be altered by using this method.
+
+
+@lilypond[quote,verbatim]
+\include "arabic.ly"
+\relative do' {
+ \set Staff.extraNatural = ##f
+ dod dob dosd \dwn dob dobsb dodsd do do
+}
+@end lilypond
+
+
@seealso
Notation Reference:
@cindex Arabic key signatures
In addition to the minor and major key signatures, the following
-key signatures are defined in @code{"arabic.ly"}: bayati, rast,
-sikah, iraq, and kurd. These key signatures define a small number
-of maqam groups rather than the large number of maqams that are in
+key signatures are defined in @code{arabic.ly}: @notation{bayati},
+@notation{rast}, @notation{sikah}, @notation{iraq}, and
+@notation{kurd}. These key signatures define a small number of
+maqam groups rather than the large number of maqams that are in
common use.
In general, a maqam uses the key signature of its group, or a
For example to indicate the key signature of a maqam muhayer piece:
- \key re \bayati
+@example
+\key re \bayati
+@end example
+
+Here @var{re} is the default pitch of the muhayer maqam, and
+@var{bayati} is the name of the base maqam in the group.
-Here re is the default pitch of the muhayer maqam, and bayati is the
-name of the base maqam in the group.
+While the key signature indicates the group, it is common for the
+title to indicate the more specific maqam, so in this example, the
+name of maqam muhayer should appear in the title.
-While the key signature indicates the group, it is
-common for the title to indicate the more specific maqam, so in this
-example, the name of maqam muhayer should appear in the title.
+Other maqams in the same bayati group, as shown in the table below:
+(bayati, hussaini, saba, and ushaq) can be indicated in the same
+way. These are all variations of the base and most common maqam
+in the group, which is bayati. They usually differ from the base
+maqam in their upper tetrachords, or certain flow details that
+don't change their fundamental nature, as siblings.
-In Arabic music, the same term such as bayati that is used to indicate
-a maqam group, is also a maqam which is usually the most important
-in the group, and can also be thought of as a base maqam.
+The other maqam in the same group (Nawa) is related to bayati by
+modulation which is indicated in the table in parenthesis for
+those maqams that are modulations of their base maqam. Arabic
+maqams admit of only limited modulations, due to the nature of
+Arabic musical instruments. Nawa can be indicated as follows:
-Here is one suggested grouping that maps the more common maqams to key
-signatures:
+@example
+\key sol \bayati
+@end example
+
+In Arabic music, the same term such as bayati that is used to
+indicate a maqam group, is also a maqam which is usually the most
+important in the group, and can also be thought of as a base
+maqam.
+
+Here is one suggested grouping that maps the more common maqams to
+key signatures:
@multitable @columnfractions 0.1 0.1 0.1 0.6
@headitem maqam group
@tab huzam
@end multitable
+@snippets
-You can also set the key signature using Staff.keySignature as discussed
-in @ref{Key signature}. This offers more flexibility if you don't wish
-to be limited to the key signatures that are defined in "arabic.ly", or if
-you don't wish to use the above method of determining a key signature based
-on the maqam group.
-
-For example, you can set the key signature to do sharp, mi semi-flat, and
-sol flat as follows :
-
-@lilypond[quote,verbatim]
-\include "arabic.ly"
-\relative re' {
- \set Staff.keySignature = #`( (0 . ,SHARP) (2 . ,SEMI-FLAT) (4 . ,FLAT) )
- re misb fa solb la si dod re sisb la solb fa misb re
-}
-@end lilypond
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{non-traditional-key-signatures.ly}
@seealso
Internals Reference:
@rinternals{KeySignature}.
+Snippets:
+@rlsr{World music},
+@rlsr{Pitches}.
+
+
@node Arabic time signatures
@unnumberedsubsubsec Arabic time signatures
@cindex Semai form
@cindex taqasim
-Some Arabic and Turkish music classical forms such as Semai use
-unusual time signatures such as 10/8. This may lead to an
-automatic grouping of notes that is quite different from existing
-typeset music. You can override this by switching off automatic
-beaming, and grouping the notes manually using @code{[ ]} to
-surround grouped notes, as described in @ref{Manual beams}.
+Some Arabic and Turkish music classical forms such as
+@notation{Semai} use unusual time signatures such as 10/8. This
+may lead to an automatic grouping of notes that is quite different
+from existing typeset music, where notes may not be grouped on the
+beat, but in a manner that is difficult to match by adjusting
+automatic beaming. You can override this by switching off
+automatic beaming and beaming the notes manually. Where matching
+existing typeset music is not an issue, you may still want to
+adjust the beaming behaviour and/or using compound time
+signatures.
+
+@snippets
-For improvisations or taqasim which are temporarily free, the time
-signature can be omitted, and @code{\cadenzaOn} can be used.
-You might need to adjust the accidental style, since the absence
-of bar lines will cause the accidental to be marked only once:
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{compound-time-signatures.ly}
-@example
-#(set-accidental-style 'forget)
-@end example
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{arabic-improvisation.ly}
@seealso
@ref{Manual beams},
@ref{Automatic beams},
@ref{Unmetered music},
-@ref{Automatic accidentals}.
+@ref{Automatic accidentals},
+@ref{Setting automatic beam behavior},
+@ref{Time signature}.
-@node References for Arabic music
-@unnumberedsubsubsec References for arabic music
+Snippets:
+@rlsr{World music}.
+
+
+@node Arabic music example
+@unnumberedsubsubsec Arabic music example
+
+@cindex Arabic music example
+@cindex Arabic music template
+@cindex Template Arabic music
+
+Here is a template that also uses the start of a Turkish Semai
+that is familiar in Arabic music education in order to illustrate
+some of the peculiarities of Arabic music notation, such as medium
+intervals and unusual modes that are discussed in this section.
+
+@lilypond[quote,verbatim]
+\include "arabic.ly"
+\score {
+ \relative re' {
+ \set Staff.extraNatural = ##f
+ \set Staff.autoBeaming = ##f
+ \key re \bayati
+ \time 10/8
+
+ re4 re'8 re16 [misb re do] sisb [la sisb do] re4 r8
+ re16 [misb do re] sisb [do] la [sisb sol8] la [sisb] do [re] misb
+ fa4 fa16 [misb] misb8. [re16] re8 [misb] re [do] sisb
+ do4 sisb8 misb16 [re do sisb] la [do sisb la] la4 r8
+ }
+ \header {
+ title = "Semai Muhayer"
+ composer = "Jamil Bek"
+ }
+}
+@end lilypond
+
+@seealso
+
+Snippets:
+@rlsr{World music}
+
+
+
+@node Further reading
+@unnumberedsubsubsec Further reading
@enumerate
GRAND DOCUMENTATION PROJECT
Trevor Daniels - Assistant Documentation Editor
-Eyolf Østrem - NR Rewriter
-Jay Hamilton - NR Rewriter
-Till Retting - NR Rewriter
-Ralph Palmer - NR Rewriter
-Patrick McCarty - NR Rewriter
-Andrew Hawryluk - NR Rewriter
-Jonathan Kulp - NR Rewriter
-Kurt Kroon - Glossary Updates
+Andrew Hawryluk - NR work
+Carl Sorenseon - NR work
+Eyolf Østrem - NR work
+Francisco Vila - NR work
+Jay Hamilton - NR work
+Jonathan Kulp - NR work
+Joseph Harfouch - NR work
+Patrick McCarty - NR work
+Ralph Palmer - NR work
+Till Retting - NR work
+Kurt Kroon - Glossary Updates, NR work
Alard de Boer - Formatting
Michael Rasmussen - Formatting
Trevor Baca - Inspirational Headwords
Reinhold Kainhofer - Technical Aid
-Neil Puttock - Snippet Editor
+Neil Puttock - Snippet Editor, Technical Aid
TRANSLATORS
PACKAGE_NAME=LilyPond
MAJOR_VERSION=2
MINOR_VERSION=11
-PATCH_LEVEL=53
+PATCH_LEVEL=55
MY_PATCH_LEVEL=
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "keyboards"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "chords, ancient-notation, contexts-and-engravers"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "pitches, staff-notation, vocal-music"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "staff-notation, contexts-and-engravers, breaks"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "staff-notation, contexts-and-engravers"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "chords"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "rhythms, expressive-marks"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "rhythms, percussion"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "editorial-annotations, fretted-strings"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "fretted-strings"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "expressive-marks"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "titles"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "repeats"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "simultaneous-notes"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "text, vocal-music, spacing"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "expressive-marks"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "text, paper-and-layout, titles"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "text, vocal-music"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "text"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "tweaks-and-overrides, paper-and-layout, spacing"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "editorial-annotations, fretted-strings, spacing"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "pitches, vocal-music"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "editorial-annotations, tweaks-and-overrides"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "ancient-notation"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "ancient-notation, template"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "ancient-notation, template"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "ancient-notation"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "pitches, editorial-annotations"
--- /dev/null
+%% Do not edit this file; it is auto-generated from input/new
+%% This file is in the public domain.
+\version "2.11.55"
+
+\header {
+ lsrtags = "world-music"
+ texidoc = "For improvisations or @emph{taqasim} which are
+temporarily free, the time signature can be omitted and
+@code{\cadenzaOn} can be used. Adjusting the accidental style
+might be required, since the absence of bar lines will cause the
+accidental to be marked only once. Here is an example of what
+could be the start of a @emph{hijaz} improvisation:"
+doctitle = "Arabic improvisation"
+} % begin verbatim
+
+\include "arabic.ly"
+
+\relative sol' {
+ \key re \kurd
+ #(set-accidental-style 'forget)
+ \cadenzaOn
+ sol4 sol sol sol fad mib sol1 fad8 mib re4. r8 mib1 fad sol
+}
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "rhythms"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "rhythms"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "rhythms, breaks"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "editorial-annotations, text"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "winds"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.52"
+\version "2.11.55"
\header {
texidoces = "
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "expressive-marks, tweaks-and-overrides"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "expressive-marks, text"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "expressive-marks, unfretted-strings"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "simultaneous-notes, editorial-annotations, tweaks-and-overrides"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "chords"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.52"
+\version "2.11.55"
\header {
doctitlees = "Cambiar la forma de los silencios multicompás"
texidoces = "
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "contexts-and-engravers, midi"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "simultaneous-notes"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "tweaks-and-overrides"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.52"
+\version "2.11.55"
\header {
texidoces = "
Se puede modificar el texto empleado para los crescendos y
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "expressive-marks, editorial-annotations"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "expressive-marks"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "chords"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "text, tweaks-and-overrides"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "staff-notation"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "chords"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "staff-notation, tweaks-and-overrides, paper-and-layout"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "rhythms"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.52"
+\version "2.11.55"
\header {
texidoces = "
La propiedad @code{measureLength}, junto con
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "rhythms, vocal-music, ancient-notation, contexts-and-engravers"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "chords"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.52"
+\version "2.11.55"
\header {
lsrtags = "paper-and-layout" % a new tag like "Mixing text and music" or
% "Special output" might be more adequate -jm
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "simultaneous-notes, chords, keyboards"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "expressive-marks, text"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "simultaneous-notes, text"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "rhythms"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "rhythms"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "expressive-marks"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "editorial-annotations, chords, keyboards, fretted-strings"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "expressive-marks, tweaks-and-overrides"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "rhythms, tweaks-and-overrides"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "pitches"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "expressive-marks"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "staff-notation, editorial-annotations, contexts-and-engravers, paper-and-layout"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "expressive-marks"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "expressive-marks"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "expressive-marks, text"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.52"
+\version "2.11.55"
\header {
texidoces = "
A diferencia de las inscripciones de texto, las lestras de ensayo
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "expressive-marks, keyboards, unfretted-strings"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "expressive-marks, text, tweaks-and-overrides"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "ancient-notation, tweaks-and-overrides"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "editorial-annotations"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "vocal-music, keyboards, unfretted-strings, midi"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "text, paper-and-layout, titles"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.52"
+\version "2.11.55"
\header {
lsrtags = "staff-notation,tweaks-and-overrides"
texidoc = "If there is only one staff in one of the staff types
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "pitches"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.52"
+\version "2.11.55"
\header {
lsrtags = "tweaks-and-overrides"
texidoc = "
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.52"
+\version "2.11.55"
\header {
lsrtags = "tweaks-and-overrides"
texidoc = "
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "editorial-annotations, text"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "contexts-and-engravers"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "rhythms"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "rhythms"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "fretted-strings"
"
doctitle = "Faking a hammer in tablatures"
} % begin verbatim
-\score{
+\score {
\new TabStaff {
\relative c'' {
c4( d) d( d)
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "keyboards, tweaks-and-overrides"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "fretted-strings"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "fretted-strings"
texidoc = "
-For flamenco guitar, special notations are used:
+For flamenco guitar, special notation is used:
-* a golpe symbol to indicate a slap on the guitar body with the nail
-of the ring finger, * an arrow to indicate (the direction of) strokes,
-* different letters for fingering (\"p\": thumb, \"i\": index finger,
-\"m\": middle finger, \"a\": ring finger and \"x\": little finger) *
-3- and 4-finger rasgueados; stroke upwards with all fingers, ending
-with an up- and down using the index finger * abanicos; strokes (in
-tuples) with thumb (down), little and index finger (both up). There's
-also an abanico 2 where middle and ring finger are used instead of the
-little finger. * alza pua fast playing with the thumb
+* a golpe symbol to indicate a slap on the guitar body with the nail of
+the ring finger
+* an arrow to indicate (the direction of) strokes
-Most figures use arrows in combination with fingering and with abanicos
-and rasgueados, noteheads are printed only for the first chord.>This
-snippet contains some header-like code that can be copied as
-@samp{flamenco.ly} and included in your source.
+
+* different letters for fingering (\"p\": thumb, \"i\": index finger,
+\"m\": middle finger, \"a\": ring finger and \"x\": little finger)
+
+
+* 3- and 4-finger rasgueados; stroke upwards with all fingers, ending
+with an up- and down using the index finger
+
+
+* abanicos: strokes (in tuples) with thumb (down), little and index
+finger (both up). There's also an abanico 2 where middle and ring
+finger are used instead of the little finger.
+
+
+* alza pua: fast playing with the thumb
+
+
+Most figures use arrows in combination with fingering; with abanicos
+and rasgueados, noteheads are printed only for the first chord.
+
+This snippet contains some header-like code that can be copied as
+@samp{flamenco.ly} and included in source files.
"
doctitle = "Flamenco notation"
} % begin verbatim
-% This snippet was originally made for LilyPond 2.11.41
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%% Cut here ----- Start 'flamenco.ly'
stroke
"}
-
-
% Golpe symbol
golpe = \markup { \postscript #"
0.2 setlinewidth
stroke
"}
-strokeUpGolpe = \markup { \column { \golpe \line { \strokeUp }}}
-iUpGolpe = \markup { \column { \golpe \line { \small i } \line { \strokeUp }}}
+strokeUpGolpe = \markup { \column { \golpe \line { \strokeUp }}}
+iUpGolpe = \markup { \column { \golpe \line { \small i } \line { \strokeUp }}}
-% Stokes for all fingers
+% Strokes for all fingers
pUp = \markup { \column { \small p \line { \strokeUp }}}
pDown = \markup { \column { \small p \line { \strokeDown }}}
iUp = \markup { \column { \small i \line { \strokeUp }}}
\score {
\new StaffGroup <<
- \context Staff = part <<
+ \context Staff = "part" <<
\clef G
\transpose c c'
{
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "simultaneous-notes, tweaks-and-overrides"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "rhythms"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "text, vocal-music"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.53"
+\version "2.11.55"
\header {
lsrtags = "fretted-strings,tweaks-and-overrides"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "pitches"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "editorial-annotations"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "editorial-annotations"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "rhythms, percussion"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "expressive-marks"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "fretted-strings, tweaks-and-overrides"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "text, vocal-music"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.52"
+\version "2.11.55"
\header {
texidoces = "
Los «incipit» se pueden escribir utilizando el grob del nombre del
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "keyboards"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.52"
+\version "2.11.55"
\header {
lsrtags = "expressive-marks,tweaks-and-overrides"
texidoc = "
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "staff-notation"
--- /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.55"
+
+\header {
+ lsrtags = "repeats"
+
+ texidoc = "
+Isolated percents can also be printed. This is done by entering a
+multi-measure rest with a different print function:
+
+"
+ doctitle = "Isolated percent repeats"
+} % begin verbatim
+\relative c'' {
+ \override MultiMeasureRest #'stencil
+ = #ly:multi-measure-rest::percent
+ R1
+}
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "keyboards, percussion, fretted-strings, template"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "expressive-marks, keyboards, fretted-strings"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.53"
+\version "2.11.55"
\header {
lsrtags = "staff-notation,fretted-strings"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.52"
+\version "2.11.55"
\header {
texidoces = "
Se pueden aplicar puntas de flecha a los elementos de extensión de
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.52"
+\version "2.11.55"
\header {
texidoces = "
El «Makam» es un tipo de melodÃa de TurquÃa que
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.52"
+\version "2.11.55"
\header {
lsrtags = "rhythms,tweaks-and-overrides"
texidoc = "
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "staff-notation, editorial-annotations"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "chords"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "rhythms, tweaks-and-overrides"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.52"
+\version "2.11.55"
\header {
lsrtags = "text"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "repeats, staff-notation, editorial-annotations"
doctitlees = "Contador de compases"
texidoc = "
-This snippet provides an workaround for emitting measure counters using
+This snippet provides a workaround for emitting measure counters using
transparent percent repeats.
"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "staff-notation, ancient-notation, contexts-and-engravers, tweaks-and-overrides"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "rhythms"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.53"
+\version "2.11.55"
\header {
lsrtags = "staff-notation, fretted-strings"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "expressive-marks"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "rhythms"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "staff-notation, contexts-and-engravers, tweaks-and-overrides"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "pitches, staff-notation"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "pitches, text"
doctitle = "Ottava text"
} % begin verbatim
{
- #(set-octavation 1)
+ \ottava #1
\set Staff.ottavation = #"8"
c''1
- #(set-octavation 0)
+ \ottava #0
c'1
- #(set-octavation 1)
+ \ottava #1
\set Staff.ottavation = #"Text"
c''1
}
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.52"
+\version "2.11.55"
\header {
lsrtags = "text"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.52"
+\version "2.11.55"
\header {
lsrtags = "spacing"
texidoc = "Page labels may be placed inside music or at top-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.55"
+
+\header {
+ lsrtags = "repeats"
+
+ texidoc = "
+Measure repeats of more than two repeats can get a counter when the
+convenient property is switched, as shown in this example:
+
+"
+ doctitle = "Percent repeat counter"
+} % begin verbatim
+\relative c'' {
+ \set countPercentRepeats = ##t
+ \repeat percent 4 { c1 }
+}
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "percussion"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "rhythms"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "keyboards, template"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.52"
+\version "2.11.55"
\header {
texidoces = "
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "text, keyboards, template"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "vocal-music, keyboards, template"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "fretted-strings"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "fretted-strings"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.52"
+\version "2.11.55"
\header {
doctitlees = "Posicionar los silencios multicompás"
texidoces = "
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "repeats, breaks"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "pitches"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "pitches"
--- /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.55"
+
+\header {
+ lsrtags = "repeats, tweaks-and-overrides"
+
+ texidoc = "
+A @code{|:} bar line can be printed at the beginning of a piece, by
+overriding the relevant property:
+
+"
+ doctitle = "Printing a repeat sign at the beginning of a piece"
+} % begin verbatim
+\relative c'' {
+ \once \override Score.BreakAlignment #'break-align-orders =
+ #(make-vector 3 '(instrument-name
+ left-edge
+ ambitus
+ span-bar
+ breathing-sign
+ clef
+ key-signature
+ time-signature
+ staff-bar
+ custos
+ span-bar))
+ \bar "|:"
+ c1
+ d1
+ d4 e f g
+}
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "expressive-marks"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "text"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "text"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "rhythms, expressive-marks, staff-notation, tweaks-and-overrides"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "rhythms, percussion"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "tweaks-and-overrides, spacing"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.52"
+\version "2.11.55"
\header {
texidoces = "Los pasajes citados tienen en cuenta la
transposición de la fuente tanto como la del destino. En este
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.52"
+\version "2.11.55"
\header {
lsrtags = "staff-notation"
texidoc = "With @code{\\quote}, fragments of previously entered
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "staff-notation, tweaks-and-overrides, breaks"
measure-counter.ly
+adding-volta-brackets-to-additional-staves.ly
+isolated-percent-repeats.ly
+volta-text-markup-using-repeatcommands.ly
+printing-a-repeat-sign-at-the-beginning-of-a-piece.ly
positioning-segno-and-coda-with-line-break.ly
shortening-volta-brackets.ly
volta-multi-staff.ly
+percent-repeat-counter.ly
volta-below-chords.ly
-volta-text-markup-using-repeatcommands.ly
-adding-volta-brackets-to-additional-staves.ly
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "rhythms, ancient-notation, tweaks-and-overrides"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "rhythms, tweaks-and-overrides"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "template"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.52"
+\version "2.11.55"
\header {
texidoces = "
Si la nota que da fin a un regulador cae sobre la primera parte de
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "expressive-marks"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "repeats"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "chords"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "chords"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "vocal-music, chords, template"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "vocal-music, chords, template"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "chords, template"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "vocal-music, template"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "template"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "rhythms, vocal-music"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "rhythms, vocal-music"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "fretted-strings"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "unfretted-strings, template"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "unfretted-strings, template"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.52"
+\version "2.11.55"
\header {
lsrtags = "simultaneous-notes,tweaks-and-overrides"
texidoc = "
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.52"
+\version "2.11.55"
\header {
lsrtags = "paper-and-layout"
texidoc = "A table of contents is included using
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "rhythms, text"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "staff-notation, tweaks-and-overrides"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.52"
+\version "2.11.55"
\header {
doctitlees = "Transportar música con el menor número de alteraciones"
texidoces = "
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "pitches, staff-notation, tweaks-and-overrides"
drawing-boxes-around-grobs.ly
manually-controlling-beam-positions.ly
custodes.ly
+printing-a-repeat-sign-at-the-beginning-of-a-piece.ly
creating-text-spanners.ly
rest-styles.ly
how-to-change-fret-diagram-position.ly
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "staff-notation, contexts-and-engravers"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "expressive-marks"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.52"
+\version "2.11.55"
\header {
lsrtags = "tweaks-and-overrides"
texidoc = "
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "rhythms"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.52"
+\version "2.11.55"
%% Edit this file using a Unicode aware editor, such as GVIM, GEDIT, Emacs
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "tweaks-and-overrides, spacing"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "expressive-marks"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "vocal-music, tweaks-and-overrides, spacing"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "vocal-music, keyboards, template"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "text, vocal-music, contexts-and-engravers, template"
%% 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.52"
+\version "2.11.55"
\header {
lsrtags = "vocal-music, template"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.52"
+\version "2.11.55"
\header {
texidoces = "
Mediante la adición del grabador @code{Volta_engraver} al
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.52"
+\version "2.11.55"
\header {
lsrtags = "repeats,staff-notation"
texidoc = "By adding the @code{Volta_engraver} to the relevant
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.52"
+\version "2.11.55"
\header {
lsrtags = "repeats"
it in the command list using the Scheme syntax
@w{@code{#(list (list 'volta textIdentifier))}}. Start- and end-repeat commands
can be added as separate list elements:"
-doctitle = "Volta text markup using @code{\\repeatCommands}"
+doctitle = "Volta text markup using @code{repeatCommands}"
} % begin verbatim
voltaAdLib = \markup { 1. 2. 3... \text \italic { ad lib. } }
makam.ly
+arabic-improvisation.ly
\Score
\remove "Bar_number_engraver"
}
- \context {
- \Staff
- \remove "Time_signature_engraver"
- }
}
fermataLong = \markup {
% Movt II, Andante con moto
% Measures 9 - 16
-\layout {
- \context {
- \Staff
- \remove "Time_signature_engraver"
- }
-}
-
\new PianoStaff <<
\new Staff = RH {
#(ly:make-moment 1 40)
%\override SpacingSpanner #'strict-grace-spacing = ##t
}
- \context {
- \Staff
- \remove "Time_signature_engraver"
- }
}
\new PianoStaff <<
}
}
+trillflat =
+ \once \override TrillSpanner #'bound-details #'left #'text =
+ #(markup #:translate-scaled '(-0.05 . -1)
+ #:concat (#:musicglyph "scripts.trill"
+ #:translate '(-0.5 . 1.9) #:fontsize -7 #:flat))
+
+
\new PianoStaff <<
% RH
|
+ \trillflat
af''4. \startTrillSpan
~
af''8.
|
d''8. \stopTrillSpan
+ \trillflat
d''4. \startTrillSpan
~
|
+ \trillflat
d''4. \startTrillSpan
~
d''8.
--- /dev/null
+\version "2.11.54"
+
+\header {
+ lsrtags = "world-music"
+ texidoc = "For improvisations or @emph{taqasim} which are
+temporarily free, the time signature can be omitted and
+@code{\cadenzaOn} can be used. Adjusting the accidental style
+might be required, since the absence of bar lines will cause the
+accidental to be marked only once. Here is an example of what
+could be the start of a @emph{hijaz} improvisation:"
+doctitle = "Arabic improvisation"
+}
+
+\include "arabic.ly"
+
+\relative sol' {
+ \key re \kurd
+ #(set-accidental-style 'forget)
+ \cadenzaOn
+ sol4 sol sol sol fad mib sol1 fad8 mib re4. r8 mib1 fad sol
+}
it in the command list using the Scheme syntax
@w{@code{#(list (list 'volta textIdentifier))}}. Start- and end-repeat commands
can be added as separate list elements:"
-doctitle = "Volta text markup using @code{\\repeatCommands}"
+doctitle = "Volta text markup using @code{repeatCommands}"
}
voltaAdLib = \markup { 1. 2. 3... \text \italic { ad lib. } }
texidoc = "Excercise all output functions"
}
-\version "2.11.51"
+\version "2.11.53"
\paper { ragged-right = ##t }
\new StaffGroup \new PianoStaff <<
\new Staff
{
- #(set-octavation 1)
+ \ottava #1
\times 2/3 { c'8[\< f]( f''\!) }
- #(set-octavation 0)
+ \ottava #0
<f,, \5>4
\override TextScript #'color = #red
but they don't confuse one another."
}
-\version "2.11.51"
+\version "2.11.53"
\layout { ragged-right = ##t}
\relative c'' {
\clef "alto"
a b c a
- #(set-octavation 1)
+ \ottava #1
a b c a
\clef "bass"
a b c a
- #(set-octavation 2)
+ \ottava #2
a b c a
\clef "treble"
- #(set-octavation -1)
+ \ottava #-1
a b c a
}
}
-\version "2.11.51"
+\version "2.11.53"
+
\relative {
\override Staff.OttavaBracket #'dash-period = #0.1
\override Score.OttavaBracket #'dash-fraction = #1
- #(set-octavation 1)
+ \ottava #1
c4 c
}
}
-\version "2.11.51"
+\version "2.11.53"
\layout { ragged-right = ##t }
\relative c''' {
a2 b
- #(set-octavation 1)
+ \ottava #1
a2 b \time 3/4 \break c''2. \break
a
- #(set-octavation 0)
+ \ottava #0
g,,2 b4 c2 a4
}
texidoc =
"Both edge heights of an ottava bracket can be specified."
}
-\version "2.11.51"
+
+\version "2.11.53"
\layout { ragged-right = ##t}
\relative c''' {
%standard ottavation
- #(set-octavation 1)
+ \ottava #1
a b c
- #(set-octavation 0)
+ \ottava #0
a
%override the left edge height to produce standard text with a left edge
- #(set-octavation 1)
+ \ottava #1
\once \override Staff.OttavaBracket #'edge-height = #'(1.2 . 1.2)
a b c
- #(set-octavation 0)
+ \ottava #0
a
% Look! we can make them go up!
- #(set-octavation 1)
+ \ottava #1
\once \override Staff.OttavaBracket #'edge-height = #'(-1 . -1)
a b c
- #(set-octavation 0)
+ \ottava #0
a
% and have them go in different directions
- #(set-octavation 1)
+ \ottava #1
\once \override Staff.OttavaBracket #'edge-height = #'(-1.2 . 1.2)
a b c
- #(set-octavation 0)
+ \ottava #0
a
}
\header
{
texidoc = "Ottava brackets are supported, through the
-use of the scheme function @code{set-octavation}.
+use of the music function @code{\\ottava}.
The spanner should go below a staff for 8va bassa, and the ottavation
markup can be tuned with @code{Staff.ottavation}.
"
}
-\version "2.11.51"
+
+\version "2.11.53"
%% . There must be a minimum distance between the octavation line and the
%% topmost staff line, taking into account the height of the closing
\relative c''' {
a b c a
- #(set-octavation 1)
+ \ottava #1
a b c a
- #(set-octavation 0)
- #(set-octavation 2)
+ \ottava #0
+ \ottava #2
a b c a
- #(set-octavation 0)
- #(set-octavation -1)
+ \ottava #0
+ \ottava #-1
a b c a
- #(set-octavation 0)
+ \ottava #0
\break
a,
- #(set-octavation 1)
+ \ottava #1
\set Staff.ottavation = #"8"
b
- #(set-octavation 0)
+ \ottava #0
c a
- #(set-octavation -1)
+ \ottava #-1
\set Staff.ottavation = \markup { \concat { 8 \tiny \raise #0.8 vb }}
b a g
- #(set-octavation 0)
+ \ottava #0
c
- #(set-octavation -1)
+ \ottava #-1
\set Staff.ottavation = #"8"
c,,16
- #(set-octavation 0)
+ \ottava #0
c'16
- #(set-octavation -1)
+ \ottava #-1
\set Staff.ottavation = #"8"
g,,16
}
\header
{
texidoc = "horizontal scripts are ordered, so they do not overlap.
-The order may be set with script-priority."
+The order may be set with script-priority.
+
+The scripts should not be folded under the time signature.
+"
}
\version "2.11.51"
--- /dev/null
+\version "2.11.53"
+
+\header { texidoc = "
+
+Tie detail property multi-tie-region-size controls how many variations
+are tried for the extremal ties in a chord.
+
+
+" }
+
+\relative c'' {
+ \time 4/4 <bis bis>1 ~ \break
+
+ \override Tie #'details #'multi-tie-region-size = #1
+ \time 3/4 <bis bis>2.~ \break
+ \time 4/4 <bis bis>1
+}
+
+\paper {
+ ragged-right = ##t
+ debug-tie-scoring = ##t
+}
int prefix_set = scm_to_int (primitive->get_property ("prefix-set"));
if (prefix_set & PES_OR_FLEXA)
- if (!i) // ligature may not start with 2nd head of pes or flexa
- primitive->warning (_ ("cannot apply `\\~' on first head of ligature"));
- else if (pitch > prev_pitch) // pes
- {
- prev_context_info |= PES_LOWER;
- context_info |= PES_UPPER;
- }
- else if (pitch < prev_pitch) // flexa
- {
- prev_context_info |= FLEXA_LEFT;
- context_info |= FLEXA_RIGHT;
- }
- else // (pitch == prev_pitch)
- primitive->warning (_ ("cannot apply `\\~' on heads with identical pitch"));
+ {
+ if (!i) // ligature may not start with 2nd head of pes or flexa
+ primitive->warning (_ ("cannot apply `\\~' on first head of ligature"));
+ else if (pitch > prev_pitch) // pes
+ {
+ prev_context_info |= PES_LOWER;
+ context_info |= PES_UPPER;
+ }
+ else if (pitch < prev_pitch) // flexa
+ {
+ prev_context_info |= FLEXA_LEFT;
+ context_info |= FLEXA_RIGHT;
+ }
+ else // (pitch == prev_pitch)
+ primitive->warning (_ ("cannot apply `\\~' on heads with identical pitch"));
+ }
if (prev_prefix_set & DEMINUTUM)
context_info |= AFTER_DEMINUTUM;
#include <set>
typedef map< Tuple<int,4>, Tie_configuration *> Tie_configuration_map;
+
struct Tie_configuration_variation
{
- int index_;
- Tie_configuration *suggestion_;
- Tie_configuration_variation ();
+ vector<pair<int, Tie_configuration *> > index_suggestion_pairs_;
+ void add_suggestion(int index, Tie_configuration* suggestion)
+ {
+ index_suggestion_pairs_.push_back (make_pair (index, suggestion));
+ }
};
typedef map < Tuple<int, 2>, Skyline> Chord_outline_map;
return MARKUP_HEAD_SCM0_MARKUP1;
else if (tag == ly_symbol2scm ("scheme0-scheme1-markup2"))
return MARKUP_HEAD_SCM0_SCM1_MARKUP2;
+ else if (tag == ly_symbol2scm ("scheme0-scheme1-markup2-markup3"))
+ return MARKUP_HEAD_SCM0_SCM1_MARKUP2_MARKUP3;
else if (tag == ly_symbol2scm ("scheme0-markup1-markup2"))
return MARKUP_HEAD_SCM0_MARKUP1_MARKUP2;
else if (tag == ly_symbol2scm ("scheme0-scheme1-scheme2"))
{
if (x < 0)
return 1.0;
- return max (- epsilon * (x - threshold) / ((x + epsilon) * threshold), 0.0);
+ return max (- epsilon * (x - threshold) / ((x + epsilon) * threshold), 0.0);
}
/*
%token <scm> MARKUP_HEAD_SCM0_MARKUP1
%token <scm> MARKUP_HEAD_SCM0_SCM1
%token <scm> MARKUP_HEAD_SCM0_SCM1_MARKUP2
+%token <scm> MARKUP_HEAD_SCM0_SCM1_MARKUP2_MARKUP3
%token <scm> MARKUP_HEAD_SCM0_MARKUP1_MARKUP2
%token <scm> MARKUP_HEAD_SCM0_SCM1_SCM2
%token <scm> MARKUP_LIST_HEAD_EMPTY
| MARKUP_HEAD_SCM0_MARKUP1_MARKUP2 embedded_scm markup markup {
$$ = scm_list_4 ($1, $2, $3, $4);
}
+ | MARKUP_HEAD_SCM0_SCM1_MARKUP2_MARKUP3 embedded_scm embedded_scm markup markup {
+ $$ = scm_list_5 ($1, $2, $3, $4, $5);
+ }
| MARKUP_HEAD_EMPTY {
$$ = scm_list_1 ($1);
}
*/
/* Ugh: This declaration is duplicated in piano-pedal-performer */
-typedef enum Pedal_type {
+enum Pedal_type {
SOSTENUTO,
SUSTAIN,
UNA_CORDA,
if (!tie_position_dir_ok)
ties_conf->add_score (details_.same_dir_as_stem_penalty_, "tie/pos dir");
}
- while (flip (&d) != LEFT);
-
return penalty;
}
Real length = conf->attachment_x_.length ();
+ Real length_penalty
+ = peak_around (0.33 * details_.min_length_, details_.min_length_, length);
conf->add_score (details_.min_length_penalty_factor_
- * peak_around (0.33 * details_.min_length_, details_.min_length_, length),
- "minlength");
+ * length_penalty, "minlength");
Real tip_pos = conf->position_ + conf->delta_y_ / 0.5 * details_.staff_space_;
Real tip_y = tip_pos * details_.staff_space_ * 0.5;
"pos symmetry");
}
}
+
/*
Generate with correct X-attachments and beziers, copying delta_y_
from TIES_CONFIG if necessary.
for (vsize i = 0; i < vars.size (); i++)
{
Ties_configuration variant (base);
- variant[vars[i].index_] = *vars[i].suggestion_;
+ for (vsize j = 0; j < vars[i].index_suggestion_pairs_.size(); j++)
+ variant[vars[i].index_suggestion_pairs_[j].first] = *vars[i].index_suggestion_pairs_[j].second;
variant.reset_score ();
score_ties (&variant);
}
}
-Tie_configuration_variation::Tie_configuration_variation ()
-{
- index_ = 0;
- suggestion_ = 0;
-}
-
vector<Tie_configuration_variation>
Tie_formatting_problem::generate_extremal_tie_variations (Ties_configuration const &ties) const
{
vector<Tie_configuration_variation> vars;
- Direction d = DOWN;
- do
+ Direction d = DOWN;
+ for (int i = 1; i <= details_.multi_tie_region_size_; i++)
{
- if (boundary (ties, d, 0).dir_ == d
- && !boundary (specifications_, d, 0).has_manual_position_)
- for (int i = 1; i <= details_.multi_tie_region_size_; i++)
- {
- Tie_configuration_variation var;
- var.index_ = (d == DOWN) ? 0 : ties.size () - 1;
- var.suggestion_ = get_configuration (boundary (ties, d, 0).position_
- + d * i, d,
- boundary (ties, d, 0).column_ranks_,
- true);
- vars.push_back (var);
- }
+ Drul_array<Tie_configuration*> configs (0, 0);
+ do
+ {
+ const Tie_configuration &config = boundary (ties, d, 0);
+ if (config.dir_ == d
+ && !boundary (specifications_, d, 0).has_manual_position_)
+ {
+ Tie_configuration_variation var;
+ configs[d] = get_configuration (config.position_ + d * i, d,
+ config.column_ranks_,
+ true);
+ var.add_suggestion((d == DOWN) ? 0 : ties.size () - 1,
+ configs[d]);
+ vars.push_back (var);
+ }
+ }
+ while (flip (&d) != DOWN);
+ if (configs[LEFT] && configs[RIGHT])
+ {
+ Tie_configuration_variation var;
+ var.add_suggestion(0, configs[DOWN]);
+ var.add_suggestion(ties.size() - 1, configs[UP]);
+ vars.push_back (var);
+ }
}
- while (flip (&d) != DOWN);
return vars;
}
|| d == specifications_[0].manual_dir_)
{
Tie_configuration_variation var;
- var.index_ = 0;
- var.suggestion_ = get_configuration (p,
- d, specifications_[0].column_ranks_,
- !specifications_[0].has_manual_delta_y_);
+ var.add_suggestion(0,
+ get_configuration (p,
+ d, specifications_[0].column_ranks_,
+ !specifications_[0].has_manual_delta_y_));
vars.push_back (var);
}
}
if (!specifications_[i].has_manual_dir_)
{
Tie_configuration_variation var;
- var.index_ = i;
- var.suggestion_ = get_configuration (specifications_[i].position_
+ var.add_suggestion(i,
+ get_configuration (specifications_[i].position_
- ties[i].dir_,
- ties[i].dir_,
ties[i].column_ranks_,
!specifications_[i].has_manual_delta_y_
- );
+ ));
vars.push_back (var);
}
if (!specifications_[i-1].has_manual_dir_)
{
Tie_configuration_variation var;
- var.index_ = i-1;
- var.suggestion_ = get_configuration (specifications_[i-1].position_
- - ties[i-1].dir_,
- - ties[i-1].dir_,
- specifications_[i-1].column_ranks_,
- !specifications_[i-1].has_manual_delta_y_
- );
+ var.add_suggestion(i-1,
+ get_configuration (specifications_[i-1].position_
+ - ties[i-1].dir_,
+ - ties[i-1].dir_,
+ specifications_[i-1].column_ranks_,
+ !specifications_[i-1].has_manual_delta_y_));
vars.push_back (var);
}
&& ties[i-1].dir_ == DOWN)
{
Tie_configuration_variation var;
- var.index_ = i-1;
- var.suggestion_ = get_configuration (specifications_[i-1].position_ - 1, DOWN,
- specifications_[i-1].column_ranks_,
- !specifications_[i-1].has_manual_delta_y_
-
- );
+ var.add_suggestion(i-1,
+ get_configuration (specifications_[i-1].position_ - 1, DOWN,
+ specifications_[i-1].column_ranks_,
+ !specifications_[i-1].has_manual_delta_y_
+ ));
vars.push_back (var);
}
if (i == ties.size () && !specifications_[i].has_manual_position_
&& ties[i].dir_ == UP)
{
Tie_configuration_variation var;
- var.index_ = i;
- var.suggestion_ = get_configuration (specifications_[i].position_
- + 1, UP,
- specifications_[i].column_ranks_,
- !specifications_[i].has_manual_delta_y_
- );
+ var.add_suggestion(i,
+ get_configuration (specifications_[i].position_
+ + 1, UP,
+ specifications_[i].column_ranks_,
+ !specifications_[i].has_manual_delta_y_
+ ));
vars.push_back (var);
}
}
&& !specifications_[i].has_manual_position_)
{
Tie_configuration_variation var;
- var.index_ = i;
- var.suggestion_ = get_configuration (ties[i].position_ + ties[i].dir_,
- ties[i].dir_,
- ties[i].column_ranks_,
- !specifications_[i].has_manual_delta_y_
- );
+ var.add_suggestion(i,
+ get_configuration (ties[i].position_ + ties[i].dir_,
+ ties[i].dir_,
+ ties[i].column_ranks_,
+ !specifications_[i].has_manual_delta_y_
+ ));
vars.push_back (var);
}
(make-music 'RelativeOctaveCheck
'origin location
'pitch (pitch-of-note pitch-note)
- ))
+ ))
+
+ottava = #(define-music-function (parser location octave) (number?)
+ (_i "set the octavation ")
+ (make-ottava-set octave))
+
partcombine =
#(define-music-function (parser location part1 part2) (ly:music? ly:music?)
(make-part-combine-music parser
str = re.sub (r"infinite-spacing-height\s+=\s+##f", r"extra-spacing-height = #'(0 . 0)", str)
return str
+@rule ((2, 11, 55), "#(set-octavation oct) -> \\ottava #oct,\n\
+\\put-adjacent markup axis dir markup -> \\put-adjacent axis dir markup markup")
+def conv (str):
+ str = re.sub (r"#\(set-octavation (-*[0-9]+)\)", r"\\ottava #\1", str)
+ if re.search ('put-adjacent', str):
+ stderr_write (NOT_SMART % _ ("\\put-adjacent argument order.\n"))
+ stderr_write (_ ("Axis and direction now come before markups:\n"))
+ stderr_write (_ ("\\put-adjacent axis dir markup markup."))
+ return str
+
# Guidelines to write rules (please keep this at the end of this file)
#
# - keep at most one rule per version; if several conversions should be done,
dir = self.ly_octave_shift_indicator ()
value = ''
if dir:
- value = '#(set-octavation %s)' % dir
+ value = '\ottava #%s' % dir
return {
-1: value,
- 1: '#(set-octavation 0)'}.get (self.span_direction, '')
+ 1: '\ottava #0'}.get (self.span_direction, '')
class TrillSpanEvent (SpanEvent):
def ly_expression (self):
(ly:add-interface
'percent-repeat-interface
"Beat, Double and single measure repeats."
- '())
+ '(slope thickness))
(ly:add-interface
'piano-pedal-interface
(outer-tie-length-symmetry-penalty-factor . 10)
(vertical-distance-penalty-factor . 7)
(outer-tie-vertical-gap . 0.25)
- (multi-tie-region-size . 1)
+ (multi-tie-region-size . 3)
(single-tie-region-size . 4)
(between-length-limit . 1.0)))
thickness and padding around the markup; the @code{corner-radius} property
makes possible to define another shape for the corners (default is 1).
-@lilypond[quote,verbatim,fragment,relative=2]
+@lilypond[quote,verbatim,relative=2]
c4^\\markup {
\\rounded-box {
Overtura
@cindex padding text
@cindex putting space around text
-Add space around a markup object."
+Add space around a markup object.
+
+@lilypond[verbatim,quote]
+\\markup {
+ \\box {
+ default
+ }
+ \\hspace #2
+ \\box {
+ \\pad-around #1 {
+ padded
+ }
+ }
+}
+@end lilypond"
(let*
((stil (interpret-markup layout props arg))
(xext (ly:stencil-extent stil X))
Use a stencil as markup.
-@c FIXME works in .ly file, produces empty stencil in docs
@lilypond[verbatim,quote]
\\markup {
- \\stencil #(dimension-arrows '(15 . 0))
+ \\stencil #(make-circle-stencil 2 0 #t)
}
@end lilypond"
stil)
(number? markup?)
align
()
- "Add padding @var{amount} all around @var{arg}."
+ "Add padding @var{amount} all around @var{arg}.
+
+@lilypond[verbatim,quote]
+\\markup {
+ \\box {
+ default
+ }
+ \\hspace #2
+ \\box {
+ \\pad-around #0.5 {
+ padded
+ }
+ }
+}
+@end lilypond"
(let* ((m (interpret-markup layout props arg))
(x (ly:stencil-extent m X))
(y (ly:stencil-extent m Y)))
"
@cindex padding text horizontally
-Add padding @var{amount} around @var{arg} in the X@tie{}direction."
+Add padding @var{amount} around @var{arg} in the X@tie{}direction.
+
+@lilypond[verbatim,quote]
+\\markup {
+ \\box {
+ default
+ }
+ \\hspace #4
+ \\box {
+ \\pad-x #2 {
+ padded
+ }
+ }
+}
+@end lilypond"
(let* ((m (interpret-markup layout props arg))
(x (ly:stencil-extent m X))
(y (ly:stencil-extent m Y)))
(interval-widen x amount)
y)))
-(define-builtin-markup-command (put-adjacent layout props arg1 axis dir arg2)
- (markup? integer? ly:dir? markup?)
+(define-builtin-markup-command (put-adjacent layout props axis dir arg1 arg2)
+ (integer? ly:dir? markup? markup?)
align
()
"Put @var{arg2} next to @var{arg1}, without moving @var{arg1}."
(number-pair? number-pair? markup?)
align
()
- "Make @var{arg} take at least @var{x-ext}, @var{y-ext} space."
+ "Make @var{arg} take at least @var{x-ext}, @var{y-ext} space.
+
+@lilypond[verbatim,quote]
+\\markup {
+ \\box {
+ default
+ }
+ \\hspace #4
+ \\box {
+ \\pad-to-box #'(0 . 10) #'(0 . 3) {
+ padded
+ }
+ }
+}
+@end lilypond"
(let* ((m (interpret-markup layout props arg))
(x (ly:stencil-extent m X))
(y (ly:stencil-extent m Y)))
align
()
"Center @var{arg} horizontally within a box of extending
-@var{length}/2 to the left and right."
+@var{length}/2 to the left and right.
+
+@lilypond[quote,verbatim]
+\\new StaffGroup <<
+ \\new Staff {
+ \\set Staff.instrumentName = \\markup {
+ \\hcenter-in #12
+ Oboe
+ }
+ c''1
+ }
+ \\new Staff {
+ \\set Staff.instrumentName = \\markup {
+ \\hcenter-in #12
+ Bassoon
+ }
+ \\clef tenor
+ c'1
+ }
+>>
+@end lilypond"
(interpret-markup layout props
(make-pad-to-box-markup
(cons (/ length -2) (/ length 2))
(number->markletter-string number->mark-alphabet-vector num)))
(define-public (horizontal-slash-interval num forward number-interval mag)
- (ly:message "Mag step: ~a" mag)
(if forward
(cond ;((= num 6) (interval-widen number-interval (* mag 0.5)))
;((= num 5) (interval-widen number-interval (* mag 0.5)))
,(cdr num-x) ,(+ (interval-center num-y) dy))
num-x num-y)
#f)))
-(ly:message "Num: ~a, X-interval: ~a" num num-x)
(if (ly:stencil? slash-stencil)
(begin
; for some numbers we need to shift the slash/backslash up or down to make
(make-bezier-sandwich-list
(* size barre-start-string-coordinate)
(* size barre-end-string-coordinate)
- (* size (+ 1 (- top-fret fret) barre-fret-coordinate))
+ (* size (+ 2 (- top-fret (+ low-fret barre-fret-coordinate))))
(* size bezier-height)
(* size bezier-thick)
orientation)
(label-text
(cond
((equal? number-type 'roman-lower)
- (fancy-format #f "~(~:@r~)" base-fret))
+ (fancy-format #f "~(~@r~)" base-fret))
((equal? number-type 'roman-upper)
- (fancy-format #f "~:@r" base-fret))
+ (fancy-format #f "~@r" base-fret))
((equal? 'arabic number-type)
(fancy-format #f "~d" base-fret))
- (else (fancy-format #f "~(~:@r~)" base-fret)))))
+ (else (fancy-format #f "~(~@r~)" base-fret)))))
(if (eq? orientation 'normal)
(ly:stencil-translate-axis
(sans-serif-stencil layout props (* size label-font-mag) label-text)
(if alt-markup
(set! fig-markup
(markup #:put-adjacent
- fig-markup X
- (if (number? alt-dir)
- alt-dir
- LEFT)
+ X (if (number? alt-dir)
+ alt-dir
+ LEFT)
+ fig-markup
#:pad-x 0.2 alt-markup
)))
(set! fig-markup
(if fig-markup
(markup #:put-adjacent
- fig-markup
X (if (number? plus-dir)
plus-dir
LEFT)
+ fig-markup
#:pad-x 0.2 plus-markup)
plus-markup)))