Guida alla Notazione di LilyPond: 1.2.5 Battute

### 1.2.5 Battute

#### Stanghette

Le stanghette delimitano le misure e sono usate anche per indicare i ritornelli. Di norma, le stanghette semplici sono inserite automaticamente in base all’indicazione di tempo.

Si possono inserire altri tipi di stanghette col comando `\bar`. Ad esempio, di solito si usa una stanghetta finale al termine di un brano:

>     \relative { e'4 d c2 \bar "|." }

Se l’ultima nota di una misura non termina entro la stanghetta inserita automaticamente, non viene segnalato un errore: si presuppone che la nota continui nella misura successiva. Ma se ci sono tante misure simili in sequenza, la musica potrebbe apparire compressa oppure scorrere fuori dalla pagina. Questo accade perché le interruzioni di linea automatiche si verificano solo al termine di misure complete, ovvero quando tutte le note terminano prima dell’inizio di una misura.

Nota: Una durata errata può impedire un’interruzione di linea, causando una linea di musica altamente compressa oppure a musica che prosegue fuori dalla pagina.

Le interruzioni di linea sono permesse anche in caso si stanghette inserite a mano anche all’interno di misure incomplete. Per permettere un’interruzione di linea senza che appaia una stanghetta si usa:

>     \bar ""

Questo comando inserirà una stanghetta invisibile e consentirà (senza però forzarla) un’interruzione di linea in questo punto. Il conteggio dei numeri di battuta non incrementa. Per forzare un’interruzione di linea si veda Interruzioni di linea.

Si possono inserire questa e altre stanghette speciali in qualsiasi punto. Quando coincidono con la fine di una misura, sostituiscono la stanghetta semplice che sarebbe stata posta automaticamente. Quando non coincidono con la fine di una misura, la stanghetta specificata viene inserita in quel punto.

Si noti che le stanghette manuali hanno una funzione puramente visiva. Non hanno alcun effetto sulle proprietà di una normale stanghetta, come i numeri della misura, le alterazioni, le interruzioni di linea, etc. Non influiscono nemmeno sul conteggio e sulla posizione delle stanghette automatiche successive. Quando una stanghetta manuale è posta nel punto in cui si trova già una normale stanghetta, le caratteristiche della stanghetta originale non sono alterate.

Sono disponibili per l’inserimento manuale due tipi di stanghette semplici e cinque tipi di stanghette doppie:

>     \relative {
>       f'1 \bar "|"
>       f1 \bar "."
>       g1 \bar "||"
>       a1 \bar ".|"
>       b1 \bar ".."
>       c1 \bar "|.|"
>       d1 \bar "|."
>       e1
>     }

oltre alle stanghette puntate e tratteggiate:

>     \relative {
>       f'1 \bar ";"
>       g1 \bar "!"
>       a1
>     }

e a nove tipi di stanghette per le ripetizioni:

>     \relative {
>       f'1 \bar ".|:"
>       g1 \bar ":..:"
>       a1 \bar ":|.|:"
>       b1 \bar ":|.:"
>       c1 \bar ":.|.:"
>       d1 \bar "[|:"
>       e1 \bar ":|][|:"
>       f1 \bar ":|]"
>       g1 \bar ":|."
>       a1
>     }

Inoltre, una stanghetta può apparire come un semplice segno di spunta:

>     f'1 \bar "'" g'1

Tuttavia,dato che questi segni di spunta sono tipicamente usati nella notazione gregoriana, è preferibile usare `\divisioMinima`, come è descritto nella sezione Divisiones della parte dedicata al canto gregoriano.

LilyPond supporta la notazione gregoriana russa e fornisce una stanghetta speciale per questo tipo di notazione:

>     f'1 \bar "k"

I dettagli di questo tipo di notazione sono spiegati in Scrivere in notazione quadrata di Kiev.

Per i segni di tipo segno interni al rigo, ci sono tre tipi di stanghette che differiscono nel comportamento quando incontrano un’interruzione di linea:

>     \relative c'' {
>       c4 c c c
>       \bar "S"
>       c4 c c c \break
>       \bar "S"
>       c4 c c c
>       \bar "S-|"
>       c4 c c c \break
>       \bar "S-|"
>       c4 c c c
>       \bar "S-S"
>       c4 c c c \break
>       \bar "S-S"
>       c1
>     }

Sebbene LilyPond preveda l’inserimento manuale delle stanghette che indicano i ritornelli, ciò non consente il riconoscimento della musica come una sezione da ripetere. Tali sezioni devono essere inserite con i vari comandi di ripetizione (vedi Ripetizioni), che creano automaticamente le stanghette appropriate.

Inoltre si può specificare `".|:-||"`, che è equivalente a `".|:"` tranne in presenza di un’interruzione di linea, dove crea una doppia stanghetta alla fine della linea e una stanghetta di inizio ripetizione all’inizio della linea successiva.

>     \relative c'' {
>       c4 c c c
>       \bar ".|:-||"
>       c4 c c c \break
>       \bar ".|:-||"
>       c4 c c c
>     }

Esistono sei diverse combinazioni di ripetizioni e indicazioni di segno:

>     \relative c'' {
>       c4 c c c
>       \bar ":|.S"
>       c4 c c c \break
>       \bar ":|.S"
>       c4 c c c
>       \bar ":|.S-S"
>       c4 c c c \break
>       \bar ":|.S-S"
>       c4 c c c
>       \bar "S.|:-S"
>       c4 c c c \break
>       \bar "S.|:-S"
>       c4 c c c
>       \bar "S.|:"
>       c4 c c c \break
>       \bar "S.|:"
>       c4 c c c
>       \bar ":|.S.|:"
>       c4 c c c \break
>       \bar ":|.S.|:"
>       c4 c c c
>       \bar ":|.S.|:-S"
>       c4 c c c \break
>       \bar ":|.S.|:-S"
>       c1
>     }

Esiste inoltre un comando `\inStaffSegno` che crea una stanghetta con segno in congiunzione con un’appropriata stanghetta di ripetizione se usata con un comando `\repeat volta`, vedi Ripetizioni normali..

Si possono definire nuovi tipi di stanghette con `\defineBarLine`:

>     \defineBarLine tipo-stanghetta #'(fine inizio span)

Le variabili di `\defineBarLine` possono includere la stringa ‘vuota’ `""`,che è equivalente a una stanghetta invisibile. Oppure possono essere impostate su `#f`, che fa sì che non appaia alcuna stanghetta.

Dopo averla definita, si può richiamare la nuova stanghetta col comando `\bar` tipo-stanghetta.

Attualmente sono disponibile dieci tipi di stanghetta:

>     \defineBarLine ":" #'("" ":" "")
>     \defineBarLine "=" #'("=" "" "")
>     \defineBarLine "[" #'("" "[" "")
>     \defineBarLine "]" #'("]" "" "")

>     \new Staff {
>       s1 \bar "|"
>       s1 \bar "."
>       s1 \bar "!"
>       s1 \bar ";"
>       s1 \bar ":"
>       s1 \bar "k"
>       s1 \bar "S"
>       s1 \bar "="
>       s1 \bar "["
>       s1 \bar "]"
>       s1 \bar ""
>     }

La stanghetta `"="` crea una stanghetta doppia da combinare con il il segno. Non va usata per creare una stanghetta doppia indipendente; in questo caso è preferibile usare `\bar` "||".

Il segno `"-"` introduce le annotazioni alle stanghette che servono a distinguere quelle che hanno aspetto identico ma un diverso comportamento in corrispondenza delle interruzioni di linea e/o un diverso modo di connettere le stanghette tra i righi. La parte che segue il segno `"-"` non viene usato per costruire la stanghetta.

>     \defineBarLine "||-dashedSpan" #'("||" "" "!!")

>     \new StaffGroup <<
>       \new Staff \relative c'' {
>         c1 \bar "||"
>         c1 \bar "||-dashedSpan"
>         c1
>       }
>       \new Staff \relative c'' {
>         c1
>         c1
>         c1
>       }
>     >>

Inoltre, lo spazio `" "` fa da spaziatore e fa sì che le stanghette tra i righi siano allineate correttamente alle stanghette principali:

>     \defineBarLine ":|.-sbagliata" #'(":|." "" "|.")
>     \defineBarLine ":|.-giusta" #'(":|." "" " |.")

>     \new StaffGroup <<
>       \new Staff {
>         c1 \bar ":|.-sbagliata"
>         c1 \bar ":|.-giusta"
>         c1
>       }
>       \new Staff {
>         c1
>         c1
>         c1
>       }
>     >>

Se servono ulteriori elementi, LilyPond fornisce un modo semplice per definirli. Maggiori informazioni sulla modifica e l’aggiunta delle stanghette sono presenti nel file ‘`scm/bar-line.scm`’.

Nelle partiture con molti righi, un comando `\bar` inserito in un rigo viene applicato automaticamente a tutti i righi. Le stanghette risultanti sono connesse tra i diversi righi di un `StaffGroup`, `PianoStaff` o `GrandStaff`.

>     <<
>       \new StaffGroup <<
>         \new Staff \relative {
>           e'4 d
>           \bar "||"
>           f4 e
>         }
>         \new Staff \relative { \clef bass c'4 g e g }
>       >>
>       \new Staff \relative { \clef bass c'2 c2 }
>     >>

Il comando ‘`\bar tipo-stanghetta`’ è una scorciatoia di ‘`\set Timing.whichBar = tipo-stanghetta`’. Una stanghetta viene creata ogni volta che si imposta la proprietà `whichBar`.

Il tipo di stanghetta predefinita per le stanghette inserite automaticamente è `"|"`. Si può modificare in qualsiasi momento con ‘`\set Timing.defaultBarType = tipo-stanghetta`’.

#### Vedi anche

Guida alla notazione: Interruzioni di linea, Ripetizioni, Raggruppare i righi.

File installati: ‘`scm/bar-line.scm`’.

Frammenti di codice: Rhythms.

Guida al funzionamento interno: BarLine (creata al livello `Staff`), SpanBar (tra i righi), Timing_translator (per le proprietà di Timing).

#### Numeri di battuta

I numeri di battuta appaiono all’inizio di ogni linea tranne la prima. Il numero viene salvato nella proprietà `currentBarNumber`, che viene aggiornata automaticamente per ogni misura. Può anche essere impostata a mano:

>     \relative c' {
>       c1 c c c
>       \break
>       \set Score.currentBarNumber = #50
>       c1 c c c
>     }

I numeri di battuta possono essere mostrati a intervalli regolari anziché solo all’inizio di ogni linea. Per farlo occorre sovrascrivere il comportamento predefinito e permettere ai numeri di battuta di apparire anche in punti diversi dall’inizio della linea. Questo comportamento è regolato dalla proprietà `break-visibility` di `BarNumber`, che considera tre valori impostabili su `#t` o `#f`, i quali indicano se il numero di battuta corrispondente debba essere visibile o no. L’ordine dei tre valori è `end of line visible`, `middle of line visible`, `beginning of line visible`. Nell’esempio seguente i numeri di battuta compaiono in tutti i punti possibili:

>     \relative c' {
>       \override Score.BarNumber.break-visibility = ##(#t #t #t)
>       \set Score.currentBarNumber = #11
>       % Permette la visualizzazione del primo numero di battuta
>       \bar ""
>       c1 | c | c | c
>       \break
>       c1 | c | c | c
>     }

#### Frammenti di codice selezionati

Mostrare il numero di battuta nella prima misura

Il primo numero di battuta di una partitura viene soppresso se è inferiore o uguale a ‘1’. Se si imposta `barNumberVisibility` su `all-bar-numbers-visible`, verrà mostrato il numero di battuta della prima misura e di tutte quelle successive. Si noti che perché funzioni è necessario inserire una stanghetta invisibile prima della prima nota.

>     \layout {
>       indent = 0
>       ragged-right = ##t
>     }

>     \relative c' {
>       \set Score.barNumberVisibility = #all-bar-numbers-visible
>       \bar ""
>       c1 | d | e | f \break
>       g1 | e | d | c
>     }

