Referencia de la notación de GNU LilyPond: 5.1.3 Mantener vivos los contextos

### 5.1.3 Mantener vivos los contextos

Normalmente los contextos finalizan en el primer momento musical en que no tienen nada que hacer. Así, los contextos de `Voice` mueren tan pronto como ya no contienen ningún evento; los contextos de `Staff` mueren tan pronto como todos los contextos de `Voice` que contenían ya no contengan ningún evento; etc. Esto puede ocasionar dificultades si se tiene que hacer referencia a contextos anteriores que ya han muerto, por ejemplo, al cambiar de pentagramas con instrucciones `\change`, asociar letra con una voz mediante instrucciones `\lyricsto`, o cuando se añaden eventos musicales adicionales a un contexto anterior.

Existe una excepción a esta regla general: precisamente uno de los contextos de `Voice` que están dentro de un contexto de `Staff` o de una construcción `<<...>>` persiste siempre hasta el final de, contexto de `Staff` circundante o la construcción `<<...>>`, incluso aunque puede haber períodos en que no tiene nada que hacer. El contexto que persiste de esta forma será el primero que se encuentre en la primera construcción encerrada entre llaves `{...}`, ignorando cualquiera que se encuentre dentro de construcciones encerradas por ángulos dobles `<<...>>`.

Cualquier contexto se puede mantener vivo si nos aseguramos de que tiene algo que hacer en cualquier momento musical dado. Los contextos de `Staff` se mantienen con vida si nos aseguramos de que una de sus voces se mantiene viva. Una manera de hacerlo es añadir silencios de separación a una voz en paralelo con la música real. Éstos deben añadirse a todos y cada uno de los contextos de `Voice` que se hayan de mantener vivos. Si se van a usar esporádicamente varias voces, es más seguro mantenerlas todas vivas en lugar de tratar de confiar en las excepciones que hemos mencionado arriba.

En el ejemplo siguiente, tanto la voz A como la voz B se mantienen vivas de esta manera durante la duración de la pieza:

>     musicA = \relative c'' { d4 d d d }
>     musicB = \relative c'' { g4 g g g }
>     keepVoicesAlive = {
>       <<
>         \new Voice = "A" { s1*5 }  % Keep Voice "A" alive for 5 bars
>         \new Voice = "B" { s1*5 }  % Keep Voice "B" alive for 5 bars
>       >>
>     }

>     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
>       >>
>     }

El ejemplo siguiente muestra cómo se puede escribir una línea melódica esporádica con letra utilizando este enfoque. Por supuesto, en una situación real la melodía y el acompañamiento consistirían en varias secciones diferentes.

>     melody = \relative c'' { a4 a a a }
>     accompaniment = \relative c' { d4 d d d }
>     words = \lyricmode { These words fol -- low the mel -- o -- dy }
>     \score {
>       <<
>         \new Staff = "music" {
>           <<
>             \new Voice = "melody" {
>               \voiceOne
>               s1*4  % Keep Voice "melody" alive for 4 bars
>             }
>             {
>               \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 }
>       >>
>     }

Una forma alternativa, que podría resultar mejor en muchas situaciones, es mantener con vida la línea melódica simplemente incluyendo notas espaciadoras para alinearla correctamente con el acompañamiento:

>     melody = \relative c'' {
>       s1  % skip a bar
>       a4 a a a
>       s1  % skip a bar
>       a4 a a a
>     }
>     accompaniment = \relative c' {
>       d4 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 }
>       >>
>     }

Otros idiomas: English, deutsch, 日本語.

#### LilyPond — Referencia de la notación