X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fes%2Flearning%2Ftweaks.itely;h=20a4baf477fa5e7ee4af820d79a6e67b62f43172;hb=058370efc7e9710f149d0f444328bb1fcd7bdec1;hp=11ee26a348ac6a57ca95cb3c57fbddcd0c509b2b;hpb=cb951038d3e74a85ec8539d0dc51260088251556;p=lilypond.git diff --git a/Documentation/es/learning/tweaks.itely b/Documentation/es/learning/tweaks.itely index 11ee26a348..20a4baf477 100644 --- a/Documentation/es/learning/tweaks.itely +++ b/Documentation/es/learning/tweaks.itely @@ -1,14 +1,14 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*- @ignore - Translation of GIT committish: 6da27f9b294c385ff8fc75876e152d67f0b4794e + Translation of GIT committish: 7fdce4f39834cc8c83f176480cc1d20900eb09f8 When revising a translation, copy the HEAD committish of the version that you are working on. For details, see the Contributors' Guide, node Updating translation committishes.. @end ignore -@c \version "2.16.0" +@c \version "2.19.2" @node Trucar la salida @chapter Trucar la salida @@ -23,6 +23,7 @@ configurable; prácticamente todos los fragmentos de la salida se pueden cambiar * Manual de referencia de funcionamiento interno:: * Apariencia de los objetos:: * Colocación de los objetos:: +* Espaciado vertical:: * Colisiones de objetos:: * Trucajes adicionales:: @end menu @@ -184,6 +185,18 @@ a partir de sus nombres. @strong{La instrucción \override} +@menu +* La instrucción override:: +* La instrucción revert:: +* El prefijo once:: +* La instrucción overrideProperty:: +* La instrucción tweak:: +@end menu + +@node La instrucción override +@unnumberedsubsubsec La instrucción @code{@bs{}override} +@translationof The override command + @cindex override, instrucción @cindex override (sobreescritura), sintaxis de @@ -207,7 +220,7 @@ modificar, y cuál debe ser su nuevo valor. Veamos cómo se hace. La sintaxis genérica de esta instrucción es: @example -\override @var{Contexto}.@var{ObjetoDePresentación} #'@var{propiedad-de-presentación} = +\override @var{Contexto}.@var{ObjetoDePresentación}.@var{propiedad-de-presentación} = #@var{valor} @end example @@ -229,9 +242,17 @@ usaremos sólo unas cuantas propiedades y valores sencillos que sean fáciles de entender, para ilustrar el formato y la utilización de estas instrucciones. -Por ahora no se preocupe por el @code{#'}, que debe anteponerse a la -propiedad de presentación, y el@tie{}@code{#}, que debe preceder al valor. -Deben estar presentes siempre y de esa forma exacta. Es la +Las expresiones principales de LilyPond son elementos musicales +como notas, duraciones y elementos de marcado. Las expresiones +más básicas como números, cadenas de caracteres y listas se +procesan en el @q{modo de Scheme}, que se invoca por medio del +prefijo @samp{#} escrito antes del valor. Aunque los valores +pueden tener a veces una representación válida en el modo de +música de LilyPond, este manual utiliza siempre @samp{#} para la +escritura, por coherencia. Para ver más información acerca del +modo de Scheme, consulte @rextend{Sintaxis del Scheme de LilyPond}. + +@code{\override} es la instrucción de uso más común dentro del trucaje, y durante la mayor parte del resto de este capítulo presentaremos ejemplos de cómo se usa. A continuación hay un ejemplo sencillo para cambiar el color de @@ -242,13 +263,16 @@ una cabeza: @lilypond[quote,fragment,ragged-right,verbatim,relative=1] c4 d -\override NoteHead #'color = #red +\override NoteHead.color = #red e4 f | -\override NoteHead #'color = #green +\override NoteHead.color = #green g4 a b c | @end lilypond -@strong{La instrucción \revert} + +@node La instrucción revert +@unnumberedsubsubsec La instrucción @code{@bs{}revert} +@translationof The revert command @cindex revert, instrucción @@ -263,7 +287,7 @@ valor predeterminado original; observe que no es a su valor previo si se han utilizado varias instrucciones @code{\override}. @example -\revert @var{Contexto}.@var{ObjetoDePresentación} #'@var{propiedad-de-presentación} +\revert @var{Contexto}.@var{ObjetoDePresentación}.@var{propiedad-de-presentación} @end example Una vez más, igual que @var{Contexto} dentro de la instrucción @@ -277,15 +301,18 @@ dos últimas notas: @lilypond[quote,fragment,ragged-right,verbatim,relative=1] c4 d -\override NoteHead #'color = #red +\override NoteHead.color = #red e4 f | -\override NoteHead #'color = #green +\override NoteHead.color = #green g4 a -\revert NoteHead #'color +\revert NoteHead.color b4 c | @end lilypond -@strong{El prefijo \once} + +@node El prefijo once +@unnumberedsubsubsec El prefijo @code{@bs{}once} +@translationof The once prefix @funindex \once @funindex once @@ -302,17 +329,39 @@ podemos cambiar el color de una sola nota de la siguiente manera: @cindex color, propiedad, ejemplo @cindex NoteHead, ejemplo de sobreescritura -@lilypond[quote,fragment,ragged-right,verbatim,relative=1] +@lilypond[quote,verbatim,relative=1] +c4 d +\override NoteHead.color = #red +e4 f | +\once \override NoteHead.color = #green +g4 a +\revert NoteHead.color +b c | +@end lilypond + +El prefijo @code{\once} también se puede usar delante de muchas +instrucciones predefinidas para limitar su efecto a un solo momento +musical: + +@lilypond[quote,verbatim,relative=1] c4 d -\override NoteHead #'color = #red +\once \stemDown e4 f | -\once \override NoteHead #'color = #green g4 a -\revert NoteHead #'color +\once \hideNotes b c | @end lilypond -@strong{La instrucción \overrideProperty} +Sin embargo, las instrucciones predefinidas de la forma +@code{\@dots{}Neutral}, +@code{\@dots{}Off} y @code{\un@dots{}} utilizan +internamente @code{\revert} en vez de @code{\override}, por lo que +añadir @code{\once} como prefijo aquí no tiene ningún efecto. + + +@node La instrucción overrideProperty +@unnumberedsubsubsec La instrucción @code{@bs{}overrideProperty} +@translationof The overrideProperty command @cindex overrideProperty, instrucción @@ -325,7 +374,10 @@ mencionamos aquí con un propósito de exhaustividad, pero para ver más detalles consulte @rextend{Trucos difíciles}. @c Maybe explain in a later iteration -td -@strong{La instrucción \tweak} + +@node La instrucción tweak +@unnumberedsubsubsec La instrucción @code{@bs{}tweak} +@translationof The tweak command @cindex tweak, instrucción @@ -350,7 +402,7 @@ primer lugar, veamos lo que haría @code{\once \override}: @lilypond[quote,fragment,ragged-right,verbatim,relative=1] 4 -\once \override NoteHead #'font-size = #-3 +\once \override NoteHead.font-size = #-3 4 4 @end lilypond @@ -377,7 +429,7 @@ se cambiaría de la siguiente forma: @lilypond[quote,fragment,ragged-right,verbatim,relative=1] 4 -4 +4 @end lilypond Observe que la sintaxis de @code{\tweak} no es igual que la de @@ -389,7 +441,7 @@ Observe también que no debe haber un signo igual. Así que la sintaxis de la instrucción @code{\tweak} en su forma sencilla es: @example -\tweak #'@var{propiedad-de-presentación} #@var{valor} +\tweak @var{propiedad-de-presentación} #@var{valor} @end example Una instrucción @code{\tweak} también se puede usar para modificar @@ -400,8 +452,8 @@ sólo una de una serie de articulaciones, como se muestra aquí: @lilypond[quote,fragment,ragged-right,verbatim,relative=2] a4^"Black" - -\tweak #'color #red ^"Red" - -\tweak #'color #green _"Green" + -\tweak color #red ^"Red" + -\tweak color #green _"Green" @end lilypond @noindent @@ -422,15 +474,15 @@ presentación, siempre y cuando LilyPond pueda rastrear su origen hasta el evento original: @lilypond[quote,fragment,ragged-right,verbatim,relative=2] -<\tweak Accidental #'color #red cis4 - \tweak Accidental #'color #green es - g> +<\tweak Accidental.color #red cis4 + \tweak Accidental.color #green es + g> @end lilypond Esta forma extensa de la instrucción @code{\tweak} se puede describir como @example -\tweak @var{layout-object} #'@var{layout-property} @var{value} +\tweak @var{objeto-de-presentación}.@var{propiedad-de-presentación} @var{valor} @end example @cindex grupos especiales anidados @@ -459,12 +511,12 @@ tresillo corto. @cindex color, propiedad, ejemplo @lilypond[quote,ragged-right,verbatim,fragment,relative=2] -\tweak #'direction #up -\times 4/3 { - \tweak #'color #red - \times 2/3 { c8[ c c] } - \times 2/3 { c8[ c c] } - \times 2/3 { c8[ c c] } +\tweak direction #up +\tuplet 3/4 { + \tweak color #red + \tuplet 3/2 { c8[ c c] } + \tuplet 3/2 { c8[ c c] } + \tuplet 3/2 { c8[ c c] } } @end lilypond @@ -477,18 +529,15 @@ se puede modificar de la forma usual mediante instrucciones @cindex transparent, propiedad, ejemplo @cindex TupletNumber, ejemplo de sobreescritura -@c NOTE Tuplet brackets collide if notes are high on staff -@c See issue 509 @lilypond[quote,ragged-right,verbatim,fragment,relative=1] -\times 2/3 { c8[ c c] } -\once \override TupletNumber - #'text = #tuplet-number::calc-fraction-text -\times 2/3 { +\tuplet 3/2 { c8[ c c] } +\once \override TupletNumber.text = #tuplet-number::calc-fraction-text +\tuplet 3/2 { c8[ c] c8[ c] - \once \override TupletNumber #'transparent = ##t - \times 2/3 { c8[ c c] } - \times 2/3 { c8[ c c] } + \once \override TupletNumber.transparent = ##t + \tuplet 3/2 { c8[ c c] } + \tuplet 3/2 { c8[ c c] } } @end lilypond @@ -544,7 +593,6 @@ con tan sólo algo de práctica. @cindex Referencia de Funcionamiento Interno, ejemplo de utilización @cindex @code{\addlyrics}, ejemplo - Utilicemos un ejemplo concreto con un sencillo fragmento de música real: @@ -632,7 +680,7 @@ seguros de que la instrucción está funcionando. Obtenemos lo siguiente: @example -\override Slur #'thickness = #5.0 +\override Slur.thickness = #5.0 @end example ¡No olvide el @code{#'} antes del nombre de la propiedad y@tie{}@code{#} @@ -652,7 +700,7 @@ cerca de ella.} Hagámoslo así: \time 6/8 { % Increase thickness of all following slurs from 1.2 to 5.0 - \override Slur #'thickness = #5.0 + \override Slur.thickness = #5.0 r4 bes8 bes[( g]) g | g8[( es]) es d[( f]) as | as8 g @@ -674,7 +722,7 @@ necesita para hacerlo por sí mismo (aunque aún necesita algo de práctica). La cual vendrá proporcionada por los ejemplos que vienen a continuación. -@subheading Búsqueda del contexto +@subsubsubheading Búsqueda del contexto @cindex contexto, encontrar @cindex contexto, buscar el, correcto @@ -697,7 +745,7 @@ contextos de más bajo nivel que se encuentra implícito sin ambigüedad por el hecho de que estamos escribiendo notas, podemos omitirlo en este lugar concreto. -@subheading Sobreescritura por una sola vez +@subsubsubheading Sobreescritura por una sola vez @cindex sobreescritura por una sola vez @cindex once override @@ -727,7 +775,7 @@ siguiente: { r4 bes8 % Increase thickness of immediately following slur only - \once \override Slur #'thickness = #5.0 + \once \override Slur.thickness = #5.0 bes8[( g]) g | g8[( es]) es d[( f]) as | as8 g @@ -744,7 +792,7 @@ Hemos hecho que ahora solamente la primera ligadura sea más gruesa. La instrucción o prefijo @code{\once} también se puede usar antes de la instrucción @code{\set}. -@subheading Recuperación del ajuste +@subsubsubheading Recuperación del ajuste @cindex revertir @cindex predeterminadas, recuperar las propiedades @@ -768,10 +816,10 @@ ligaduras: { r4 bes8 % Increase thickness of immediately following slur only - \once \override Slur #'thickness = #5.0 + \once \override Slur.thickness = #5.0 bes[( g]) g | % Increase thickness of immediately following slur only - \once \override Slur #'thickness = #5.0 + \once \override Slur.thickness = #5.0 g8[( es]) es d[( f]) as | as8 g } @@ -797,11 +845,11 @@ segunda ligadura: { r4 bes8 % Increase thickness of all following slurs from 1.2 to 5.0 - \override Slur #'thickness = #5.0 + \override Slur.thickness = #5.0 bes[( g]) g | g8[( es]) es % Revert thickness of all following slurs to default of 1.2 - \revert Slur #'thickness + \revert Slur.thickness d8[( f]) as | as8 g } @@ -883,25 +931,20 @@ cambiar la letra a cursiva. El objeto es @code{LyricText}, la propiedad es @code{font-shape} y el valor es @code{italic}. Igual que antes, omitiremos el contexto. -Como nota aparte, aunque una nota importante, observe que a causa de -que los valores de @code{font-shape} son símbolos, deben ir precedidos -de un apóstrofo, @code{'}. Esa es la razón por la que se necesitan -apóstrofos antes de @code{thickness} en el ejemplo anterior y en -@code{font-shape}. Los dos son también símbolos. Los símbolos son -nombres especiales que son conocidos por LilyPond internamente. -Algunos de ellos son nombres de propiedades, como @code{thickness} o -@code{font-shape}, otros se utilizan como valores que se les puede dar -a las propiedades, como @code{italic}. Observe la distinción entre -esto y las cadenas de texto arbitrarias, que aparecerían -entrecomilladas como @code{"a text string"}. Para ver más detalles -relacionados con los símbolos y las cadenas, consulte +Como nota aparte, aunque es importante, observe que ciertas +propiedades toman valores que son símbolos, como @code{italic}, y +deben ir precedidos de un apóstrofo, @code{'}. Los símbolos se +leen a continuación internamente por parte de LilyPond. Tenga en +cuenta la diferencia con las cadenas de texto arbitrarias, que +aparecerían como @code{"una cadena de texto"}; para ver más +detalles sobre los símbolos y las cadenas, consulte @rextend{Tutorial de Scheme}. Así pues, la instrucción @code{\override} necesaria para imprimir la letra en cursiva, es: @example -\override LyricText #'font-shape = #'italic +\override LyricText.font-shape = #'italic @end example @noindent @@ -923,7 +966,7 @@ de esta forma: as8 g } \addlyrics { - \override LyricText #'font-shape = #'italic + \override LyricText.font-shape = #'italic The man who | feels love's sweet e -- | mo -- tion } } @@ -932,34 +975,9 @@ de esta forma: @noindent y toda la letra se imprime en cursiva. -@subheading Especificación del contexto en modo letra - -@cindex contexto, especificación en modo letra -@cindex letra, modo, especificar el contexto en - -En el caso de la letra, si intenta especificar el contexto en el -formato que acabamos de dar, la instrucción no funcionará. Una -sílaba escrita en el modo letra, «lyricmode» termina en un espacio, un -salto de línea o un dígito. Cualquier otro carácter se incluye como -parte de la sílaba. Por esta razón, un espacio o salto de línea debe -aparecer antes del último símbolo @code{@}} para evitar que se incluya -como parte de la sílaba final. De forma similar, se deben insertar -espacios antes y después del punto, @q{.}, separando el nombre del -contexto del nombre del objeto, pues en caso contrario los dos nombres -se juntarán y el intérprete no podrá reconocerlos. Así pues, la -instrucción será: - -@example -\override Lyrics . LyricText #'font-shape = #'italic -@end example - @warning{Dentro de la letra, deje siempre espacios entre la sílaba final y la llave de cierre.} -@warning{En las sobreescrituras con override dentro de la letra, -escriba siempre espacios antes y después del punto que separa el -nombre del contexto y el nombre del objeto.} - @seealso Manual de Extensión: @@ -980,7 +998,10 @@ después del nombre de la propiedad en el RFI. He aquí una lista de los tipos que podrá necesitar, junto con las reglas de dicho tipo, y algunos ejemplos. Debe escribir siempre un símbolo de almohadilla, @code{#}, por supuesto, delante de estos valores cuando se introducen -en la instrucción @code{\override}. +en la instrucción @code{\override}, incluso si el propio valor ya +comienza por@tie{}@code{#}. Solamente ofrecemos aquí ejemplos para +constantes; si quiere calcular un valor usando Scheme, consulte +@rextend{Cálculos en Scheme}. @multitable @columnfractions .2 .45 .35 @headitem Tipo de propiedad @@ -990,29 +1011,32 @@ en la instrucción @code{\override}. @tab Verdadero o Falso, representado por #t o #f @tab @code{#t}, @code{#f} @item Dimensión (en espacios de pentagrama) - @tab Un número decimal positivo (en unidades de espacios de pentagrama) + @tab Un número decimal (en unidades de espacios de pentagrama) @tab @code{2.5}, @code{0.34} @item Dirección - @tab Una constante válida de dirección o su equivalente numérico (se permiten valores decimales entre -1 y 1) + @tab Una constante válida de dirección o su equivalente numérico + (@code{0} o @code{CENTER} indican una dirección neutra) @tab @code{LEFT}, @code{CENTER}, @code{UP}, @code{1}, @w{@code{-1}} @item Entero @tab Un número entero positivo - @tab @code{3}, @code{1} + @tab @code{3}, @code{-1} @item Lista - @tab Un conjunto de valores separados por espacios, encerrado entre paréntesis y precedido de un apóstrofo - @tab @code{'(left-edge staff-bar)}, @code{'(1)}, + @tab Una secuencia de constantes o símbolos separados por espacios, + encerrado entre paréntesis + y precedido de un apóstrofo o comilla simple + @tab @code{'(left-edge staff-bar)}, @code{'(1)}, @code{'()}, @code{'(1.0 0.25 0.5)} @item Marcado @tab Cualquier elemento válido de marcado de texto - @tab @code{\markup @{ \italic "cresc." @}} + @tab @code{\markup @{ \italic "cresc." @}}, @code{"gaita"} @item Momento @tab Una fracción de redonda construida con la función make-moment - @tab @code{(ly:make-moment 1 4)}, - @code{(ly:make-moment 3 8)} + @tab @code{(ly:make-moment 1/4)}, + @code{(ly:make-moment 3/8)} @item Número - @tab Cualquier valor decimal positivo o negativo - @tab @code{3.5}, @w{@code{-2.45}} + @tab Cualquier valor positivo o negativo, posiblemente decimal + @tab @code{3}, @w{@code{-2.45}} @item Pareja (de números) @tab Dos números separados por un @q{espacio . espacio}, encerrado entre paréntesis y precedido de un apóstrofo @tab @code{'(2 . 3.5)}, @code{'(0.1 . -3.2)} @@ -1024,8 +1048,9 @@ en la instrucción @code{\override}. @tab @code{bend::print}, @code{ly:text-interface::print}, @code{#f} @item Vector - @tab Una lista de tres elementos encerrados entre paréntesis y precedida de apóstrofo-almohadilla, @code{'#}. - @tab @code{'#(#t #t #f)} + @tab Constantes + encerradas entre @code{#(}@dots{}@code{)}. + @tab @code{#(#t #t #f)} @end multitable @@ -1086,7 +1111,16 @@ ellas pueden afectar la visibilidad de las barras de compás (y, por supuesto, por extensión, también la de muchos otros objetos de presentación). Vamos a considerar cada uno de ellos por orden. -@subheading stencil (sello) +@menu +* La propiedad stencil (sello):: +* La propiedad break-visibility (visibilidad en el salto):: +* La propiedad transparent (transparente):: +* La propiedad color:: +@end menu + +@node La propiedad stencil (sello) +@unnumberedsubsubsec La propiedad @code{stencil} (sello) +@translationof The stencil property @cindex stencil (sello), propiedad @@ -1102,7 +1136,7 @@ antes, omitiendo el Contexto implícito, @code{Voice}: @lilypond[quote,fragment,ragged-right,verbatim,relative=2] { \time 12/16 - \override BarLine #'stencil = ##f + \override BarLine.stencil = ##f c4 b8 c d16 c d8 | g,8 a16 b8 c d4 e16 | e8 @@ -1130,14 +1164,28 @@ intentar corregirlo escribiendo el contexto correcto: @lilypond[quote,fragment,ragged-right,verbatim,relative=2] { \time 12/16 - \override Staff.BarLine #'stencil = ##f + \override Staff.BarLine.stencil = ##f c4 b8 c d16 c d8 | g,8 a16 b8 c d4 e16 | e8 } @end lilypond -Ahora las barras de compás han desaparecido. +Ahora las barras de compás han desaparecido. La operación de +fijar la propiedad @code{stencil} al valor @code{#f} es tan +frecuente que existe una abreviatura para ella, llamada +@code{\omit} (omitir): +@funindex \omit + +@lilypond[quote,fragment,ragged-right,verbatim,relative=2] +{ + \time 12/16 + \omit Staff.BarLine + c4 b8 c d16 c d8 | + g,8 a16 b8 c d4 e16 | + e8 +} +@end lilypond Sin embargo, observe que el establecimiento de la propiedad @code{stencil} al valor @code{#f} produce errores cuando las se @@ -1150,27 +1198,31 @@ que establece el sello a un objeto con tamaño nulo: @lilypond[quote,verbatim,relative=2] { c4 c - \once \override NoteHead #'stencil = #point-stencil + \once \override NoteHead.stencil = #point-stencil c4 c } @end lilypond -@subheading break-visibility (visibilidad en el salto) +@node La propiedad break-visibility (visibilidad en el salto) +@unnumberedsubsubsec The @code{break-visibility} (visibilidad en el salto) +@translationof The break-visibility property @cindex break-visibility, propiedad -Vemos en las propiedades de @code{BarLine} que aparecen en el RFI que -la propiedad @code{break-visibility} requiere un vector de tres -valores booleanos. Controlan respectivamente si las barras de compás -se imprimen al final de una línea, en mitad de una línea, y al -principio de las líneas. Para nuestro ejemplo, queremos que todas las -barras de compás se supriman, por lo que el valor que necesitamos es -@code{'#(#f #f #f)}. Vamos a probarlo, recordando incluir el contexto -de @code{Staff}. Observe también que al escribir este valor tenemos -@code{#'#} antes del paréntesis de apertura. Se necesita @code{'#} -como parte del valor para introducir un vector, y el primer símbolo de -almohadilla@tie{}@code{#} se necesita, como siempre, para preceder el valor -en sí dentro de la instrucción @code{\override}. +Vemos en las propiedades de @code{BarLine} que aparecen en el RFI +que la propiedad @code{break-visibility} requiere un vector de +tres valores booleanos. Controlan respectivamente si las barras +de compás se imprimen al final de una línea, en mitad de una +línea, y al principio de las líneas. Para nuestro ejemplo, +queremos que todas las barras de compás se supriman, por lo que el +valor que necesitamos es @code{#(#f #f #f)} (disponible también +bajo el nombre @code{all-invisible}, todas invisibles). Vamos a +probarlo, recordando incluir el contexto de @code{Staff}. Observe +también que al escribir este valor tenemos @code{##} antes del +paréntesis de apertura. Se necesita un @code{#} como parte de la +sintaxis de las contantes vectoriales, y el primer símbolo de +almohadilla@tie{}@code{#} se necesita, como siempre, para preceder +el valor en sí dentro de la instrucción @code{\override}. @cindex BarLine, ejemplo de sobreescritura @cindex break-visibility, propiedad, ejemplo @@ -1178,7 +1230,7 @@ en sí dentro de la instrucción @code{\override}. @lilypond[quote,fragment,ragged-right,verbatim,relative=2] { \time 12/16 - \override Staff.BarLine #'break-visibility = #'#(#f #f #f) + \override Staff.BarLine.break-visibility = ##(#f #f #f) c4 b8 c d16 c d8 | g,8 a16 b8 c d4 e16 | e8 @@ -1187,7 +1239,9 @@ en sí dentro de la instrucción @code{\override}. Y podemos ver que esto también quita todas las líneas divisorias. -@subheading transparent (transparente) +@node La propiedad transparent (transparente) +@unnumberedsubsubsec La propiedad @code{transparent} (transparente) +@translationof The transparent property @cindex transparent, propiedad @cindex transparencia @@ -1212,7 +1266,23 @@ a la indicación de compás es: @lilypond[quote,fragment,ragged-right,verbatim,relative=2] { \time 12/16 - \override Staff.TimeSignature #'transparent = ##t + \override Staff.TimeSignature.transparent = ##t + c4 b8 c d16 c d8 | + g,8 a16 b8 c d4 e16 | + e8 +} +@end lilypond + +@noindent +Una vez más, el establecimiento de la propiedad @code{transparent} +es una operación bastante frecuente, de modo que tenemos una +abreviatura llamada @code{\hide} (ocultar): +@funindex \hide + +@lilypond[quote,fragment,ragged-right,verbatim,relative=2] +{ + \time 12/16 + \hide Staff.TimeSignature c4 b8 c d16 c d8 | g,8 a16 b8 c d4 e16 | e8 @@ -1220,11 +1290,12 @@ a la indicación de compás es: @end lilypond @noindent -El compás ya no está, pero esta instrucción deja una separación en el -lugar donde antes estaba la indicación de compás. Quizá esto es lo -que queremos para un ejercicio en que el alumno deba escribirlo, pero -en otras circunstancias esta separación podría no ser deseable. En -vez de eso, para quitarla, el stencil o «sello» de la indicación de +En ninguno de los dos casos aparece ya la indicación de compás, +pero esta instrucción deja una separación en el lugar donde antes +estaba la indicación de compás. Quizá esto es lo que queremos +para un ejercicio en que el alumno deba escribirlo, pero en otras +circunstancias esta separación podría no ser deseable. En vez de +eso, para quitarla, el stencil o «sello» de la indicación de compás se debe establecer al valor @code{#f}: @cindex TimeSignature, ejemplo de sobreescritura @@ -1233,7 +1304,7 @@ compás se debe establecer al valor @code{#f}: @lilypond[quote,fragment,ragged-right,verbatim,relative=2] { \time 12/16 - \override Staff.TimeSignature #'stencil = ##f + \omit Staff.TimeSignature c4 b8 c d16 c d8 | g,8 a16 b8 c d4 e16 | e8 @@ -1241,11 +1312,15 @@ compás se debe establecer al valor @code{#f}: @end lilypond @noindent -y la diferencia es obvia: al establecer el sello al valor @code{#f} -quitamos el objeto por completo; al hacer el objeto @code{transparent} -lo dejamos donde está, pero lo hacemos invisible. +y la diferencia es obvia: al establecer el sello al valor +@code{#f} (posiblemente por medio de @code{\omit}) quitamos el +objeto por completo; al hacer el objeto @code{transparent} (lo que +puede hacerse utilizando @code{\hide}) lo dejamos donde está, pero +lo hacemos invisible. -@subheading color +@node La propiedad color +@unnumberedsubsubsec La propiedad @code{color} +@translationof The color property @cindex color, propiedad @@ -1274,7 +1349,7 @@ poner las líneas divisorias de color blanco, escribimos: @lilypond[quote,fragment,ragged-right,verbatim,relative=2] { \time 12/16 - \override Staff.BarLine #'color = #white + \override Staff.BarLine.color = #white c4 b8 c d16 c d8 | g,8 a16 b8 c d4 e16 | e8 @@ -1284,22 +1359,23 @@ poner las líneas divisorias de color blanco, escribimos: @noindent y de nuevo podemos comprobar que las barras de compás no son visibles. Observe que @emph{white} no viene precedido de un apóstrofo: no es un -símbolo, sino una @emph{función}. Cuando se invoca, proporciona la +símbolo, sino una @emph{variable}. Cuando se evalúa, proporciona la lista de valores internos que se requieren para establecer el color a -blanco. Los otros colores de la lista normal también son funciones. +blanco. Los otros colores de la lista normal también son variables. Para convencerse de que esto funciona, quizá quiera cambiar el color a -una de las otras funciones de la lista. +una de las otras variables de la lista. @cindex colores de X11 @cindex X11, colores de @funindex x11-color -La segunda forma de cambiar el color es utilizar la lista de nombres -de colores de X11 que aparecen en la segunda lista de @ruser{Lista de -colores}. Sin embargo, éstos deben ir precedidos de otra función, que -convierte los nombres de colores de X11 en la lista de valores -internos, @code{x11-color}, de la siguiente manera: +La segunda forma de cambiar el color es utilizar la lista de +nombres de colores de X11 que aparecen en la segunda lista de +@ruser{Lista de colores}. De todas formas, se hacen corresponder +a los valores reales por medio de la función @code{x11-color} que +convierte los símbolos de color de X11 en la lista de valores +internos como éstos: @cindex BarLine, ejemplo de sobreescritura @cindex color, propiedad, ejemplo @@ -1307,7 +1383,7 @@ internos, @code{x11-color}, de la siguiente manera: @lilypond[quote,fragment,ragged-right,verbatim,relative=2] { \time 12/16 - \override Staff.BarLine #'color = #(x11-color 'white) + \override Staff.BarLine.color = #(x11-color 'white) c4 b8 c d16 c d8 | g,8 a16 b8 c d4 e16 | e8 @@ -1315,16 +1391,18 @@ internos, @code{x11-color}, de la siguiente manera: @end lilypond @noindent -Observe que en este caso la función @code{x11-color} toma un símbolo -como argumento, así que el símbolo debe ir precedido de un apóstrofo y -los dos deben ir entre paréntesis. +Observe que en este caso la función @code{x11-color} toma un +símbolo como argumento, así que el símbolo debe ir precedido de un +apóstrofo para evitar que resulte evaluado como si fuera una +variable, y toda la llamada a la función se debe encerrar entre +paréntesis. @cindex rgb, colores @cindex color, rgb @funindex rgb-color -Aún hay una tercera función, que convierte valores RGB en colores +Aún existe otra función, que convierte valores RGB en colores internos: la función @code{rgb-color}. Toma tres argumentos que dan las intensidades de rojo, verde y azul. Cada uno de ellos puede tomar valores entre 0 y 1. Por lo tanto, para establecer el color a rojo el @@ -1337,7 +1415,7 @@ valor debe ser @code{(rgb-color 1 0 0)} y para blanco debe ser @lilypond[quote,fragment,ragged-right,verbatim,relative=2] { \time 12/16 - \override Staff.BarLine #'color = #(rgb-color 1 1 1) + \override Staff.BarLine.color = #(rgb-color 1 1 1) c4 b8 c d16 c d8 | g,8 a16 b8 c d4 e16 | e8 @@ -1362,12 +1440,12 @@ varias gradaciones de gris: @lilypond[quote,fragment,ragged-right,verbatim,relative=2] { \time 12/16 - \override Staff.StaffSymbol #'color = #(x11-color 'grey30) - \override Staff.TimeSignature #'color = #(x11-color 'grey60) - \override Staff.Clef #'color = #(x11-color 'grey60) - \override Voice.NoteHead #'color = #(x11-color 'grey85) - \override Voice.Stem #'color = #(x11-color 'grey85) - \override Staff.BarLine #'color = #(x11-color 'grey10) + \override Staff.StaffSymbol.color = #(x11-color 'grey30) + \override Staff.TimeSignature.color = #(x11-color 'grey60) + \override Staff.Clef.color = #(x11-color 'grey60) + \override Voice.NoteHead.color = #(x11-color 'grey85) + \override Voice.Stem.color = #(x11-color 'grey85) + \override Staff.BarLine.color = #(x11-color 'grey10) c4 b8 c d16 c d8 | g,8 a16 b8 c d4 e16 | e8 @@ -1424,7 +1502,7 @@ el sello de cada uno de ellos a @code{#f}, como sigue: @cindex alignAboveContext, propiedad, ejemplo @cindex @code{\with}, ejemplo -@cindex stencil, propiedad, ejemplo +@funindex \omit @cindex Clef, ejemplo de sobreescritura @cindex TimeSignature, ejemplo de sobreescritura @@ -1439,8 +1517,8 @@ el sello de cada uno de ellos a @code{#f}, como sigue: alignAboveContext = #"main" } { - \override Staff.Clef #'stencil = ##f - \override Staff.TimeSignature #'stencil = ##f + \omit Staff.Clef + \omit Staff.TimeSignature { f8 f c } } >> @@ -1456,7 +1534,8 @@ se aplican al pentagrama de ossia. Pero ¿cuál es la diferencia entre modificar el contexto de pentagrama usando @code{\with} y modificar los sellos de clave y de compás con -\override? La diferencia principal es que los cambios que se realizan +\override, o en este caso +@code{\omit}? La diferencia principal es que los cambios que se realizan en una cláusula @code{\with} se hacen en el momento en que se crea el contexto, y permanecen activos como valores @strong{predeterminados} durante toda la duración de dicho contexto, mientras que las @@ -1501,9 +1580,35 @@ Así pues, podemos reemplazar el ejemplo anterior con \new Staff \with { alignAboveContext = #"main" % Don't print clefs in this staff - \override Clef #'stencil = ##f + \override Clef.stencil = ##f + % Don't print time signatures in this staff + \override TimeSignature.stencil = ##f + } + { f8 f c } + >> + r4 | + } +} +@end lilypond + +Resulta que también podemos emplear aquí las abreviaturas +@code{\hide} y @code{\omit} para fijar la propiedad +@code{transparent} y borrar el @code{stencil}, lo que conduce al +resultado siguiente: + +@lilypond[quote,fragment,ragged-right,verbatim,relative=2] +\new Staff ="main" { + \relative g' { + r4 g8 g c4 c8 d | + e4 r8 + << + { f8 c c } + \new Staff \with { + alignAboveContext = #"main" + % Don't print clefs in this staff + \omit Clef % Don't print time signatures in this staff - \override TimeSignature #'stencil = ##f + \omit TimeSignature } { f8 f c } >> @@ -1537,7 +1642,7 @@ cambiar el tamaño de las tipografías de cada uno de los tipos de objeto como las cabezas (@code{NoteHead}s) con instrucciones como @example -\override NoteHead #'font-size = #-2 +\override NoteHead.font-size = #-2 @end example o podemos cambiar el tamaño de todas las tipografías estableciendo una @@ -1570,8 +1675,8 @@ Vamos a probarlo en nuestro ejemplo del ossia: { f8 c c } \new Staff \with { alignAboveContext = #"main" - \override Clef #'stencil = ##f - \override TimeSignature #'stencil = ##f + \omit Clef + \omit TimeSignature % Reduce all font sizes by ~24% fontSize = #-2 } @@ -1639,11 +1744,11 @@ siguiente forma: { f8 c c } \new Staff \with { alignAboveContext = #"main" - \override Clef #'stencil = ##f - \override TimeSignature #'stencil = ##f + \omit Clef + \omit TimeSignature fontSize = #-2 % Reduce stem length and line spacing to match - \override StaffSymbol #'staff-space = #(magstep -2) + \override StaffSymbol.staff-space = #(magstep -2) } { f8 f c } >> @@ -1796,6 +1901,15 @@ mueven a la derecha o a la izquierda cuando apuntan hacia arriba o hacia abajo. Esto se controla automáticamente cuando está establecida la propiedad @code{direction}. +@menu +* La propiedad direction (dirección):: +* Digitaciones:: +@end menu + +@node La propiedad direction (dirección) +@unnumberedsubsubsec La propiedad @code{direction} (dirección) +@translationof The direction property + @cindex abajo @cindex arriba @cindex centro @@ -1817,11 +1931,11 @@ comportamiento predeterminado. @lilypond[quote,fragment,ragged-right,verbatim,relative=2] a4 g c a | -\override Stem #'direction = #DOWN +\override Stem.direction = #DOWN a4 g c a | -\override Stem #'direction = #UP +\override Stem.direction = #UP a4 g c a | -\revert Stem #'direction +\revert Stem.direction a4 g c a | @end lilypond @@ -1882,13 +1996,17 @@ menciona el significado de cada una allí donde no es obvio. @tab Los grupos especiales están debajo o encima de las notas @end multitable -Observe que estas instrucciones predefinidas @strong{no} pueden ir -precedidas de @code{\once}. Si quiere limitar el efecto a una sola -nota, deberá elegir entre usar la instrucción @code{\once \override} -equivalente, o usar la instrucción predefinida, seguida después de la -nota afectada por la instrucción @code{\xxxNeutral} correspondiente. +Las variantes neutras o normales de estas instrucciones están +implementadas usando @code{\revert} y @strong{no} pueden ir +precedidas de @code{\once}. Si quiere limitar el efecto de las +otras instrucciones (que están implementadas usando +@code{\override}) a un solo paso de tiempo, puede precederla de +@code{\once} de la misma forma en que lo haría con las +sobreescrituras explícitas. +@node Digitaciones @unnumberedsubsubsec Digitaciones +@translationof Fingering @cindex digitación, colocación @cindex digitación de acordes @@ -1910,9 +2028,9 @@ siguiente el efecto de especificar @code{DOWN} y @code{UP}: @lilypond[quote,verbatim,relative=2] c4-5 a-3 f-1 c'-5 | -\override Fingering #'direction = #DOWN +\override Fingering.direction = #DOWN c4-5 a-3 f-1 c'-5 | -\override Fingering #'direction = #UP +\override Fingering.direction = #UP c4-5 a-3 f-1 c'-5 | @end lilypond @@ -2018,7 +2136,7 @@ objeto @code{Fingering} del RFI que es @w{@code{-5}}, así que probaremos @w{@code{-7}}: @lilypond[quote,fragment,ragged-right,verbatim,relative=1] -\override Fingering #'font-size = #-7 +\override Fingering.font-size = #-7 \set fingeringOrientations = #'(left) 4 4 @@ -2041,6 +2159,22 @@ objeto @code{Fingering} del RFI que es @w{@code{-5}}, así que probaremos @subsection Objetos fuera del pentagrama @translationof Outside-staff objects +Los objetos fuera-del-pentagrama se sitúan automáticamente para evitar +las colisiones. Existen varias formas de sobreescribir la colocación +automática si el posicionado no resulta óptimo. + +@menu +* La propiedad outside-staff-priority (prioridad fuera del pentagrama):: +* La instrucción textLengthOn:: +* Posicionamiento de los matices dinámicos:: +* Escalado de un «Grob»:: +@end menu + + +@node La propiedad outside-staff-priority (prioridad fuera del pentagrama) +@unnumberedsubsubsec La propiedad @code{outside-staff-priority} (prioridad fuera del pentagrama) +@translationof The outside-staff-priority property + Los objetos fuera-del-pentagrama se colocan automáticamente para evitar las colisiones. Los objetos que tienen el valor más bajo de la propiedad @code{outside-staff-priority} se sitúan más cerca del @@ -2057,14 +2191,14 @@ objetos fuera-del-pentagrama más comunes. @cindex objetos de extensión Observe los nombres algo inusuales de algunos de los objetos: los -objetos de extensión se cearn automáticamente para controlar el +objetos de extensión se crean automáticamente para controlar el posicionamiento vertical de los grobs que (quizá) comienzan y terminan en distintos momentos musicales, de manera que cualquier modificación a la prioridad @code{outside-staff-priority} del grob subyacente no tiene ningún efecto. Por ejemplo, cambiar la @code{outside-staff-priority} del objeto de regulador @code{Hairpin} no tiene efecto sobre la posición vertical de los reguladores: en -lugar de eso, tenemos que cambar la @code{outside-staff-priority} del +lugar de eso, tenemos que cambiar la @code{outside-staff-priority} del objeto asociado @code{DynamicLineSpanner}. Esta sobreescritura se debe escribir al comienzo del objeto de extensión, que podría incluir varios reguladores o matices dinámicos encadenados. @@ -2121,7 +2255,7 @@ de ellos. @lilypond[quote,fragment,ragged-right,verbatim,relative=1] % Set details for later Text Spanner -\override TextSpanner #'(bound-details left text) +\override TextSpanner.bound-details.left.text = \markup { \small \bold Slower } % Place dynamics above staff \dynamicUp @@ -2172,12 +2306,12 @@ recordando que @code{OttavaBracket} se crea dentro del contexto de @lilypond[quote,fragment,ragged-right,verbatim,relative=1] % Set details for later Text Spanner -\override TextSpanner #'(bound-details left text) +\override TextSpanner.bound-details.left.text = \markup { \small \bold Slower } % Place dynamics above staff \dynamicUp % Place following Ottava Bracket below Text Spanners -\once \override Staff.OttavaBracket #'outside-staff-priority = #340 +\once \override Staff.OttavaBracket.outside-staff-priority = #340 % Start Ottava Bracket \ottava #1 c'4 \startTextSpan @@ -2223,10 +2357,10 @@ que muestra el efecto de los dos métodos: @lilypond[quote,verbatim,relative=2] c4( c^\markup { \tiny \sharp } d4.) c8 | c4( -\once \override TextScript #'avoid-slur = #'inside -\once \override TextScript #'outside-staff-priority = ##f +\once \override TextScript.avoid-slur = #'inside +\once \override TextScript.outside-staff-priority = ##f c4^\markup { \tiny \sharp } d4.) c8 | -\once \override Slur #'outside-staff-priority = #500 +\once \override Slur.outside-staff-priority = #500 c4( c^\markup { \tiny \sharp } d4.) c8 | @end lilypond @@ -2245,7 +2379,7 @@ aumentar la prioridad de @qq{Text3} hasta un valor superior: @lilypond[quote,fragment,ragged-right,verbatim,relative=2] c2^"Text1" c2^"Text2" | -\once \override TextScript #'outside-staff-priority = #500 +\once \override TextScript.outside-staff-priority = #500 c2^"Text3" c2^"Text4" | @end lilypond @@ -2259,7 +2393,9 @@ necesitar claramente espaciar las notas en sentido horizontal para hacer sitio para el texto. Esto se hace empleando la instrucción @code{textLengthOn}. -@subheading \textLengthOn +@node La instrucción textLengthOn +@unnumberedsubsubsec La instrucción @code{@bs{}textLengthOn} +@translationof The textLengthOn command @cindex notas, espaciar junto al texto @@ -2283,9 +2419,12 @@ c2^"Text4" | @end lilypond La instrucción para volver al comportamiento predeterminado es -@code{\textLengthOff}. Recuerde que @code{\once} funciona solamente -con @code{\override}, @code{\set}, @code{\revert} o @code{\unset}, así -que no se puede usar con @code{\textLengthOn}. +@code{\textLengthOff}. De forma alternativa, se puede usar +@code{\once} con @code{\textLengthOn} si el efecto se ha de limitar a +un solo momento musical. +The corresponding spacing behavior for rehearsal marks and tempo +indications is independently controlled with the commands +@code{\markLengthOn} and @code{\markLengthOff}. @cindex marcado, texto de, permitir las colisiones en @@ -2308,19 +2447,20 @@ c,,2^"Text" c'' | R1 | % Turn off collision avoidance -\once \override TextScript #'outside-staff-priority = ##f +\once \override TextScript.outside-staff-priority = ##f c,,2^"Long Text " c'' | R1 | % Turn off collision avoidance -\once \override TextScript #'outside-staff-priority = ##f +\once \override TextScript.outside-staff-priority = ##f \textLengthOn % and turn on textLengthOn c,,2^"Long Text " % Spaces at end are honored c''2 | @end lilypond - -@subheading Matices dinámicos +@node Posicionamiento de los matices dinámicos +@unnumberedsubsubsec Posicionamiento de los matices dinámicos +@translationof Dynamics placement @cindex trucar la colocación de los matices @cindex dinámica, trucar la colocación de las indicaciones de @@ -2351,7 +2491,7 @@ artificial: @lilypond[quote,fragment,ragged-right,verbatim,relative=2] \dynamicUp -a4\f b\mf c\mp b\p +a4\f b\mf a\mp b\p @end lilypond @noindent @@ -2364,7 +2504,9 @@ una instrucción equivalente para las indicaciones de matiz dinámico. Por tanto, tendremos que averiguar cómo hacerlo utilizando instrucciones @code{\override}. -@subheading Escalado de un «Grob» +@node Escalado de un «Grob» +@unnumberedsubsubsec Escalado de un «Grob» +@translationof Grob sizing @cindex grob, cambio de tamaño de un @cindex escala de los grobs @@ -2383,19 +2525,22 @@ contemplan el @code{grob-interface}. @cindex @code{extra-spacing-width} -De forma predeterminada, los objetos fuera-del-pentagrama reciben una -anchura cero, de manera que pueden solaparse en la dirección -horizontal. Esto se hace mediante el truco de añadir una cantidad -infinita a la dimensión más a la izquierda y menos infinito a la -dimensión más a la derecha estableciendo el valor de -@code{extra-spacing-width} a @code{'(+inf.0 . -inf.0)}. Así, para -asegurar que no se superponen en la dirección horizontal tendremos que -sobreescribir este valor de @code{extra-spacing-width} a @code{'(0 -. 0)} de forma que el verdadero ancho se presente. Esta es la -instrucción que lo hace para las indicaciones dinámicas: +De forma predeterminada, los objetos fuera-del-pentagrama reciben +una anchura cero, de manera que pueden solaparse en la dirección +horizontal. Esto se hace mediante el truco de hacer que la +dimensión más a la izquierda sea igual a infinito y que la +dimensión más a la derecha sea igual a menos infinito, +estableciendo el valor de @code{extra-spacing-width} a +@code{'(+inf.0 . -inf.0)}. Así, para asegurar que no se +superponen en la dirección horizontal tendremos que sobreescribir +este valor de @code{extra-spacing-width} para darles un poco de +espacio adicional. Las unidades son el espacio entre dos líneas +del pentagrama, de forma que debería bastar mover el límite +izquierdo media unidad a la izquierda y el límite derecho media +unidad a la derecha: @example -\override DynamicText #'extra-spacing-width = #'(0 . 0) +\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5) @end example @noindent @@ -2406,37 +2551,224 @@ Veamos si funciona en nuestro ejemplo anterior: @lilypond[quote,fragment,ragged-right,verbatim,relative=2] \dynamicUp -\override DynamicText #'extra-spacing-width = #'(0 . 0) -a4\f b\mf c\mp b\p | +% Extend width by 1 staff space +\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5) +a4\f b\mf a\mp b\p @end lilypond @noindent -Bueno, ciertamente ha hecho que las marcas dinámicas ya no estén -desplazadas, pero aún quedan dos problemas. Las marcas tendrían que -separarse un poco más entre sí, y sería mejor si todas estuvieran a la -misma distancia del pentagrama. Podemos resolver el primer problema -fácilmente. En vez de hacer cero la anchura -@code{extra-spacing-width}, podemos añadirle algo más. Las unidades -son el espacio entre dos líneas de pentagrama, así que al mover el -límite izquierdo media unidad a la izquierda y el límite derecho media -unidad hacia la derecha, deberíamos conseguirlo: +Esto tiene un mejor aspecto, pero quizá habríamos preferido que +las indicaciones de dinámica estuvieran alineadas sobre la misma +línea de base en lugar de ir hacia arriba y hacia abajo con las +notas. La propiedad que lo hace es @code{staff-padding} (relleno +de pentagrama) que se estudia en la sección dedicada a las +colisiones (véase @ref{Colisiones de objetos}). + +@node Espaciado vertical +@section Espaciado vertical +@translationof Vertical spacing + +Por lo general, el espaciado vertical de los objetos musicales que +LilyPond hace es bastante bueno. Veamos cómo se comporta con una +canción sencilla, con dos voces y acompañamiento de piano: + +@lilypond[quote,fragment,ragged-right] +<< + \new ChoirStaff + << + \new Staff { + \new Voice = "music" { + b'2 c' c' c' + } + } + \new Lyrics + \lyricsto "music" { + Here are some lyrics + } + \new Staff { + \clef bass e'2 f e c + } + >> + \new PianoStaff + << + \new Staff { + g''2 c'' c'' a'' + } + \new Staff { + \clef bass e2 f c e + } + >> +>> +@end lilypond -@cindex DynamicText, ejemplo de sobreescritura -@cindex extra-spacing-width, propiedad, ejemplo +No hay ningún problema con el espaciado vertical predeterminado. +Sin embargo, supongamos que estamos trabajando con un editor que +tiene ciertos requisitos específicos para el espaciado vertical de +los pentagramas y la letra: quiere que la letra está más separada +de las notas, que el acompañamiento de piano esté más separado de +la línea vocal y que los dos pentagramas de piano estén más juntos +entre sí. Comenzaremos con la letra. + +La letra se encuentra en el interior de un sistem, y por tanto las +instrucciones para aplicarle el espaciado estarán en +@ruser{Espaciado vertical flexible dentro de los sistemas}. Allí +se dice que el texo son líneas del tipo @qq{no-pauta} y por tanto +la instrucción para cambiar su espaciado hará referencia a la +propiedad @code{nonstaff}. Para separarlas del pentagrama al que +pertenecen (la pauta superior) usaremos la propiedad +@code{relatedstaff}. Para separarlas de la línea inferior +usaremos la propiedad @code{unrelatedstaff}. Las partes vocales +pertenecen a un grupo vertical @code{VerticalAxisGroup}, por lo +que tenemos que ajustar sus propiedades. Probémoslo y veamos si +funciona. + +@lilypond[quote,fragment,ragged-right,verbatim] +<< + \new ChoirStaff + << + \new Staff { + \new Voice = "music" { + b'2 c' c' c' + } + } + \new Lyrics \with { + \override VerticalAxisGroup. + nonstaff-relatedstaff-spacing.padding = #5 + \override VerticalAxisGroup. + nonstaff-unrelatedstaff-spacing.padding = #5 + } + \lyricsto "music" { + Here are some lyrics + } + \new Staff { + \clef bass e'2 f e c + } + >> + \new PianoStaff + << + \new Staff { + g''2 c'' c'' a'' + } + \new Staff { + \clef bass e2 f c e + } + >> +>> +@end lilypond -@lilypond[quote,fragment,ragged-right,verbatim,relative=2] -\dynamicUp -% Extend width by 1 staff space -\override DynamicText #'extra-spacing-width = #'(-0.5 . 0.5) -a4\f b\mf c\mp b\p +Bien: sí, funciona, pero quizá demasiado bien. Cuando +establecemos el @code{padding} (relleno) a 5, LilyPond añade 5 +espacios de pentagrama a la distancia entre los objetos, lo que es +excesivo para nosotros en este caso. Usaremos un valor de 2. + +A continuación, desplazaremos la música de piano para separarla de +las partes vocales. La música vocal es una @code{ChoirStaff} (un +contexto de sistema coral), y por tanto tenemos que aumentar el +espaciado entre ese grupo de pentagramas y el sistema de piano que +se encuentra debajo. Lo haremos cambiando la +@code{basic-distance} (distancia básica) del @code{StaffGrouper} +del @code{staffgroup-staff-spacing}. + +@lilypond[quote,fragment,ragged-right,verbatim] +<< + \new ChoirStaff \with { + \override StaffGrouper. + staffgroup-staff-spacing.basic-distance = #15 + } + << + \new Staff { + \new Voice = "music" { + b'2 c' c' c' + } + } + \new Lyrics \with { + \override VerticalAxisGroup. + nonstaff-relatedstaff-spacing.padding = #2 + \override VerticalAxisGroup. + nonstaff-unrelatedstaff-spacing.padding = #2 + } + \lyricsto "music" { + Here are some lyrics + } + \new Staff { + \clef bass e'2 f e c + } + >> + \new PianoStaff + << + \new Staff { + g''2 c'' c'' a'' + } + \new Staff { + \clef bass e2 f c e + } + >> +>> @end lilypond -@noindent -Esto tiene un mejor aspecto, pero quizá habríamos preferido que las -indicaciones de dinámica estuvieran alineadas sobre la misma línea de -base en lugar de ir hacia arriba y hacia abajo con las notas. La -propiedad que lo hace es @code{staff-padding} (relleno de pentagrama) -que se estudia en la sección siguiente. +Muy bien. Ahora, sólo nos queda el último requisito de hacer que +los pentagramas de piano estén más juntos. Para conseguirlo, de +nuevo alteramos las propiedades del @code{StaffGrouper}, pero esta +vez vamos a reducir tanto la @code{basic-distance} (distancia +básica) como el @code{padding} (relleno). Podemos hacerlo como se +muestra a continuación. + +@lilypond[quote,fragment,ragged-right,verbatim] +<< + \new ChoirStaff \with { + \override StaffGrouper. + staffgroup-staff-spacing.basic-distance = #15 + } + << + \new Staff { + \new Voice = "music" { + b'2 c' c' c' + } + } + \new Lyrics \with { + \override VerticalAxisGroup. + nonstaff-relatedstaff-spacing.padding = #2 + \override VerticalAxisGroup. + nonstaff-unrelatedstaff-spacing.padding = #2 + } + \lyricsto "music" { + Here are some lyrics + } + \new Staff { + \clef bass e'2 f e c + } + >> + \new PianoStaff \with { + \override StaffGrouper.staff-staff-spacing = #'( + (basic-distance . 0) + (padding . 0)) + } + << + \new Staff { + g''2 c'' c'' a'' + } + \new Staff { + \clef bass e2 f c e + } + >> +>> +@end lilypond + +Con esto los hemos colocado muy juntos entre sí (pero es lo que el +editor quería). Se podrían haber separado más alterando el +relleno, @code{padding}, o la distancia básica, +@code{basic-distance}, si quisiéramos. + +Hay muchas formas de alterar el espaciado vertical. Un punto +clave que debemos recordar es que el espaciado entre objetos +dentro de un @code{StaffGroup} (como los grupos @code{GrandStaff} +o @code{PianoStaff}) se controla con las variables de espaciado +del @code{StaffGrouper}. El espaciado de los pentagramas no +agrupados (como @code{Lyrics} y @code{Staff}) se controla con las +variables del @code{VerticalAxisGroup}. Para ver más detalles, +consulte +@ruser{Variables de espaciado de paper verticales flexibles} y +@ruser{Espaciado vertical flexible dentro de los sistemas}. @node Colisiones de objetos @@ -2602,29 +2934,66 @@ pentagrama en medios espacios de pentagrama. Es útil en la resolución de colisiones entre objetos de presentación como silencios multi-compás, ligaduras de unión y notas en distintas voces. +@item +@code{horizontal-shift} + +@cindex horizontal-shift, propiedad +@cindex nota, columna de +@cindex nota, colisiones +@cindex colisiones de notas +@cindex desplazamiento, instrucciones de +@funindex \shiftOff +@funindex shiftOff +@funindex \shiftOn +@funindex shiftOn +@funindex \shiftOnn +@funindex shiftOnn +@funindex \shiftOnnn +@funindex shiftOnnn + +Dentro de una vozm todas las notas que se producen en el mismo +moemtno se agrupan en una columna de notas, y se crea un objeto +@code{NoteColumn} para controlar el posicionamiento horizonal de +dicho grupo de notas (véase @qq{Columnas de nota} en @ref{Voces +explícitas}). Si @emph{y sólo si} dos o más columnas de nota +dentro de un solo contexto de pauta, las dos con las plicas en la +misma dirección, aparecen en el mismo momento musical, los valores +de sus propiedades @code{horizontal-shift} se usan para asignarles +una puntuación y las columnas con puntuaciones más altas se +desplazan progresivamente para evitar las colisiones entre las +cabezas de las notas. Esta propiedad se establece con las +instrucciones @code{\voiceXXX} y se pueden sobreescribir +directamente con una instrucción @code{\override} o, de forma más +común con las instrucciones @code{\shiftOn}. Observe que esta +propiedad se usa para @emph{calificar} las columnas de nota o para +aplicar desplazamientos: no especifica la magnitud del +desplazamiento, que se va incrementando progresivamente en pasos +basándolse en la anchura de las cabezas de nota para cada +puntuación. Los pasos son normalmente de la mitad de la anchura +de una cabeza de nota, pero puede ser el ancho completo de la +cabeza de una nota cuando está implicado un grupo de notas muy +apretadas entre sí. + @item @code{force-hshift} (forzar desplazamiento horizontal) @cindex force-hshift, propiedad -Las notas muy juntas de un acorde, o aquellas que ocurren al mismo -tiempo en voces distintas, se disponen en dos (y ocasionalmente más) -columnas para evitar la superposición de las cabezas. Éstas reciben -el nombre de columnas de notas, y se crea un objeto llamado -@code{NoteColumn} para disponer las notas en dicha columna. - La propiedad @code{force-hshift} es una propiedad de una @code{NoteColumn} (realmente lo es del interface -@code{note-column-interface}). Modificarlo permite mover una columna -de notas en unidades adecuadas a una columna de notas, por ejemplo la -anchura de la cabeza de la nota de la primera voz. Se debe usar en -situaciones complejas donde las instrucciones @code{\shiftOn} normales -(véase @ref{Voces explícitas}) no resuelven el -conflicto entre las notas. Es preferible a la propiedad -@code{extra-offset} para este propósito porque no hay necesidad de -averiguar la distancia en espacios de pentagrama, y mover las notas -dentro o fuera de una @code{NoteColumn} afecta a otras acciones como a -la fusión entre cabezas de nota. +@code{note-column-interface}). Modificarlo permite mover una +columna de notas en situaciones donde las columnas de notas se +superponen. Observe que no tiene efecto sobre las columnas de +nota que no se superponen. Se especifica en unidades adecuadas a +una columna de notas, por ejemplo la anchura de la cabeza de la +nota de la primera voz. Se debe usar en situaciones complejas +donde las instrucciones @code{\shiftOn} normales (véase @ref{Voces +explícitas}) no resuelven el conflicto entre las notas de forma +satisfactoria. Es preferible a la propiedad @code{extra-offset} +para este propósito porque no hay necesidad de averiguar la +distancia en espacios de pentagrama, y mover las notas dentro o +fuera de una @code{NoteColumn} afecta a otras acciones como a la +fusión entre cabezas de nota. @end itemize @@ -2709,7 +3078,20 @@ Veamos ahora cómo pueden ser de ayuda las propiedades que hemos visto en la sección anterior, para resolver problemas de notación que se superpone. -@subheading la propiedad padding (relleno) +@menu +* La propiedad padding (relleno):: +* La propiedad right-padding (relleno por la derecha):: +* La propiedad staff-padding (relleno de pentagrama):: +* La propiedad self-alignment-X (auto-alineación en X):: +* La propiedad staff-position (posición en el pentagrama):: +* La propiedad extra-offset (desplazamiento adicional):: +* La propiedad positions (posiciones):: +* La propiedad force-hshift (forzar desplazamiento horizontal):: +@end menu + +@node La propiedad padding (relleno) +@unnumberedsubsubsec La propiedad @code{padding} (relleno) +@translationof The padding property @cindex relleno @cindex arreglar notación que se superpone @@ -2724,7 +3106,7 @@ notas. @lilypond[quote,fragment,relative=1,verbatim] c2\fermata -\override Script #'padding = #3 +\override Script.padding = #3 b2\fermata @end lilypond @@ -2733,11 +3115,11 @@ b2\fermata @lilypond[quote,fragment,relative=1,verbatim] % This will not work, see below -\override MetronomeMark #'padding = #3 +\override MetronomeMark.padding = #3 \tempo 4 = 120 c1 | % This works -\override Score.MetronomeMark #'padding = #3 +\override Score.MetronomeMark.padding = #3 \tempo 4 = 80 d1 | @end lilypond @@ -2755,7 +3137,9 @@ entonces ese objeto se moverá, y también todos los que están por fuera de él. -@subheading right-padding (relleno por la derecha) +@node La propiedad right-padding (relleno por la derecha) +@unnumberedsubsubsec La propiedad @code{right-padding} (relleno por la derecha) +@translationof The right-padding property @cindex right-padding, propiedad @@ -2779,15 +3163,13 @@ sesquisharp = \markup { \sesquisharp } \relative c'' { c4 % This prints a sesquisharp but the spacing is too small - \once \override Accidental - #'stencil = #ly:text-interface::print - \once \override Accidental #'text = #sesquisharp + \once \override Accidental.stencil = #ly:text-interface::print + \once \override Accidental.text = #sesquisharp cis4 c % This improves the spacing - \once \override Score.AccidentalPlacement #'right-padding = #0.6 - \once \override Accidental - #'stencil = #ly:text-interface::print - \once \override Accidental #'text = #sesquisharp + \once \override Score.AccidentalPlacement.right-padding = #0.6 + \once \override Accidental.stencil = #ly:text-interface::print + \once \override Accidental.text = #sesquisharp cis4 | } @end lilypond @@ -2803,15 +3185,17 @@ sobreescribiendo @code{right-padding}. @noindent -@subheading la propiedad staff-padding (relleno de pentagrama) +@node La propiedad staff-padding (relleno de pentagrama) +@unnumberedsubsubsec La propiedad @code{staff-padding} (relleno de pentagrama) +@translationof The staff-padding property @cindex alineación de objetos sobre la línea base @cindex objetos, alineación sobre la línea base @code{staff-padding} se puede usar para alinear objetos como matices -dinámicos a lo largo de una línea de base a una altura fija sobre el -pentagrama, en lugar de hacerlo a una altura que dependa de la -posición de la nota a la que están adosados. No es una propiedad de +dinámicos a lo largo de una línea de base a una distancia fija del +pentagrama, siempre que no exista ningún otro elemento de notación +que fuerce una distancia mayor al pentagrama. No es una propiedad de @code{DynamicText} sino de @code{DynamicLineSpanner}. Esto es así porque la línea de base debe aplicarse por igual a @strong{todas} las dinámicas, entre ellas las que se han creado como objetos de @@ -2824,19 +3208,17 @@ matiz en el ejemplo de la sección anterior: @cindex staff-padding, propiedad, ejemplo @lilypond[quote,fragment,ragged-right,verbatim,relative=2] -\dynamicUp -% Extend width by 1 unit -\override DynamicText #'extra-spacing-width = #'(-0.5 . 0.5) -% Align dynamics to a base line 2 units above staff -\override DynamicLineSpanner #'staff-padding = #2 -a4\f b\mf c\mp b\p +\override DynamicLineSpanner.staff-padding = #3 +a4\f b\mf a\p b\mp @end lilypond -@subheading la propiedad self-alignment-X (auto-alineación en X) +@node La propiedad self-alignment-X (auto-alineación en X) +@unnumberedsubsubsec La propiedad @code{self-alignment-X} (auto-alineación en X) +@translationof The self-alignment-X property -El ejemplo siguiente muestra cómo esto puede resolver la colisión -entre un objeto de digitación de cuerda y la plica de una nota +El ejemplo siguiente muestra cómo ajustar la posición +de un objeto de digitación de cuerda en relación a la plica de una nota mediante el alineamiento del límite derecho con el punto de referencia de la nota «padre»: @@ -2846,11 +3228,13 @@ de la nota «padre»: @lilypond[quote,fragment,ragged-right,verbatim,relative=3] \voiceOne -\once \override StringNumber #'self-alignment-X = #RIGHT +\once \override StringNumber.self-alignment-X = #RIGHT @end lilypond -@subheading la propiedad staff-position (posición en el pentagrama) +@node La propiedad staff-position (posición en el pentagrama) +@unnumberedsubsubsec La propiedad @code{staff-position} (posición en el pentagrama) +@translationof The staff-position property @cindex objeto, colisión dentro del pentagrama @@ -2869,7 +3253,7 @@ aquí un ejemplo de colisión de este tipo: La mejor solución aquí es mover el silencio multi-compás hacia abajo, pues el silencio está en la voz dos. El ajuste predeterminado para @code{\voiceTwo} (es decir, en la segunda voz de una construcción -@code{<<@{...@} \\ @{...@}>>}) es que @code{staff-position} tenga el +@code{<<@{@dots{}@} \\ @{@dots{}@}>>}) es que @code{staff-position} tenga el valor -4 para MultiMeasureRest, así que tenemos que bajarlo, digamos, cuatro semi-espacios de pentagrama, al valor @w{@code{-8}}. @@ -2880,7 +3264,7 @@ cuatro semi-espacios de pentagrama, al valor @w{@code{-8}}. << { c4 c c c } \\ - \override MultiMeasureRest #'staff-position = #-8 + \override MultiMeasureRest.staff-position = #-8 { R1 } >> @end lilypond @@ -2888,7 +3272,9 @@ cuatro semi-espacios de pentagrama, al valor @w{@code{-8}}. Esto es mejor que utilizar, por ejemplo, @code{extra-offset}, porque la línea adicional por encima del silencio se inserta automáticamente. -@subheading la propiedad extra-offset (desplazamiento adicional) +@node La propiedad extra-offset (desplazamiento adicional) +@unnumberedsubsubsec La propiedad @code{extra-offset} (desplazamiento adicional) +@translationof The extra-offset property @cindex posicionar objetos @cindex posicionar grobs @@ -2901,18 +3287,20 @@ posicionamiento de un objeto tanto vertical como horizontalmente. En el ejemplo siguiente, la segunda digitación se desplaza ligeramente a la izquierda, y 1.8 espacios de pentagrama hacia abajo: -@cindex Fingering, ejemplo de sobreescritura +@cindex fingering (digitación), ejemplo de sobreescritura @cindex extra-offset, propiedad, ejemplo @lilypond[quote,fragment,relative=1,verbatim] \stemUp f4-5 -\once \override Fingering #'extra-offset = #'(-0.3 . -1.8) +\once \override Fingering.extra-offset = #'(-0.3 . -1.8) f4-5 @end lilypond -@subheading la propiedad positions (posiciones) +@node La propiedad positions (posiciones) +@unnumberedsubsubsec La propiedad @code{positions} (posiciones) +@translationof The positions property @cindex controlar manualmente grupos especiales, ligaduras y barras @cindex manual, control, de grupos especiales, ligaduras y barras @@ -2922,40 +3310,42 @@ f4-5 @cindex barras de corchea, control manual La propiedad @code{positions} permite controlar manualmente la -posición e inclinación de los tresillos, ligaduras de expresión y de -fraseo, y barras de corchea. He aquí un ejemplo que tiene una fea -ligadura de fraseo debido a que intenta evitar la ligadura de -expresión que está sobre la acciaccatura. +posición vertical y de ahí también la inclinación de los tresillos, +ligaduras de expresión y de fraseo, y barras de corchea. -@lilypond[quote,verbatim,fragment,ragged-right,relative=1] -r4 \acciaccatura e8\( d8 c~ c d c d\) -@end lilypond +He aquí un ejemplo en el que las ligaduras de fraseo y de expresión +chocan entre sí: -@noindent -Simplemente podemos mover la ligadura de fraseo por encima de las -notas, y de hecho ésta será la solución preferida: +@lilypond[quote,verbatim,fragment,ragged-right,relative=2] +a8 \( ( a'16 ) a \) +@end lilypond @cindex PhrasingSlur, ejemplo de sobreescritura @cindex positions, propiedad, ejemplo -@lilypond[quote,verbatim,fragment,ragged-right,relative=1] -r4 -\phrasingSlurUp -\acciaccatura e8\( d8 c~ c d c d\) -@end lilypond - @noindent -Pero si por algún motivo no pudiéramos hacerlo, la otra alternativa -sería mover el extremo izquierdo de la ligadura de fraseo un poco -hacia abajo usando la propiedad @code{positions}. Esto también -resuelve la forma algo indecente de la ligadura. - -@lilypond[quote,verbatim,fragment,ragged-right,relative=1] -r4 -\once \override PhrasingSlur #'positions = #'(-4 . -3) -\acciaccatura e8\( d8 c~ c d c d\) +Una posibilidad sería mover los dos extremos de la ligadura de fraseo +hacia arriba. Podemos tratar de establecer el extremo izquierdo a 2.5 +espacios de pentagrama por encima de la tercera línea y el extremo +derecho a 4.5 también hacia arriba, y LilyPond seleccionaría la +ligadura de fraseo de entre las candidatas que ha encontrado con sus +extremos más cercanos a éstos: + +@lilypond[quote,verbatim,fragment,ragged-right,relative=2] +\once \override PhrasingSlur.positions = #'(2.5 . 4.5) +a8 \( ( a'16 ) a \) @end lilypond +Esto supone una mejora, pero ¿por qué no bajar un poco el extremo +derecho de la ligadura de expresión? Si lo probamos, veremos que no +se puede hacer así. Ello es a causa de que no existen ligaduras de +expresión candidatas que estén más bajas que la que ya se ha +seleccionado, y en este caso la propiedad @code{positions} no tiene +ningún efecto. Sin embargo, las ligaduras de unión, expresión y +fraseo @emph{se pueden} colocar y conformar de manera muy exacta +cuando se necesita. Para aprender la manera de hacerlo, consulte +@ruser{Modificación de ligaduras de unión y de expresión}. + Presentamos otro ejemplo. Vemos que la barra choca con las ligaduras: @@ -2963,12 +3353,12 @@ choca con las ligaduras: { \time 4/2 << - { c'1 ~ c'2. e'8 f' } + { c'1 ~ 2. e'8 f' } \\ { e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g'' } >> << - { c'1 ~ c'2. e'8 f' } + { c'1 ~ 2. e'8 f' } \\ { e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g'' } >> @@ -2987,15 +3377,15 @@ central hasta, digamos, 1 espacio: { \time 4/2 << - { c'1 ~ c'2. e'8 f' } + { c'1 ~ 2. e'8 f' } \\ { - \override Beam #'positions = #'(-1 . -1) + \override Beam.positions = #'(-1 . -1) e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g'' } >> << - { c'1 ~ c'2. e'8 f' } + { c'1 ~ 2. e'8 f' } \\ { e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g'' } >> @@ -3007,7 +3397,9 @@ Observe que la sobreescritura sigue aplicándose en la primera voz del segundo compás de corcheas, pero no a ninguna de las barras de la segunda voz. -@subheading la propiedad force-hshift (forzar desplazamiento horizontal) +@node La propiedad force-hshift (forzar desplazamiento horizontal) +@unnumberedsubsubsec La propiedad @code{force-hshift} (forzar desplazamiento horizontal) +@translationof The force-hshift property Ahora podremos ver cómo aplicar las correcciones finales al ejemplo de Chopin que presentamos al final de @ref{Oigo voces}, que @@ -3029,16 +3421,24 @@ dejamos con este aspecto: @end lilypond @noindent -Es necesario que la nota interior del primer acorde (el La bemol de la -cuarta voz) no se aparte de la columna vertical de la nota aguda. -Para corregirlo, ajustamos a cero el valor para esta nota de -@code{force-hshift}, que es una propiedad de @code{NoteColumn}. - -En el segundo acorde preferimos que el Fa esté alineado con el La bemol -y que la nota grave se coloque ligeramente a la derecha para evitar una -colisión de las plicas. Lo conseguimos ajustando el valor de -@code{force-hshift} en la @code{NoteColumn} del Re bemol grave para -moverlo a la derecha medio espacio de pentagrama. +Es necesario que la nota interior del primer acorde (el La bemol +de la cuarta voz) no se aparte de la columna vertical de la nota +aguda. Podríamos esperar corregirlo mediante el uso de +@code{\shiftOff}, pero esto produce advertencias sobre columnas de +notas que colisionan. En lugar de ello, ajustamos a cero el valor +para esta nota de @code{force-hshift}, que es una propiedad de +@code{NoteColumn}. + +En el segundo acorde preferimos que el Fa esté alineado con el La +bemol y que la nota grave se coloque ligeramente a la derecha para +evitar una colisión de las plicas. Lo conseguimos ajustando el +valor de @code{force-hshift} en la @code{NoteColumn} del Re bemol +grave para moverlo a la derecha medio espacio de pentagrama, y +fijando @code{force-hshift} para el Fa al vaor cero. Observe que +usamos @code{\once} para evitar que los ajustes se propaguen más +allá del momento musical inmediato, aunque en este pequeño ejemplo +podrían omitirse el @code{\once} y el segundo @code{\override} de +la cuarta voz. Ello no supondría una buena práctica. Presentamos a continuación el resultado final: @@ -3051,17 +3451,11 @@ Presentamos a continuación el resultado final: << { c2 aes4. bes8 } \\ - { - 2 - \once \override NoteColumn #'force-hshift = #0.5 - des2 - } + { 2 \once \override NoteColumn.force-hshift = 0.5 des } \\ \\ - { - \override NoteColumn #'force-hshift = #0 - aes'2 f4 fes - } + { \once \override NoteColumn.force-hshift = 0 aes'2 + \once \override NoteColumn.force-hshift = 0 f4 fes } >> | 1 | } @@ -3094,7 +3488,7 @@ quitado las indicaciones dinámicas, las digitaciones y el pedal. rhMusic = \relative c'' { \new Voice { r2 c4.\( g8 | - \once \override Tie #'staff-position = #3.5 + \once \override Tie.staff-position = #3.5 bes1~ | \bar "||" \time 6/4 @@ -3107,7 +3501,7 @@ rhMusic = \relative c'' { \voiceTwo c,8~ % Reposition the c2 to the right of the merged note - \once \override NoteColumn #'force-hshift = #1.0 + \once \override NoteColumn.force-hshift = #1.0 % Move the c2 out of the main note column % so the merge will work \shiftOnn @@ -3119,8 +3513,7 @@ rhMusic = \relative c'' { % Stem on the d2 must be down to permit merging \stemDown % Stem on the d2 should be invisible - \tweak Stem #'transparent ##t - \tweak Flag #'transparent ##t + \tweak Stem.transparent ##t d2 } \new Voice { @@ -3186,7 +3579,7 @@ rhMusic = \relative c'' { { c,8 d fis bes a } % continuation of main voice \new Voice { \voiceTwo - c,8~ c2 + c,8~ 2 } \new Voice { \voiceThree @@ -3244,7 +3637,7 @@ rhMusic = \relative c'' { { c,8 d fis bes a } % continuation of main voice \new Voice { \voiceTwo - c,8~ c2 + c,8~ 2 } \new Voice { \voiceThree @@ -3301,7 +3694,7 @@ siguiente colocada justo antes de la primera nota ligada subirá la ligadura 3.5 medios espacios de pentagrama por encima de la línea central: -@code{\once \override Tie #'staff-position = #3.5} +@code{\once \override Tie.staff-position = #3.5} Con esto se completa el compás dos, dando como resultado: @@ -3310,7 +3703,7 @@ Con esto se completa el compás dos, dando como resultado: rhMusic = \relative c'' { \new Voice { r2 c4.\( g8 | - \once \override Tie #'staff-position = #3.5 + \once \override Tie.staff-position = #3.5 bes1~ | \bar "||" \time 6/4 @@ -3320,7 +3713,7 @@ rhMusic = \relative c'' { { c,8 d fis bes a } % continuation of main voice \new Voice { \voiceTwo - c,8~ c2 + c,8~ 2 } \new Voice { \voiceThree @@ -3391,7 +3784,7 @@ al final, dando como resultado: rhMusic = \relative c'' { \new Voice { r2 c4.\( g8 | - \once \override Tie #'staff-position = #3.5 + \once \override Tie.staff-position = #3.5 bes1~ | \bar "||" \time 6/4 @@ -3403,7 +3796,7 @@ rhMusic = \relative c'' { { c,8 d fis bes a } % continuation of main voice \new Voice { \voiceTwo - c,8~ c2 + c,8~ 2 } \new Voice { \voiceThree @@ -3466,7 +3859,7 @@ aplicar estos cambios obtenemos: rhMusic = \relative c'' { \new Voice { r2 c4.\( g8 | - \once \override Tie #'staff-position = #3.5 + \once \override Tie.staff-position = #3.5 bes1~ | \bar "||" \time 6/4 @@ -3537,7 +3930,7 @@ final: rhMusic = \relative c'' { \new Voice { r2 c4.\( g8 | - \once \override Tie #'staff-position = #3.5 + \once \override Tie.staff-position = #3.5 bes1~ | \bar "||" \time 6/4 @@ -3551,7 +3944,7 @@ rhMusic = \relative c'' { \voiceTwo c,8~ % Reposition the c2 to the right of the merged note - \once \override NoteColumn #'force-hshift = #1.0 + \once \override NoteColumn.force-hshift = #1.0 % Move the c2 out of the main note column % so the merge will work \shiftOnn @@ -3563,8 +3956,7 @@ rhMusic = \relative c'' { % Stem on the d2 must be down to permit merging \stemDown % Stem on the d2 should be invisible - \tweak Stem #'transparent ##t - \tweak Flag #'transparent ##t + \tweak Stem.transparent ##t d2 } \new Voice { @@ -3607,7 +3999,7 @@ lhMusic = \relative c' { @menu * Otras aplicaciones de los trucos:: -* Uso de variables para los trucos:: +* Uso de variables para los ajustes de disposición:: * Hojas de estilo:: * Otras fuentes de información:: * Trucos avanzados con Scheme:: @@ -3617,6 +4009,11 @@ lhMusic = \relative c' { @subsection Otras aplicaciones de los trucos @translationof Other uses for tweaks +@menu +* Unir notas entre voces distintas:: +* Simulación de un calderón en el MIDI:: +@end menu + @cindex transparent, uso de la propiedad @cindex objetos, hace invisibles @cindex eliminar objetos @@ -3625,9 +4022,12 @@ lhMusic = \relative c' { @cindex ocultar objetos @cindex invisibles, objetos @cindex objetos invisibles -@cindex ligar notas entre voces distintas -@subheading Ligar notas entre voces distintas +@node Unir notas entre voces distintas +@unnumberedsubsubsec Unir notas entre voces distintas +@translationof Tying notes across voices + +@cindex ligar notas entre voces distintas El ejemplo siguiente muestra cómo conectar notas que están en distintas voces utilizando ligaduras de unión. Normalmente sólo se @@ -3635,7 +4035,7 @@ pueden conectar mediante ligaduras de unión dos notas que estén en la misma voz. Usando dos voces, con las notas ligadas en una de ellas: @lilypond[quote,fragment,relative=2] -<< { b8~ b\noBeam } \\ { b8[ g] } >> +<< { b8~ 8\noBeam } \\ { b8[ g] } >> @end lilypond @noindent @@ -3648,9 +4048,8 @@ de que la ligadura se cruza entre las voces: @lilypond[quote,fragment,relative=2,verbatim] << { - \tweak Stem #'transparent ##t - \tweak Flag #'transparent ##t - b8~ b\noBeam + \tweak Stem.transparent ##t + b8~ 8\noBeam } \\ { b8[ g] } @@ -3664,17 +4063,49 @@ valor de longitud @code{length} a @code{8}, @lilypond[quote,fragment,relative=2,verbatim] << { - \tweak Stem #'transparent ##t - \tweak Flag #'transparent ##t - \tweak Stem #'length #8 - b8~ b\noBeam + \tweak Stem.transparent ##t + \tweak Stem.length #8 + b8~ 8\noBeam } \\ { b8[ g] } >> @end lilypond -@subheading Simulación de un calderón en el MIDI +@funindex \single +@cindex tweak, generado a partir de una sobreescritura +Ahora bien, para la @emph{sobreescritura} de la transparencia de +un objeto gráfico, podríamos haber usado la abreviatura +@code{\hide} como se explicó anteriormente. El trucaje mediante +@qq{tweak} es una operación diferente que afecta solamente a las +propiedades generadas a partir de una sola expresión musical. +Resulta que podemos convertir los overrides o sobreescrituras en +tweaks o trucajes utilizando @code{\single}, haciendo posible +volver a escribir el ejemplo anterior como + +@lilypond[quote,fragment,relative=2,verbatim] +<< + { + \single \hide Stem + \single \hide Flag + \tweak Stem.length #8 + b8~ 8\noBeam + } +\\ + { b8[ g] } +>> +@end lilypond + +En este caso particular, la diferencia con @code{\once \hide} no +es muy apreciable. Es importante cuando existen varios objetos en +el mismo punto del tiempo musical (como las notas de un acorde). +En tal caso, @code{\once} afecta a todos los objetos, mientras que +@code{\single} solo afecta a uno, aquél que se genera por parte de +la expresión musical que le sigue inmediatamente. + +@node Simulación de un calderón en el MIDI +@unnumberedsubsubsec Simulación de un calderón en el MIDI +@translationof Simulating a fermata in MIDI @cindex sello, uso de la propiedad @cindex fermata, realización en MIDI @@ -3705,7 +4136,7 @@ los dos métodos: % Visible tempo marking \tempo 4=120 a4 a a - \once \override Score.MetronomeMark #'transparent = ##t + \once \hide Score.MetronomeMark % Invisible tempo marking to lengthen fermata in MIDI \tempo 4=80 a4\fermata | @@ -3727,7 +4158,7 @@ los dos métodos: % Visible tempo marking \tempo 4=120 a4 a a - \once \override Score.MetronomeMark #'stencil = ##f + \once \override Score.MetronomeMark.stencil = ##f % Invisible tempo marking to lengthen fermata in MIDI \tempo 4=80 a4\fermata | @@ -3751,14 +4182,14 @@ sigue, mientras que la segunda (con el sello suprimido) no lo hace. Glosario musical: @rglos{system}. +@node Uso de variables para los ajustes de disposición +@subsection Uso de variables para los ajustes de disposición +@translationof Using variables for layout adjustments -@node Uso de variables para los trucos -@subsection Uso de variables para los trucos -@translationof Using variables for tweaks - -@cindex variables, uso de, para trucos -@cindex usar variables para hacer trucos -@cindex trucos, usar variables para hacer +@cindex variables, usar para sobreescrituras +@cindex sobreescrituras, usar variablas para +@cindex ajustes, usar variables para +@cindex ajustes de disposición, usar variables para hacer Las instrucciones de sobreescritura son con frecuencia largas y tediosas de escribir, y se tienen que escribir de forma absolutamente @@ -3776,11 +4207,11 @@ alternativa, utilizar las instrucciones @code{\override} y @code{\revert}? @example -@code{\override Lyrics . LyricText #'font-shape = #'italic} -@code{\override Lyrics . LyricText #'font-series = #'bold} +@code{\override Lyrics.LyricText.font-shape = #'italic} +@code{\override Lyrics.LyricText.font-series = #'bold} -@code{\revert Lyrics . LyricText #'font-shape} -@code{\revert Lyrics . LyricText #'font-series} +@code{\revert Lyrics.LyricText.font-shape} +@code{\revert Lyrics.LyricText.font-series} @end example Estas instrucciones también serían extremadamente tediosas de escribir @@ -3799,13 +4230,13 @@ más cortos para que fueran más rápidos de teclear: @lilypond[quote,verbatim] emphasize = { - \override Lyrics.LyricText #'font-shape = #'italic - \override Lyrics.LyricText #'font-series = #'bold + \override Lyrics.LyricText.font-shape = #'italic + \override Lyrics.LyricText.font-series = #'bold } normal = { - \revert Lyrics.LyricText #'font-shape - \revert Lyrics.LyricText #'font-series + \revert Lyrics.LyricText.font-shape + \revert Lyrics.LyricText.font-series } global = { \key c \major \time 4/4 \partial 4 } @@ -3869,18 +4300,15 @@ las partes que tienen todos los @code{#()}. Esto se explicará en @lilypond[quote,verbatim,ragged-right] mpdolce = -#(make-dynamic-script - #{ \markup { \hspace #0 - \translate #'(5 . 0) - \line { \dynamic "mp" - \text \italic "dolce" } } - #}) + \tweak self-alignment-X #-0.6 + #(make-dynamic-script + #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #}) inst = #(define-music-function (parser location string) (string?) - #{ ^\markup \bold \box #string #}) + #{ <>^\markup \bold \box #string #}) \relative c'' { \tempo 4=50 @@ -3902,20 +4330,17 @@ nuestros archivos de música, y yo personalmente encuentro todos los otro archivo: @example -%%% guardar esto en un archivo de nombre "definiciones.ily" +%%% guardar esto en un archivo con el nombre "definiciones.ily" mpdolce = -#(make-dynamic-script - #@{ \markup @{ \hspace #0 - \translate #'(5 . 0) - \line @{ \dynamic "mp" - \text \italic "dolce" @} @} - #@}) + \tweak self-alignment-X #-0.6 + #(make-dynamic-script + #@{ \markup @{ \dynamic mp \normal-text \italic \bold dolce @} #@}) inst = #(define-music-function (parser location string) (string?) - #@{ ^\markup \bold \box #string #@}) + #@{ <>^\markup \bold \box #string #@}) @end example Haremos referencia a este archivo utilizando la instrucción @@ -3943,18 +4368,15 @@ archivo como @file{musica.ly}). @lilypond[quote,ragged-right] mpdolce = -#(make-dynamic-script - #{ \markup { \hspace #0 - \translate #'(5 . 0) - \line { \dynamic "mp" - \text \italic "dolce" } } - #}) + \tweak self-alignment-X #-0.6 + #(make-dynamic-script + #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #}) inst = #(define-music-function (parser location string) (string?) - #{ ^\markup \bold \box #string #}) + #{ <>^\markup \bold \box #string #}) \relative c'' { \tempo 4=50 @@ -3979,66 +4401,60 @@ Sustituyamos nuestro archivo @file{definiciones.ily} con éste: @example %%% definiciones.ily mpdolce = -#(make-dynamic-script - #@{ \markup @{ \hspace #0 - \translate #'(5 . 0) - \line @{ \dynamic "mp" - \text \italic "dolce" @} @} - #@}) + \tweak self-alignment-X #-0.6 + #(make-dynamic-script + #@{ \markup @{ \dynamic mp \normal-text \italic \bold dolce @} #@}) inst = #(define-music-function (parser location string) (string?) - #@{ ^\markup \bold \box #string #@}) + #@{ <>^\markup \bold \box #string #@}) \layout@{ \context @{ \Score - \override MetronomeMark #'extra-offset = #'(-9 . 0) - \override MetronomeMark #'padding = #'3 + \override MetronomeMark.extra-offset = #'(-5 . 0) + \override MetronomeMark.padding = #'3 @} \context @{ \Staff - \override TimeSignature #'style = #'numbered + \override TimeSignature.style = #'numbered @} \context @{ \Voice - \override Glissando #'thickness = #3 - \override Glissando #'gap = #0.1 + \override Glissando.thickness = #3 + \override Glissando.gap = #0.1 @} @} @end example @lilypond[quote,ragged-right] mpdolce = -#(make-dynamic-script - #{ \markup { \hspace #0 - \translate #'(5 . 0) - \line { \dynamic "mp" - \text \italic "dolce" } } - #}) + \tweak self-alignment-X #-0.6 + #(make-dynamic-script + #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #}) inst = #(define-music-function (parser location string) (string?) - #{ ^\markup \bold \box #string #}) + #{ <>^\markup \bold \box #string #}) \layout{ \context { \Score - \override MetronomeMark #'extra-offset = #'(-9 . 0) - \override MetronomeMark #'padding = #'3 + \override MetronomeMark.extra-offset = #'(-5 . 0) + \override MetronomeMark.padding = #'3 } \context { \Staff - \override TimeSignature #'style = #'numbered + \override TimeSignature.style = #'numbered } \context { \Voice - \override Glissando #'thickness = #3 - \override Glissando #'gap = #0.1 + \override Glissando.thickness = #3 + \override Glissando.gap = #0.1 } } @@ -4063,63 +4479,57 @@ también vamos a aumentar el tamaño general de la salida. @example %%% publicar-web.ily mpdolce = -#(make-dynamic-script - #@{ \markup @{ \hspace #0 - \translate #'(5 . 0) - \line @{ \dynamic "mp" - \text \italic "dolce" @} @} - #@}) + \tweak self-alignment-X #-0.6 + #(make-dynamic-script + #@{ \markup @{ \dynamic mp \normal-text \italic \bold dolce @} #@}) inst = #(define-music-function (parser location string) (string?) - #@{ ^\markup \bold \box #string #@}) + #@{ <>^\markup \bold \box #string #@}) #(set-global-staff-size 23) \layout@{ \context @{ \Score - \override MetronomeMark #'extra-offset = #'(-9 . 0) - \override MetronomeMark #'padding = #'3 + \override MetronomeMark.extra-offset = #'(-5 . 0) + \override MetronomeMark.padding = #'3 @} \context @{ \Staff @} \context @{ \Voice - \override Glissando #'thickness = #3 - \override Glissando #'gap = #0.1 + \override Glissando.thickness = #3 + \override Glissando.gap = #0.1 @} @} @end example @lilypond[quote,ragged-right] mpdolce = -#(make-dynamic-script - #{ \markup { \hspace #0 - \translate #'(5 . 0) - \line { \dynamic "mp" - \text \italic "dolce" } } - #}) + \tweak self-alignment-X #-0.6 + #(make-dynamic-script + #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #}) inst = #(define-music-function (parser location string) (string?) - #{ ^\markup \bold \box #string #}) + #{ <>^\markup \bold \box #string #}) #(set-global-staff-size 23) \layout{ \context { \Score - \override MetronomeMark #'extra-offset = #'(-9 . 0) - \override MetronomeMark #'padding = #'3 + \override MetronomeMark.extra-offset = #'(-5 . 0) + \override MetronomeMark.padding = #'3 } \context { \Voice - \override Glissando #'thickness = #3 - \override Glissando #'gap = #0.1 + \override Glissando.thickness = #3 + \override Glissando.gap = #0.1 } } @@ -4185,8 +4595,7 @@ un gestor de paquetes (es decir, distribuido con GNU/Linux, o instalado bajo fink o cygwin) o fue compilado a partir de la fuente, y (b) de qué sistema operativo está utilizando: - -@strong{Descargado de lilypond.org} +@subsubsubheading Descargado de lilypond.org @itemize @bullet @item GNU/Linux @@ -4217,7 +4626,7 @@ Mediante el Explorador de Windows, diríjase a @end itemize -@strong{Instalado mediante un gestor de paquetes o compilado a partir de la fuente} +@subsubsubheading Instalado mediante un gestor de paquetes o compilado a partir de la fuente Diríjase a @file{@var{PREFIJO}/share/lilypond/@var{X.Y.Z}/}, donde @var{PREFIJO} @@ -4246,8 +4655,8 @@ es: @example tieDotted = @{ - \override Tie #'dash-period = #0.75 - \override Tie #'dash-fraction = #0.1 + \override Tie.dash-period = #0.75 + \override Tie.dash-fraction = #0.1 @} @end example @@ -4350,7 +4759,7 @@ notas un color que depende de su posición dentro del pentagrama. \relative c' { % Arrange to obtain color from color-notehead procedure - \override NoteHead #'color = #color-notehead + \override NoteHead.color = #color-notehead a2 b | c2 d | e2 f | g2 a | } @end lilypond