Mostrare i numeri di battuta a intervalli regolari

I numeri di battuta possono essere resi visbili a intervalli regolari attraverso la proprietà `barNumberVisibility`. In questo esempio vengono mostrati ogni due misure eccetto alla fine della linea.

>     \relative c' {
>       \override Score.BarNumber.break-visibility = #end-of-line-invisible
>       \set Score.currentBarNumber = #11
>       % Permit first bar number to be printed
>       \bar ""
>       % Print a bar number every second measure
>       \set Score.barNumberVisibility = #(every-nth-bar-number-visible 2)
>       c1 | c | c | c | c
>       \break
>       c1 | c | c | c | c
>     }

Stampare i numeri di battuta a intervalli regolari variabili

L’intervallo dei numeri di battuta può essere modificato cambiando la funzione di contesto `{set-bar-number-visibility}`.

>     \relative c' {
>       \override Score.BarNumber.break-visibility = #end-of-line-invisible
>       \context Score \applyContext #(set-bar-number-visibility 4)
>       \repeat unfold 10 c'1
>       \context Score \applyContext #(set-bar-number-visibility 2)
>       \repeat unfold 10 c
>     }

Numeri di battuta racchiusi in rettangoli o cerchi

I numeri di battuta possono apparire anche all’interno di rettangoli o cerchi.

