@subsection LilyPond Scheme syntax
The Guile interpreter is part of LilyPond, which means that
-Scheme can be included in LilyPond input files. The hash mark @code{#}
+Scheme can be included in LilyPond input files. The hash mark@tie{}@code{#}
is used to tell the LilyPond parser that the next value is a Scheme
value.
@end example
For the rest of this section, we will assume that the data is entered
-in a music file, so we add @code{#}s at the beginning of each Scheme
+in a music file, so we add@tie{}@code{#}s at the beginning of each Scheme
expression.
All of the top-level Scheme expressions in a LilyPond input file can
easily understood.
For now, don't worry about the @code{#'}, which must precede the
-layout property, and the @code{#}, which must precede the value.
+layout property, and the@tie{}@code{#}, which must precede the value.
These must always be present in exactly this form. This is the
most common command used in tweaking, and most of the rest of
this chapter will be directed to presenting examples of how it is
@end example
Don't forget the @code{#'} preceding the
-property name and a @code{#} preceding the new value!
+property name and a@tie{}@code{#} preceding the new value!
The final question is, @q{Where should this command be
placed?} While you are unsure and learning, the best
need is @code{'#(#f #f #f)}. Let's try that, remembering to include
the @code{Staff} context. Note also that in writing this value we
have @code{#'#} before the opening bracket. The @code{'#} is required
-as part of the value to introduce a vector, and the first @code{#} is
+as part of the value to introduce a vector, and the first@tie{}@code{#} is
required, as always, to precede the value itself in the
@code{\override} command.
To avoid that syllables of different width (such as @qq{-ri} and
@qq{-rum}) spread the syllable note groups unevenly apart, the
-@code{#'X-extent} property of the @code{LyricText} object may be
+@code{'X-extent} property of the @code{LyricText} object may be
set to a fixed value. Another, more cumbersome way would be to
add the syllables as @code{\markup} elements. If further
adjustments are necessary, this can be easily done with
Internally, LilyPond uses Scheme (a LISP dialect) to provide
infrastructure. Overriding layout decisions in effect accesses the
program internals, which requires Scheme input. Scheme elements are
-introduced in a @file{.ly} file with the hash mark
-@code{#}.@footnote{@rextend{Scheme tutorial}, contains a short tutorial
-on entering numbers, lists, strings, and symbols in Scheme.}
+introduced in a @file{.ly} file with the hash
+mark@tie{}@code{#}.@footnote{@rextend{Scheme tutorial}, contains a
+short tutorial on entering numbers, lists, strings, and symbols in
+Scheme.}
@menu
@end example
@var{value} is a Scheme object, which is why it must be preceded by
-the @code{#} character.
+the @code{#}@tie{}character.
Contexts properties are usually named in
@code{studlyCaps}. They mostly control the translation from
@cindex internal documentation
For many properties, regardless of the data type of the property, setting the
-property to false ( @code{##f} ) will result in turning it off, causing
+property to false (@code{#f}) will result in turning it off, causing
LilyPond to ignore that property entirely. This is particularly useful for
turning off grob properties which may otherwise be causing problems.
similarly named normal color.
Not all X11 colors are distinguishable in a web browser, i.e.,
-a web browser might not display a difference between @code{'LimeGreen}
-and @code{'ForestGreen}. For web use normal colors are recommended
-(i.e., @code{#blue}, @code{#green}, @code{#red}).
+a web browser might not display a difference between @code{LimeGreen}
+and @code{ForestGreen}. For web use normal colors are recommended
+(i.e., @code{blue}, @code{green}, @code{red}).
Notes in a chord cannot be colored with @code{\override}; use
@item After every command or variable, i.e. every item that
begins with a @code{\} sign.
@item After every item that is to be interpreted as a Scheme
-expression, i.e. every item that begins with a @code{#} sign.
+expression, i.e. every item that begins with a @code{#}@tie{}sign.
@item To separate all elements of a Scheme expression.
@item In @code{lyricmode} to separate all the terms in both
@code{\override} and @code{\set} commands. In particular, spaces
of beaming-rules.
At this time the only available value of rule-type is
-@code{#'end} for beam ending.
+@code{'end} for beam ending.
Beaming-rules is a scheme alist (or list of pairs) that indicates the
beam type and the grouping to be applied to beams containing notes with
The relative importance of page (vertical) spacing and line
(horizontal) spacing. High values will make page spacing more
-important. Default: @code{#10}.
+important. Default: @code{10}.
@item print-all-headers
@funindex print-all-headers
There are also analogous settings to @code{ragged-right} and
@code{ragged-last} which have the same effect on vertical spacing:
@code{ragged-bottom} and @code{ragged-last-bottom}. If set to
-@code{##t} the systems on all pages or just the last page
+@code{#t} the systems on all pages or just the last page
respectively will not be justified vertically. See
@ref{Fixed vertical spacing \paper variables}.
The @code{Page_turn_engraver} reads the context property
@code{minimumPageTurnLength} to determine how long a note-free section must
be before a page turn is considered. The default value for
-@code{minimumPageTurnLength} is @code{#(ly:make-moment 1 1)}. If you want
+@code{minimumPageTurnLength} is @code{(ly:make-moment 1 1)}. If you want
to disable page turns, you can set it to something very large.
@example
spaced. Note that @code{@var{item2}} is not necessarily below
@code{@var{item1}}; for example,
@code{nonstaff-relatedstaff-spacing} will measure upwards from the
-non-staff line if @code{staff-affinity} is @code{#UP}.
+non-staff line if @code{staff-affinity} is @code{UP}.
Each distance is measured between the @emph{reference points} of
the two items. The reference point for a staff is the vertical
which is the reference duration against that all music will be spaced.
The LilyPond Scheme function @code{make-moment} takes two arguments
-- a numerator and denominator which together express some fraction of
-a whole note. The call @code{#(ly:make-moment 1 20)} therefore produces
+a whole note. The call @code{(ly:make-moment 1 20)} therefore produces
a reference duration of a twentieth note. Values such as
-@code{#(ly:make-moment 1 16)}, @code{#(ly:make-moment 1 8)}, and
-@code{#(ly:make-moment 3 97)} are all possible as well.
+@code{(ly:make-moment 1 16)}, @code{(ly:make-moment 1 8)}, and
+@code{(ly:make-moment 3 97)} are all possible as well.
How do we select the right reference duration to pass to
@code{proportionalNotationDuration}? Usually by a process of trial
It is possible to adjust which aspects of the music are quoted with
@code{\cueDuring} by setting the @code{quotedCueEventTypes}
-property. Its default value is @code{#'(note-event rest-event
+property. Its default value is @code{'(note-event rest-event
tie-event beam-event tuplet-span-event)}, which means that only
notes, rests, ties, beams and tuplets are quoted, but not
articulations, dynamic marks, markup etc.
A @code{\markup} block may also contain quoted text strings. Such
strings are treated as minimal text expressions, and therefore any
-markup command or special character (such as @code{\} and @code{#})
+markup command or special character (such as @code{\} and@tie{}@code{#})
will be printed verbatim without affecting the formatting of the text.
Double quotation marks themselves may be printed by preceding them
with backslashes.
specify its key so the conversion of its cue notes will be done
automatically. The example below shows this transposition for a
B-flat clarinet. The notes in this example are low on the staff so
-@code{#DOWN} is specified in @code{\cueDuring} (so the stems are
+@code{DOWN} is specified in @code{\cueDuring} (so the stems are
down) and the instrument name is positioned below the staff. Note
also that the piano right-hand voice is explicitly declared. This
is because the cue notes in this example begin at the start of the
Al escribir un bajo cifrado, podemos situar las cifras encima o debajo
de las notas del bajo, mediante la definición de la propiedad
@code{BassFigureAlignmentPositioning #'direction} (exclusivamente
-dentro de un contexto @code{Staff}). Se puede elegir entre @code{#UP}
-(o @code{#1}, arriba), @code{#CENTER} (o @code{#0}, centrado) y
-@code{#DOWN} (o @code{#-1}, abajo).
+dentro de un contexto @code{Staff}). Se puede elegir entre @code{UP}
+(o @code{1}, arriba), @code{CENTER} (o @code{0}, centrado) y
+@code{DOWN} (o @w{@code{-1}}, abajo).
Esta propiedad se puede cambiar tantas veces como queramos. Utilice
@code{\\once \\override} si no quiere que la sobreescritura se aplique
texidoc = "
When writing a figured bass, you can place the figures above or below
the bass notes, by defining the @code{BassFigureAlignmentPositioning
-#'direction} property (exclusively in a @code{Staff} context). Choices
-are @code{#UP} (or @code{#1}), @code{#CENTER} (or @code{#0}) and
-@code{#DOWN} (or @code{#-1}).
+#'direction} property (exclusively in a @code{Staff} context). Choices
+are @code{UP} (or @code{1}), @code{CENTER} (or @code{0}) and
+@code{DOWN} (or @w{@code{-1}}).
This property can be changed as many times as you wish. Use
@code{\\once \\override} if you don't want the override to apply to the
notas guía orquestales a la reducción de piano en una partitura vocal.
La función musical @code{\\cueWhile} toma cuatro argumentos: la música
de la que se toma la cita, como viene definida por @code{\\addQuote},
-el nombre que insertar antes de las notas guía, y después @code{#UP} o
-@code{#DOWN} para especificar @code{\\voiceOne} con el nombre encima
+el nombre que insertar antes de las notas guía, y después @code{UP} o
+@code{DOWN} para especificar @code{\\voiceOne} con el nombre encima
del pentagrama o bien @code{\\voiceTwo} con el nombre debajo del
pentagrama, y finalmente la música de piano con la que las notas guía
deben aparecer en paralelo. El nombre del instrumento citado se
@code{\\cueWhile} braucht vier Argumente: Die Noten, von denen die
Stichnoten formatiert werden sollen, definiert durch @code{\\addQuote},
die Bezeichnung, die mit den Noten angegeben werden soll, dann entweder
-@code{#UP} (hoch) oder @code{#DOWN} (runter) zur Angabe von entweder
+@code{UP} (hoch) oder @code{DOWN} (runter) zur Angabe von entweder
@code{\\voiceOne} mit der Bezeichnung über dem System oder @code{\\voiceTwo}
mit der Bezeichnung unter dem System, und schließlich die Klaviermusik,
die parallel zu den Stichnoten gespielt werden soll. Die Bezeichnung des
pour gérer ces repères. La fonction musicale @code{\\cueWhile} prend
quatre arguments@tie{}: la musique d'où provient la citation, telle que
définie par @code{\\addQuote}, le nom qui sera mentionné en regard de
-cette citation, son positionnement -- @code{#UP} ou @code{#DOWN} selon
+cette citation, son positionnement -- @code{UP} ou @code{DOWN} selon
qu'il sera attribué à @code{\\voiceOne} et placé au-dessus ou
@code{\\voiceTwo} et placé en dessous -- et enfin la musique du piano
qui interviendra en parallèle. Le nom de l'instrument en question
piano reduction in a vocal score. The music function @code{\\cueWhile}
takes four arguments: the music from which the cue is to be taken, as
defined by @code{\\addQuote}, the name to be inserted before the cue
-notes, then either @code{#UP} or @code{#DOWN} to specify either
+notes, then either @code{UP} or @code{DOWN} to specify either
@code{\\voiceOne} with the name above the staff or @code{\\voiceTwo}
with the name below the staff, and finally the piano music in parallel
with which the cue notes are to appear. The name of the cued
Dentro de un acorde (entre ángulos simples @code{< >}), antes de la
nota que queremos alterar, situamos la instrucción @code{\\tweak}
-seguida por @code{#'font-size} y definimos el tamaño adecuado como
-@code{#-2} (una cabeza pequeña).
+seguida por @code{'font-size} y definimos el tamaño adecuado como
+@w{@code{-2}} (una cabeza pequeña).
"
doctitlees = "Modificar el tamaño de una nota suelta de un acorde"
Inside the chord (within the brackets @code{< >}), before the note to
be altered, place the @code{\\tweak} command, followed by
-@code{#'font-size} and define the proper size like @code{#-2} (a tiny
+@code{'font-size} and define the proper size like @w{@code{-2}} (a tiny
note head).
} % begin verbatim
\relative c' {
- <\tweak #'font-size #+2 c e g c \tweak #'font-size #-2 e>1^\markup { A tiny e }_\markup { A big c }
+ <\tweak #'font-size #+2 c e g c \tweak #'font-size #-2 e>1
+ ^\markup { A tiny e }_\markup { A big c }
}
texidoc = "
Though the simplest way to resize staves is to use
-@code{#(set-global-staff-size xx)}, an individual staff's size can be
+@code{#(set-global-staff-size @var{xx})}, an individual staff's size can be
changed by scaling the properties @code{'staff-space} and
@code{fontSize}.
una barra de la misma longitud que el grupo especial. Para controlar
la visibilidad de los corchetes de grupo, establezca la propiedad
@code{'bracket-visibility} a @code{#t} (imprimir el corchete siempre),
-@code{#f} (no imprimirlo nunca) o @code{#'if-no-beam} (imprimir el
+@code{#f} (no imprimirlo nunca) o @code{'if-no-beam} (imprimir el
corchete solamente si no hay barra).
"
@code{'bracket-visibility}, de contôler précisément leur
affichage@tie{}: déterminée à @code{#t}, ils seront toujours
imprimés@tie{}; @code{#f} permet de ne jamais les imprimer, et
-@code{#'if-no-beam} les imprimera en l'absence de ligature.
+@code{'if-no-beam} les imprimera en l'absence de ligature.
"
doctitlefr = "Contrôle de l'impression des crochets de nolet"
unless there is a beam of the same length as the tuplet. To control the
visibility of tuplet brackets, set the property
@code{'bracket-visibility} to either @code{#t} (always print a
-bracket), @code{#f} (never print a bracket) or @code{#'if-no-beam}
+bracket), @code{#f} (never print a bracket) or @code{'if-no-beam}
(only print a bracket if there is no beam).
"
texidoces = "
La alineación horizontal de la letra se puede ajustar sobreescribiendo
la propiedad @code{self-alignment-X} del objeto @code{LyricText}.
-@code{#-1} es izquierda, @code{#0} es centrado y @code{#1} es derecha;
-sin embargo, puede usar también @code{#LEFT}, @code{#CENTER} y
-@code{#RIGHT}.
+@w{@code{-1}} es izquierda, @code{0} es centrado y @code{1} es derecha;
+sin embargo, puede usar también @code{LEFT}, @code{CENTER} y
+@code{RIGHT}.
"
doctitlees = "Alineación de la letra"
texidocde = "
Die horizontale Ausrichtung von Gesangstext kann eingestellt werden, indem
man die @code{self-alignment-X}-Eigenschaft des @code{LyricText}-Objekts
-verändert. @code{#-1} bedeutet links, @code{#0} bedeutet mittig und @code{#1}
-bedeutet rechts, man kann aber genauso gut auch @code{#LEFT}, @code{#CENTER}
-und @code{#RIGHT} benutzen.
+verändert. @w{@code{-1}} bedeutet links, @code{0} bedeutet mittig und @code{1}
+bedeutet rechts, man kann aber genauso gut auch @code{LEFT}, @code{CENTER}
+und @code{RIGHT} benutzen.
"
doctitlede = "Ausrichtung von Gesangstext"
texidocfr = "
L'alignement horizontal des paroles peut se gérer à l'aide de la
propriété @code{self-alignment-X} de l'objet @code{LyricText}.
-Les valeurs @code{#-1} ou @code{#LEFT} produiront un alignement par la
-gauche, les valeurs @code{#0} ou @code{#CENTER} un alignement centré, et
-les valeurs @code{#1} ou @code{#RIGHT} un alignement par la droite.
+Les valeurs @w{@code{-1}} ou @code{LEFT} produiront un alignement par la
+gauche, les valeurs @code{0} ou @code{CENTER} un alignement centré, et
+les valeurs @code{1} ou @code{RIGHT} un alignement par la droite.
"
doctitlefr = "Alignement des syllabes"
texidoc = "
Horizontal alignment for lyrics cam be set by overriding the
@code{self-alignment-X} property of the @code{LyricText} object.
-@code{#-1} is left, @code{#0} is center and @code{#1} is right;
-however, you can use @code{#LEFT}, @code{#CENTER} and @code{#RIGHT} as
+@w{@code{-1}} is left, @code{0} is center and @code{1} is right;
+however, you can use @code{LEFT}, @code{CENTER} and @code{RIGHT} as
well.
"
tipográfica, se imprime un becuadro antes de un sostenido o un
bemol cuando se tiene que cancelar una alteración anterior en la
misma nota. Para modificar este comportamiento, establezca el
-valor de la propiedad @code{extraNatural} a @code{##f} (falso)
+valor de la propiedad @code{extraNatural} a @code{#f} (falso)
dentro del contexto de @code{Staff}.
"
En accord avec les règles standards de l'écriture musicale, on grave
un bécarre avant un dièse ou un bémol si on a besoin d'annuler une
altération précédente. Pour modifier ce comportement, assignez la propriété
-@code{extraNatural} du contexte @code{Staff} à la valeur @code{##f} (faux).
+@code{extraNatural} du contexte @code{Staff} à la valeur @code{#f} (faux).
"
doctitlefr = "Suppression des bécarres superflus"
In accordance with standard typesetting rules, a natural sign is
printed before a sharp or flat if a previous accidental on the same
note needs to be canceled. To change this behavior, set the
-@code{extraNatural} property to @code{f} in the @code{Staff} context.
+@code{extraNatural} property to @code{#f} in the @code{Staff} context.
Since @code{repeatCommands} takes a list, the simplest method of
including markup is to use an identifier for the text and embed it in
-the command list using the Scheme syntax @code{#(list (list 'volta
+the command list using the Scheme syntax @code{(list (list 'volta
textIdentifier))}. Start- and end-repeat commands can be added as
separate list elements:
texidoc = "When figures appear inside a voice, @code{ignoreFiguredBassRest}
causes all figures on rests to be discarded and all spanners ended.
- If set to @code{##f}, figures on rests are printed.
+ If set to @code{#f}, figures on rests are printed.
"
}
texidoc = "Like normal ties, single semities (LaissezVibrerTie or
RepeatTie) get their direction from the stem direction, and may be
-tweaked with @code{#'direction}."
+tweaked with @code{'direction}."
}
@code{#f} (never print a bracket)
@item
-@code{#'if-no-beam} (only print a bracket if there is no beam)
+@code{'if-no-beam} (only print a bracket if there is no beam)
@end itemize
"
(followVoice ,boolean? "If set, note heads are tracked across
staff switches by a thin line.")
(fontSize ,number? "The relative size of all grobs in a context.")
- (forbidBreak ,boolean? "If set to @code{##t}, prevent a line break
+ (forbidBreak ,boolean? "If set to @code{#t}, prevent a line break
at this point.")
(forceClef ,boolean? "Show clef symbol, even if it has not
changed. Only active for the first clef after the property is set, not
(melismaBusyProperties ,list? "A list of properties (symbols) to
determine whether a melisma is playing. Setting this property will
influence how lyrics are aligned to notes. For example, if set to
-@code{#'(melismaBusy beamMelismaBusy)}, only manual melismata and
+@code{'(melismaBusy beamMelismaBusy)}, only manual melismata and
manual beams are considered. Possible values include
@code{melismaBusy}, @code{slurMelismaBusy}, @code{tieMelismaBusy}, and
@code{beamMelismaBusy}.")
follow each other directly. This can be used for writing out
arpeggios.")
(timeSignatureFraction ,number-pair? "A pair of numbers,
-signifying the time signature. For example, @code{#'(4 . 4)} is a
+signifying the time signature. For example, @code{'(4 . 4)} is a
4/4 time signature.")
(timeSignatureSettings ,cheap-list? "A nested alist of settings for
time signatures. Contains elements for various time signatures. The
barcheck fail?")
(beamMelismaBusy ,boolean? "Signal if a beam is present.")
(busyGrobs ,list? "A queue of @code{(@var{end-moment} .
-@var{GROB})} cons cells. This is for internal (C++) use only. This
+@var{grob})} cons cells. This is for internal (C++) use only. This
property contains the grobs which are still busy (e.g. note heads,
spanners, etc.).")
having a @code{details} property.")
(digit-names ,vector? "Names for string finger digits.")
(direction ,ly:dir? "If @code{side-axis} is @code{0} (or
-@code{#X}), then this property determines whether the object is placed
-@code{#LEFT}, @code{#CENTER} or @code{#RIGHT} with respect to the
+@code{X}), then this property determines whether the object is placed
+@code{LEFT}, @code{CENTER} or @code{RIGHT} with respect to the
other object. Otherwise, it determines whether the object is placed
-@code{#UP}, @code{#CENTER} or @code{#DOWN}. Numerical values may also
-be used: @code{#UP}=@code{1}, @code{#DOWN}=@w{@code{-1}},
-@code{#LEFT}=@w{@code{-1}}, @code{#RIGHT}=@code{1},
-@code{#CENTER}=@code{0}.")
+@code{UP}, @code{CENTER} or @code{DOWN}. Numerical values may also
+be used: @code{UP}=@code{1}, @code{DOWN}=@w{@code{-1}},
+@code{LEFT}=@w{@code{-1}}, @code{RIGHT}=@code{1},
+@code{CENTER}=@code{0}.")
(dot-count ,integer? "The number of dots.")
(dot-negative-kern ,number? "The space to remove between a dot
and a slash in percent repeat glyphs. Larger values bring the two
Default@tie{}0.
@item
@code{label-dir} -- Side to which the fret label is attached.
-@w{@code{-1}}, @code{#LEFT}, or @code{#DOWN} for left or down; @code{1},
-@code{#RIGHT}, or @code{#UP} for right or up. Default @code{#RIGHT}.
+@w{@code{-1}}, @code{LEFT}, or @code{DOWN} for left or down; @code{1},
+@code{RIGHT}, or @code{UP} for right or up. Default @code{RIGHT}.
@item
@code{mute-string} -- Character string to be used to indicate muted
string. Default @code{\"x\"}.
(right-padding ,ly:dimension? "Space to insert on the right side
of an object (e.g., between note and its accidentals).")
(rotation ,list? "Number of degrees to rotate this object, and
-what point to rotate around. For example, @code{#'(45 0 0)} rotates
+what point to rotate around. For example, @code{'(45 0 0)} rotates
by 45 degrees around the center of this object.")
(round-up-to-longer-rest ,boolean? "Displays the longer multi-measure
rest when the length of a measure is between two values of
shortest note playing here.")
(shortest-starter-duration ,ly:moment? "The duration of the
shortest note that starts here.")
- (side-axis ,number? "If the value is @code{#X} (or
+ (side-axis ,number? "If the value is @code{X} (or
equivalently@tie{}@code{0}), the object is placed horizontally next to
-the other object. If the value is @code{#Y} or@tie{}@code{1}, it is
+the other object. If the value is @code{Y} or@tie{}@code{1}, it is
placed vertically.")
(side-relative-direction ,ly:dir? "Multiply direction of
@code{direction-source} with this to get the direction of this
(spanner-broken ,boolean? "Indicates whether spanner
alignment should be broken after the current spanner.")
(spanner-placement ,ly:dir? "The place of an annotation on a spanner.
-LEFT is for the first spanner, and RIGHT is for the last. CENTER will
-place it on the broken spanner that falls closest to the center of the length
-of the entire spanner, although this behavior is unpredictable in situations
-with lots of rhythmic diversity. For predictable results, use LEFT and RIGHT.")
+@code{LEFT} is for the first spanner, and @code{RIGHT} is for the last.
+@code{CENTER} will place it on the broken spanner that falls closest to the
+center of the length of the entire spanner, although this behavior is
+unpredictable in situations with lots of rhythmic diversity. For predictable
+results, use @code{LEFT} and @code{RIGHT}.")
(staff-grouper ,ly:grob? "The staff grouper we belong to.")
(staff-symbol ,ly:grob? "The staff symbol grob that we are in.")
(stem ,ly:grob? "A pointer to a @code{Stem} object.")