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

[image of music]

Véase también

Glosario musical: system.


Manual de aprendizaje de GNU LilyPond v2.25.22 (development-branch).