>     \relative c' {
>       % Prevent bar numbers at the end of a line and permit them elsewhere
>       \override Score.BarNumber.break-visibility = #end-of-line-invisible
>       \set Score.barNumberVisibility = #(every-nth-bar-number-visible 4)

>       % Increase the size of the bar number by 2
>       \override Score.BarNumber.font-size = #2

>       % Draw a box round the following bar number(s)
>       \override Score.BarNumber.stencil
>         = #(make-stencil-boxer 0.1 0.25 ly:text-interface::print)
>       \repeat unfold 5 { c1 }

>       % Draw a circle round the following bar number(s)
>       \override Score.BarNumber.stencil
>         = #(make-stencil-circler 0.1 0.25 ly:text-interface::print)
>       \repeat unfold 4 { c1 } \bar "|."
>     }

Numeri di battuta alternativi

Si possono impostare due metodi alternativi di numerazione della battuta, utili specialmente per le ripetizioni.

>     \relative c'{
>       \set Score.alternativeNumberingStyle = #'numbers
>       \repeat volta 3 { c4 d e f | }
>         \alternative {
>           { c4 d e f | c2 d \break }
>           { f4 g a b | f4 g a b | f2 a | \break }
>           { c4 d e f | c2 d }
>         }
>       c1 \break
>       \set Score.alternativeNumberingStyle = #'numbers-with-letters
>       \repeat volta 3 { c,4 d e f | }
>         \alternative {
>           { c4 d e f | c2 d \break }
>           { f4 g a b | f4 g a b | f2 a | \break }
>           { c4 d e f | c2 d }
>         }
>       c1
>     }

