Guida alla Notazione di LilyPond: 1.6.2 Modificare singoli righi

### 1.6.2 Modificare singoli righi

Questa sezione spiega come modificare gli attributi specifici di un rigo, per esempio il numero di linee o la dimensione del rigo. Vengono descritti anche i metodi per iniziare e finire un rigo e per impostare le sezioni ossia.

#### Simbolo del rigo

I comandi `\stopStaff` e `\startStaff` servono a fermare o (ri)avviare le linee del rigo, per impedire che appaiano in un punto della partitura.

>     \relative {
>       \stopStaff f''4 d \startStaff g, e
>       f'4 d \stopStaff g, e
>       f'4 d \startStaff g, e
>     }

#### Comandi predefiniti

`\startStaff`, `\stopStaff`.

Le linee di un rigo appartengono all’oggetto `StaffSymbol` (che comprende i tagli addizionali) e si possono modificare tramite le proprietà di `StaffSymbol`; però queste modifiche devono essere fatte prima che il rigo sia (ri)avviato.

Si può cambiare il numero di linee del rigo:

>     \relative {
>       f''4 d \stopStaff
>       \override Staff.StaffSymbol.line-count = #2
>       \startStaff g, e |

>       f'4 d \stopStaff
>       \revert Staff.StaffSymbol.line-count
>       \startStaff g, e |
>     }

Si può cambiare anche la posizione di ogni linea del rigo. Un elenco di numeri definisce la posizione di ogni linea. I valori consueti sono `0` per la linea centrale e `(-4 -2 0 2 4)` per le altre. La linea del rigo appare solo se è presente il suo valore, quindi questo comando permette di variare anche il numero delle linee, oltre alla loro posizione.

>     \relative {
>       f''4 d \stopStaff
>       \override Staff.StaffSymbol.line-positions = #'(1 3 5 -1 -3)
>       \startStaff g, e |
>       f'4 d \stopStaff
>       \override Staff.StaffSymbol.line-positions = #'(8 6.5 -6 -8 -0.5)
>       \startStaff g, e |
>     }

Per conservare le tipiche direzioni dei gambi (nella metà inferiore del rigo i gambi puntano in su, mentre in quella superiore sono rivolti in giù), occorre allineare la linea centrale (o lo spazio) del rigo personalizzato alla posizione della linea centrale normale (0). Potrà essere necessario regolare la posizione della chiave e del Do centrale per adattarsi alle nuove linee. Si veda Chiave.

Si può modificare lo spessore della linea del rigo. Per impostazione predefinita, questa modifica ha effetto anche sui tagli addizionali e sui gambi.

>     \new Staff \with {
>       \override StaffSymbol.thickness = #3
>     } \relative {
>       f''4 d g, e
>     }

È anche possibile impostare lo spessore dei tagli addizionali in modo indipendente dalle linee del rigo.

>     \new Staff \with {
>       \override StaffSymbol.thickness = #2
>       \override StaffSymbol.ledger-line-thickness = #'(0.5 . 0.4)
>     } \relative {
>       f'''4 a, a,, f
>     }

Il primo valore viene moltiplicato per lo spessore della linea del rigo, il secondo per la spaziatura del rigo; la somma dei due valori definisce il nuovo valore dello spessore del taglio addizionale.

Si possono modificare le posizioni verticali dei tagli addizionali:

>     \new Staff \with {
>       \override StaffSymbol.ledger-positions = #'(-3 -2 -1 2 5 6)
>     } \relative {
>       f'''4 a, a,, f
>     }

Si possono far apparire ulteriori tagli addizionali sopra o sotto le teste delle note, a seconda della posizione corrente relativa alle altre teste, anch’esse con i propri tagli addizionali.

>     \new Staff \with {
>       \override StaffSymbol.ledger-extra = #4
>     } \relative {
>       f'''4 a, d, f,
>     }

Si possono far apparire i tagli addizionali anche dentro il rigo quando servono delle linee personalizzate. L’esempio mostra la posizione predefinita dei tagli addizionali quando la proprietà `ledger-position` è impostata e quando non lo è. Nell’esempio il comando `\stopStaff` serve ad annullare il comando `\override` per l’oggetto `StaffSymbol`.

>     \relative d' {
>       \override Staff.StaffSymbol.line-positions = #'(-8 0 2 4)
>       d4 e f g
>       \stopStaff
>       \startStaff
>       \override Staff.StaffSymbol.ledger-positions = #'(-8 -6 (-4 -2) 0)
>       d4 e f g
>     }

Si può cambiare la distanza tra le linee del rigo. Tale modifica ha effetto anche sulla spaziatura della linea.

>     \new Staff \with {
>       \override StaffSymbol.staff-space = #1.5
>     } \relative {
>       f'''4 d, g, e,
>     }

