[ << Trucar la salida ] | [Top][Contents][Index] | [ Plantillas >> ] |
[ < La propiedad transparent (transparente) ] | [ Up : Visibilidad y color de los objetos ] | [ Tamaño de los objetos > ] |
La propiedad color
Para finalizar, intentemos hacer invisibles las barras de compás pintándolas de color blanco (hay un problema relacionado, que consiste en que la línea divisoria blanca puede tapar o no tapar las líneas del pentagrama a las que cruza. Podrá observar en algunos de los ejemplos que aparecen a continuación, que esto sucede de forma impredecible. Los detalles sobre por qué esto ocurre así, y cómo controlarlo, se estudian en Pintar los objetos de blanco; de momento estamos estudiando el color, por lo que le rogamos que acepte esta limitación por ahora).
El interface grob-interface
especifica que la propiedad del
color es una lista, pero no hay ninguna explicación sobre lo que
debe ir en esa lista. La lista que requiere es realmente una
lista de valores en unidades internas, pero para evitar tener que
saber cuáles son, se ofrecen varias vías para la especificación de
los colores. La primera forma es utilizar uno de los colores
‘CSS’ predefinidos que están relacionados en la Lista de
colores. Para poner las líneas divisorias de color blanco,
escribimos:
\relative { \time 12/16 \override Staff.BarLine.color = "white" c''4 b8 c d16 c d8 | g,8 a16 b8 c d4 e16 | e8 }
y de nuevo podemos comprobar que las barras de compás no son visibles. Observe que white no viene precedido de un apóstrofo: no es un símbolo, sino una cadena de caracteres, mapeado a una lista predefinida de valores internos. A este respecto, la sintaxis de LilyPond refleja el lenguaje CSS que se usa habitualmente en las páginas web; además de los nombres predefinidos, podemos especificar un código de color hexadecimal:
\relative { \time 12/16 \override Staff.BarLine.color = "#FFFFFF" c''4 b8 c d16 c d8 | g,8 a16 b8 c d4 e16 | e8 }
Podemos incluso definir dicho color como variable, y después usar esa variable como una definición de propiedad. Como es al mismo tiempo una variable de LilyPond y un objeto de Scheme, puede ir prefijada por una barra invertida o un símbolo de almohadilla sin distinción alguna:
whiteVar = "#FFFFFF" \relative { \time 12/16 \override Staff.BarLine.color = \whiteVar c''4 b8 c d16 c d8 | \override Staff.BarLine.color = #whiteVar g,8 a16 b8 c d4 e16 | e8 }
Otra manera de añadir colores a nuestra partitura es mediante el
uso de una función. Existen dos funciones útiles para ello; una
es la función x11-color
, que utilizaremos más adelante. La
otra es la función rgb-color
, que presenta la lógica
interna de LilyPond: toma tres argumentos que dan las intensidades
de los colores rojo, verde y azul. Cada uno de ellos toma valores
entre 0 y 1. Así pues, para establecer el color a rojo, el valor
sería (rgb-color 1 0 0)
y para el blanco sería
(rgb-color 1 1 1)
:
\relative { \time 12/16 \override Staff.BarLine.color = #(rgb-color 1 1 1) c''4 b8 c d16 c d8 | g,8 a16 b8 c d4 e16 | e8 }
Observe que en este caso, toda la llamada a la función debe estar
entre paréntesis. Lo mismo vale para la función x11-color
que pasamos anteriormente por alto.
x11-color
, de nuevo, lleva a cabo una asignación de nombres
de color predefinidos a valores internos, pero ofrece muchas más
alternativas que los nombres de CSS, como se ve en
Lista de colores). Por ejemplo, el conjunto de colores de
X11 incluye una completa gama de tonos de gris, cuyos nombres van
desde el negro, 'grey0
, hasta el blanco, 'grey100
,
en pasos de 1. Vamos a ilustrar esto estableciendo todos los
objetos de nuetro ejemplo en distintos tonos de gris:
\relative { \time 12/16 \override Staff.StaffSymbol.color = #(x11-color 'grey30) \override Staff.TimeSignature.color = #(x11-color 'grey60) \override Staff.Clef.color = #(x11-color 'grey60) \override Voice.NoteHead.color = #(x11-color 'grey85) \override Voice.Stem.color = #(x11-color 'grey85) \override Staff.BarLine.color = #(x11-color 'grey10) c''4 b8 c d16 c d8 | g,8 a16 b8 c d4 e16 | e8 }
Observe los contextos asociados con cada uno de los objetos de presentación. Es importante que estén correctamente escritos, o las instrucciones ¡no funcionarán! Recuerde que el contexto es aquel en que se encuentra el grabador correspondiente. El contesto predeterminado para los grabadores puede encontrarse empezando por el objeto de presentación, de ahí al grabador que lo produce, y en la página del grabador del RFI aparece en qué contexto se puede encontrar normalmente el grabador.
[ << Trucar la salida ] | [Top][Contents][Index] | [ Plantillas >> ] |
[ < La propiedad transparent (transparente) ] | [ Up : Visibilidad y color de los objetos ] | [ Tamaño de los objetos > ] |