+
+@seealso
+Glosario musical:
+@rglos{system}.
+
+@node Ahorrar tecleo mediante variables y funciones
+@subsection Ahorrar tecleo mediante variables y funciones
+@translationof Saving typing with variables and functions
+
+@cindex variables
+@cindex identificadores
+
+Llegado a este punto, usted ha visto cosas de este tipo:
+
+@lilypond[quote,verbatim,ragged-right]
+hornNotes = \relative c'' { c4 b dis c }
+
+\score {
+ {
+ \hornNotes
+ }
+}
+@end lilypond
+
+Incluso se dará cuenta de que esto puede ser útil en música
+minimalista:
+
+@lilypond[quote,verbatim,ragged-right]
+fragmentA = \relative c'' { a4 a8. b16 }
+fragmentB = \relative c'' { a8. gis16 ees4 }
+
+violin = \new Staff {
+ \fragmentA \fragmentA |
+ \fragmentB \fragmentA |
+}
+
+\score {
+ {
+ \violin
+ }
+}
+@end lilypond
+
+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:
+
+@c TODO Avoid padtext - not needed with skylining
+@lilypond[quote,verbatim,ragged-right]
+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 }
+}
+@end lilypond
+
+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.
+
+@example
+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-. |
+ @}
+@}
+@end example
+
+@c TODO Replace the following with a better example -td
+@c Skylining handles this correctly without padText
+
+Hasta ahora hemos contemplado la sustitución estática: cuando LilyPond
+se encuentra con @code{\padText}, lo sustituye con aquello que
+hemos definido que sea (es decir, todo lo que está a la derecha de
+@code{padtext=}).
+
+LilyPond también puede manejar sustituciones no estáticas (piense en
+ellas como en funciones).
+
+@lilypond[quote,verbatim,ragged-right]
+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 |
+}
+@end lilypond
+
+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
+@rprogram{Actualizar ficheros con convert-ly}). Si tiene una sola
+definición (como p.ej. @code{\dolce}) para todos sus archivos (ver
+@ref{Hojas de estilo}), y después la sintaxis se modifica, sólo tendrá
+que actualizar su definición @code{\dolce} única, en lugar de tener
+que hacer cambios en cada uno de los archivos @file{.ly}.
+
+
+
+@node Partituras y particellas
+@subsection Partituras y particellas
+@translationof Scores and parts
+
+En música orquestal, todas las notas se imprimen dos veces. Una vez
+en las particellas para los músicos, y otra para la partitura del
+director. Los identificadores se pueden usar para evitar la
+duplicación del trabajo. La música se escribe una vez y se almacena
+en una variable. El contenido de dicha variable se usa después para
+generar tanto la particella como la partitura del director.
+
+Es muy conveniente definir las notas en un archivo especial. Por
+ejemplo, supongamos que el archivo @file{trompa.ly} contiene la
+siguiente parte de un dúo para trompa y fagot:
+
+@example
+notasTrompa = \relative c @{
+ \time 2/4
+ r4 f8 a | cis4 f | e4 d |
+@}
+@end example
+
+@noindent
+Luego se hace una particella escribiendo en un archivo lo siguiente
+
+@example
+\include "trompa.ly"
+
+\header @{
+ instrument = "Trompa en Fa"
+@}
+
+@{
+ \transpose f c' \notasTrompa
+@}
+@end example
+
+La línea
+
+@example
+\include "trompa.ly"
+@end example
+
+@noindent
+sustituye el contenido de @file{trompa.ly} en esta posición dentro del
+archivo, así que @code{notasTrompa} se define con posterioridad. La
+instrucción @code{\transpose f@tie{}c'} indica que el argumento
+constituido por @code{\notasTrompa} se debe transponer una quinta
+hacia arriba. Lo que suena como @code{f} se escribe como @code{c'},
+lo que corresponde con el tono de afinación de una trompa normal
+en@tie{}Fa. La transposición se puede ver en la siguiente salida
+
+@lilypond[quote,ragged-right]
+\transpose f c' \relative c {
+ \time 2/4
+ r4 f8 a | cis4 f | e4 d |
+}
+@end lilypond
+
+En piezas para conjunto, con frecuencia una de las voces no suena
+durante muchos compases. Esto queda denotado por un silencio
+especial, el silencio multicompás. Se introduce con una @code{R}
+mayúscula seguida de una duración (@code{1}@tie{}en el caso de la
+redonda, @code{2}@tie{}en el caso de una blanca, etc.). Multiplicando
+la duración se pueden construir silencios más largos. Por ejemplo,
+este silencio ocupa 3@tie{}compases de 2/4
+
+@example
+R2*3
+@end example
+
+Cuando se imprime la particella tienen que comprimirse los silencios
+multicompás. Esto se hace estableciendo una variable en tiempo de
+ejecución
+
+@example
+\set Score.skipBars = ##t
+@end example
+
+@noindent
+Esta instrucción establece el valor de la propiedad @code{skipBars} en
+el contexto de @code{Score} a verdadero (@code{##t}). Anteponiendo el
+silencio y esta opción a la música anterior, llegamos al siguiente
+resultado
+
+@lilypond[quote,ragged-right]
+\transpose f c' \relative c {
+ \time 2/4
+ \set Score.skipBars = ##t
+ R2*3 |
+ r4 f8 a | cis4 f | e4 d |
+}
+@end lilypond
+
+
+Esta partitura se hace combinando toda la música junta. Suponiendo
+que la otra voz se encuentra dentro de @code{notasFagot} en el archivo
+@file{fagot.ly}, la partitura se hace con
+
+@example
+\include "fagot.ly"
+\include "trompa.ly"
+
+<<
+ \new Staff \notasTrompa
+ \new Staff \notasFagot
+>>
+@end example
+
+@noindent
+lo que nos lleva a
+
+@lilypond[quote,ragged-right]
+\relative c <<
+ \new Staff {
+ \clef "treble"
+ \time 2/4
+ R2*3 |
+ r4 f8 a | cis4 f | e4 d |
+ }
+ \new Staff {
+ \clef "bass"
+ \time 2/4
+ r4 d,8 f | gis4 c | b4 bes |
+ a8 e f4 | g4 d | gis4 f |
+ }
+>>
+@end lilypond
+
+
+