#### Frammenti di codice selezionati

Rendere alcune linee del rigo più spesse delle altre

In ambito didattico può essere utile rendere più spesso una linea del rigo (per esempio, la linea centrale, o per sottolineare la linea della chiave di Sol). Per farlo si possono aggiungere altre linee e posizionarle molto vicino alla linea che deve essere evidenziata, usando la proprietà `line-positions` dell’oggetto `StaffSymbol`.

>     {
>       \override Staff.StaffSymbol.line-positions =
>         #'(-4 -2 -0.2 0 0.2 2 4)
>       d'4 e' f' g'
>     }

#### Vedi anche

Glossario musicale: linea, taglio addizionale, rigo (o pentagramma).

Guida alla notazione: Chiave.

Frammenti: Staff notation.

Guida al funzionamento interno: StaffSymbol, staff-symbol-interface.

#### Righi ossia

I righi ossia si possono creare aggiungendo un nuovo rigo simultaneo nel punto giusto:

>     \new Staff \relative {
>       c''4 b d c
>       <<
>         { c4 b d c }
>         \new Staff { e4 d f e }
>       >>
>       c4 b c2
>     }

Tuttavia, questo esempio non produce quel che normalmente si desidera. Per creare righi ossia che siano sopra il rigo originale, non abbiano indicazione di tempo né chiave e abbiano un tipo di carattere più piccolo, sono necessarie delle modifiche manuali. Il Manuale d’apprendimento descrive una tecnica specifica per ottenere questo risultato, a partire da Annidare le espressioni musicali.

L’esempio seguente usa la proprietà `alignAboveContext` per allineare il rigo ossia. Questo metodo conviene quando sono necessari solo pochi righi ossia.

>     \new Staff = "main" \relative {
>       c''4 b d c
>       <<
>         { c4 b d c }

>         \new Staff \with {
>           \remove "Time_signature_engraver"
>           alignAboveContext = "main"
>           \magnifyStaff #2/3
>           firstClef = ##f
>         }
>         { e4 d f e }
>       >>
>       c4 b c2
>     }

Se si hanno molti righi ossia isolati, è meglio creare un contesto `Staff` vuoto con un identificativo del contesto specifico; i righi ossia possono essere creati chiamando questo contesto e usando `\startStaff` e `\stopStaff` nei punti richiesti. I vantaggi di questo metodo sono più evidenti se il brano è più lungo del seguente esempio.

>     <<
>       \new Staff = "ossia" \with {
>         \remove "Time_signature_engraver"
>         \hide Clef
>         \magnifyStaff #2/3
>       }
>       { \stopStaff s1*6 }

>       \new Staff \relative {
>         c'4 b c2
>         <<
>           { e4 f e2 }
>           \context Staff = "ossia" {
>             \startStaff e4 g8 f e2 \stopStaff
>           }
>         >>
>         g4 a g2 \break
>         c4 b c2
>         <<
>           { g4 a g2 }
>           \context Staff = "ossia" {
>             \startStaff g4 e8 f g2 \stopStaff
>           }
>         >>
>         e4 d c2
>       }
>     >>

Altrimenti si può usare il comando `\RemoveAllEmptyStaves` per creare i righi ossia. Questo metodo conviene quando i righi ossia si trovano subito dopo un’interruzione di linea. Ulteriori informazioni su `\RemoveAllEmptyStaves` si trovano in Nascondere i righi.

>     <<
>       \new Staff = "ossia" \with {
>         \remove "Time_signature_engraver"
>         \hide Clef
>         \magnifyStaff #2/3
>         \RemoveAllEmptyStaves
>       } \relative {
>         R1*3
>         c''4 e8 d c2
>       }
>       \new Staff \relative {
>         c'4 b c2
>         e4 f e2
>         g4 a g2 \break
>         c4 b c2
>         g4 a g2
>         e4 d c2
>       }
>     >>

