5.1.3 Manteniment amb vida dels contextos

Normalment els contextos finalitzen en el primer moment musical en el qual no tenen res a fer. Així, els contextos de Voice moren tan aviat com ja no contenen cap esdeveniment, els contextos Staff moren tan aviat com tots els contextos de Voice que contenien ja no continguin cap esdeveniment, etc. Això pot ocasionar dificultats si s’ha de fer referència a contextos anteriors que ja han mort, per exemple, en canviar de pentagrames amb ordres \change, associar lletra amb una veu mitjançant ordres \lyricsto, o quan s’afegeixen esdeveniments musicals addicionals a un context anterior.

Hi ha una excepció a aquesta regla general: dins d’una construcció {…} (música seqüencial), la noció que la construcció té del “contexto actual” descendirà un nivell cada cop que un element de la seqüència finalitza en un subcontext del context anterior. Això evita la creació espúria de contextos implícits en certes situacions, però significa que el primer context dins del que es descendeix, es mantindrà viu fins al final de l’expressió.

Com a contrast, els contextos d’una expressió feta amb la construcció <<…>> (música simultània) no es perllonguen, per la qual cosa si una ordre que crea un context s’envolta en una altre parell de <<…>>, s’impedirà que el context persisteixi durant tota la duració de la seqüència {…} que el conté.

Qualsevol context es pot mantenir viu si ens assegurem que té quelcom a fer en qualsevol moment musical donat. Els contextos de Staff es mantenen amb vida si en assegurem que una de les seves veus es manté viva. Una manera de fer-lo és afegir silencis de separació a una veu en paral·lel amb la música real. Aquests silencis s’han d’afegir a tots i cada un dels contextos de Voice que usaran esporàdicament diverses veus, és més segur mantenir-les totes vies enlloc d’intentar confiar en les excepcions que hem mencionat a dalt.

A l’exemple següent, tant la veu A com la veu B es mantenen vives d’aquesta manera durant la duració de la peça:

musicA = \relative { d''4 d d d }
musicB = \relative { g'4 g g g }
keepVoicesAlive = {
  <<
    \new Voice = "A" { s1*5 }  % Manté la veu «A» viva per 5 compassos
    \new Voice = "B" { s1*5 }  % Manté la veu «B» viva per 5 compassos
  >>
}

music = {
  \context Voice = "A" {
    \voiceOneStyle
    \musicA
  }
  \context Voice = "B" {
    \voiceTwoStyle
    \musicB
  }
  \context Voice = "A" { \musicA }
  \context Voice = "B" { \musicB }
  \context Voice = "A" { \musicA }
}

\score {
  \new Staff <<
    \keepVoicesAlive
    \music
  >>
}

[image of music]

L’exemple següent mostra com es pot escriure una línia melòdica esporàdica amb lletra utilitzant aquest enfocament. Per suposat, en una situació real la melodia i l’acompanyament consistirien en diverses seccions diferents.

melody = \relative { a'4 a a a }
accompaniment = \relative { d'4 d d d }
words = \lyricmode { These words fol -- low the mel -- o -- dy }
\score {
  <<
    \new Staff = "music" {
      <<
        \new Voice = "melody" {
          \voiceOne
          s1*4  % Manté la veu «melody» viva per 4 compassos
        }
        {
          \new Voice = "accompaniment" {
            \voiceTwo
            \accompaniment
          }
          <<
            \context Voice = "melody" { \melody }
            \context Voice = "accompaniment" { \accompaniment }
          >>
          \context Voice = "accompaniment" { \accompaniment }
          <<
            \context Voice = "melody" { \melody }
            \context Voice = "accompaniment" { \accompaniment }
          >>
        }
      >>
    }
    \new Lyrics \with { alignAboveContext = "music" }
    \lyricsto "melody" { \words }
  >>
}

[image of music]

Una forma alternativa, que podria resultar millor en moltes situacions, es mantenir amb vida la línia melòdica simplement incloent notes espaiadores per alinear-la correctament amb l’acompanyament:

melody = \relative {
  s1  % skip a bar
  a'4 a a a
  s1  % skip a bar
  a4 a a a
}
accompaniment = \relative {
  d'4 d d d
  d4 d d d
  d4 d d d
  d4 d d d
}
words = \lyricmode { These words fol -- low the mel -- o -- dy }

\score {
  <<
    \new Staff = "music" {
      <<
        \new Voice = "melody" {
          \voiceOne
          \melody
        }
        \new Voice = "accompaniment" {
          \voiceTwo
          \accompaniment
        }
      >>
    }
    \new Lyrics \with { alignAboveContext = "music" }
    \lyricsto "melody" { \words }
  >>
}

[image of music]


Referència de la notació del GNU LilyPond v2.25.22 (development-branch).