5.2.1 Propiedades de los objetos de presentación

Suponga que tiene una partitura con una ligadura de expresión que para su gusto es demasiado fina y quiere trazarla un poco más gruesa. ¿Cómo debe proceder? Ya sabe, por las afirmaciones anteriores acerca de la flexibilidad de LilyPond, que tal posibilidad existe, y seguramente piensa que una cierta instrucción de sobreescritura \override será necesaria. Pero ¿existe una propiedad de grosor para las ligaduras? y, si la hay, ¿cómo se puede modificar? Aquí es donde interviene el Manual de Funcionamiento Interno. Contiene toda la información que puede necesitar para construir ésta y todas las demás instrucciones \override, de sobreescritura.

Una advertencia antes de dirigir nuestra mirada a la referencia de funcionamiento interno. Éste es un documento de referencia, lo que significa que hay pocas o ninguna explicación en él: su propósito es presentar la información de forma precisa y concisa. Por tanto, podrá parecerle desalentador a primera vista. ¡No se preocupe! La guía y las explicaciones que presentamos aquí le permitirán extraer la información de la referencia de funcionamiento interno por sí mismo con tan sólo algo de práctica.

Utilicemos un ejemplo concreto con un sencillo fragmento de música real:

{
  \key es \major
  \time 6/8
  \relative {
    r4 bes'8 bes[( g]) g |
    g8[( es]) es d[( f]) as |
    as8 g
  }
  \addlyrics {
    The man who | feels love's sweet e -- | mo -- tion
  }
}

[image of music]

Suponga ahora que decidimos que nos gustan las ligaduras algo más gruesas. ¿Es posible? La ligadura es, ciertamente, un objeto de presentación, así que la cuestión es ‘¿Hay una propiedad perteneciente a las ligaduras de expresión que controle su grosor?’ Para responder a esta pregunta debemos mirar el manual de Referencia de Funcionamiento Interno, abreviadamente RFI1.

El RFI de la versión de LilyPond que está usando se puede encontrar en la página web de LilyPond en https://lilypond.org. Vaya a la página de la documentación y siga el enlace Manual de Referencia de Funcionamiento Interno (RFI). Para nuestros propósitos pedagógicos sería mejor que utilizase la versión en HTML, no la ‘en una sola página’ ni el PDF. Para que los siguientes párrafos tengan algún sentido deberá consultarlo realmente al tiempo que lee.

Bajo el encabezamiento Top podrá ver cinco enlaces. Seleccione el enlace Backend, que es donde se encuentra la información sobre los objetos de presentación. Una vez allí, bajo el encabezamiento Backend, siga el enlace All layout objects. La página que aparece relaciona todos los objetos de presentación que se usan en su versión de LilyPond, en orden alfabético. Siga el enlace Slur (ligadura de expresión), y aparecerán relacionadas las propiedades de las ligaduras de expresión o Slurs.

Una forma alternativa de encontrar esta página es a partir de la Referencia de la Notación. En una de las páginas que tratan de las ligaduras de expresión podrá encontrar un enlace al manual de referencia del funcionamiento interno. Este enlace le llevará directamente a esta página, aunque si tiene una idea del nombre del objeto de presentación que pretende trucar, le resultará más fácil ir directamente al RFI y buscar allí.

Esta página sobre las ligaduras de expresión dentro del manual RFI nos dice en primer lugar que los objetos Slur se crean por el grabador Slur_engraver. A continuación relaciona los ajustes estándar. Navegue por ellos buscando una propiedad que pudiera controlar el grosor de las ligaduras, y encontrará

thickness (number)
     1.2
     Line thickness, generally measured in line-thickness

Esto promete ser una buena opción para cambiar el grosor. Nos dice que el valor de thickness es un simple número, que el valor predeterminado es 1.2, y que las unidades están dentro de otra propiedad llamada line-thickness.

Como dijimos con anterioridad, existen entre pocas y ninguna explicación en el RFI, pero ya tenemos información suficiente para probar a cambiar el grosor de la ligadura. Vemos que el nombre del objeto de presentación es Slur, que el nombre de la propiedad que debemos cambiar es thickness y que el nuevo valor debe ser un número algo más grande que 1.2 si queremos hacer las ligaduras más gruesas.

Ahora podemos construir la instrucción de sobreescritura \override simplemente mediante la sustitución de los valores que hemos encontrado para los nombres, omitiendo el contexto. Usaremos un valor muy grande para el grosor al principio, para estar seguros de que la instrucción está funcionando. Obtenemos lo siguiente:

\override Slur.thickness = #5.0

¡No olvide el #' antes del nombre de la propiedad y # antes del valor nuevo!

La pregunta final es ‘¿Dónde se debe colocar esta instrucción?’ Aunque nos falta seguridad y estamos todavía aprendiendo, la mejor respuesta es: ‘Dentro de la música, antes de la primera ligadura y cerca de ella.’ Hagámoslo así:

