4.4.3 Crear una partitura partint de zero

Després d’adquirir una mica de soltesa en l’escriptura del codi del LilyPond, us adonareu que és més fàcil construir completament una partitura partint de zero, que modificar una plantilla. També podeu desenvolupar el vostre propi estil de forma que s’adapti al tipus de música que us agradi. Vegem a continuació com confeccionar una partitura per a un preludi d’òrgan, com a exemple.

Comencem amb una secció per al encapçalament. Aquí és on van el títol, nom del compositor, etc., després van les definicions de les variables, i finalment el bloc de partitura. Comencem a veure-les per sobre i més tard completarem els detalls.

Utilitzarem els dos primers compassos del preludi de Bach basat en Jesu, meine Freude, que està escrit per a òrgan amb dos manuals i pedal. Conté els dos compassos següents de música al final de la secció. La part del manual superior té dues veus, i l’inferior i el pedal, una veu cada u. Així doncs, necessitem quatre definicions per a la música i una més per definir el compàs i la tonalitat:

\version "2.25.22"
\header {
  title = "Jesu, meine Freude"
  composer = "J S Bach"
}
keyTime = { \key c \minor \time 4/4 }
MusicaManualUVeuU = { s1 }
MusicaManualUVeuDos = { s1 }
MusicaManualDos = { s1 }
MusicaOrganPedal = { s1 }

\score {
}

De moment hem escrit tan sols una nota espaiadora, s1, en lloc de la música de veritat. Li afegirem més endavant.

A continuació vegem què va al bloc de partitura. Senzillament, reflectirem l’estructura de pentagrames que desitgem. La música d’òrgan s’escriu s’escriu en general en tres pentagrames, un per cada un dels manuals i l’altre pel pedal. Els pentagrames dels manuals s’abasten amb una clau, així que els inclourem en un grup PianoStaff. La primera part de manual té dues veus, i la segona una sola.

\new PianoStaff <<
  \new Staff = "ManualU" <<
    \new Voice {
      \MusicaManualUVeuU
    }
    \new Voice {
      \MusicaManualUVeuDos
    }
  >>  % fi del context de Staff ManualU
  \new Staff = "ManualDos" <<
    \new Voice {
      \MusicaManualDos
    }
  >>  % fi del context de Staff ManualDos
>>  % fi del context de PianoStaff

Després, hem d’afegir un pentagrama per a l’òrgan de pedal. Això va per sota del PianoStaff, però ha de ser simultani amb ell, per la qual cosa escrivim angles dobles rodejant als dos. Si ens oblidem d’això, es produirà un error al fitxer log de registre. És un error molt comú que cometrà abans o després! Intenteu copiar l’exemple final que apareix al final de la secció, esborreu els dobles angles i processeu el fitxer per veure quin error produeix.

<<  % el grup PianoStaff i el pentagrama de Pedal son simultanis
  \new PianoStaff <<
    \new Staff = "ManualU" <<
      \new Voice {
        \MusicaManualUVeuU
      }
      \new Voice {
        \MusicaManualUVeuDos
      }
    >>  % fi del context de Staff ManualU
    \new Staff = "ManualDos" <<
      \new Voice {
        \MusicaManualDos
      }
    >>  % fi del context de Staff ManualDos
  >>  % fi del context de PianoStaff
  \new Staff = "OrganPedal" <<
    \new Voice {
      \MusicaOrganPedal
    }
  >>
>>

No és necessari utilitzar la construcció simultània << … >> per al pentagrama del manual dos i el pentagrama del òrgan de pedal, atès que contenen una única expressió, però no fa mal, i és un bon costum utilitzar sempre dobles angles després de \new Staff quan hi diverses veus. El contrari és cert per a les veus: normalment han d’anar seguides de claus { … } en cas que tinguem música codificada com a variables diferents que s’han de situar consecutivament.

Afegim aquesta estructura al bloc de partitura, i ajustem el sagnat dels marges. També escrivim les claus corresponents, ens assegurem que les pliques i lligadures d’unió i expressió en cada una de les veus del pentagrama superior apunten en la direcció adequada amb \voiceOne i \voiceTwo i escrivim el compàs i la tonalitat en cadascú dels pentagrames usant la nostra variable prèviament definida \TimeKey.

