Las instrucciones \tweak y \offset

Las últimas instrucciones de trucaje que tenemos en LilyPond son \tweak y \offset. Se deben utilizar cuando varios objetos tienen lugar en el mismo momento musical pero solo queremos cambiar las propiedades de algunos de ellos, como una sola nota dentro de un acorde. El uso de \override para la sobreescritura afectaría a todas las notas del acorde, mientras que \tweak afecta solamente al siguiente elemento del flujo de entrada.

Observe que \offset puede usarse, asimismo, como sustituto de \override; también tiene otras formas sintácticas. Consulte The offset command, para ver todos los detalles.

He aquí un ejemplo. Suponga que queremos cambiar el tamaño de la cabeza de la nota intermedia (el Mi) en un acorde de Do mayor. En primer lugar, veamos lo que haría \once \override:

\relative {
  <c' e g>4
  \once \override NoteHead.font-size = -3
  <c e g>4
  <c e g>4
}
[image of music]

Vemos que la sobreescritura con override afecta a todas las cabezas de las notas del acorde. Esto es así porque todas las notas de un acorde ocurren en el mismo momento musical, y la acción de \once es aplicar la sobreescritura a todos los objetos de presentación del tipo especificado que ocurren en el mismo momento musical que la propia instrucción de sobreescritura \override.

Las instrucciones \tweak y \offset operan de una forma distinta. Actúan sobre el elemento inmediatamente siguiente dentro del flujo de entrada. En sus formas más sencillas, son efectivos solamente sobre objetos que se crean directamente a partir del elemento siguiente, en esencia las cabezas y las articulaciones.

Así pues, volviendo a nuestro ejemplo, el tamaño de la nota intermedia se cambiaría de la siguiente forma:

\relative {
  <c' e g>4
  <c \tweak font-size -3 e g>4
}
[image of music]

Ahora trataremos de modificar la posición vertical del símbolo \breathe. De manera predeterminada, LilyPond computa una distancia vertical a partir de la línea central, automáticamente. Si, por ejemplo, quisiéramos moverlo hacia arriba dos unidades, \offset sería la instrucción más adecuada. Con \tweak sería necesario encontrar la posición correcta manualmente, por ensayo y error.

\relative c'' {
  c4
  \breathe
  c4
  \offset Y-offset 2 \breathe
  c2
  \tweak Y-offset 4 \breathe
}
[image of music]

Evidentemenre, \offset solo funciona para valores que realmente tienen un valor numérico. Son de aplicación otras restricciones acerca de lo que se puede cambiar; una vez más, le rogamos que consulte The offset command, para ver más detalles.

Observe que la sintaxis de \tweak y \offset no es igual que la de \override. El contexto no se debe especificar; de hecho, generaría un error hacerlo. Tanto el contexto como el objeto de presentación están implícitos por el siguiente elemento del flujo de entrada. Observe también que no debe haber un signo igual. Así que la sintaxis de las instrucciones \tweak y \offset en su forma sencilla es:

\tweak propiedad-de-presentación valor
\offset propiedad-de-presentación valor

\tweak y \offset también se pueden usar para modificar solo una de una serie de articulaciones, como se muestra aquí:

a'4^"Black"
  -\tweak color "red" ^"Red"
  -\tweak color "green" _"Green"
[image of music]

Tanto la instrucción \tweak como \offset deben venir precedidan de una marca de articulación porque la propia expresión trucada debe aplicarse como una articulación. En el caso de más de una sobreescritura de dirección (‘^’ o ‘_’), gana la sobreescritura situada más a la izquierda porque se aplica en último lugar.

Los objetos tales como plicas y alteraciones accidentales se crean más tarde, y no directamente a partir del evento que viene a continuación. Aún es posible utilizar \tweak u \offset sobre tales objetos creados indirectamente mediante el nombrado explícito del objeto de presentación, siempre y cuando LilyPond pueda rastrear su origen hasta el evento original:

<\tweak Accidental.color "red"   cis''4
 \tweak Accidental.color "green" es''
 g''>
[image of music]

Esta forma extensa de las instrucciones \tweak y \offset se puede describir como

\tweak ObjetoDePresentación.propiedad-de-presentación valor
\offset ObjetoDePresentación.propiedad-de-presentación valor

La instrucción \tweak también se debe usar para cambiar la apariencia de uno solo de un conjunto de grupos especiales anidados que comiencen en el mismo instante musical. En el siguiente ejemplo, el corchete del tresillo largo y el primero de los tres corchetes cortos empiezan en el mismo momento musical, y por ello cualquier instrucción \override se aplicaría a los dos. En el ejemplo se usa \tweak para distinguir entre ellos. La primera instrucción \tweak especifica que el corchete del tresillo largo se debe colocar por encima de las notas y el segundo especifica que el número del tresillo se debe imprimir en rojo sobre el corchete del primer tresillo corto.

\relative 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] }
  }
}
[image of music]

Si los grupos anidados no comienzan en el mismo momento, su apariencia se puede modificar de la forma usual mediante instrucciones \override:

\relative {
  \tuplet 3/2 { c'8[ c c] }
  \once \override TupletNumber.text =
    #tuplet-number::calc-fraction-text
  \tuplet 3/2 {
    c8[ c]
    c8[ c]
    \once \override TupletNumber.transparent = ##t
    \tuplet 3/2 { c8[ c c] }
    \tuplet 3/2 { c8[ c c] }
  }
}
[image of music]

Véase también

Referencia de la notación: Tweak and single, The offset command


Manual de aprendizaje de GNU LilyPond v2.25.29 (development-branch).