Embryo: Learning With Bach.
[lilypond-ejercicios.git] / apuntes-28-holst-2.tex
blobacc414aad322ddefd55aa64b610a5657c87b358f
1 \section{Sobreescritura de propiedades: \emph{Marte}, de Holst (II)}
4 \subsection{Modelo}
6 Para completar el ejemplo orquestal, hoy aprenderemos a mover objetos
7 para ajustar su posición; en el caso que nos ocupa, esto ahorra
8 espacio y permite un tamaño de los pentagramas algo mayor, sin que se
9 produzcan colisiones entre los objetos de los distintos pentagramas, y
10 todo ello de forma que la música quepa en una sola página. En el
11 título usaremos el efecto \emph{smallcaps} de mayúsculas pequeñas para
12 ``Mars''.
14 En el fragmento aparecen los pentagramas de los fagotes y el
15 contrafagot, con el matiz \emph{mezzopiano} y la indicación ``III''
16 del tercer fagot desplazadas a la izquierda y hacia arriba. Se ha
17 enmascarado en blanco el pentagrama detrás de estas indicaciones para
18 evitar la superposición. Las pautas de percusión se han acercado
19 entre sí para ahorrar espacio. La indicación \emph{piano} de los
20 violines está también desplazada para hacer sitio al texto \emph{col
21 legno} del siguiente pentagrama. Para finalizar, hemos reducido el
22 grosor de las líneas de pauta para suavizar el aspecto demasiado negro
23 de una partitura orquestal a tamaño reducido.
25 \bigskip
27 % Aumentar la separación entre sistemas
28 \def\betweenLilyPondSystem#1{\vspace{0.4cm}\linebreak}
30 \begin[line-width=13cm]{lilypond}
31 \version "2.15.20"
33 juntaPentagrama = \with {
34 \override VerticalAxisGroup #'staff-staff-spacing =
35 #'((padding . 1))
38 bassoonsI =
39 \relative g, {
40 \clef bass
41 \oneVoice R1*5/4 R1*5/4
42 \voiceOne g2. ^"I II a2" ~ ( \p g2 ~
43 g2. ^\< d'2 ) \! des2. ^\> ~ des2 \! \laissezVibrer % ~ des
46 bassoonsIII =
47 \relative d, {
48 \clef bass
49 s1*5/4 s1*5/4 R1*5/4*2
50 % \once \override Voice.DynamicText #'extra-offset = #'(-2.9 . 2.9)
51 \override TextScript #'whiteout = ##t
52 \override DynamicText #'whiteout = ##t
53 \once \override DynamicText #'X-offset = #-4.5
54 \once \override DynamicText #'extra-offset = #'(-0.1 . 2.3)
55 \once \override TextScript #'outside-staff-priority = ##f
56 \once \override TextScript #'X-offset = #-4
57 des2.
58 -"III"
59 \mp
60 \> ~ des2 \! \laissezVibrer % ~ des
63 doble = \relative g, {
64 \key c \major
65 \clef bass
66 R1*5/4 R1*5/4
67 g2.\p ~ ( g2 ~ g2. \< d'2 \! ) des2. \> ~ des2 \! \laissezVibrer % ~ des
70 side = { R1*5/4*5 }
71 cymbals = { R1*5/4*5 }
72 drum = { R1*5/4*5 }
74 violinI = \relative g {
75 \once \override DynamicText #'extra-offset = #'(-0.8 . 1)
76 \once \override DynamicText #'X-offset = #-2.5
77 \times 2/3 { g8\p ^"col legno" g g } g4 g g8 g g4
78 \times 2/3 { g8 g g } g4 g g8 g g4
79 \times 2/3 { g8 g g } g4 g g8 g g4
80 \times 2/3 { g8 \< g g } g4 g g8 g g4\!
81 \times 2/3 { g8 \> g g } g4 g g8 g g4\! }
83 violinII = \relative g {
84 \once \override DynamicText #'extra-offset = #'(-0.8 . 1)
85 \once \override DynamicText #'X-offset = #-2.5
86 \times 2/3 { g8 \p ^"col legno" g g } g4 g g8 g g4
87 \times 2/3 { g8 g g } g4 g g8 g g4
88 \times 2/3 { g8 g g } g4 g g8 g g4
89 \times 2/3 { g8 \< g g } g4 g g8 g g4\!
90 \times 2/3 { g8 \> g g } g4 g g8 g g4\! }
93 #(set-global-staff-size 10.5) % antes 15.5 para a3
94 #(set-default-paper-size "a4") % antes a3
96 \header {
97 title = \markup { \fontsize #6 { \smallCaps { "I. Mars, " } "the Bringer of War" } }
98 tagline=##f
102 \score {
104 % main
105 \new StaffGroup <<
107 %bassoons
108 \new PianoStaff <<
109 \new Staff \with { instrumentName = "3 Bassoons" } { << \tempo "Allegro" \time 5/4 \bassoonsI \\ \bassoonsIII >> }
110 \new Staff \with { instrumentName = "Double Bassoon" } { \doble } >>
112 %side drum
113 \new RhythmicStaff
114 \with { \juntaPentagrama
115 instrumentName = "Side Drum" }
116 { \side }
118 % cymbals
119 \new RhythmicStaff
120 \with { \juntaPentagrama
121 instrumentName = "Cymbals" }
122 { \cymbals }
124 %bass drum
125 \new RhythmicStaff
126 \with { instrumentName = "Bass Drum" }
127 { \drum }
129 %violins
130 \new PianoStaff <<
131 \new Staff \with { instrumentName = "1st Violins" }
132 { \violinI }
133 \new Staff \with { instrumentName = "2nd Violins" }
134 { \violinII } >>
136 >> %main
138 \layout { indent=1.5\cm %era 4 para a3
139 \context { \Score
140 \override StaffSymbol #'thickness = #(magstep -3)
143 } %score
145 \paper {
146 ragged-right=##f
147 line-width=16.5\cm
148 page-count=1
149 system-count=1
151 \end{lilypond}
154 \subsection{Sobreescritura de propiedades}
155 \label{override}
157 Es importante aprovechar al máximo las posibilidades de tipografiado
158 automático de partituras que LilyPond ofrece, sin ninguna intervención
159 manual. Sin ambargo, en el apartado \ref{tamano-global}
160 (pág. \pageref{tamano-global}) utilizamos tímidamente la
161 sobreescritura de propiedades para modificar el tamaño de un
162 pentagrama. Las propiedades de los objetos gráficos tienen un valor
163 determinado que se usa para especificar la forma en que el objeto se
164 imprime. Hay varias instrucciones que hacen posible la modificación
165 de estos valores, y la más frecuente es \verb+\override+. Los valores
166 exactos son algo que se puede determinar mediante ensayo y error,
167 aunque existen ayudas muy valiosas como la herramienta Regla de
168 LilyPondTool (que no explicaremos aquí). La
169 instrucción \verb+\override+ se utiliza de la siguiente manera:
171 \begin{verbatim}
172 \override contexto.objeto #'propiedad = #valor
173 \end{verbatim}
175 Que significa: asignar el \emph{valor} a la \emph{propiedad} del
176 \emph{objeto} dentro del \emph{contexto}. Preste especial atención a
177 los símbolos que sirven de prefijo. El contexto predeterminado es
178 Voice y muchas veces se puede dejar sin especificar. Veamos a
179 continuación un ejemplo del uso de la sobreescritura de propiedades
180 para mover objetos.
183 \subsection{Mover objetos}
185 Los matices dinámicos son objetos llamados internamente
186 DynamicText, que se imprimen en el lugar determinado por una serie
187 de variables. Apliquemos la formulación general de la
188 instrucción \verb+\override+ que acabamos de mostrar, y
189 consignemos lo siguiente para cada uno de los apartados:
191 \medskip
193 \begin{tabular}{c|c|c|c}
194 Contexto & Objeto & Propiedad & Valor \\ \hline
195 Voice & DynamicText & extra-offset & (-2.5 . 1)
196 \end{tabular}
198 \medskip
200 Estas medidas están expresadas en espacios de pentagrama, por lo que
201 (afortunadamente) no dependen del tamaño de éste. Los dos números
202 entre paréntesis se refieren a las dimensiones X e Y. El efecto de la
203 sobreescritura permanece hasta que se vuelva a sobreescribir o hasta
204 que se encuentre una instrucción \verb+\revert+ con el nombre del
205 objeto y la propiedad. En el ejemplo se ve que las tres indicaciones
206 están afectadas por una sola sobreescritura:
208 \begin[fragment,verbatim]{lilypond}
209 \override DynamicText #'extra-offset = #'(-2.5 . 1)
210 g1\p g\p g\p
211 \end{lilypond}
214 \subsection{Aplicación por una sola vez}
216 Las sobrreescrituras permanecen hasta nueva orden, pero por
217 comodidad, en caso de que sólo se necesite una vez, podemos
218 preceder la instrucción de sobreescritura por la palabra
219 clave \verb+\once+. Aquí podemos ver que sólo la primera
220 indicación dinámica está afectada por \verb+\once \override+:
222 \begin[fragment,verbatim]{lilypond}
223 \once \override DynamicText #'extra-offset = #'(-2.5 . 1)
224 g1\p g\p g\p
225 \end{lilypond}
228 \subsection{Enmascarar en blanco}
230 Cuando se quieren tapar las líneas que caen detrás de una
231 indicación dinámica o textual, se le da un valor verdadero a la
232 propiedad \verb+whiteout+.
234 \medskip
235 \begin{tabular}{c|c|c|c}
236 Contexto & Objeto & Propiedad & Valor \\ \hline
237 Voice & TextScript, DynamicText & whiteout & verdadero (\#t) o falso (\#f) \\
238 \end{tabular}
239 \medskip
241 Por ejemplo:
242 \begin{verbatim}
243 \override TextScript #'whiteout = ##t
244 \end{verbatim}
246 \begin{lilypond}
247 \new PianoStaff <<\new Staff
249 \voiceTwo c'1
250 \override TextScript #'whiteout = ##t
251 \override DynamicText #'whiteout = ##t
253 \once \override TextScript #'outside-staff-priority = ##f
254 \once \override TextScript #'X-offset = #-3
256 \once \override DynamicText #'X-offset = #-4.5
257 \once \override DynamicText #'extra-offset = #'(0 . 1.4)
261 -"III"
265 \new Staff { c'1 c' }
267 \end{lilypond}
270 \subsection{Grosor de las líneas del pentagrama}
272 Pruebe la siguiente sobreescritura para conseguir líneas más
273 delgadas en pautas sueltas o en toda la partitura:
275 \medskip
276 \begin{tabular}{c|c|c|c}
277 Contexto & Objeto & Propiedad & Valor \\ \hline
278 Staff, Score & StaffSymbol & thickness & (magstep -3) \\
279 \end{tabular}
280 \medskip
282 Por ejemplo:
283 \begin{verbatim}
284 \new Staff \with { \override StaffSymbol #'thickness = #(magstep -3) }
285 \end{verbatim}
287 En el ejemplo que aparece a continuación podemos ver el efecto de dos
288 valores de signo opuesto, y el aspecto predeterminado en segundo
289 lugar.
292 \begin[staffsize=10]{lilypond}
294 \new Staff \with { \override StaffSymbol #'thickness = #(magstep -6) } { s1 -"-6" }
295 \new Staff \with { \override StaffSymbol #'thickness = #(magstep 0) } { s1 -"0"}
296 \new Staff \with { \override StaffSymbol #'thickness = #(magstep 6) } { s1 -"+6" }
298 \end{lilypond}
301 \subsection{Separación de pautas}
303 El espaciado vertical es un asunto delicado. El ajuste de la
304 separación entre cada pauta y la siguiente se hace también mediante
305 sobreescritura de propiedades. Aquí suprimimos el relleno de
306 separación de manera que los pentagramas casi se tocan:
308 \medskip
309 \begin{tabular}{c|c|c|c}
310 Contexto & Objeto & Propiedad & Valor \\ \hline
311 Staff & VerticalAxisGroup & staff-staff-spacing & ((padding . 0)) \\
312 \end{tabular}
313 \medskip
315 Esta sobreescritura se puede almacenar en una variable para utilizarla
316 repetidas veces:
318 \begin[verbatim]{lilypond}
319 juntaPauta = \with {
320 \override VerticalAxisGroup #'staff-staff-spacing =
321 #'((padding . 0))
324 \new RhythmicStaff
325 \with {
326 instrumentName= "Side Drum"
327 \juntaPauta
329 { c4 c c8 c c4 }
330 \new RhythmicStaff
331 \with {
332 instrumentName= "Cymbals"
333 \juntaPauta
335 { c4 c c8 c c4 }
337 \end{lilypond}
340 \subsection{Notas}
342 \begin{itemize}
343 \item Para los nombres de instrumentos que contienen un bemol, use \verb+\flat+ dentro del elemento de marcado.
345 \begin[verbatim]{lilypond}
346 \new Staff
347 \with {
348 instrumentName= \markup { "3 Clarinets in B" \flat }
351 \end{lilypond}
353 \item La instrucción de marcado \verb+\smallCaps+ produce un estilo ``versalitas'' en que las minúsculas son mayúsculas pequeñas:
355 \begin[verbatim]{lilypond}
356 \markup { \smallCaps "Marte" }
357 \end{lilypond}
360 \end{itemize}