Guida alla Notazione di LilyPond: 5.1.3 Conservazione di un contesto

### 5.1.3 Conservazione di un contesto

I contesti vengono solitamente terminati nel primo momento musicale in cui non hanno niente da fare. Quindi i contesti `Voice` muoiono appena non contengono eventi; i contesti `Staff` muoiono appena tutti i contesti `Voice` al loro interno non contengono eventi; etc. Ciò può causare difficoltà se contesti precedenti, che sono stati terminati, devono essere richiamati; per esempio, quando si cambia il rigo col comando `\change`, quando si associa il testo a una voce col comando `\lyricsto` o quando si aggiungono ulteriori eventi musicali a un contesto precedente.

C’è un’eccezione a questa regola generale: all’interno di un costrutto `{…}` (musica sequenziale), la nozione di «contesto corrente» scenderà di livello ogni volta che un elemento della sequenza termina in un sottocontesto del precedente contesto corrente. Ciò evita la falsa creazione di contesti impliciti in varie situazioni, ma significa che il primo contesto in cui si scende verrà conservato fino alla fine dell’espressione.

Al contrario, i contesti di un construtto `<<…>>` (musica simultanea) non sono portati avanti, dunque racchiudendo un comando di creazione di contesto in un’ulteriore coppia di `<<…>>` impedirà che il contesto persista in tutta la sequenza `{…}`.

Un contesto può essere tenuto attivo assicurandosi che abbia qualcosa da fare in ogni momento musicale. I contesti `Staff` sono tenuti attivi assicurandosi che una delle loro voci sia conservata. Un modo per farlo consiste nell’aggiungere pause spaziatrici a una voce in parallelo con la musica vera. Queste devono essere aggiunte a ogni contesto `Voice` da tenere attivo. Se si usano sporadicamente varie voci, è più sicuro tenerle attive invece di tentare di affidarsi alle eccezioni menzionate sopra.

Nell’esempio seguente, sia la voce A che la voce B sono mantenute attive in questo modo per la durata del brano:

>     musicA = \relative { d''4 d d d }
>     musicB = \relative { g'4 g g g }
>     keepVoicesAlive = {
>       <<
>         \new Voice = "A" { s1*5 }  % Tiene la voce "A" attiva per 5 battute
>         \new Voice = "B" { s1*5 }  % Tiene la voce "B" attiva per 5 battute
>       >>
>     }

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

L’esempio seguente mostra come scrivere una linea melodica sporadica con testo vocale usando questo approccio. Ovviamente, in una situazione reale la melodia e l’accompagnamento consisterebbero di varie e diverse sezioni.

>     melodia = \relative { a'4 a a a }
>     accompagnamento = \relative { d'4 d d d }
>     parole = \lyricmode { Queste parole seguo -- no la mel -- o -- dia }
>     \score {
>       <<
>         \new Staff = "musica" {
>           <<
>             \new Voice = "melodia" {
>               \voiceOne
>               s1*4  % Tiene la voce "melodia" attiva per 4 battute
>             }
>             {
>               \new Voice = "accompagnamento" {
>                 \voiceTwo
>                 \accompagnamento
>               }
>               <<
>                 \context Voice = "melodia" { \melodia }
>                 \context Voice = "accompagnamento" { \accompagnamento }
>               >>
>               \context Voice = "accompagnamento" { \accompagnamento }
>               <<
>                 \context Voice = "melodia" { \melodia }
>                 \context Voice = "accompagnamento" { \accompagnamento }
>               >>
>             }
>           >>
>         }
>         \new Lyrics \with { alignAboveContext = "musica" }
>         \lyricsto "melodia" { \parole }
>       >>
>     }

Un modo alternativo, migliore in molte circostanze, è quello di mantenere la linea melodica attiva semplicemente includendo le note spaziatrici in modo che si allineino correttamente con l’accompagnamento:

>     melodia = \relative {
>       s1  % salta una battuta
>       a'4 a a a
>       s1  % salta una battuta
>       a4 a a a
>     }
>     accompagnamento = \relative {
>       d'4 d d d
>       d4 d d d
>       d4 d d d
>       d4 d d d
>     }
>     parole = \lyricmode { Queste parole seguo -- no la mel -- o -- dia }

>     \score {
>       <<
>         \new Staff = "musica" {
>           <<
>             \new Voice = "melodia" {
>               \voiceOne
>               \melodia
>             }
>             \new Voice = "accompagnamento" {
>               \voiceTwo
>               \accompagnamento
>             }
>           >>
>         }
>         \new Lyrics \with { alignAboveContext = "musica" }
>         \lyricsto "melodia" { \parole }
>       >>
>     }

#### LilyPond — Guida alla Notazione v2.24.4 (ramo stabile).