X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fes%2Fnotation%2Fchanging-defaults.itely;h=3bd0e6c93977adf48a4acaffebb8baf216964835;hb=a7570a4873af5fff7bf302b374ba5221469dea90;hp=8035f2fdc4d3cbeaa534ce70805604b7285791b2;hpb=0b99ce290f74176d0c77a6f4ab725ada1369e18c;p=lilypond.git diff --git a/Documentation/es/notation/changing-defaults.itely b/Documentation/es/notation/changing-defaults.itely index 8035f2fdc4..3bd0e6c939 100644 --- a/Documentation/es/notation/changing-defaults.itely +++ b/Documentation/es/notation/changing-defaults.itely @@ -1,14 +1,14 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*- @ignore -Translation of GIT committish: bcd9d85bfc1dd6cc2dd3e98901b4df33fd6d0989 +Translation of GIT committish: d409c67cbbdebe840220c17f796544a8a9dd193e 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.15.39" +@c \version "2.17.6" @node Cambiar los valores por omisión @chapter Cambiar los valores por omisión @@ -64,7 +64,7 @@ Esta sección explica qué son los contextos y cómo modificarlos. @menu * Explicación de los contextos:: -* Crear contextos:: +* Crear y referenciar contextos:: * Mantener vivos los contextos:: * Modificar los complementos (plug-ins) de contexto:: * Cambiar los valores por omisión de los contextos:: @@ -239,150 +239,223 @@ Normalmente se deja que se cree implícitamente. Tipografía nombres de acordes. -@node Crear contextos -@subsection Crear contextos -@translationof Creating contexts - -@c TODO more complete descriptions rather than learning style - -Para partituras que sólo tienen una voz y un pentagrama, los contextos -se crean automáticamente. Para partituras más complejas, es necesario -crearlos a mano. Existen tres instrucciones que hacen esto. - -@itemize - -@item -La instrucción más fácil es @code{\new}, y es también la más rápida de -escribir. Se antepone a una expresión musical, por ejemplo +@node Crear y referenciar contextos +@subsection Crear y referenciar contextos +@translationof Creating and referencing contexts @funindex \new -@cindex nuevos, contextos -@cindex Contexto, creación de +@funindex \context +@cindex nuevos contextos +@cindex contextos, creación y referenciación de +@cindex referenciar contextos + +LilyPond crea automáticamente contextos de nifel inferior si se +encuentra una expresión musical antes de que exista un contexto +adecuado, pero normalmente esto sólo funciona bien para partituras +sencillas o fragmentos musicales como los que aparecen en la +documentación. Para partituras más complejas, se recomienda +especificar explícitamente todos los contextos con las +instrucciones @code{\new} o @code{\context}. La sintaxis de estas +dos instrucciones es muy similar: @example -\new @var{tipo} @var{expresión_musical} +[\new | \context] @var{Contexto} [ = @var{nombre}] [@var{expresión_musical}] @end example @noindent -donde @var{tipo} es el nombre de un contexto (como @code{Staff} o -@code{Voice}). Esta instrucción crea un contexto nuevo, y empieza a -interpretar la @var{expresión_musical} con él. +donde se puede especificar @code{\new} o @code{\context}. +@var{Contexto} es el tipo de contexto que se desea crear, +@var{nombre} es un nombre opcional que se da al contexto concreto +que se está creando, y @var{expresión_musical} es una sola +expresión musical que será interpretada por los complementos +grabadores y reproductores dentro de este contexto. -Una aplicación práctica de @code{\new} es una partitura con muchos -pentagramas. Cada parte que debe ir en su propio pentagrama, va -precedida de @code{\new Staff}. +El prefijo @code{\new} sin ningún nombre se usa con frecuencia +para crear partituras con muchos pentagramas: -@lilypond[quote,verbatim,relative=2,ragged-right] +@lilypond[quote,verbatim,relative=2] << - \new Staff { c4 c } - \new Staff { d4 d } + \new Staff { + % leave the Voice context to be created implicitly + c4 c + } + \new Staff { + d4 d + } >> @end lilypond -La instrucción @code{\new} puede también dar nombre al contexto, +@noindent +y para introducir varias voces dentro de un solo pentagrama: -@example -\new @var{tipo} = @var{identificador} @var{música} -@end example -Sin embargo, este nombre especificado por el usuario sólo se utiliza -si no hay ya otro contexto anterior con el mismo nombre. +@lilypond[quote,verbatim,relative=2] +<< + \new Staff << + \new Voice { + \voiceOne + c8 c c4 c c + } + \new Voice { + \voiceTwo + g4 g g g + } + >> +>> +@end lilypond +@noindent +@code{\new} debería usarse siempre para especificar contextos sin +nombre. -@funindex \context +La diferencia entre @code{\new} y @code{\context} se encuentra en +la acción que se realiza: +@itemize @item -Como @code{\new}, la instrucción @code{\context} también dirige una -expresión musical a un objeto de contexto, pero da al contexto un -nombre explícito. La sintaxis es +@code{\new} con un nombre o sin él, siempre crea un contexto nuevo +y distinto, incluso si ya existe un contexto con el mismo nombre: -@example -\context @var{tipo} = @var{identificador} @var{música} -@end example +@lilypond[quote,verbatim,relative=2] +<< + \new Staff << + \new Voice = "A" { + \voiceOne + c8 c c4 c c + } + \new Voice = "A" { + \voiceTwo + g4 g g g + } + >> +>> +@end lilypond -En esta forma, la instrucción buscará un contexto existente del -@var{tipo} especificado que tenga el nombre @var{identificador}. Si -ese contexto aún no existe, se crea un contexto nuevo con el nombre -especificado. Esto es útil si nos vamos a referir más tarde al -contexto. Por ejemplo, cuando se escribe la letra, la melodía está -dentro de un contexto con nombre +@item +@code{\context} con un nombre especificado, crea un contexto nuevo +solamente si no existe ya un contexto del mismo tipo y con el +mismo nombre, dentro de la misma jerarquía de contextos. En caso +contrario, se toma como referencia a dicho contexto creado +previamente, y su expresión musical se pasa a este contexto para +su interpretación. -@example -\context Voice = "@b{tenor}" @var{música} -@end example +Una aplicación de los contextos con nombre es la separación entre +la disposición de la partitura y el contenido musical. Son +válidas culaquiera de las dos formas siguientes: -@noindent -de forma que los textos se puedan alinear correctamente con sus notas, +@lilypond[quote,verbatim] +\score { + << + % score layout + \new Staff << + \new Voice = "one" { + \voiceOne + } + \new Voice = "two" { + \voiceTwo + } + >> -@example -\new Lyrics \lyricsto "@b{tenor}" @var{letra} -@end example + % musical content + \context Voice = "one" { + \relative c'' { + c4 c c c + } + } + \context Voice = "two" { + \relative c'' { + g8 g g4 g g + } + } + >> +} +@end lilypond -@noindent +@lilypond[quote,verbatim] +\score { + << + % score layout + \new Staff << + \context Voice = "one" { + \voiceOne + } + \context Voice = "two" { + \voiceTwo + } + >> + + % musical content + \context Voice = "one" { + \relative c'' { + c4 c c c + } + } + \context Voice = "two" { + \relative c'' { + g8 g g4 g g + } + } + >> +} +@end lilypond -Otro uso posible de los contextos con nombre es la fusión de dos -expresiones musicales distintas en un solo contexto. En el siguiente -ejemplo, se introducen por separado las articulaciones y las notas: +@noindent +De manera alternativa, se pueden utilizar variables con un efecto +similar. Véase @rlearning{Organizar las piezas mediante variables}. -@example -musica = @{ c4 c4 @} -decoracion = @{ s4-. s4-> @} -@end example +@item -se combinan enviando los dos al mismo contexto @code{Voice}, +@code{\context} sin ningún nombre corresponderá con el primer +contexto que se encuentre entre los creados previamente que sean +del mismo tipo dentro de la misma jerarquía de contextos, incluso +si tiene nombre, y su expresión musical se pasará a dicho contexto +para su interpretación. Esta forma rara vez es útil. Sin +embargo, @code{\context} sin nombre y sin expresión musical se usa +para establecer el contexto en que se ejecuta un procedimiento de +Scheme especificado con @code{\applyContext}: @example -<< - \new Staff \context Voice = "A" \musica - \context Voice = "A" \decoracion ->> +\new Staff \relative c' @{ + c1 + \context Timing + \applyContext #(lambda (ctx) + (newline) + (display (ly:context-current-moment ctx))) + c1 +@} @end example -@lilypond[quote,ragged-right] -music = { c4 c4 } -arts = { s4-. s4-> } -\relative c'' << - \new Staff \context Voice = "A" \music - \context Voice = "A" \arts ->> -@end lilypond -Con este mecanismo, es posible definir un @qq{urtext} (una edición -original), con la posibilidad de poner articulaciones distintas sobre -las mismas notas. +@end itemize -@cindex crear contextos +Un contexto debe tener un nombre si se va a hacer referencia a él +más tarde, por ejemplo cuando se asocia la letra con la música: -@item -La tercera instrucción para crear contextos es @example -\context @var{tipo} @var{música} +\new Voice = "tenor" @var{música} +... +\new Lyrics \lyricsto "tenor" @var{letra} @end example - @noindent -Esto es similar a @code{\context} con @code{= @var{identificador}}, -pero se corresponde con cualquier contexto del tipo @var{tipo}, sin -importar qué nombre se le ha dado. +Para ver más detalles sobre la asociación de letra y música, +consulte @ref{Duración automática de las sílabas}. -Esta variante se usa con expresiones musicales que se pueden -interpretar en varios niveles. Por ejemplo, la instrucción -@code{\applyOutput} (véase -@rextend{Ejecutar una función sobre todos los objetos de la presentación}). -Sin una instrucción @code{\context} -explícita, normalmente se aplicaría a @code{Voice} +Las propiedades de todos los contextos de un tipo en particular se +pueden modificar dentro de un bloque @code{\layout} (con una +sintaxis diferente), véase @ref{Cambiar todos los contextos del mismo tipo}. -@example -\applyOutput #'@var{contexto} #@var{función} % aplicar al contexto Voice -@end example +Esta construcción también ofrece una forma de mantener las +instrucciones de disposición separadas del contenido musical. Si +se va a modificar un solo contexto, debe usarse un bloque +@code{\with}, véase @ref{Cambiar solamente un contexto determinado}. -Para que se interprete dentro de los niveles de @code{Score} o -@code{Staff}, utilice las siguientes formas: +@seealso -@example -\applyOutput #'Score #@var{función} -\applyOutput #'Staff #@var{función} -@end example +Manual de aprendizaje: +@rlearning{Organizar las piezas mediante variables}. -@end itemize +Referencia de la notación: +@ref{Cambiar solamente un contexto determinado}, +@ref{Duración automática de las sílabas}. @node Mantener vivos los contextos @@ -662,102 +735,349 @@ compás independiente. @end lilypond @knownissues -Normalmente, el orden en que se especifican los grabadores no tiene -importancia, pero en algunos casos especiales sí la tiene, por ejemplo -donde un grabador escribe una propiedad y otro la lee, o donde un -grabador crea un groby otro debe procesarlo. El orden en que los -grabadores se especifican es el orden en que se llaman para realizar -su tarea de procesamiento. -Las siguientes ordenaciones son importantes: el grabador de compases -@code{Bar_engraver} debe ir normalmente en primer lugar, y el grabador -de digitaciones @code{New_fingering_engraver} debe ir antes del -grabador @code{Script_column_engraver} de columnas de inscripciones. -Podría haber otros que tengan dependencias de ordenación. +El orden en que los grabadores se especifican es el orden en que se +llaman para realizar su tarea de procesamiento. Normalmente, el orden +en que se especifican los grabadores no tiene importancia, pero en +algunos casos especiales sí la tiene, por ejemplo donde un grabador +escribe una propiedad y otro la lee, o donde un grabador crea un groby +otro debe procesarlo. + +Las siguientes ordenaciones son importantes: + +@itemize +@item +el grabador de compases @code{Bar_engraver} debe ir normalmente en +primer lugar, + +@item +el grabador de digitaciones @code{New_fingering_engraver} debe ir +antes del grabador @code{Script_column_engraver} de columnas de +inscripciones, + +@item +el @code{Timing_translator} debe ir antes del grabador de números de +compás @code{Bar_number_engraver}. + +@end itemize + +@seealso +Archivos instalados: +@file{ly/engraver-init.ly}. @node Cambiar los valores por omisión de los contextos @subsection Cambiar los valores por omisión de los contextos @translationof Changing context default settings -Los ajustes de contexto que están preparados para usarse de forma -predeterminada en los contextos @code{Score}, @code{Staff} y -@code{Voice}, se pueden especificar dentro de un bloque -@code{\layout}, como se ilustra en el ejemplo siguiente. El bloque -@code{\layout} se debe colocar dentro del bloque @code{\score} en que -se quiere que haga efecto, pero fuera de la música. +@cindex predeterminadas, cambio de propiedades de contexto +@cindex contexto, cambiar propiedades predeterminadas de + +Se pueden cambiar las propiedades de contexto y de grob con las +instrucciones @code{\set} y @code{\override}, tal y como se describe +en @ref{Modificar las propiedades}. Estas instrucciones crean eventos +musicales, haciendo que los cambios tengan efecto en el punto temporal +en que la música se está procesando. + +Por contra, esta sección explica la forma de cambiarlos valores +@emph{predeterminados} de las propiedades de contexto y de grob en el +momento en que se crea el contexto. Existen dos formas de hacerlo. +Una modifica los valores predeterminados en todos los contextos de un +tipo dado, y el otro modifica los valores predeterminados solamente en +una instancia concreta de un contexto. + +@menu +* Cambiar todos los contextos del mismo tipo:: +* Cambiar solamente un contexto determinado:: +* Orden de precedencia:: +@end menu + +@node Cambiar todos los contextos del mismo tipo +@unnumberedsubsubsec Cambiar todos los contextos del mismo tipo +@translationof Changing all contexts of the same type + +@cindex \context dentro de un bloque \layout +@funindex \context +@funindex \layout + +Los ajustes de contexto que se han de usar de forma predeterminada +dentro de @code{Score}, @code{Staff}, @code{Voice} y otros contextos +se pueden especificar en un bloque @code{\context} dentro de cualquier +bloque @code{\layout}. El bloque @code{\layout} se debe colocar +dentro del bloque @code{\score} al que se aplica, después de la +música. + +@example +\layout @{ + \context @{ + \Voice + [ajustes de contexto para todos los contextos Voice] + @} + \context @{ + \Staff + [ajustes de contexto para todos los contextos Staff] + @} +@} +@end example + +Se pueden especificar los siguientes tipos de ajustes: + +@itemize +@item +Una instrucción @code{\override}, pero omitiendo el nombre del contexto + +@lilypond[quote,verbatim] +\score { + \relative c'' { + a4^"Thicker stems" a a a + a4 a a\ff a + } + \layout { + \context { + \Staff + \override Stem.thickness = #4.0 + } + } +} +@end lilypond -Observe que la propia instrucción @code{\set} y el contexto se deben -omitir cuando se especifican de esta manera los valores de contexto -predeterminados: +@item +Estableciendo una propiedad de contexto directamente @lilypond[quote,verbatim] \score { \relative c'' { - a4^"Really small, thicker stems, no time signature" a a a - a a a a + a4^"Smaller font" a a a + a4 a a\ff a } \layout { \context { \Staff fontSize = #-4 - \override Stem #'thickness = #4.0 - \remove "Time_signature_engraver" } } } @end lilypond -En este ejemplo, la instrucción @code{\Staff} especifica que los -ajustes siguientes se apliquen a todos los pentagramas dentro del -bloque de partitura. +@item +Una instrucción predefinida tal como @code{\dynamicUp} o una expresión +musical como @code{\accidentalStyle dodecaphonic} -Se pueden realizar de forma similar modificaciones al contexto -@code{Score} o a todos los contextos @code{Voice}. +@lilypond[quote,verbatim] +\score { + \relative c'' { + a4^"Dynamics above" a a a + a4 a a\ff a + } + \layout { + \context { + \Voice + \dynamicUp + } + \context { + \Staff + \accidentalStyle dodecaphonic + } + } +} +@end lilypond -Los cambios de contexto se pueden poner dentro de una variable y -aplicarse a una definición de contexto @code{\context} anteponiendo la -modificación mediante @code{\with}: +@item +Una variable definida por el usuario que contenga un bloque +@code{\with}; para ver detalles acerca del bloque @code{\with}, +consulte @ref{Cambiar solamente un contexto determinado}. @lilypond[quote,verbatim] -blubb = \with { +StaffDefaults = \with { fontSize = #-4 - \override Stem #'thickness = #4.0 - \remove "Time_signature_engraver" } -bla = \with { - fontSize = #3 - \override Stem #'thickness = #-2.0 +\score { + \new Staff { + \relative c'' { + a4^"Smaller font" a a a + a4 a a a + } + } + \layout { + \context { + \Staff + \StaffDefaults + } + } } +@end lilypond -melody = \relative c'' { - a4 a a a | - a4 a a a | +@end itemize + +Las instrucciones de ajuste de propiedades se pueden disponer dentro +de un bloque @code{\layout} sin que estén encerradas en un bloque +@code{\context}. Tales ajustes son equivalentes a incluir las mismas +instrucciones de ajuste de propiedades al comienzo de cada uno de los +contextos del tipo especificado. Si no se especifica ningún contexto, +@emph{todos y cada uno} de los contextos del nivel inferior quedan +afectados, véase @ref{Contextos del nivel más bajo. Voces}. La +sintaxis de una instrucción de ajuste de propiedades dentro de un +bloque @code{\layout} es la misma que si la misma instrucción +estuviera escrita en el propio flujo musical. + +@lilypond[quote,verbatim] +\score { + \new Staff { + \relative c'' { + a4^"Smaller font" a a a + a4 a a a + } + } + \layout { + \accidentalStyle dodecaphonic + \set fontSize = #-4 + \override Voice.Stem.thickness = #4.0 + } +} +@end lilypond + + +@node Cambiar solamente un contexto determinado +@unnumberedsubsubsec Cambiar solamente un contexto determinado +@translationof Changing just one specific context + +@cindex \with +@funindex \with + +Las propiedades de contexto de una única instancia de contexto pueden +cambiarse dentro de un bloque @code{\with}. Todas las demás +instancias de contexto del mismo tipo retienen los ajustes +predeterminados que LilyPond tiene programados y que se modifican por +parte de cualquier bloque @code{\layout} que se encuentre dentro del +ámbito. El bloque @code{\with} se debe situar inmediatamente después +de las instrucciones @code{\new} @var{context-type}: + +@example +\new Staff +\with @{ + [ajustes de contexto para esta única instancia de contexto] +@} @{ +... +@} +@end example + +Se pueden especificar los siguientes tipos de ajustes: + +@itemize +@item +Una instrucción @code{\override}, pero omitiendo el nombre del +contexto + +@lilypond[quote,verbatim] +\score { + \new Staff { + \new Voice + \with { + \override Stem.thickness = #4.0 + } + { + \relative c'' { + a4^"Thick stems" a a a + a4 a a a + } + } + } } +@end lilypond +@item +Estableciendo una propiedad de contexto directamente + +@lilypond[quote,verbatim] \score { << - \new Staff << - \melody - s4^"Small, thicker stems, no time signature" - >> - \new Staff \bla << - \melody - s4^"Different" - >> + \new Staff { + \relative c'' { + a4^"Default font" a a a + a4 a a a + } + } + \new Staff + \with { + fontSize = #-4 + } { + \relative c'' { + a4^"Smaller font" a a a + a4 a a a + } + } >> - \layout { - \context { - \Staff - \blubb +} +@end lilypond + +@item +Una instrucción predefinida tal como @code{\dynamicUp} + +@lilypond[quote,verbatim] +\score { + << + \new Staff { + \new Voice { + \relative c'' { + a4^"Dynamics below" a a a + a4 a a\ff a + } + } } - } + \new Staff + \with { \accidentalStyle dodecaphonic } + { + \new Voice + \with { \dynamicUp } + { + \relative c'' { + a4^"Dynamics above" a a a + a4 a a\ff a + } + } + } + >> } @end lilypond -@c TODO: add \with in here. +@end itemize + +@node Orden de precedencia +@unnumberedsubsubsec Orden de precedencia +@translationof Order of precedence + +El valor de una propiedad que se aplica en un momento determinado se +determina de la siguiente forma: + +@itemize +@item +si está en efecto una instrucción @code{\override} o @code{\set} +dentro del flujo musical, se usa dicho valor, + +@item +de lo contrario, se usa el valor predeterminado tomado de un enunciado +@code{\with} en las instrucciones de inicio del contexto, + +@item +de lo contrario, se usa el valor tomado del bloque @code{\context} más +reciente que corresponda dentro de los bloques @code{\layout}, +@item +de lo contrario se usa el valor predeterminado que LilyPond lleva +preprogramado. +@end itemize + +@seealso +Manual de aprendizaje: +@rlearning{Modificar las propiedades de los contextos}. + +Referencia de la notación: +@ref{Explicación de los contextos}, +@ref{Contextos del nivel más bajo. Voces}, +@ref{La instrucción set}, +@ref{La instrucción override}, +@ref{El bloque \layout}. @node Definir contextos nuevos @@ -790,7 +1110,6 @@ contexto de @code{Voice} partiendo de cero. Será parecido a barra inclinada. Se puede usar para indicar improvisación en piezas de jazz, -@c KEEP LY @lilypond[quote,ragged-right] \layout { \context { \name ImproVoice @@ -798,11 +1117,11 @@ de jazz, \consists "Note_heads_engraver" \consists "Rhythmic_column_engraver" \consists "Text_engraver" - \consists Pitch_squash_engraver + \consists "Pitch_squash_engraver" squashedPosition = #0 - \override NoteHead #'style = #'slash - \override Stem #'transparent = ##t - \override Flag #'transparent = ##t + \override NoteHead.style = #'slash + \override Stem.transparent = ##t + \override Flag.transparent = ##t \alias Voice } \context { \Staff @@ -811,7 +1130,7 @@ de jazz, \relative c'' { a4 d8 bes8 \new ImproVoice { c4^"ad lib" c - c4 c^"desvístete" c_"mientras tocas :)" c } + c4 c^"undress" c_"while playing :)" c } a1 } @end lilypond @@ -850,14 +1169,14 @@ El contexto imprimirá notas y textos explicativos, por ello tenemos que añadir los grabadores que aportan esta funcionalidad: @example -\consists Note_heads_engraver -\consists Text_engraver +\consists "Note_heads_engraver" +\consists "Text_engraver" @end example pero sólo necesitamos esto en la línea central: @example -\consists Pitch_squash_engraver +\consists "Pitch_squash_engraver" squashedPosition = #0 @end example @@ -869,9 +1188,9 @@ establece sus posiciones verticales al valor de Las notas parecen barras inclinadas y no tienen plica: @example -\override NoteHead #'style = #'slash -\override Stem #'transparent = ##t -\override Flag #'transparent = ##t +\override NoteHead.style = #'slash +\override Stem.transparent = ##t +\override Flag.transparent = ##t @end example Todos estos añadidos tienen que cooperar, y esto se consigue con un @@ -890,11 +1209,11 @@ Al juntarlo todo, obtenemos \type "Engraver_group" \consists "Note_heads_engraver" \consists "Text_engraver" - \consists Pitch_squash_engraver + \consists "Pitch_squash_engraver" squashedPosition = #0 - \override NoteHead #'style = #'slash - \override Stem #'transparent = ##t - \override Flag #'transparent = ##t + \override NoteHead.style = #'slash + \override Stem.transparent = ##t + \override Flag.transparent = ##t \alias Voice @} @end example @@ -1308,7 +1627,7 @@ digitación de la cabeza de la nota. La siguiente orden inserta un espacio en blanco de 3 espacios de pentagrama entre la nota y la digitación: @example -\once \override Voice.Fingering #'padding = #3 +\once \override Voice.Fingering.padding = #3 @end example Al insertar esta instrucción antes de que se haya creado el objeto @@ -1316,7 +1635,7 @@ Fingering, es decir, antes del @code{c2}, llegamos al siguiente resultado: @lilypond[quote,relative=2,verbatim] -\once \override Voice.Fingering #'padding = #3 +\once \override Voice.Fingering.padding = #3 c-2 \stemUp f @@ -1413,7 +1732,7 @@ funcionalidad des esta instrucción. La instrucción @verbatim -\override Staff.Stem #'thickness = #4.0 +\override Staff.Stem.thickness = #4.0 @end verbatim @noindent @@ -1425,7 +1744,7 @@ Aquí vemos la instrucción en pleno funcionamiento: @lilypond[quote,verbatim,relative=2] c4 -\override Staff.Stem #'thickness = #4.0 +\override Staff.Stem.thickness = #4.0 c4 c4 c4 @@ -1442,7 +1761,7 @@ solo paso de tiempo. @lilypond[quote,verbatim,relative=2] c4 -\once \override Stem #'thickness = #4.0 +\once \override Stem.thickness = #4.0 c4 c4 @end lilypond @@ -1453,9 +1772,9 @@ ligaduras o barras, la instrucción @code{\override} se debe ejecutar en el momento en que se crea el objeto. En este ejemplo: @lilypond[quote,verbatim,relative=2] -\override Slur #'thickness = #3.0 +\override Slur.thickness = #3.0 c8[( c -\override Beam #'beam-thickness = #0.6 +\override Beam.beam-thickness = #0.6 c8 c]) @end lilypond @@ -1471,8 +1790,8 @@ del mismo contexto. En otras palabras, el @code{\revert} del siguiente ejemplo no hace nada. @example -\override Voice.Stem #'thickness = #4.0 -\revert Staff.Stem #'thickness +\override Voice.Stem.thickness = #4.0 +\revert Staff.Stem.thickness @end example Algunas opciones «trucables» se llaman @q{subpropiedades} y residen @@ -1488,7 +1807,7 @@ instrucciones de la forma tales como @example -\override Stem #'(details beamed-lengths) = #'(4 4 3) +\override Stem.details.beamed-lengths = #'(4 4 3) @end example @end ignore @@ -1668,37 +1987,19 @@ de lista asociativa. Consulte @file{scm/define-grobs.scm} para ver los ajustes de cada descripción de grob. Las descripciones de grob se modifican con @code{\override}. -@code{\override} es en realidad una forma abreviada; +La sintaxis de la instrucción @code{\override} es @example -\override @var{contexto}.@var{NombreDelGrob} #'@var{propiedad} = #@var{valor} +\override [@var{contexto}.]@var{NombreDelGrob}.@var{propiedad} = #@var{valor} @end example -@noindent -equivale más o menos a - -@c leave this long line -gp -@example -\set @var{contexto}.@var{NombreDelGrob} = - #(cons (cons '@var{propiedad} @var{valor}) - ) -@end example - -El valor de @code{contexto}.@code{NombreDelGrob} (la lista-A) se -utiliza para inicializar las propiedades de los grobs individuales. -Los grobs tienen propiedades, denominadas en el estilo de Scheme, con -@code{palabras-con-guiones}. Los valores de las propiedades de grob -cambian durante el proceso de formateo: éste se realiza básicamente -calculando las propiedades utilizando funciones de @q{callback} -(pasadas como parámetro). - Por ejemplo, podemos aumentar el grosor de la plica de una figura sobreescribiendo la propiedad @code{thickness} (grosor) del objeto @code{Stem} (plica): @lilypond[quote,verbatim,relative=2] c4 c -\override Voice.Stem #'thickness = #3.0 +\override Voice.Stem.thickness = #3.0 c4 c @end lilypond @@ -1706,11 +2007,11 @@ Si no se ha especificado ningún contexto en la instrucción @code{\override}, se utiliza el contexto del nivel inferior: @lilypond[quote,verbatim,relative=2] -{ \override Staff.Stem #'thickness = #3.0 +{ \override Staff.Stem.thickness = #3.0 << { e4 e - \override Stem #'thickness = #0.5 + \override Stem.thickness = #0.5 e4 e } \\ { c4 c c c @@ -1719,18 +2020,42 @@ Si no se ha especificado ningún contexto en la instrucción } @end lilypond +Algunas opciones susceptibles de trucaje, se llaman +@q{subpropiedades} y residen dentro de las propiedades. Para +efectura trujajes sobre ellas, utilice instrucciones de la forma + +@example +\override Stem.details.beamed-lengths = #'(4 4 3) +@end example + +o para modificar los extremos de los objetos extensos, utilice una +forma como las siguientes: + +@example +\override TextSpanner.bound-details.left.text = #"left text" +\override TextSpanner.bound-details.right.text = #"right text" +@end example + @funindex \revert @cindex reversión de sobreescrituras @cindex sobreescrituras, reversión de El efecto de una instrucción de sobreescritura @code{\override} se -puede deshacer con @code{\revert}: +puede deshacer con @code{\revert}. + +La sintaxis de la instrucción @code{\revert} es + +@example +\revert [@var{Contexto}.]@var{NombreDelGrob}.@var{propiedad} +@end example + +Por ejemplo, @lilypond[quote,verbatim,relative=2] c4 -\override Voice.Stem #'thickness = #3.0 +\override Voice.Stem.thickness = #3.0 c4 c -\revert Voice.Stem #'thickness +\revert Voice.Stem.thickness c4 @end lilypond @@ -1743,11 +2068,11 @@ adelante: << { e4 - \override Staff.Stem #'thickness = #3.0 + \override Staff.Stem.thickness = #3.0 e4 e e } \\ { c4 c c - \revert Staff.Stem #'thickness + \revert Staff.Stem.thickness c4 } >> @@ -1764,11 +2089,11 @@ al instante de tiempo actual: { << { - \override Stem #'thickness = #3.0 + \override Stem.thickness = #3.0 e4 e e e } \\ { c4 - \once \override Stem #'thickness = #3.0 + \once \override Stem.thickness = #3.0 c4 c c } >> @@ -1781,7 +2106,7 @@ Las instrucciones que modifican la salida tienen por lo general un aspecto como @example -\override Voice.Stem #'thickness = #3.0 +\override Voice.Stem.thickness = #3.0 @end example @noindent @@ -1794,14 +2119,6 @@ Para construir este truco debemos determinar los siguientes datos: @item un valor adecuado: aquí @code{3.0}. @end itemize -Ciertas opciones ajustables se denominan @q{subpropiedades} y residen -en el interior de las propiedades normales. Para modificarlas utilice -instrucciones de la forma - -@example -\override Stem #'(details beamed-lengths) = #'(4 4 3) -@end example - @cindex documentación interna @cindex buscar objetos gráficos @cindex gráficos, descripción de los objetos @@ -1840,7 +2157,7 @@ a todos los grobs del contexto afectado. Esto se consigue con la instrucción @code{\tweak}, que tiene la sintaxis siguiente: @example -\tweak @var{objeto-de-presentación} #'@var{propiedad-del-grob} @var{valor} +\tweak [@var{objeto-de-presentación}.]@var{propiedad-del-grob} @var{valor} @end example Es opcional especificar el @var{objeto-de-presentación}. La @@ -1855,19 +2172,19 @@ por ejemplo @lilypond[relative=2,verbatim,quote] < c - \tweak #'color #red + \tweak color #red d g - \tweak #'duration-log #1 + \tweak duration-log #1 a > 4 --\tweak #'padding #8 +-\tweak padding #8 -^ @end lilypond -Pero el uso principal de la instrucción @code{\tweak} es modificar +El uso principal de la instrucción @code{\tweak} es modificar solamente uno de varios elementos de notación que dan comienzo en el mismo momento musical, como las notas de un acorde, o corchetes de tresillo que empiezan al mismo tiempo. @@ -1890,14 +2207,14 @@ posibilidad de modificarla. Así, esto funciona: @lilypond[relative=2,verbatim,quote] -<\tweak #'color #red c>4 +<\tweak color #red c>4 @end lilypond @noindent pero esto no funciona: @lilypond[relative=2,verbatim,quote] -\tweak #'color #red c4 +\tweak color #red c4 @end lilypond @end ignore @@ -1928,10 +2245,10 @@ dentro del mismo acorde: @lilypond[relative=2,verbatim,quote] < c - \tweak #'color #red + \tweak color #red d g - \tweak #'duration-log #1 + \tweak duration-log #1 a > 4 @end lilypond @@ -1939,7 +2256,7 @@ dentro del mismo acorde: @code{\tweak} se puede usar para modificar ligaduras de expresión: @lilypond[verbatim,quote,relative=1] -c-\tweak #'thickness #5 ( d e f) +c-\tweak thickness #5 ( d e f) @end lilypond @@ -1951,9 +2268,9 @@ como un contenedor, y todos los objetos de presentación se crean a partir de eventos dentro del @code{EventChord}: @lilypond[relative=2,verbatim,quote] -\tweak #'color #red c4 -\tweak #'color #red 4 -<\tweak #'color #red c e>4 +\tweak color #red c4 +\tweak color #red 4 +<\tweak color #red c e>4 @end lilypond La instrucción @code{\tweak} sencilla no se puede usar para modificar @@ -1964,13 +2281,14 @@ parte de objetos de presentación @code{NoteHead} más que por elementos musicales del flujo de entrada. -Tales objetos de presencaión creados indirectamente se pueden trucar -usando la forma explícita de la instrucción @code{\tweak}: +Tales objetos de presentación creados indirectamente se pueden trucar +usando la forma de la instrucción @code{\tweak} en que el nombre +del grob se especifica de forma explícita: @lilypond[relative=2,verbatim,quote] -\tweak Stem #'color #red -\tweak Beam #'color #green c8 e -4 +\tweak Stem.color #red +\tweak Beam.color #green c8 e +4 @end lilypond No se puede usar @code{\tweak} para modificar las claves o las @@ -1984,10 +2302,10 @@ elemento de notación; todos le afectan: @lilypond[verbatim,quote,relative=1] c --\tweak #'style #'dashed-line --\tweak #'dash-fraction #0.2 --\tweak #'thickness #3 --\tweak #'color #red +-\tweak style #'dashed-line +-\tweak dash-fraction #0.2 +-\tweak thickness #3 +-\tweak color #red \glissando f' @end lilypond @@ -2010,8 +2328,10 @@ Manual de extensión: @cindex trucar puntos de control @cindex control, trucar puntos de -La instrucción @code{\tweak} solamente se aplica a la primera de -varias ligaduras generadas dentro de un acorde. +No se puede usar la instrucción @code{\tweak} para modificar los +puntos de control de una sola de varias ligaduras de unión dentro de +un acorde, aparte de la primera que se encuentre en el código de +entrada. @node set frente a override @@ -2087,7 +2407,7 @@ anidada}: % reduced space between staves \new PianoStaff \with { % this is the nested declaration - \override StaffGrouper #'staff-staff-spacing #'basic-distance = #7 + \override StaffGrouper.staff-staff-spacing.basic-distance = #7 } << \new Staff { \clef treble c''1 } \new Staff { \clef bass c1 } @@ -2109,7 +2429,7 @@ propiedad con una sola declaración, como una lista-A: @lilypond[quote,verbatim] \new PianoStaff \with { - \override StaffGrouper #'staff-staff-spacing = + \override StaffGrouper.staff-staff-spacing = #'((basic-distance . 0) (minimum-distance . 0) (padding . 0) @@ -2129,10 +2449,10 @@ de @code{basic-distance} si no se fija). Así, las dos declaraciones siguientes son equivalentes: @example -\override StaffGrouper #'staff-staff-spacing = +\override StaffGrouper.staff-staff-spacing = #'((basic-distance . 7)) -\override StaffGrouper #'staff-staff-spacing = +\override StaffGrouper.staff-staff-spacing = #'((basic-distance . 7) (minimum-distance . 0) (padding . 0) @@ -2214,11 +2534,12 @@ Se activa con la instrucción @code{\figuremode} y hace que el código de entrada se interprete con la sintaxis del bajo cifrado, véase @ref{Introducir el bajo cifrado}. -El modo de cifrase también se activa con la instrucción -@code{\figures}. También crea un contexto de @code{FiguredBass} nuevo -y hace que el código que viene a continuación se interprete con la -sintaxis del bajo cifrado y se imprima como símbolos de bajo cifrado -dentro del contexto @code{FiguredBass}, véase @ref{Introducción al bajo cifrado}. +El modo de cifras también se activa con la instrucción +@code{\figures}. También crea un contexto de @code{FiguredBass} +nuevo y hace que el código que viene a continuación se interprete +con la sintaxis del bajo cifrado y se imprima como símbolos de +bajo cifrado dentro del contexto @code{FiguredBass}, véase +@ref{Introducción al bajo cifrado}. @strong{Modos de traste y tablatura} @@ -2293,7 +2614,14 @@ o centrado; etc. La mayoría de estas elecciones pueden dejarse que LilyPond las determine automáticamente, pero en ciertos casos puede ser deseable forzar una dirección o colocación concreta. -@strong{Acciones predeterminadas} +@menu +* Indicadores de dirección de las articulaciones:: +* La propiedad de dirección:: +@end menu + +@node Indicadores de dirección de las articulaciones +@unnumberedsubsubsec Indicadores de dirección de las articulaciones +@translationof Articulation direction indicators De forma predeterminada algunas direcciones siempre son hacia arriba o siempre hacia abajo (p. ej. los matices o el calderón), mientras que @@ -2329,7 +2657,9 @@ c2( c) c2^( c) @end lilypond -@strong{La propiedad de dirección} +@node La propiedad de dirección +@unnumberedsubsubsec La propiedad de dirección +@translationof The direction property La posición o dirección de muchos objetos de presentación está controlada por la propiedad @code{direction}. @@ -2469,7 +2799,7 @@ valores de @code{'line-positions}.} @lilypond[verbatim,quote,relative=1] \new Staff \with { - \override StaffSymbol #'line-positions = #'(7 3 0 -4 -6 -7) + \override StaffSymbol.line-positions = #'(7 3 0 -4 -6 -7) } { a4 e' f b | d1 } @end lilypond @@ -2480,7 +2810,7 @@ resulta afectado por este ajuste. @lilypond[verbatim,quote,relative=1] \new Staff \with { - \override StaffSymbol #'width = #23 + \override StaffSymbol.width = #23 } { a4 e' f b | d1 } @end lilypond @@ -2503,20 +2833,27 @@ Todos los objetos de extensión contemplan el interface una línea recta entre los dos objetos, contemplan también el interface @code{line-spanner-interface}. +@menu +* Uso del spanner-interface:: +* Uso del line-spanner-interface:: +@end menu + +@node Uso del spanner-interface @unnumberedsubsubsec Uso del @code{spanner-interface} +@translationof Using the spanner-interface Este interface proporciona dos propiedades que se aplican a varios extensores. -@strong{@i{La propiedad @code{minimum-length}}} +@subsubsubheading La propiedad @code{minimum-length} (longitud mínima) -La longitud mínima del objeto de extensión se especifica a través de -la propiedad @code{minimum-length}. Su aumento suele producir el -efecto necesario de aumentar el espaciado de las notas entre los dos -puntos extremos. Sin embargo, esta sobreescritura no tiene ningún -efecto sobre muchos extensores, pues su longitud está determinada por -otras consideraciones. Más abajo se muestran algunos ejemplos de -dónde es efectiva. +La longitud mínima del objeto de extensión se especifica a través +de la propiedad @code{minimum-length}. Su aumento suele producir +el efecto necesario de aumentar el espaciado de las notas entre +los dos puntos extremos. Sin embargo, esta sobreescritura no +tiene ningún efecto sobre muchos extensores, pues su longitud está +determinada por otras consideraciones. Más abajo se muestran +algunos ejemplos de dónde es efectiva. @ignore Works for: @@ -2543,7 +2880,7 @@ Works not at all for: a~a a % increase the length of the tie --\tweak #'minimum-length #5 +-\tweak minimum-length #5 ~a @end lilypond @@ -2552,7 +2889,7 @@ a1 \compressFullBarRests R1*23 % increase the length of the rest bar -\once \override MultiMeasureRest #'minimum-length = #20 +\once \override MultiMeasureRest.minimum-length = #20 R1*23 a1 @end lilypond @@ -2560,7 +2897,7 @@ a1 @lilypond[verbatim,quote,relative=2] a \< a a a \! % increase the length of the hairpin -\override Hairpin #'minimum-length = #20 +\override Hairpin.minimum-length = #20 a \< a a a \! @end lilypond @@ -2570,12 +2907,12 @@ las ligaduras de expresión y de fraseo: @lilypond[verbatim,quote,relative=2] a( a) a --\tweak #'minimum-length #5 +-\tweak minimum-length #5 ( a) a\( a\) a --\tweak #'minimum-length #5 +-\tweak minimum-length #5 \( a\) @end lilypond @@ -2592,12 +2929,12 @@ propiedad @code{springs-and-rods}: e \glissando c' % not effective alone -\once \override Glissando #'minimum-length = #20 +\once \override Glissando.minimum-length = #20 e, \glissando c' % effective only when both overrides are present -\once \override Glissando #'minimum-length = #20 -\once \override Glissando #'springs-and-rods = #ly:spanner::set-spacing-rods +\once \override Glissando.minimum-length = #20 +\once \override Glissando.springs-and-rods = #ly:spanner::set-spacing-rods e, \glissando c' @end lilypond @@ -2605,16 +2942,16 @@ Lo mismo se puede decir del objeto @code{Beam}: @lilypond[verbatim,quote,relative=1] % not effective alone -\once \override Beam #'minimum-length = #20 +\once \override Beam.minimum-length = #20 e8 e e e % effective only when both overrides are present -\once \override Beam #'minimum-length = #20 -\once \override Beam #'springs-and-rods = #ly:spanner::set-spacing-rods +\once \override Beam.minimum-length = #20 +\once \override Beam.springs-and-rods = #ly:spanner::set-spacing-rods e8 e e e @end lilypond -@strong{@i{The @code{to-barline} property}} +@subsubsubheading La propiedad @code{to-barline} La segunda propiedad útil del @code{spanner-interface} es @code{to-barline}. De forma predeterminada tiene el valor cierto, @@ -2626,7 +2963,7 @@ exactamente sobre la nota: @lilypond[verbatim,quote,relative=2] a \< a a a a \! a a a \break -\override Hairpin #'to-barline = ##f +\override Hairpin.to-barline = ##f a \< a a a a \! a a a @end lilypond @@ -2635,7 +2972,9 @@ su establecimiento a @code{#t} no tienen ningún efecto sobre las ligaduras de expresión o de fraseo, o sobre otros extensores para los que terminar en la barra de compás no tendría ningún significado. +@node Uso del line-spanner-interface @unnumberedsubsubsec Uso del @code{line-spanner-interface} +@translationof Using the line-spanner-interface Entre los objetos que contemplan el interface @code{line-spanner-interface} se encuentran @@ -2660,8 +2999,8 @@ jerarquía de propiedades, pero la sintaxis de la instrucción @lilypond[relative=2,quote,verbatim] e2 \glissando b -\once \override Glissando #'(bound-details left Y) = #3 -\once \override Glissando #'(bound-details right Y) = #-2 +\once \override Glissando.bound-details.left.Y = #3 +\once \override Glissando.bound-details.right.Y = #-2 e2 \glissando b @end lilypond @@ -2679,8 +3018,8 @@ especifican por las sub-listas @code{left-broken} y @code{right-broken} de @code{bound-details}. Por ejemplo: @lilypond[relative=2,ragged-right,verbatim,quote] -\override Glissando #'breakable = ##t -\override Glissando #'(bound-details right-broken Y) = #-3 +\override Glissando.breakable = ##t +\override Glissando.bound-details.right-broken.Y = #-3 c1 \glissando \break f1 @end lilypond @@ -2720,7 +3059,7 @@ usa para escribir @i{cresc.}, @i{tr} y otros textos sobre los objetos de extensión horizontales. @lilypond[quote,ragged-right,relative=2,verbatim] -\override TextSpanner #'(bound-details left text) +\override TextSpanner.bound-details.left.text = \markup { \small \bold Slower } c2\startTextSpan b c a\stopTextSpan @end lilypond @@ -2734,15 +3073,11 @@ subpropiedades @code{X} e @code{Y}. Si se fijan símbolo del borde verticalmente con relación al extremo de la línea: @lilypond[relative=1,quote,verbatim] -\override TextSpanner - #'(bound-details left stencil-align-dir-y) = #-2 -\override TextSpanner - #'(bound-details right stencil-align-dir-y) = #UP - -\override TextSpanner - #'(bound-details left text) = #"ggg" -\override TextSpanner - #'(bound-details right text) = #"hhh" +\override TextSpanner.bound-details.left.stencil-align-dir-y = #-2 +\override TextSpanner.bound-details.right.stencil-align-dir-y = #UP + +\override TextSpanner.bound-details.left.text = #"ggg" +\override TextSpanner.bound-details.right.text = #"hhh" c4^\startTextSpan c c c \stopTextSpan @end lilypond @@ -2831,9 +3166,9 @@ predeterminada se puede recuperar con @code{\revert}. @lilypond[quote,verbatim,relative=1] a1 a -\override Score.BarLine #'stencil = ##f +\override Score.BarLine.stencil = ##f a a -\revert Score.BarLine #'stencil +\revert Score.BarLine.stencil a a a @end lilypond @@ -2851,7 +3186,7 @@ invisible. @lilypond[quote,verbatim,relative=2] a4 a -\once \override NoteHead #'transparent = ##t +\once \override NoteHead.transparent = ##t a a @end lilypond @@ -2877,7 +3212,7 @@ dibujan estos objetos, lo que puede dejar una imagen fantasma del objeto blanco, como puede verse aquí: @lilypond[quote,verbatim,relative=2] -\override Staff.Clef #'color = #white +\override Staff.Clef.color = #white a1 @end lilypond @@ -2902,8 +3237,8 @@ sobreimpresionándolas. Para cambiarlo, se debe dar al objeto para que se dibuje antes: @lilypond[quote,verbatim,relative=2] -\override Staff.Clef #'color = #white -\override Staff.Clef #'layer = #-1 +\override Staff.Clef.color = #white +\override Staff.Clef.layer = #-1 a1 @end lilypond @@ -2950,7 +3285,7 @@ combinaciones mediante funciones predefinidas cuya definición está en los objetos de presentación serán visibles en las posiciones que se muestran en el encabezamiento de cada columna: -@multitable {@code{begin-of-line-invisible}} {@code{'#(#t #t #t)}} {yes} {yes} {yes} +@multitable {@code{begin-of-line-invisible}} {@code{'#(#t #t #t)}} {Antes del} {Si no hay} {Después del} @headitem Forma @tab Forma @tab Antes del @tab Si no hay @tab Después del @headitem de función @tab de vector @tab salto @tab salto @tab salto @@ -2983,8 +3318,7 @@ de presentación de interés que resultan afectados por @item @code{Clef} @tab @code{Staff} @tab @code{begin-of-line-visible} @item @code{Custos} @tab @code{Staff} @tab @code{end-of-line-visible} @item @code{DoublePercentRepeat} @tab @code{Voice} @tab @code{begin-of-line-invisible} -@c omit KeyCancellation until it can be explained -td -@c @item @code{KeyCancellation} @tab ?? @tab @code{begin-of-line-invisible} +@item @code{KeyCancellation} @tab @code{Staff} @tab @code{begin-of-line-invisible} @item @code{KeySignature} @tab @code{Staff} @tab @code{begin-of-line-visible} @c omit LeftEdge until it can be explained -td @c @item @code{LeftEdge} @tab @code{Score} @tab @code{center-invisible} @@ -3001,7 +3335,7 @@ controlar la visibilidad de las líneas divisorias: f4 g a b f4 g a b % Remove bar line at the end of the current line -\once \override Score.BarLine #'break-visibility = #'#(#f #t #t) +\once \override Score.BarLine.break-visibility = ##(#f #t #t) \break f4 g a b f4 g a b @@ -3029,7 +3363,7 @@ imprimirlas y all-invisible para suprimirlas. @unnumberedsubsubsec Consideraciones especiales @translationof Special considerations -@strong{@emph{Visibilidad después de un cambio explícito}} +@subsubsubheading Visibilidad después de un cambio explícito @cindex armadura, visibilidad después de un cambio explícito @cindex explicitKeySignatureVisibility @@ -3048,7 +3382,7 @@ bemol mayor es visible incluso con @code{all-invisible} establecido. \key g \major f4 g a b % Try to remove all key signatures -\override Staff.KeySignature #'break-visibility = #all-invisible +\override Staff.KeySignature.break-visibility = #all-invisible \key bes \major f4 g a b \break @@ -3076,16 +3410,16 @@ objeto correspondiente. \key g \major f4 g a b \set Staff.explicitKeySignatureVisibility = #all-invisible -\override Staff.KeySignature #'break-visibility = #all-invisible +\override Staff.KeySignature.break-visibility = #all-invisible \key bes \major f4 g a b \break f4 g a b f4 g a b @end lilypond -@strong{@emph{Visibilidad de las alteraciones de precaución}} +@subsubsubheading Visibilidad de las alteraciones de precaución -Para eliminar las alteraciones de precaución que se imprimen en un +Para eliminar las alteraciones de cancelación que se imprimen en un cambio de tonalidad explícito, establezca la propiedad @code{printKeyCancellation} del contexto Staff a @code{#f}: @@ -3094,7 +3428,7 @@ cambio de tonalidad explícito, establezca la propiedad f4 g a b \set Staff.explicitKeySignatureVisibility = #all-invisible \set Staff.printKeyCancellation = ##f -\override Staff.KeySignature #'break-visibility = #all-invisible +\override Staff.KeySignature.break-visibility = #all-invisible \key bes \major f4 g a b \break f4 g a b @@ -3104,9 +3438,41 @@ f4 g a b Con estas sobreescrituras solamente permanecen las alteraciones accidentales delante de las notas para indicar el cambio de tonalidad. +Observe que al modificar la tonalidad a Do@tie{}mayor o +La@tie{}menor, las alteraciones de cancelación serían @emph{la +única} indicación del cambio de armadura. En este caso, el +establecimiento de @code{printKeyCancellation} al valor @code{#f} +no tiene ningún efecto: + +@lilypond[quote,verbatim,relative=1,ragged-right] +\key g \major +f4 g a b +\set Staff.explicitKeySignatureVisibility = #all-invisible +\set Staff.printKeyCancellation = ##f +\key c \major +f4 g a b \break +f4 g a b +f4 g a b +@end lilypond + +En lugar de ello, para suprimir las alteraciones de cancelación +aún cuando la armadura cambia a Do@tie{}mayor o a La@tie{}menor, +sobreescriba la visibilidad del grob @code{KeyCancellation}: + +@lilypond[quote,verbatim,relative=1,ragged-right] +\key g \major +f4 g a b +\set Staff.explicitKeySignatureVisibility = #all-invisible +\override Staff.KeyCancellation.break-visibility = #all-invisible +\key c \major +f4 g a b \break +f4 g a b +f4 g a b +@end lilypond + @c TODO Add visibility of cautionary accidentals before notes -@strong{@emph{Automatic bars}} +@subsubsubheading Líneas divisorias automáticas @cindex automaticBars @cindex líneas divisorias, eliminación @@ -3124,7 +3490,7 @@ explícitas. @c TODO Add example -@strong{@emph{Octavated clefs}} +@subsubsubheading Claves octavadas @cindex octavadas, visibilidad de las claves @cindex visibilidad de las claves octavadas @@ -3168,13 +3534,13 @@ cómo aplicarles ajustes finos. @lilypond[relative=2,ragged-right,verbatim,quote] d2 \glissando d'2 -\once \override Glissando #'style = #'dashed-line +\once \override Glissando.style = #'dashed-line d,2 \glissando d'2 -\override Glissando #'style = #'dotted-line +\override Glissando.style = #'dotted-line d,2 \glissando d'2 -\override Glissando #'style = #'zigzag +\override Glissando.style = #'zigzag d,2 \glissando d'2 -\override Glissando #'style = #'trill +\override Glissando.style = #'trill d,2 \glissando d'2 @end lilypond @@ -3185,7 +3551,7 @@ posible sobreescribirlos: @c TODO Complete @lilypond[relative=2,ragged-right,verbatim,quote] e2 \glissando f -\once \override Glissando #'(bound-details right Y) = #-2 +\once \override Glissando.bound-details.right.Y = #-2 e2 \glissando f @end lilypond @@ -3241,7 +3607,7 @@ serlo: @lilypond[quote,verbatim,relative=1] g4\< e' d' f\! -\override Hairpin #'rotation = #'(20 -1 0) +\override Hairpin.rotation = #'(20 -1 0) g,,4\< e' d' f\! @end lilypond @@ -3261,7 +3627,7 @@ propiedad @code{outside-staff-priority} del texto se establece a que empuja al texto a una posición muy alta. @lilypond[quote,verbatim,relative=1] -\override TextScript #'outside-staff-priority = ##f +\override TextScript.outside-staff-priority = ##f g4^\markup { \rotate #30 "a G" } b^\markup { \rotate #30 "a B" } des^\markup { \rotate #30 "a D-Flat" } @@ -3381,12 +3747,12 @@ valores @code{X-offset} y @code{Y-offset} modificados. @lilypond[verbatim,quote,relative=2] a-3 a --\tweak #'X-offset #0 --\tweak #'Y-offset #0 +-\tweak X-offset #0 +-\tweak Y-offset #0 -3 a --\tweak #'X-offset #-1 --\tweak #'Y-offset #1 +-\tweak X-offset #-1 +-\tweak Y-offset #1 -3 @end lilypond @@ -3440,7 +3806,7 @@ situar el objeto encima o debajo del padre de acuerdo con el valor de @unnumberedsubsubsec Uso del @code{self-alignment-interface} @translationof Using the self-alignment-interface -@emph{Auto-alineación horizontal de los objetos} +@subsubsubheading Auto-alineación horizontal de los objetos La alineación horizontal de un objeto que contempla el interface @code{self-alignment-interface} está controlada por el valor de la @@ -3465,17 +3831,17 @@ sola nota: @lilypond[quote,verbatim,relative=1] a' --\tweak #'self-alignment-X #-1 +-\tweak self-alignment-X #-1 ^"left-aligned" --\tweak #'self-alignment-X #0 +-\tweak self-alignment-X #0 ^"center-aligned" --\tweak #'self-alignment-X #RIGHT +-\tweak self-alignment-X #RIGHT ^"right-aligned" --\tweak #'self-alignment-X #-2.5 +-\tweak self-alignment-X #-2.5 ^"aligned further to the right" @end lilypond -@emph{Auto-alineación vertical de los objetos} +@subsubsubheading Auto-alineación vertical de los objetos Los objetos se pueden alinear verticalmente en una forma análoga a la alineación horizontal si la propiedad @code{Y-offset} está establecida @@ -3504,9 +3870,9 @@ se acerque a la cabeza de la nota. @lilypond[quote,verbatim,relative=2] a --\tweak #'self-alignment-X #0.5 % move horizontally left --\tweak #'Y-offset #ly:self-alignment-interface::y-aligned-on-self --\tweak #'self-alignment-Y #-1 % move vertically up +-\tweak self-alignment-X #0.5 % move horizontally left +-\tweak Y-offset #ly:self-alignment-interface::y-aligned-on-self +-\tweak self-alignment-Y #-1 % move vertically up -3 % third finger @end lilypond @@ -3558,20 +3924,20 @@ se centran horizontalmente sobre el objeto: @lilypond[verbatim,quote,relative=1] % The rehearsal mark will be centered above the Clef -\override Score.RehearsalMark #'break-align-symbols = #'(clef) +\override Score.RehearsalMark.break-align-symbols = #'(clef) \key a \major \clef treble \mark "↓" e1 % The rehearsal mark will be centered above the Time Signature -\override Score.RehearsalMark #'break-align-symbols = #'(time-signature) +\override Score.RehearsalMark.break-align-symbols = #'(time-signature) \key a \major \clef treble \time 3/4 \mark "↓" e2. % The rehearsal mark will be centered above the Breath Mark -\override Score.RehearsalMark #'break-align-symbols = #'(breathing-sign) +\override Score.RehearsalMark.break-align-symbols = #'(breathing-sign) \key a \major \clef treble \time 4/4 @@ -3591,14 +3957,14 @@ con el punto en el que se encontraría la línea divisoria. @lilypond[verbatim,quote,relative=1] % The rehearsal mark will be centered above the Key Signature -\override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef) +\override Score.RehearsalMark.break-align-symbols = #'(key-signature clef) \key a \major \clef treble \mark "↓" e1 % The rehearsal mark will be centered above the Clef \set Staff.explicitKeySignatureVisibility = #all-invisible -\override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef) +\override Score.RehearsalMark.break-align-symbols = #'(key-signature clef) \key a \major \clef bass \mark "↓" @@ -3606,7 +3972,7 @@ gis,,1 % The rehearsal mark will be centered above the Bar Line \set Staff.explicitKeySignatureVisibility = #all-invisible \set Staff.explicitClefVisibility = #all-invisible -\override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef) +\override Score.RehearsalMark.break-align-symbols = #'(key-signature clef) \key a \major \clef treble \mark "↓" @@ -3620,19 +3986,19 @@ los pentagramas. @lilypond[verbatim,quote,relative=1] % The RehearsalMark will be centered above the Key Signature -\override Score.RehearsalMark #'break-align-symbols = #'(key-signature) +\override Score.RehearsalMark.break-align-symbols = #'(key-signature) \key a \major \clef treble \time 4/4 \mark "↓" e1 % The RehearsalMark will be aligned with the left edge of the Key Signature -\once \override Score.KeySignature #'break-align-anchor-alignment = #LEFT +\once \override Score.KeySignature.break-align-anchor-alignment = #LEFT \mark "↓" \key a \major e1 % The RehearsalMark will be aligned with the right edge of the Key Signature -\once \override Score.KeySignature #'break-align-anchor-alignment = #RIGHT +\once \override Score.KeySignature.break-align-anchor-alignment = #RIGHT \key a \major \mark "↓" e1 @@ -3645,14 +4011,14 @@ pentagrama: @lilypond[verbatim,quote,relative=1] % The RehearsalMark will be aligned with the left edge of the Key Signature % and then shifted right by 3.5 staff-spaces -\override Score.RehearsalMark #'break-align-symbols = #'(key-signature) -\once \override Score.KeySignature #'break-align-anchor = #3.5 +\override Score.RehearsalMark.break-align-symbols = #'(key-signature) +\once \override Score.KeySignature.break-align-anchor = #3.5 \key a \major \mark "↓" e1 % The RehearsalMark will be aligned with the left edge of the Key Signature % and then shifted left by 2 staff-spaces -\once \override Score.KeySignature #'break-align-anchor = #-2 +\once \override Score.KeySignature.break-align-anchor = #-2 \key a \major \mark "↓" e1 @@ -3705,8 +4071,8 @@ la nota a unas aspas dentro de una circunferencia. @lilypond[verbatim,quote] XinO = { - \once \override NoteHead #'stencil = #ly:text-interface::print - \once \override NoteHead #'text = \markup { + \once \override NoteHead.stencil = #ly:text-interface::print + \once \override NoteHead.text = \markup { \combine \halign #-0.7 \draw-circle #0.85 #0.2 ##f \musicglyph #"noteheads.s2cross" @@ -3750,27 +4116,55 @@ Referencia de la notación: @cindex Bézier, curvas de, puntos de control @cindex puntos de control en curvas de Bézier -Las ligaduras de unión, de expresión y de fraseo se trazan como curvas -de Bézier de tercer orden. Si la forma de la ligadura calculada -automáticamente no resulta óptima, se puede modificar su forma -manualmente mediante la especificación explícita de los cuatro puntos -de control necesarios para definir una curva de Bézier de tercer -orden. - -Las curvas Bézier de tercer orden o cúbicas están definidas por cuatro -puntos de control. El primer y cuarto puntos de control son -exactamente los puntos extremos de comienzo y de final de la curva. -Los dos puntos de control intermedios definen la forma. Se pueden -encontrar en la web animaciones que muestran cómo se traza la curva, -pero la descripción siguiente puede ser de ayuda. La curva comienza a -partir del primer punto de control dirigiéndose directamente hacia el -segundo, curvándose progresivamente para dirigirse hacia el tercero y -continuando la curva hacia el cuarto, llegando a éste en viaje directo -desde el tercer punto de control. La curva está contenida enteramente +Las ligaduras de unión (@code{Tie}s), de expresión (@code{Slur}s), +de fraseo (@code{PhrasingSlur}s), de dejar vibrar +(@code{LaissezVibrerTie}s) y de repetición (@code{RepeatTie}s) se +trazan como curvas de Bézier de tercer orden. Si la forma de la +ligadura calculada automáticamente no resulta óptima, se puede +modificar su forma manualmente de dos formas: + +@enumerate a +@item +mediante la especificación de los desplazamientos que se quieren +realizar sobre los puntos de control de la curva de Bézier +calculada automáticamente, o bien + +@item +mediante la especificación explícita de las posiciones de los +cuatro puntos de control que se requieren para definir la curva +deseada. +@end enumerate + +A continuación se explican ambos métodos. El primer método es más +adecuado cuando solo se requieren ligeros ajustes de la curva; el +segundo puede ser mejor para crear curvas que tienen relación con +una única nota. + +@subsubsubheading Curvas de Bézier cúbicas + +Las curvas Bézier de tercer orden o cúbicas están definidas por +cuatro puntos de control. El primer y cuarto puntos de control +son exactamente los puntos extremos de comienzo y de final de la +curva. Los dos puntos de control intermedios definen la forma. +Se pueden encontrar en la web animaciones que muestran cómo se +traza la curva, pero la descripción siguiente puede ser de ayuda. +La curva comienza a partir del primer punto de control +dirigiéndose directamente hacia el segundo, curvándose +progresivamente para dirigirse hacia el tercero y continuando la +curva hacia el cuarto, llegando a éste en viaje directo desde el +tercer punto de control. La curva está contenida enteramente dentro del cuadrilátero definido por los cuatro puntos de control. +Todas las traslaciones, rotaciones y escalado de los puntos de +control producen exactamente las mismas operaciones sobre la +curva. + +@subsubsubheading Especificar desplazamientos a partir de los puntos de control actuales + +@cindex conformar ligaduras +@funindex \shape -He aquí un ejemplo de un caso en que la ligadura no es óptima, y donde -@code{\tieDown} no sirve de ayuda. +En este ejemplo, la colocación automática de la ligadura no +resulta óptima, y @code{\tieDown} no es la solución. @lilypond[verbatim,quote,relative=1] << @@ -3780,49 +4174,169 @@ He aquí un ejemplo de un caso en que la ligadura no es óptima, y donde >> @end lilypond -Una forma de mejorar esta ligadura es modificar manualmente sus puntos -de control como sigue. - -Las coordenadas de los puntos de control de Bézier se especifican en -unidades de espacios de pentagrama. La coordenada@tie{}X está en -relación con el punto de referencia de la nota a la que está unida la -ligadura, y la coordenada@tie{}Y está en relación con la línea central -del pentagrama. Las coordenadas se introducen como una lista de -cuatro parejas de números decimales (reales). Un enfoque es estimar -las coordenadas de los dos puntos extremos, y luego tratar de adivinar -los dos puntos intermedios. Los valores óptimos se encuentran por -ensayo y error. - -Es útil recordar que una curva simétrica necesita puntos de control -simétricos, y que las curvas de Bézier tienen la útil propiedad de que -las transformaciones de la curva tales como la traslación, rotación y -escalado se pueden obtener aplicando la misma transformación a los -puntos de control de la curva. - -Para el ejemplo anterior, la sobreescritura siguiente da una ligadura -satisfactoria. Observe la colocación: debe ir inmediatamente antes de -la nota a la que se asigna el comienzo de la ligadura de expresión o -de unión. +El ajuste de los puntos de control de la ligadura mediante la +instrucción @code{\shape} permite evitar las colisiones. + +La sintaxis de @code{\shape} es: + +@example +[-]@code{\shape} @var{desplazamientos} @var{elemento} +@end example + +Esta instrucción recoloca los puntos de control de @var{elemento} +en las cantidades dadas por @var{desplazamientos}. El argumento +@var{desplazamientos} es una lista de parejas de números o una +lista de tales listas. Cada elemento de una pareja representa el +desplazamiento de una de las coordenadas de un punto de control. +Si el @var{elemento} es una cadena de caracteres, el resultado es +@code{\once\override} para el tipo de grob especificado. Si +@var{elemento} es una expresión musical, el resultado es la misma +expresión musical con la consiguiente modificación aplicada. + +En otras palabras, la función @code{\shape} puede actuar como una +instrucción @code{\once\override} o como una instrucción +@code{\tweak} dependiendo de si el argumento @var{elemento} es el +nombre de un grob, como @qq{Slur}, o una expresión musical, como +@qq{(}. El argumento @var{desplazamientos} especifica los +desplazamientos de los cuatro puntos de control como una lista de +cuatro parejas de valores (dx . dy) en unidades de espacios de +pentagrama (o una lista de tales listas si la curva tiene más de +un segmento). + +El guión precedente se exige si, y sólo si, se usa la forma +@code{\tweak}. + +Así, usando el mismo ejemplo de arriba y la forma +@code{\once\override} de la instrucción @code{\shape}, lo +siguiente tiene el efecto de elevar la ligadura de unión en la +mitad de un espacio de pentagrama: @lilypond[verbatim,quote,relative=1] << { - \once \override Tie - #'control-points = #'((1 . -1) (3 . 0.6) (12.5 . 0.6) (14.5 . -1)) - e1 ~ e + \shape #'((0 . 0.5) (0 . 0.5) (0 . 0.5) (0 . 0.5)) Tie + e1~ e } \\ { r4 } >> @end lilypond +Este posicionamiento de la ligadura de unión es mejor, pero quizá +debería elevarse más en la parte central. El ejemplo siguiente +hace esto, esta vez usando la forma alternativa @code{\tweak}: + +@lilypond[verbatim,quote,relative=1] +<< + { + e1-\shape #'((0 . 0.5) (0 . 1) (0 . 1) (0 . 0.5)) ~ e + } +\\ + { r4 } +>> +@end lilypond + +Los cambios en las posiciones horizontales de los puntos de +control se pueden hacer de la misma forma, y dos curvas distintas +que dan comienzo en el mismo momento musical se pueden conformar +también: + +@lilypond[verbatim,quote,ragged-right,relative=2] +c8(\( a) a'4 e c\) +\shape #'((0.7 . -0.4) (0.5 . -0.4) (0.3 . -0.3) (0 . -0.2)) Slur +\shape #'((0 . 0) (0 . 0.5) (0 . 0.5) (0 . 0)) PhrasingSlur +c8(\( a) a'4 e c\) +@end lilypond + +La función @code{\shape} también puede desplazar los puntos de +control de las curvas que se extienden atravesando saltos de +línea. Cada pieza de la curva dividida puede recibir su propia +lista de desplazamientos. Si no se necesita hacer cambios a uno +de los segmentos en particular, se puede usar una lista vacía como +contenedor. En este ejemplo, el salto de línea hace que la única +ligadura de expresión aparezca como si fueran dos: + +@lilypond[verbatim,quote,ragged-right,relative=1] +c4( f g c +\break +d,4 c' f, c) +@end lilypond + +Los cambios en la forma de las dos mitades de la ligadura de +expresión deja más claro que la ligadura continúa más allá del +salto de línea: + +@lilypond[verbatim,quote,ragged-right,relative=1] +% () may be used as a shorthand for ((0 . 0) (0 . 0) (0 . 0) (0 . 0)) +% if any of the segments does not need to be changed +\shape #'( + (( 0 . 0) (0 . 0) (0 . 0) (0 . 1)) + ((0.5 . 1.5) (1 . 0) (0 . 0) (0 . -1.5)) + ) Slur +c4( f g c +\break +d,4 c' f, c) +@end lilypond + +En una curva en forma de «S» siempre es necesario ajustar +manualmente los puntos de control: LilyPond nunca escoge tales +formas automáticamente. + +@lilypond[verbatim,quote,relative=2] +c8( e b-> f d' a e-> g) +\shape #'((0 . -1) (5.5 . -0.5) (-5.5 . -10.5) (0 . -5.5)) PhrasingSlur +c8\( e b-> f d' a e-> g\) +@end lilypond + +@subsubsubheading Especificar los puntos de control explícitamente + +Las coordenadas de los puntos de contro de Bézier se especifican +en unidades de espacios de pentagrama. La coordenada@tie{}X es +relativa al punto de referencia al que se adjunta la ligadura, y +la coordenada@tie{}Y es relativa a la línea central del +pentagrama. Las coordenadas se especifican como una lista de +cuatro parejas de números decimales (reales). Un enfoque consiste +en estimar las coordenadas de los dos extremos, y después adivinar +los dos puntos intermedios. Los valores óptimos se encuentran +después por ensayo y error. Tenga en cuenta que estos valores +podrían requerir un ajuste manual si se hace posteriormente +cualquier cambio manual a la música o a la disposición. + +Una situación en la que es preferible especificar los puntos de +control explícitamente a especificar los desplazamientos es cuando +se necesita especificarlos de forma relativa a una nota única. A +continuación presentamos un ejemplo de esto. Muestra una forma de +indicar una ligadura que se extiende hacia el interior de las +casillas de primera y segunda vez de una repetición. + +@lilypond[verbatim,quote,relative=2] +c1 +\repeat volta 3 { c4 d( e f } +\alternative { + { g2) d } + { + g2 + % create a slur and move it to a new position + % the <> is just an empty chord to carry the slur termination + -\tweak control-points #'((-2 . 3.8) (-1 . 3.9) (0 . 4) (1 . 3.4)) ( <> ) + f, + } + { + e'2 + % create a slur and move it to a new position + -\tweak control-points #'((-2 . 3) (-1 . 3.1) (0 . 3.2) (1 . 2.4)) ( <> ) + f, + } +} +@end lilypond + @knownissues No es posible modificar la forma de las ligaduras de unión o de -expresión cambiando la propiedad @code{control-points} si hay más de -una en el mismo momento musical, ni siquiera usando la instrucción -@code{\tweak}. Sin embargo, se puede sobreescribir la propiedad -@code{tie-configuration} de @code{TieColumn} para fijar la línea de -inicio y la dirección según se requiera. +expresión cambiando la propiedad @code{control-points} si hay más +de una en el mismo momento musical, ni siquiera usando la +instrucción @code{\tweak}. Sin embargo, se puede sobreescribir la +propiedad @code{tie-configuration} de @code{TieColumn} para fijar +la línea de inicio y la dirección según se requiera. @seealso Referencia de funcionamiento interno: @@ -3904,12 +4418,12 @@ precisión mucho más tardío durante el proceso de espaciado. '(-0.5 . 0.5))))) squareLineCircleSpace = { - \override NoteHead #'stencil = #square-line-circle-space + \override NoteHead.stencil = #square-line-circle-space } smartSquareLineCircleSpace = { \squareLineCircleSpace - \override NoteHead #'Y-extent = + \override NoteHead.Y-extent = #(ly:make-unpure-pure-container ly:grob::stencil-height (lambda (grob start end) (ly:grob::stencil-height grob))) @@ -3918,9 +4432,9 @@ smartSquareLineCircleSpace = { \new Voice \with { \remove "Stem_engraver" } \relative c'' { \squareLineCircleSpace - cis4 ces cisis c + cis4 ces disis d \smartSquareLineCircleSpace - cis4 ces cisis c + cis4 ces disis d } @end lilypond @@ -3991,8 +4505,9 @@ debe devolver @code{#t}. @item @code{@var{@dots{}música@dots{}}} @tab código de entrada normal de LilyPond, que utiliza @code{$} (en los lugares en que sólo se permiten construcciones de Lilypond) o @code{#} -(para usarlo como un valor de Scheme o un argumento de función -musical) para referenciar argumentos (p.ej. @samp{#arg1}). +(para usarlo como un valor de Scheme o un argumento de función musical +o música dentro de listas de música) para referenciar argumentos +(p.ej. @samp{#arg1}). @end multitable Los argumentos @code{parser} y @code{location} son necesarios, y se @@ -4052,7 +4567,7 @@ padText = (parser location padding) (number?) #{ - \once \override TextScript #'padding = #padding + \once \override TextScript.padding = #padding #}) \relative c''' { @@ -4073,11 +4588,11 @@ custosNote = (parser location note) (ly:music?) #{ - \tweak NoteHead #'stencil #ly:text-interface::print - \tweak NoteHead #'text + \tweak NoteHead.stencil #ly:text-interface::print + \tweak NoteHead.text \markup \musicglyph #"custodes.mensural.u0" - \tweak Stem #'stencil ##f - $note + \tweak Stem.stencil ##f + #note #}) \relative c' { c4 d e f \custosNote g } @@ -4091,7 +4606,7 @@ tempoPadded = (parser location padding tempotext) (number? markup?) #{ - \once \override Score.MetronomeMark #'padding = #padding + \once \override Score.MetronomeMark.padding = #padding \tempo \markup { \bold #tempotext } #})