Allineare i numeri di battuta

Per impostazione predefinita i numeri di battuta sono allineati a destra rispetto al loro oggetto genitore. Di solito si tratta del margine sinistro della linea oppure, se i numeri appaiono all’interno della linea, del lato sinistro della stanghetta. I numeri possono essere posizionati anche direttamente sopra la stanghetta oppure allineati a sinistra della stanghetta.

>     \relative c' {
>       \set Score.currentBarNumber = #111
>       \override Score.BarNumber.break-visibility = #all-visible
>       % Increase the size of the bar number by 2
>       \override Score.BarNumber.font-size = #2
>       % Print a bar number every second measure
>       \set Score.barNumberVisibility = #(every-nth-bar-number-visible 2)
>       c1 | c1
>       % Center-align bar numbers
>       \override Score.BarNumber.self-alignment-X = #CENTER
>       c1 | c1
>       % Left-align bar numbers
>       \override Score.BarNumber.self-alignment-X = #LEFT
>       c1 | c1
>     }

Togliere i numeri di battuta da uno spartito

I numeri di battuta possono essere tolti rimuovendo l’incisore `Bar_number_engraver` dal contesto `Score`.

>     \layout {
>       \context {
>         \Score
>         \omit BarNumber
>         % or:
>         %\remove "Bar_number_engraver"
>       }
>     }

