recode README.
[lilypond-ejercicios.git] / apuntes-28-holst-2.tex
blob6366fe65753302458dbe852bd79a0e7916bf615f
1 \section{Sobreescritura de propiedades: Marte, de Holst (II)}
4 \subsection{Modelo}
6 Para completar el ejemplo orquestal, hoy aprenderemos a mover
7 objetos para ajustar su posición; en el caso que nos ocupa, esto
8 ahorra espacio y permite un tamaño de los pentagramas algo mayor,
9 sin que se produzcan colisiones entre los objetos de los distintos
10 pentagramas, y todo ello de forma que la música quepa en una sola
11 página. En el título usaremos el efecto \emph{smallcaps} de
12 mayúsculas pequeñas para ``Mars''.
14 En el fragmento aparecen los pentagramas de los fagotes y el
15 contrafagot, con el matiz \emph{mezzopiano} y la indicación
16 ``III'' del tercer fagot desplazadas a la izquierda y hacia
17 arriba. Se ha enmascarado en blanco el pentagrama detrás de estas
18 indicaciones para evitar la superposición. Las pautas de
19 percusión se han acercado entre sí para ahorrar espacio. La
20 indicación \emph{piano} de los violines está también desplazada
21 para hacer sitio al texto \emph{col legno} del siguiente
22 pentagrama. Para finalizar, hemos reducido el grosor de las
23 líneas de pauta para suavizar el aspecto demasiado negro de una
24 partitura orquestal a tamaño reducido.
26 \bigskip
28 % Aumentar la separación entre sistemas
29 \def\betweenLilyPondSystem#1{\vspace{0.4cm}\linebreak}
31 \begin[line-width=13cm]{lilypond}
33 \version "2.13.0"
35 juntaPentagrama = \with { \override VerticalAxisGroup #'staff-staff-spacing =
36 #'((basic-distance . 6) (padding . 0))
40 bassoonsI = \relative g, {
41 \clef bass
42 \oneVoice R1*5/4 R1*5/4
43 \voiceOne g2. ^"I II a2" ~ ( \p g2 ~
44 g2. ^\< d'2 ) \! des2. ^\> ~ des2 \! \laissezVibrer % ~ des
47 bassoonsIII = \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
64 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
66 doble = \relative g, { \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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
74 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
76 side = { R1*5/4*5 }
78 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
80 cymbals = { R1*5/4*5 }
82 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
84 drum = { R1*5/4*5 }
87 violinI = \relative g {
88 \once \override DynamicText #'extra-offset = #'(-0.8 . 1)
89 \once \override DynamicText #'X-offset = #-2.5
90 \times 2/3 { g8\p ^"col legno" 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
93 \times 2/3 { g8 \< g g } g4 g g8 g g4\!
94 \times 2/3 { g8 \> g g } g4 g g8 g g4\! }
96 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
98 violinII = \relative g {
99 \once \override DynamicText #'extra-offset = #'(-0.8 . 1)
100 \once \override DynamicText #'X-offset = #-2.5
101 \times 2/3 { g8 \p ^"col legno" g g } g4 g g8 g g4
102 \times 2/3 { g8 g g } g4 g g8 g g4
103 \times 2/3 { g8 g g } g4 g g8 g g4
104 \times 2/3 { g8 \< g g } g4 g g8 g g4\!
105 \times 2/3 { g8 \> g g } g4 g g8 g g4\! }
108 #(set-global-staff-size 10.5) % antes 15.5 para a3
109 #(set-default-paper-size "a4") % antes a3
111 \header {
112 title = \markup { \fontsize #6 { \smallCaps { "I. Mars, " } "the Bringer of War" } }
113 tagline=##f
117 \score {
119 % main
120 \new StaffGroup << \tempo "Allegro"
121 \time 5/4
123 %bassoons
124 \new PianoStaff <<
125 \new Staff \with { instrumentName = "3 Bassoons" } { << \bassoonsI \\ \bassoonsIII >> }
126 \new Staff \with { instrumentName = "Double Bassoon" } { \doble } >>
128 %side drum
129 \new RhythmicStaff
130 \with { \juntaPentagrama
131 instrumentName = "Side Drum" }
132 { \side }
134 % cymbals
135 \new RhythmicStaff
136 \with { \juntaPentagrama
137 instrumentName = "Cymbals" }
138 { \cymbals }
140 %bass drum
141 \new RhythmicStaff
142 \with { \juntaPentagrama
143 instrumentName = "Bass Drum" }
144 { \drum }
147 %violins
148 \new PianoStaff <<
149 \new Staff \with { instrumentName = "1st Violins" }
150 { \violinI }
151 \new Staff \with { instrumentName = "2nd Violins" }
152 { \violinII } >>
154 >> %main
156 \layout { indent=1.5\cm %era 4 para a3
158 \context { \Score
159 \override StaffSymbol #'thickness = #(magstep -3)
165 } %score
168 \paper { ragged-right=##f
169 line-width=16.5\cm
170 page-count=1
171 system-count=1
174 \end{lilypond}
177 \subsection{Sobreescritura de propiedades}
178 \label{override}
180 Es importante aprovechar al máximo las posibilidades de tipografiado
181 automático de partituras que LilyPond ofrece, sin ninguna intervención
182 manual. Sin ambargo, en el apartado \ref{tamano-global}
183 (pág. \pageref{tamano-global}) utilizamos tímidamente la
184 sobreescritura de propiedades para modificar el tamaño de un
185 pentagrama. Las propiedades de los objetos gráficos tienen un valor
186 determinado que se usa para especificar la forma en que el objeto se
187 imprime. Hay varias instrucciones que hacen posible la modificación
188 de estos valores, y la más frecuente es \verb+\override+. Los valores
189 exactos son algo que se puede determinar mediante ensayo y error,
190 aunque existen ayudas muy valiosas como la herramienta Regla de
191 LilyPondTool (que no explicaremos aquí). La
192 instrucción \verb+\override+ se utiliza de la siguiente manera:
194 \begin{verbatim}
195 \override contexto.objeto #'propiedad = #valor
196 \end{verbatim}
198 Que significa: asignar el \emph{valor} a la \emph{propiedad}
199 del \emph{objeto} dentro del \emph{contexto}. El contexto
200 predeterminado es Voice y muchas veces se puede dejar sin
201 especificar. Veamos a continuación un ejemplo del uso de la
202 sobreescritura de propiedades para mover objetos.
205 \subsection{Mover objetos}
207 Los matices dinámicos son objetos llamados internamente
208 DynamicText, que se imprimen en el lugar determinado por una serie
209 de variables. Apliquemos la formulación general de la
210 instrucción \verb+\override+ que acabamos de mostrar, y
211 consignemos lo siguiente para cada uno de los apartados:
213 \medskip
215 \begin{tabular}{c|c|c|c}
216 Contexto & Objeto & Propiedad & Valor \\ \hline
217 Voice & DynamicText & 'extra-offset & '(-0.8 . 1) \\
218 Voice & DynamicText & 'X-offset & -2.5
219 \end{tabular}
221 \medskip
223 Estas medidas están expresadas en espacios de pentagrama, por lo que
224 (afortunadamente) no dependen del tamaño de éste. Los dos números
225 entre paréntesis se refieren a las dimensiones X e Y. El efecto de la
226 sobreescritura permanece hasta que se vuelva a sobreescribir o hasta
227 que se encuentre una instrucción \verb+\revert+ con el nombre del
228 objeto y la propiedad. En el ejemplo se ve que las tres indicaciones
229 están afectadas por una sola sobreescritura:
231 \begin[fragment,verbatim]{lilypond}
232 \override DynamicText #'extra-offset = #'(-0.8 . 1)
233 \override DynamicText #'X-offset = #-2.5
234 g1\p g\p g\p
235 \end{lilypond}
238 \subsection{Aplicación por una sola vez}
240 Las sobrreescrituras permanecen hasta nueva orden, pero por
241 comodidad, en caso de que sólo se necesite una vez, podemos
242 preceder la instrucción de sobreescritura por la palabra
243 clave \verb+\once+. Aquí podemos ver que sólo la primera
244 indicación dinámica está afectada por \verb+\once \override+:
246 \begin[fragment,verbatim]{lilypond}
247 \once \override DynamicText #'extra-offset = #'(-0.8 . 1)
248 \once \override DynamicText #'X-offset = #-2.5
249 g1\p g\p g\p
250 \end{lilypond}
253 \subsection{Enmascarar en blanco}
255 Cuando se quieren tapar las líneas que caen detrás de una
256 indicación dinámica o textual, se le da un valor verdadero a la
257 propiedad \verb+whiteout+.
259 \medskip
260 \begin{tabular}{c|c|c|c}
261 Contexto & Objeto & Propiedad & Valor \\ \hline
262 Voice & TextScript, DynamicText & 'whiteout & verdadero (\#t) o falso (\#f) \\
263 \end{tabular}
264 \medskip
266 Por ejemplo:
267 \begin{verbatim}
268 \override TextScript #'whiteout = ##t
269 \end{verbatim}
271 \begin{lilypond}
272 \new PianoStaff <<\new Staff
274 \voiceTwo c'1
275 \override TextScript #'whiteout = ##t
276 \override DynamicText #'whiteout = ##t
278 \once \override TextScript #'outside-staff-priority = ##f
279 \once \override TextScript #'X-offset = #-3
281 \once \override DynamicText #'X-offset = #-4.5
282 \once \override DynamicText #'extra-offset = #'(0 . 1.4)
283 c'2
286 -"III"
287 c'2
290 \new Staff { c'1 c' }
292 \end{lilypond}
295 \subsection{Grosor de las líneas del pentagrama}
297 Pruebe la siguiente sobreescritura para conseguir líneas más
298 delgadas en pautas sueltas o en toda la partitura:
300 \medskip
301 \begin{tabular}{c|c|c|c}
302 Contexto & Objeto & Propiedad & Valor \\ \hline
303 Staff, Score & StaffSymbol & 'thickness & \#(magstep -3) \\
304 \end{tabular}
305 \medskip
307 Por ejemplo:
308 \begin{verbatim}
309 \new Staff \with { \override StaffSymbol #'thickness = #(magstep -3) }
310 \end{verbatim}
312 En el ejemplo que aparece a continuación podemos ver dos aplicaciones
313 de sentido opuesto, y el aspecto predeterminado en segundo lugar.
316 \begin[staffsize=10]{lilypond}
318 \new Staff \with { \override StaffSymbol #'thickness = #(magstep -6) } { s1 -"-6" }
319 \new Staff \with { \override StaffSymbol #'thickness = #(magstep 0) } { s1 -"0"}
320 \new Staff \with { \override StaffSymbol #'thickness = #(magstep 6) } { s1 -"+6" }
322 \end{lilypond}
325 \subsection{Separación de pautas}
327 El espaciado vertical es un asunto delicado. El ajuste de la
328 separación entre cada pauta y la siguiente se hace también mediante
329 sobreescritura de propiedades. Aquí tenemos las que valen para la
330 última versión en el momento de escribir esto, la
331 \emph{estable}\ \ 2.14:
333 \medskip
334 \begin{tabular}{c|c|c|c}
335 Contexto & Objeto & Propiedad & Valor \\ \hline
336 Staff & VerticalAxisGroup & 'staff-staff-spacing & \#((basic-distance . 6) (padding . 0)) \\
337 \end{tabular}
338 \medskip
340 Esta sobreescritura se puede almacenar en una variable para utilizarla
341 repetidas veces:
343 \begin[verbatim]{lilypond}
344 juntaPauta = \with {
345 \override VerticalAxisGroup #'staff-staff-spacing =
346 #'((basic-distance . 3) (padding . 0))
349 \new RhythmicStaff
350 \with {
351 instrumentName= "Side Drum"
352 \juntaPauta
354 { c4 c c8 c c4 }
355 \new RhythmicStaff
356 \with {
357 instrumentName= "Cymbals"
358 \juntaPauta
360 { c4 c c8 c c4 }
362 \end{lilypond}
365 \subsection{Notas}
367 \begin{itemize}
368 \item Para los nombres de instrumentos que contienen un bemol, use \verb+\flat+ dentro del elemento de marcado.
370 \begin[verbatim]{lilypond}
371 \new Staff
372 \with {
373 instrumentName= \markup { "3 Clarinets in B" \flat }
376 \end{lilypond}
378 \item La instrucción de marcado \verb+\smallCaps+ produce un estilo ``versalitas'' en que las minúsculas son mayúsculas pequeñas:
380 \begin[verbatim]{lilypond}
381 \markup { \smallCaps "Marte" }
382 \end{lilypond}
385 \end{itemize}