[ << Conceptos fundamentales ] | [Arriba][Índice general][Índice][ ? ] | [ Trucar la salida >> ] | ||
[ < Crear una partitura partiendo de cero ] | [ Subir : Extender las plantillas ] | [ Partituras y particellas > ] |
3.4.4 Ahorrar tecleo mediante variables y funciones
Llegado a este punto, usted ha visto cosas de este tipo:
hornNotes = \relative { c''4 b dis c } \score { { \hornNotes } }
Incluso se dará cuenta de que esto puede ser útil en música minimalista:
fragmentA = \relative { a'4 a8. b16 } fragmentB = \relative { a'8. gis16 ees4 } violin = \new Staff { \fragmentA \fragmentA | \fragmentB \fragmentA | } \score { { \violin } }
Sin embargo también puede usar estos identificadores (que también se conocen como variables, macros o instrucciones definidas por el usuario) para hacer trucos:
dolce = \markup { \italic \bold dolce } centreText = { \once \override TextScript.self-alignment-X = #CENTER } fthenp =_\markup { \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p } violin = \relative { \repeat volta 2 { c''4._\dolce b8 a8 g a b | \centreText c4.^"hi there!" d8 e f g d | c4.\fthenp b8 c4 c-. | } } \score { { \violin } }
Obviamente estos identificadores son útiles para ahorrar tecleo. Pero son dignos de tener en cuenta incluso si se van a utilizar una sola vez: reducen la complejidad. Examinemos el ejemplo anterior reescrito sin ningún identificador. Encontrará que es mucho más difícil de leer, sobre todo la última línea.
violin = \relative { \repeat volta 2 { c''4._\markup { \italic \bold dolce } b8 a8 g a b | \once \override TextScript.self-alignment-X = #CENTER c4.^"hi there!" d8 e f g d | c4._\markup { \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p } b8 c4 c-. | } }
Hasta ahora hemos contemplado la sustitución estática: cuando
LilyPond se encuentra con \centreText
, lo sustituye con
aquello que hemos definido que sea (es decir, todo lo que está a
la derecha de centreText=
).
LilyPond también puede manejar sustituciones no estáticas (piense en ellas como en funciones).
padText = #(define-music-function (padding) (number?) #{ \once \override TextScript.padding = #padding #}) \relative { c''4^"piu mosso" b a b \padText #1.8 c4^"piu mosso" b a b \padText #2.6 c4^"piu mosso" b a b }
La utilización de identificadores también es una buena forma de
reducir el trabajo si la sintaxis de entrada de LilyPond cambia
(véase
Actualizar ficheros con convert-ly). Si tiene
una sola definición (como p.ej. \dolce
) para todos sus
archivos (ver Hojas de estilo), y después la sintaxis se
modifica, sólo tendrá que actualizar su definición \dolce
única, en lugar de tener que hacer cambios en cada uno de los
archivos ‘.ly’.
[ << Conceptos fundamentales ] | [Arriba][Índice general][Índice][ ? ] | [ Trucar la salida >> ] | ||
[ < Crear una partitura partiendo de cero ] | [ Subir : Extender las plantillas ] | [ Partituras y particellas > ] |
Otros idiomas: English, català, česky, deutsch, français, magyar, italiano, 日本語, nederlands.
Acerca de la selección automática del idioma.