>     \relative c'' {
>       c4 c c c \break
>       c4 c c c
>     }

#### Vedi anche

Frammenti di codice: Rhythms.

Guida al funzionamento interno: BarNumber, Bar_number_engraver.

#### Problemi noti e avvertimenti

I numeri di battuta possono collidere con la parte superiore della parentesi quadra di `StaffGroup`, se presente. Per evitare la collisione, si può usare la proprietà `padding` di `BarNumber` per posizionare correttamente il numero. Si veda StaffGroup e BarNumber per maggiori informazioni.

#### Controlli di battuta e del numero di battuta

I controlli di battuta aiutano a rilevare gli errori di durata. Il controllo di battuta si inserisce col simbolo della barra verticale, `|`, in un qualsiasi punto in cui è previsto l’inserimento di una stanghetta. Se vengono trovati controlli di battuta in punti diversi, viene creata una lista di avvisi nel file di log che mostra i numeri di linea e le linee in cui il controllo è fallito. Nell’esempio seguente il secondo controllo di battuta segnalerà un errore.

>     \time 3/4 c2 e4 | g2 |

Una durata non corretta può generare uno spartito completamente alterato, specialmente nel caso di brani polifonici. Quindi il primo passo da compiere per correggere l’input è la verifica dei controlli di battuta e delle durate errate.

Se i controlli di battuta successivi sono spostati dello stesso intervallo musicale, viene mostrato solo il primo messaggio di avviso. Così l’avvertimento si concentra sulla causa dell’errore di tempo.

I controlli di battuta possono essere usati anche all’interno del testo vocale:

>     \lyricmode {
>       \time 2/4
>       Twin -- kle | Twin -- kle |
>     }

Attenzione: i segni di controllo di ottava nel testo vocale sono elaborati nel momento musicale in cui la sillaba che segue il segno di controllo viene elaborata. Se il testo è associato alle note di una voce che ha una pausa all’inizio di una battuta, non è possibile individuare alcuna sillaba all’inizio di quella battuta e apparirà un avvertimento se viene posto un controllo di battuta in quel punto del testo vocale.

È anche possibile ridefinire l’azione da prendere quando si incontra un controllo di battuta o simbolo di barra verticale, `|`, nell’input, in modo che avvenga qualcosa di diverso dal controllo di battuta. Si può fare assegnando un’espressione musicale a `"|"`. Nell’esempio seguente `|`, invece di controllare la fine di una battuta, viene usato per inserire una stanghetta doppia ovunque appaia nell’input.

>     "|" = \bar "||"
>     {
>       c'2 c' |
>       c'2 c'
>       c'2 | c'
>       c'2 c'
>     }

Quando si copiano brani di una certa ampiezza, può essere d’aiuto verificare che i numeri di battuta di LilyPond corrispondano all’originale a partire dal quale si sta scrivendo il brano. Si può abilitare con `\barNumberCheck`, ad esempio,

    \barNumberCheck #123

genererà un avvertimento se `currentBarNumber` non è 123 nel momento in cui viene elaborato.

#### Vedi anche

Frammenti di codice: Rhythms.

#### Segni di chiamata

Per creare un segno di chiamata si usa il comando `\mark`.

