4.4.3 Crear una partitura partiendo de cero
Después de adquirir algo de soltura en la escritura del código de LilyPond, se dará cuenta de que es más fácil construir completamente una partitura partiendo de cero, que modificar una plantilla. También puede desarrollar su propio estilo de forma que se adapte al tipo de música que le apetezca. Veamos a continuación cómo confeccionar una partitura para un preludio de órgano, como ejemplo.
Comenzamos con una sección para el encabezamiento. Aquí es donde van el título, nombre del compositor, etc., después van las definiciones de las variables, y finalmente el bloque de partitura. Comencemos a verlas por encima y más tarde completaremos los detalles.
Utilizaremos los dos primeros compases del preludio de Bach basado en Jesu, meine Freude, que está escrito para órgano con dos manuales y pedal. Tiene estos dos compases de música al final de la sección. La parte del manual superior tiene dos voces, y el inferior y el pedal, una voz cada uno. Así pues, necesitamos cuatro definiciones para la música y una más para definir el compás y la tonalidad:
\version "2.25.22" \header { title = "Jesu, meine Freude" composer = "J S Bach" } keyTime = { \key c \minor \time 4/4 } MusicaManualUnoVozUno = { s1 } MusicaManualUnoVozDos = { s1 } MusicaManualDos = { s1 } MusicaPedal = { s1 } \score { }
Por el momento hemos escrito tan sólo una nota espaciadora,
s1
, en lugar de la música de verdad. La añadiremos más
adelante.
A continuación veamos qué va en el bloque de partitura. Sencillamente, reflejaremos la estructura de pentagramas que deseemos. La música de órgano se escribe por lo general en tres pentagramas, uno para cada uno de los manuales y otro para el pedal. Los pentagramas de los manuales se abarcan con una llave, así que los incluiremos en un grupo PianoStaff. La primera parte de manual tiene dos voces, y la segunda sólo una.
\new PianoStaff << \new Staff = "ManualUno" << \new Voice { \MusicaManualUnoVozUno } \new Voice { \MusicaManualUnoVozDos } >> % fin del contexto de Staff ManualUno \new Staff = "ManualDos" << \new Voice { \MusicaManualDos } >> % fin del contexto de Staff ManualDos >> % fin del contexto de PianoStaff
Después, tenemos que añadir un pentagrama para el órgano de pedal. Esto va por debajo del PianoStaff, pero debe ser simultáneo con él, por lo que escribimos dobles ángulos rodeando a los dos. Si esto se nos olvida, se producirá un error en el archivo log de registro. ¡Es un error muy común que cometerá antes o después! Intente copiar el ejemplo final que aparece al final de la sección, borre los dobles ángulos y procese el archivo para ver qué error produce.
<< % el grupo PianoStaff y el pentagrama de Pedal son simultáneos \new PianoStaff << \new Staff = "ManualUno" << \new Voice { \MusicaManualUnoVozUno } \new Voice { \MusicaManualUnoVozDos } >> % fin del contexto de Staff ManualUno \new Staff = "ManualDos" << \new Voice { \MusicaManualDos } >> % fin del contexto de Staff ManualDos >> % fin del contexto de PianoStaff \new Staff = "OrganoPedal" << \new Voice { \MusicaOrganoPedal } >> >>
No es necesario utilizar la construcción simultánea <<
… >>
para el pentagrama del manual dos y el pentagrama del
órgano de pedal, ya que contienen una única expresión, pero no
hace daño, y es una buena costumbre utilizar siempre dobles
ángulos después de \new Staff
cuando hay varias voces. Lo
opuesto es cierto para las voces: normalmente deben ir seguidas
de llaves { … }
en caso de que tengamos música
codificada como distintas variables que se deben situar
consecutivamente.
Añadamos esta estructura al bloque de partitura, y ajustemos el
sangrado de los márgenes. También escribimos las claves
correspondientes, nos aseguramos de que las plicas y ligaduras de
unión y de expresión en cada una de las voces del pentagrama
superior apuntan en la dirección adecuada con \voiceOne
y
\voiceTwo
y escribimos el compás y la tonalidad en cada
uno de los pentagramas usando nuestra variable previamente
definida \TimeKey
.
\score { << % el grupo PianoStaff y el pentagrama de Pedal son simultáneos \new PianoStaff << \new Staff = "ManualUno" << \keyTime % establecer compás y tonalidad \clef "treble" \new Voice { \voiceOne \MusicaManualUnoVozUno } \new Voice { \voiceTwo \MusicaManualUnoVozDos } >> % fin del contexto de Staff ManualUno \new Staff = "ManualDos" << \keyTime \clef "bass" \new Voice { \MusicaManualDos } >> % fin del contexto de Staff ManualDos >> % fin del contexto de PianoStaff \new Staff = "OrganoPedal" << \keyTime \clef "bass" \new Voice { \MusicaOrganoPedal } >> % fin del pentagrama de OrganoPedal >> } % fin del contexto Score
La disposición anterior de los pentagramas de órgano es casi
perfecta; sin embargo, existe un ligero defecto que no es visible
cuando se observa un solo sistema: la distancia entre el
pentagrama de pedal y el de la mano izquierda debiera ser
aproximadamente la misma que la que existe entre los pentagramas
de las manos izquierda y derecha. Concretamente, la
ampliabilidad de los pentagramas dentro de un contexto
PianoStaff
es limitada (de forma que la distancia entre
los pentagramas de las manos izquierda y derecha nunca crezcan
excesivamente), y el pentagrama de los pedales debería
comportarse de una forma similar.
El grado de ampliabilidad o separabilidad de los pentagramas se
puede controlar con la propiedad staff-staff-spacing
del
‘objeto gráfico’ VerticalAxisGroup
(los objetos gráficos
reciben por lo general el nombre de ‘grob’s en la documentación
de lilypond); no se preocupe por el momento de los detalles, pues
esto se explica más tarde de forma exhaustiva. Los más curiosos
pueden echar un vistazo a Panorámica de la modificación de
las propiedades. En este caso, queremos modificar solamente la
sub-propiedad stretchability
. Cualquier valor que no se
modifique, empleará el valor predeterminado. De nuevo, los
curiosos encontrarán los valores predeterminados para la propiedad
staff-staff-spacing
en el archivo
scm/define-grobs.scm examinando la definición de la
propiedad default-staff-staff-spacing
del grob
VerticalAxisGroup
. El valor de stretchability
que
se ve a continucación se toma de la definición del grob
StaffGrouper
(en el archivo scm/define-grobs.scm) de
forma que los valores sean idénticos.
\score { << % el grupo PianoStaff y el pentagrama de Pedal son simultáneos \new PianoStaff << \new Staff = "ManualUno" << \keyTime % establecer compás y tonalidad \clef "treble" \new Voice { \voiceOne \MusicaManualUnoVozUno } \new Voice { \voiceTwo \MusicaManualUnoVozDos } >> % % fin del contexto de Staff ManualUno \new Staff = "ManualDos" \with { \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5 } << \keyTime \clef "bass" \new Voice { \MusicaManualDos } >> % fin del contexto de Staff ManualDos >> % fin del contexto de PianoStaff \new Staff = "OrganoPedal" << \keyTime \clef "bass" \new Voice { \MusicaOrganoPedal } >> % fin del pentagrama de OrganoPedal >> } % fin del contexto Score
Con esto se completa la estructura. Toda música para órgano de tres pentagramas tendrá una estructura similar, aunque el número de voces puede variar. Todo lo que nos queda es añadir la música, y combinar todas las partes.
\header { title = "Jesu, meine Freude" composer = "J S Bach" } keyTime = { \key c \minor \time 4/4 } ManualOneVoiceOneMusic = \relative { g'4 g f ees | d2 c | } ManualOneVoiceTwoMusic = \relative { ees'16 d ees8~ 16 f ees d c8 d~ d c~ | 8 c4 b8 c8. g16 c b c d | } ManualTwoMusic = \relative { c'16 b c8~ 16 b c g a8 g~ 16 g aes ees | f16 ees f d g aes g f ees d ees8~ 16 f ees d | } PedalOrganMusic = \relative { r8 c16 d ees d ees8~ 16 a, b g c b c8 | r16 g ees f g f g8 c,2 | } \score { << % PianoStaff and Pedal Staff must be simultaneous \new PianoStaff << \new Staff = "ManualOne" << \keyTime % set key and time signature \clef "treble" \new Voice { \voiceOne \ManualOneVoiceOneMusic } \new Voice { \voiceTwo \ManualOneVoiceTwoMusic } >> % end ManualOne Staff context \new Staff = "ManualTwo" \with { \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5 } << \keyTime \clef "bass" \new Voice { \ManualTwoMusic } >> % end ManualTwo Staff context >> % end PianoStaff context \new Staff = "PedalOrgan" << \keyTime \clef "bass" \new Voice { \PedalOrganMusic } >> % end PedalOrgan Staff context >> } % end Score context
Véase también
Glosario musical: system.