{
  \key es \major
  \time 6/8
  \relative {
    % Increase thickness of all following slurs from 1.2 to 5.0
    \override Slur.thickness = #5.0
    r4 bes'8 bes[( g]) g |
    g8[( es]) es d[( f]) as |
    as8 g
  }
  \addlyrics {
    The man who | feels love's sweet e -- | mo -- tion
  }
}

[image of music]

y podemos ver que la ligadura, es sin duda, más pesada.

Así pues, ésta es la forma básica de construir instrucciones \override o de sobreescritura. Existen unas cuantas complicaciones más con las que nos encontraremos en secciones posteriores, pero ahora conoce todos los principios esenciales que 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.

Búsqueda del contexto

Pero en primer lugar ¿qué habría pasado si hubiésemos tenido que especificar el contexto? ¿Cuál sería? Podemos suponer que las ligaduras están en el contexto de Voz, por estar claramente asociados de manera estrecha con las líneas individuales de música, pero ¿podemos estar seguros? Para averiguarlo, vayamos de nuevo al inicio de la página del RFI que describe las ligaduras (Slur), donde dice ‘Slur objects are created by the following engraver(s): Slur_engraver.’ («Los objetos de ligadura de expresión se crean por: el grabador Slur»). Así pues, las ligaduras de expresión se crean en cualquier contexto en el que se encuentre el grabador Slur_engraver. Siga el enlace a la página del grabador Slur_engraver. Al final del todo, dice que el grabador Slur_engraver es parte de siete contextos de voz, incluido el contexto de voz estándar, Voice, por lo que nuestra suposición era acertada. Y a causa de que Voice es uno de los 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.

Sobreescritura por una sola vez

Como puede ver, todas las ligaduras son más gruesas en el último ejemplo. Pero ¿y si quisiéramos que solamente la primera ligadura fuese más gruesa? Esto se consigue con la instrucción o prefijo \once. Colocado inmediatamente antes de la instrucción \override ocasiona que solamente cambie la ligadura que comienza en la nota inmediata siguiente. Si la nota inmediata siguiente no da inicio a una ligadura, la instrucción no tiene ningún efecto en absoluto: no se recuerda hasta que se encuentre alguna ligadura, sino que simplemente se ignora. Así pues, la instrucción que lleva \once se debe reposicionar de la forma siguiente:

{
  \key es \major
  \time 6/8
  \relative {
    r4 bes'8
    % Increase thickness of immediately following slur only
    \once \override Slur.thickness = #5.0
    bes8[( g]) g |
    g8[( es]) es d[( f]) as |
    as8 g
  }
  \addlyrics {
    The man who | feels love's sweet e -- | mo -- tion
  }
}

[image of music]

Hemos hecho que ahora solamente la primera ligadura sea más gruesa.

La instrucción o prefijo \once también se puede usar antes de la instrucción \set.

Recuperación del ajuste

Finalmente ¿y si quisiéramos que solamente las dos primeras ligaduras fuesen más gruesas? En fin; podríamos usar dos instrucciones, cada una de ellas precedida por el prefijo \once, situadas inmediatamente antes de cada una de las notas en que comienzan las ligaduras:

{
  \key es \major
  \time 6/8
  \relative {
    r4 bes'8
    % Increase thickness of immediately following slur only
    \once \override Slur.thickness = #5.0
    bes[( g]) g |
    % Increase thickness of immediately following slur only
    \once \override Slur.thickness = #5.0
    g8[( es]) es d[( f]) as |
    as8 g
  }
  \addlyrics {
    The man who | feels love's sweet e -- | mo -- tion
  }
}

[image of music]

o podríamos omitir la instrucción prefija \once y utilizar la instrucción \revert (restablecer) para devolver la propiedad del grosor, thickness, a su valor predeterminado después de la segunda ligadura:

{
  \key es \major
  \time 6/8
  \relative {
    r4 bes'8
    % Increase thickness of all following slurs from 1.2 to 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
    d8[( f]) as |
    as8 g
  }
  \addlyrics {
    The man who | feels love's sweet e -- | mo -- tion
  }
}

[image of music]

la instrucción \revert se puede utilizar para devolver cualquier propiedad que se haya cambiado con \override a su valor predeterminado. Puede utilizar el método que mejor se adapte a aquello que quiere hacer.

Así finaliza nuestra introducción al manual de RFI, y el método básico de trucaje. A continuación, en las últimas secciones de este capítulo encontrará varios ejemplos, en parte para introducirle en algunas de las posibilidades adicionales del manual RFI, y en parte para proporcionarle más práctica en cómo extraer información de él. Estos ejemplos irán conteniendo cada vez menos palabras de guía y explicación.


Footnotes

(1)

IR (Internals Reference) en inglés


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