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