\score {
  <<  % el grup PianoStaff i el pentagrama de Pedal són simultanis
    \new PianoStaff <<
      \new Staff = "ManualU" <<
        \keyTime  % establir compàs i tonalitat
        \clef "treble"
        \new Voice {
          \voiceOne
          \MusicaManualUVeuU
        }
        \new Voice {
          \voiceTwo
          \MusicaManualUVeuDos
        }
      >>  % fi del context de Staff ManualU
      \new Staff = "ManualDos" <<
        \keyTime
        \clef "bass"
        \new Voice {
          \MusicaManualDos
        }
      >>  % fi del context de Staff ManualDos
    >>  % fi del context de PianoStaff
    \new Staff = "OrganPedal" <<
     \keyTime
      \clef "bass"
      \new Voice {
        \MusicaOrganPedal
      }
    >>  % fi del pentagrama de OrganPedal
  >>
}  % fi del context Score

La disposició anterior dels pentagrames d’òrgan és gairebé perfecta; tanmateix, hi ha un lleuger defecte que no és visible quan s’observa un sol sistema: la distància entre el pentagrama de pedal i el de la mà esquerra hauria de ser aproximadament la mateixa que la que hi ha entre els pentagrames de les mans esquerra i dreta. Concretament, la ampliabilitat dels pentagrames dins d’un context PianoStaff és limitada (de forme que la distància entre els pentagrames de les mans esquerra i dreta mai no creixin excessivament), i el pentagrama dels pedals hauria de comportar-se de una manera semblant.

El grau d’ampliabilitat i separabilitat dels pentagrames es pot controlar amb la propietat staff-staff-spacing de l’‘objecte gràfic’ VerticalAxisGroup (els objectes gràfics reben en general el nom de ‘grob’s a la documentació del LilyPond); no us preocupeu de moment dels detalls, ja que això s’explica més tard de forma exhaustiva. Els més curiosos podeu donar una ullada a Panoràmica de la modificació de les propietats. En aquest cas volem modificar solament la sub-propietat stretchability. Un altre cop, els curiosos trobareu els valors predeterminats per a la propietat staff-staff-spacing al fitxer scm/define-grobs.scm examinant la definició del grob VerticalAxisGroup. El valor de stretchability s’agafa de la definició del context PianoStaff (al fitxer ly/engraver-init.ly) de forma que els valors siguin idèntics.

\score {
  <<  % el grup PianoStaff i el pentagrama de Pedal son simultanis
    \new PianoStaff <<
      \new Staff = "ManualU" <<
        \keyTime  % establir compàs y tonalitat
        \clef "treble"
        \new Voice {
          \voiceOne
          \MusicaManualUVeuU
        }
        \new Voice {
          \voiceTwo
          \MusicaManualUVeuDos
        }
      >>  % % fi del context de Staff ManualU
      \new Staff = "ManualDos" \with {
        \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
      } <<
        \keyTime
        \clef "bass"
        \new Voice {
          \MusicaManualDos
        }
      >>  % fi del context de Staff ManualDos
    >>  % fi del context de PianoStaff
    \new Staff = "OrganPedal" <<
      \keyTime
      \clef "bass"
      \new Voice {
        \MusicaOrganPedal
      }
    >>  % fi del pentagrama de OrganPedal
  >>
}  % fi del context Score

Amb això es completa l’estructura. Tota música per a òrgan de tres pentagrames tindrà una estructura semblant, tot i que el nombre de veus pot variar. Tot el que ens queda és afegir la música, i combinar totes les parts.

\header {
  title = "Jesu, meine Freude"
  composer = "J S Bach"
}
keyTime = { \key c \minor \time 4/4 }
MusicaManualUVeuU = \relative {
  g'4 g f ees |
  d2 c |
}
MusicaManualUVeuDos = \relative {
  ees'16 d ees8~ 16 f ees d c8 d~ d c~ |
  8 c4 b8 c8. g16 c b c d |
}
MusicaManualDos= \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 |
}
MusicaOrganPedal = \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 i Pedal Staff han de ser simultanis
    \new PianoStaff <<
      \new Staff = "ManualU" <<
        \keyTime  % establir la clau i l'armadura
        \clef "treble"
        \new Voice {
          \voiceOne
          \MusicaManualUVeuU
        }
        \new Voice {
          \voiceTwo
          \MusicaManualUVeuDos
        }
      >>  % fi del context Staff ManualU
      \new Staff = "ManualDos" \with {
        \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
      } <<
        \keyTime
        \clef "bass"
        \new Voice {
          \MusicaManualDos
        }
      >>  % fi del context Staff ManualDos
    >>  % fi del context PianoStaff
    \new Staff = "PedalOrgan" <<
      \keyTime
      \clef "bass"
      \new Voice {
        \MusicaOrganPedal
      }
    >>  % fi del context Staff PedalOrgan
  >>
}  % fi del context Score

[image of music]

Vegeu també

Glossari musical: system.


Manual d’aprenentatge del GNU LilyPond v2.25.22 (development-branch).