| [ << 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'' { c4 b dis c }
\score {
{
\hornNotes
}
}
Incluso se dará cuenta de que esto puede ser útil en música minimalista:
fragmentA = \relative c'' { a4 a8. b16 }
fragmentB = \relative c'' { a8. 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 }
padText = { \once \override TextScript #'padding = #5.0 }
fthenp =_\markup {
\dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p
}
violin = \relative c'' {
\repeat volta 2 {
c4._\dolce b8 a8 g a b |
\padText
c4.^"hi there!" d8 e' f g d |
c,4.\fthenp b8 c4 c-. |
}
}
\score {
{
\violin
}
\layout { ragged-right = ##t }
}
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 c'' {
\repeat volta 2 {
c4._\markup { \italic \bold dolce } b8 a8 g a b |
\once \override TextScript #'padding = #5.0
c4.^"hi there!" d8 e' f g d |
c,4.\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 \padText, lo sustituye con aquello que
hemos definido que sea (es decir, todo lo que está a la derecha de
padtext=).
LilyPond también puede manejar sustituciones no estáticas (piense en ellas como en funciones).
padText =
#(define-music-function
(parser location padding)
(number?)
#{
\once \override TextScript #'padding = $padding
#})
\relative c''' {
c4^"piu mosso" b a b |
\padText #1.8
c4^"piu mosso" d e f |
\padText #2.6
c4^"piu mosso" fis a g |
}
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, česky, deutsch, français, magyar, italiano, 日本語, nederlands.