#### Frammenti di codice selezionati

Allineare verticalmente gli ossia e il testo vocale

Questo frammento mostra come usare le proprietà di contesto `alignBelowContext` e `alignAboveContext` per controllare il posizionamento del testo vocale e degli ossia.

>     \paper {
>       ragged-right = ##t
>     }

>     \relative c' <<
>       \new Staff = "1" { c4 c s2 }
>       \new Staff = "2" { c4 c s2 }
>       \new Staff = "3" { c4 c s2 }
>       { \skip 2
>         <<
>           \lyrics {
>             \set alignBelowContext = #"1"
>             lyrics4 below
>           }
>           \new Staff \with {
>             alignAboveContext = #"3"
>             fontSize = #-2
>             \override StaffSymbol.staff-space = #(magstep -2)
>             \remove "Time_signature_engraver"
>           } {
>             \tuplet 6/4 {
>               \override TextScript.padding = #3
>               c8[^"ossia above" d e d e f]
>             }
>           }
>         >>
>       }
>     >>

#### Vedi anche

Glossario musicale: ossia, rigo (pentagramma), rigo temporaneo.

Manuale d’apprendimento: Annidare le espressioni musicali, Dimensione degli oggetti, Lunghezza e spessore degli oggetti.

Guida alla notazione: Nascondere i righi.

Frammenti: Staff notation.

Guida al funzionamento interno: StaffSymbol.

#### Nascondere i righi

Le linee del rigo si possono nascondere togliendo l’incisore `Staff_symbol_engraver` dal contesto `Staff`. Altrimenti si può usare `\stopStaff`.

>     \new Staff \with {
>       \remove "Staff_symbol_engraver"
>     }
>     \relative { a''8 f e16 d c b a2 }

I righi vuoti si possono nascondere (per la cosiddetta ‘partitura alla francese’) applicando il comando `\RemoveEmptyStaves` a un contesto, che può essere fatto globalmente (in un blocco `\layout`) oppure soltanto per righi specifici (in un blocco `\with`). Questo comando toglie tutti i righi vuoti di una partitura eccetto quelli nel primo sistema. Per nascondere anche quelli del primo sistema usare il comando `\RemoveAllEmptyStaves`. I contesti supportati sono `Staff`, `RhythmicStaff` e `VaticanaStaff`.

Nota: Un rigo viene considerato vuoto quando contiene soltanto pause multiple, pause, salti, pause spaziatrici o una combinazione di questi elementi.

>     \layout {
>       \context {
>         \Staff \RemoveEmptyStaves
>       }
>     }

>     \relative <<
>       \new Staff {
>         e'4 f g a \break
>         b1 \break
>         a4 b c2
>       }
>       \new Staff {
>         c,4 d e f \break
>         R1 \break
>         f4 g c,2
>       }
>     >>

`\RemoveAllEmptyStaves` si può usare anche per creare sezioni ossia per un rigo. I dettagli si trovano in Righi ossia.

#### Comandi predefiniti

`\RemoveEmptyStaves`, `\RemoveAllEmptyStaves`.

#### Vedi anche

Glossario musicale: rigo temporaneo.

Manuale d’apprendimento: Visibilità e colore degli oggetti.

Guida alla notazione: Modifica delle impostazioni predefinite di un contesto, Simbolo del rigo, Righi ossia, Note nascoste, Pause invisibili, Visibilità degli oggetti.

Frammenti: Staff notation.

Guida al funzionamento interno: ChordNames, FiguredBass, Lyrics, Staff, VerticalAxisGroup, Staff_symbol_engraver.

#### Problemi noti e avvertimenti

Se si toglie l’incisore `Staff_symbol_engraver` vengono nascoste anche le stanghette. Se si forza la visibilità delle stanghette, potrebbero verificarsi degli errori di formattazione. In questo caso, conviene usare i seguenti comandi invece di togliere l’incisore:

>     \omit StaffSymbol
>     \override NoteHead.no-ledgers = ##t

Per i problemi noti e gli avvertimenti relativi a `\Staff \RemoveEmptyStaves` si veda Modifica delle impostazioni predefinite di un contesto.

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