>     \relative c'' {
>       c1 \mark \default
>       c1 \mark \default
>       c1 \mark \default
>       c1 \mark \default
>     }

Il segno viene incrementato automaticamente se si usa `\mark \default`, ma è possibile usare anche un numero intero come argomento in modo da impostare il segno manualmente. Il valore da usare viene salvato nella proprietà `rehearsalMark`.

>     \relative c'' {
>       c1 \mark \default
>       c1 \mark \default
>       c1 \mark #8
>       c1 \mark \default
>       c1 \mark \default
>     }

La lettera ‘I’ viene saltata, come vuole la tradizione tipografica. Se si desidera includere la lettera ‘I’, si può usare uno dei seguenti comandi, a seconda dello stile che si vuole (solo lettere, lettere in un quadrato o lettere in un cerchio).

>     \set Score.markFormatter = #format-mark-alphabet
>     \set Score.markFormatter = #format-mark-box-alphabet
>     \set Score.markFormatter = #format-mark-circle-alphabet

>     \relative c'' {
>       \set Score.markFormatter = #format-mark-box-alphabet
>       c1 \mark \default
>       c1 \mark \default
>       c1 \mark #8
>       c1 \mark \default
>       c1 \mark \default
>     }

Lo stile viene definito dalla proprietà `markFormatter`. È una funzione che accoglie come argomenti il segno corrente (un numero intero) e il contesto corrente. Dovrebbe restituire un oggetto testuale. Nell’esempio seguente, `markFormatter` viene prima impostato su una procedura predefinita e dopo alcune misure su una procedura che produce un numero racchiuso in un quadrato.

>     \relative c'' {
>       \set Score.markFormatter = #format-mark-numbers
>       c1 \mark \default
>       c1 \mark \default
>       \set Score.markFormatter = #format-mark-box-numbers
>       c1 \mark \default
>       \set Score.markFormatter = #format-mark-circle-numbers
>       c1 \mark \default
>       \set Score.markFormatter = #format-mark-circle-letters
>       c1
>     }

Il file ‘`scm/translation-functions.scm`’ contiene le definizioni di `format-mark-letters` (il formato predefinito), `format-mark-box-letters`, `format-mark-numbers` e `format-mark-box-numbers`. Possono essere usate come fonte di ispirazione per creare altre funzioni di formattazione.

Si possono usare `format-mark-barnumbers`, `format-mark-box-barnumbers` e `format-mark-circle-barnumbers` per ottenere i numeri di battuta invece di numeri o lettere crescenti.

Si possono specificare manualmente altri stili di segni di chiamata:

>     \mark "A1"

Si noti che `Score.markFormatter` non ha effetto sui segni specificati in questo modo. Tuttavia, è possibile applicare un `\markup` alla stringa.

>     \mark \markup { \box A1 }

I glifi musicali (come il Segno) possono essere posti dentro il comando `\mark`

>     \relative c' {
>       c1 \mark \markup { \musicglyph "scripts.segno" }
>       c1 \mark \markup { \musicglyph "scripts.coda" }
>       c1 \mark \markup { \musicglyph "scripts.ufermata" }
>       c1
>     }

L’elenco dei simboli che possono essere prodotti con `\musicglyph` si trova in Il font Emmentaler.

Per le più comuni modifiche relative al posizionamento dei segni di chiamata, si veda Formattazione del testo. Per ottenere un controllo più preciso si consiglia di studiare il funzionamento della proprietà `break-alignable-interface` descritta in Allineamento degli oggetti.

Il file ‘`scm/translation-functions.scm`’ contiene le definizioni di `format-mark-numbers` e `format-mark-letters`, che possono essere usate come fonte di ispirazione per creare altre funzioni di formattazione.

#### Vedi anche

Guida alla notazione: Il font Emmentaler, Formattazione del testo, Allineamento degli oggetti.

File installati: ‘`scm/translation-functions.scm`’.

Frammenti di codice: Rhythms.

Guida al funzionamento interno: MarkEvent, Mark_engraver, RehearsalMark.

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