| [ < ] | [ > ] | [ << ] | [ Subir ] | [ >> ] | [Arriba] | [Índice general] | [Índice] | [ ? ] |
@translationof The Internals Reference manual
| 4.2.1 Propiedades de los objetos de presentación | ||
| 4.2.2 Propiedades de los interfaces | ||
| 4.2.3 Tipos de propiedades |
| [ < ] | [ > ] | [ << ] | [ Subir ] | [ >> ] | [Arriba] | [Índice general] | [Índice] | [ ? ] |
@translationof Properties of layout objects
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 } }
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 RFI(1).
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 } }
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.
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: 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.
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 } }
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.
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 } }
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 } }
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.
| [ < ] | [ > ] | [ << ] | [ Subir ] | [ >> ] | [Arriba] | [Índice general] | [Índice] | [ ? ] |
@translationof Properties found in interfaces
Suponga ahora que queremos imprimir la letra de la canción en
cursiva. ¿Qué forma de instrucción \override necesitamos
para hacerlo? En primer lugar miramos en la página del RFI que
relaciona todos los objetos, ‘All layout objects’, como antes, y
buscamos un objeto que pueda controlar la letra de la canción.
Encontramos LyricText, que parece adecuado. Al seguir este
enlace se presentan las propiedades ajustables para el texto de la
letra. Estos incluyen font-series y font-size, pero
nada que pudiera aplicar una forma cursiva. Esto es porque la
propiedad de la forma es común a todos los objetos de fuente
tipográfica, y por tanto, en vez de incluirlo en cada uno de los
objetos de presentación, se agrupa junto con otras propiedades
comunes similares y se deposita en un Interface, el
interface de las fuentes tipográficas font-interface.
Por tanto, ahora necesitamos aprender cómo encontrar las propiedades de los interfaces, y descubrir qué objetos usan estas propiedades de interface.
Mire de nuevo la página del RFI que describe a LyricText. Al
final de la página hay una lista de enlaces a los interfaces que
LyricText contempla. La lista tiene siete elementos, entre ellos
font-interface. Al seguir este enlace llegamos a las
propiedades asociadas con este interface, que también son
propiedades de todos los objetos que lo llevan, entre ellos
LyricText.
Ahora vemos todas las propiedades ajustables por el usuario que
controlan las tipografías, entre ellas font-shape(symbol),
donde symbol se puede establecer a upright (recta),
italics (cursiva)o caps (mayúsculas pequeñas).
Observará que font-series y font-size también se
encuentran aquí relacionadas. Esto inmediatamente hace que surja
la pregunta: ¿Por qué están las propiedades comunes de tipografía
font-series y font-size relacionadas bajo
LyricText así como bajo el interface font-interface
pero font-shape no lo está? La respuesta es que
font-series y font-size se cambian a partir de sus
valores predeterminados globales cuando se crea un objeto
LyricText, pero font-shape no lo hace. Entonces los
elementos de la lista LyricText le dicen los valores para
esas dos propiedades que son de aplicación para LyricText.
Otros objetos que contemplan font-interface establecerán
dichas propiedades de forma diferente cuando se crean.
Veamos si ahora podemos construir la instrucción \override
para cambiar la letra a cursiva. El objeto es LyricText,
la propiedad es font-shape y el valor es italic.
Igual que antes, omitiremos el contexto.
Como nota aparte, aunque es importante, observe que ciertas
propiedades toman valores que son símbolos, como italic, y
deben ir precedidos de un apóstrofo, '. 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 "una cadena de texto"; para ver más
detalles sobre los símbolos y las cadenas, consulte
(extending)Tutorial de Scheme sección ‘Tutorial de Scheme’ en Extender.
Así pues, la instrucción \override necesaria para imprimir
la letra en cursiva, es:
\override LyricText.font-shape = #'italic |
Esto debe escribirse justo delante de la letra a la que debe afectar, de esta forma:
{ \key es \major \time 6/8 \relative { r4 bes'8 bes[( g]) g | g8[( es]) es d[( f]) as | as8 g } \addlyrics { \override LyricText.font-shape = #'italic The man who | feels love's sweet e -- | mo -- tion } }
y toda la letra se imprime en cursiva.
Nota: Dentro de la letra, deje siempre espacios entre la sílaba final y la llave de cierre.
Manual de Extensión: (extending)Tutorial de Scheme sección ‘Tutorial de Scheme’ en Extender.
| [ < ] | [ > ] | [ << ] | [ Subir ] | [ >> ] | [Arriba] | [Índice general] | [Índice] | [ ? ] |
@translationof Types of properties
Hasta ahora hemos visto dos tipos de propiedad:: número y
símbolo. Para que sea válido, el valor que se da a una
propiedad debe ser del tipo correcto y obedecer las reglas de
dicho tipo. El tipo de la propiedad se muestra siempre entre
paréntesis 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, #, por supuesto, delante de estos
valores cuando se introducen en la instrucción \override,
incluso si el propio valor ya comienza por #.
Solamente ofrecemos aquí ejemplos para constantes; si quiere
calcular un valor usando Scheme, consulte
Scheme
(extending)Cálculos en Scheme sección ‘Cálculos en Scheme’ en Extender.
| Tipo de propiedad | Reglas | Ejemplos |
|---|---|---|
| Booleano | Verdadero o Falso, representado por #t o #f | #t, #f |
| Dimensión (en espacios de pentagrama) | Un número decimal (en unidades de espacios de pentagrama) | 2.5, 0.34 |
| Dirección | Una constante válida de dirección o su equivalente numérico
(0 o CENTER indican una dirección neutra) | LEFT, CENTER, UP,
1, -1 |
| Entero | Un número entero positivo | 3, -1 |
| Lista | Una secuencia de constantes o símbolos separados por espacios, encerrado entre paréntesis y precedido de un apóstrofo o comilla simple | '(left-edge staff-bar), '(1), '(),
'(1.0 0.25 0.5) |
| Marcado | Cualquier elemento válido de marcado de texto | \markup { \italic "cresc." }, "gaita" |
| Momento | Una fracción de redonda construida con la función make-moment | (ly:make-moment 1/4),
(ly:make-moment 3/8) |
| Número | Cualquier valor positivo o negativo, posiblemente decimal | 3, -2.45 |
| Pareja (de números) | Dos números separados por un ‘espacio . espacio’, encerrado entre paréntesis y precedido de un apóstrofo | '(2 . 3.5), '(0.1 . -3.2) |
| Símbolo | Cualquiera del conjunto de símbolos permitidos para esa propiedad, precedido de un apóstrofo | 'italic, 'inside |
| Desconocido | Un procedimiento o #f para no producir ninguna acción | bend::print, ly:text-interface::print,
#f |
| Vector | Constantes
encerradas entre #(…). | #(#t #t #f) |
Manual de Extensión: (extending)Tutorial de Scheme sección ‘Tutorial de Scheme’ en Extender.
| [ < ] | [ > ] | [ << ] | [ Subir ] | [ >> ] |
Este documento ha sido generado por gub el el 13 julio 2020 utilizando texi2html 1.82.
Otros idiomas: English, català, česky, deutsch, français, italiano, 日本語, nederlands.
Acerca de la selección automática del idioma.