Guida alla Notazione di LilyPond: 1.7.1 Interne al rigo

### 1.7.1 Interne al rigo

Questa sezione spiega come aggiungere enfasi agli elementi interni al rigo.

#### Scelta della dimensione del tipo di carattere

Nota:
Per le dimensioni del testo, leggere Scelta del tipo di carattere e della dimensione.
Per la dimensione del rigo, leggere Impostare la dimensione del rigo.
Per le citazioni in corpo piccolo, leggere Formattazione delle notine.
Per i righi ossia, leggere Righi ossia.

Per modificare la dimensione di un elemento della notazione senza cambiare anche la dimensione del rigo, si può specificare un fattore di ingrandimento col comando `\magnifyMusic`:

>     \new Staff <<
>       \new Voice \relative {
>         \voiceOne
>         <e' e'>4 <f f'>8. <g g'>16 <f f'>8 <e e'>4 r8
>       }
>       \new Voice \relative {
>         \voiceTwo
>         \magnifyMusic 0.63 {
>           \override Score.SpacingSpanner.spacing-increment = #(* 1.2 0.63)
>           r32 c'' a c a c a c r c a c a c a c
>           r c a c a c a c a c a c a c a c
>         }
>       }
>     >>

L’`\override` in questo esempio serve a eludere un difetto del programma, spiegato in “Known issues and warnings” alla fine di questa sezione.

Se la testa di una nota di dimensione normale è accorpata con una più piccola, potrebbe essere necessario ripristinare la dimensione della nota più piccola (con ‘`\once \normalsize`’) in modo che i gambi e le alterazioni siano allineati correttamente:

>     \new Staff <<
>       \key fis \minor
>       \mergeDifferentlyDottedOn
>       \new Voice \relative {
>         \voiceOne
>         \magnifyMusic 0.63 {
>           \override Score.SpacingSpanner.spacing-increment = #(* 1.2 0.63)
>           \once \normalsize cis'32( cis' gis b a fis \once \normalsize d d'
>           \once \normalsize cis, cis' gis b a gis \once \normalsize fis fis'
>           \once \normalsize fis, fis' ais, cis b gis \once \normalsize eis eis'
>           \once \normalsize a, a' bis, d cis b \once \normalsize gis gis')
>         }
>       }
>       \new Voice \relative {
>         \voiceTwo
>         cis'8. d16 cis8. fis16 fis8. eis16 a8. gis16
>       }
>     >>

Il comando `\magnifyMusic` non è adatto per le citazioni in corpo piccolo, gli abbellimenti o i righi ossia, per i quali esistono metodi di inserimento più appropriati. È invece utile quando la dimensione della notazione cambia in una singola parte strumentale su un rigo e quando gli abbellimenti non sono la scelta appropriata, come nei passaggi di tipo cadenza o in casi simili agli esempi precedenti. Impostando il valore di `\magnifyMusic` su 0.63 si duplicano le dimensioni del contesto `CueVoice`.

Nota: Il comando `\magnifyMusic` non deve essere usato quando si ridimensiona anche il rigo. Maggiori informazioni in Impostare la dimensione del rigo.

#### Ridimensionare oggetti della formattazione individualmente

Un singolo oggetto della formattazione può essere ridimensionato coi comandi `\tweak` o `\override` per regolare la sua proprietà `font-size`:

>     \relative {
>       % ridimensiona una testa di nota
>       <f' \tweak font-size -4 b e>-5
>       % ridimensiona una diteggiatura
>       bes-\tweak font-size 0 -3
>       % ridimensiona un'alterazione
>       \once \override Accidental.font-size = -4 bes!-^
>       % ridimensiona un'articolazione
>       \once \override Script.font-size = 4 bes!-^
>     }

Il valore predefinito di `font-size` per ogni oggetto della formattazione è elencato nella Guida al funzionamento interno. La proprietà `font-size` può essere impostata solo per quegli oggetti che supportano l’interfaccia di formattazione `font-interface`. Se `font-size` non è specificato nella lista ‘Standard settings’ dell’oggetto, il suo valore è 0. Si veda All layout objects.

#### Capire la proprietà `fontSize`

La proprietà di contesto `fontSize` regola la dimensione relativa di tutti gli elementi della notazione basati su un glifo in un contesto:

>     \relative {
>       \time 3/4
>       d''4---5 c8( b a g) |
>       \set fontSize = -6
>       e'4-- c!8-4( b a g) |
>       \set fontSize = 0
>       fis4---3 e8( d) fis4 |
>       g2.
>     }

Il valore di `fontSize` è un numero che indica la dimensione relativa alla dimensione standard dell’altezza del rigo corrente. Il valore predefinito di `fontSize` è 0; aggiungendo 6 a qualsiasi valore di `fontSize` si raddoppia la dimensione dei glifi e togliendo 6 si dimezza. Ogni punto aumenta la dimensione di circa il 12%.

Dato che le unità logaritmiche della proprietà `font-size` non sono del tutto intuitive, viene fornita per comodità la funzione Scheme `magnification->font-size`. Per esempio, per ridurre la notazione musicale al 75% della dimensione predefinita si usa:

>     \set fontSize = #(magnification->font-size 0.75)

La funzione Scheme `magstep` fa l’opposto: converte un valore di `font-size` in un fattore di ingrandimento.

La proprietà `fontSize` avrà effetto soltanto sugli elementi della notazione che sono disegnati con glifi, come le teste di nota, le alterazioni, i segni, etc. Non modificherà la dimensione del rigo stesso né ridimensionerà proporzionalmente gambi, travature o la spaziatura orizzontale. Per ridimensionare gambi, travature e spaziatura orizzontale insieme alla dimensione degli elementi della notazione (senza cambiare la dimensione del rigo), si usa il comando `\magnifyMusic` presentato prima. Per ridimensionare tutto, compreso il rigo, leggere Impostare la dimensione del rigo.

Ogni volta che la proprietà di contesto `fontSize` è impostata, il suo valore viene aggiunto al valore della proprietà del grob `font-size` per i singoli oggetti di formattazione, prima che siano stampati i glifi. Ciò può creare confusione quando si impostano individualmente le proprietà `font-size` mentre è impostato anche `fontSize`:

>     % il valore predefinito di font-size per NoteHead è 0
>     % il valore predefinito di font-size per Fingering è -5
>     c''4-3

>     \set fontSize = -3
>     % la dimensione effettiva per NoteHead è ora -3
>     % la dimensione effettiva per Fingering è ora -8
>     c''4-3

>     \override Fingering.font-size = 0
>     % la dimensione effettiva per Fingering è ora -3
>     c''4-3

Sono anche disponibili le seguenti scorciatoie:

Comando | Equivalente a | Dimensione relativa
`\teeny` | `\set fontSize = -3` | 71%
`\tiny` | `\set fontSize = -2` | 79%
`\small` | `\set fontSize = -1` | 89%
`\normalsize` | `\set fontSize = 0` | 100%
`\large` | `\set fontSize = 1` | 112%
`\huge` | `\set fontSize = 2` | 126%

>     \relative c'' {
>       \teeny
>       c4.-> d8---3
>       \tiny
>       c4.-> d8---3
>       \small
>       c4.-> d8---3
>       \normalsize
>       c4.-> d8---3
>       \large
>       c4.-> d8---3
>       \huge
>       c4.-> d8---3
>     }

La modifica della dimensione del tipo di carattere si ottiene ridimensionando la dimensione, tra quelle predefinite, più vicina a quella desiderata. La dimensione standard (per `font-size = 0`) dipende dall’altezza standard del rigo: per un rigo di 20pt, viene scelto un tipo di carattere di 11pt.

#### Comandi predefiniti

`\magnifyMusic`, `\teeny`, `\tiny`, `\small`, `\normalsize`, `\large`, `\huge`.

#### Vedi anche

Guida alla notazione: Scelta del tipo di carattere e della dimensione, Impostare la dimensione del rigo, Formattazione delle notine, Righi ossia.

File installati: ‘`ly/music-functions-init.ly`’, ‘`ly/property-init.ly`’.

Frammenti: Editorial annotations.

Guida al funzionamento interno: font-interface.

#### Problemi noti e avvertimenti

Attualmente ci sono due bug che impediscono una corretta spaziatura orizzontale quando si usa `\magnifyMusic`. C’è un solo modo per eludere questi bug e non funziona in tutte le circostanze. Nell’esempio seguente, sostituire la variabile mag con un valore a piacere. Si può provare anche a togliere uno o entrambi i comandi `\newSpacingSection` e/o i comandi `\override` e `\revert`:

>     \magnifyMusic mag {
>       \newSpacingSection
>       \override Score.SpacingSpanner.spacing-increment = #(* 1.2 mag)
>       [music]
>       \newSpacingSection
>       \revert Score.SpacingSpanner.spacing-increment
>     }

#### Indicazioni di diteggiatura

Le indicazioni di diteggiatura si inseriscono con ‘`nota-numero`’:

>     \relative { c''4-1 d-2 f-4 e-3 }

Si può usare il testo incluso dentro `\markup` o tra virgolette per indicare un cambio di dito.

>     \relative {
>       c''4-1 d-2 f\finger \markup \tied-lyric "4~3" c\finger "2 - 3"
>     }

Si può aggiungere la diteggiatura del pollice per indicare che una nota deve essere suonata col pollice (ad esempio, nella musica per violoncello).

>     \relative { <a'_\thumb a'-3>2 <b_\thumb b'-3> }

È possibile indicare la diteggiatura di ogni singola nota di un accordo specificandola dopo ciascuna altezza.

>     \relative {
>       <c''-1 e-2 g-3 b-5>2 <d-1 f-2 a-3 c-5>
>     }

Le indicazioni di diteggiatura possono essere poste sopra o sotto il rigo, come è spiegato in Direzione e posizionamento.

#### Frammenti di codice selezionati

#### Controllare il posizionamento delle diteggiature di un accordo

Il posizionamento dei numeri della diteggiatura può essere regolato in modo preciso. Perché l’orientamento funzioni, occorre usare il costrutto per gli accordi <> anche per le note singole. Si può impostare in modo simile l’orientamento dei numeri di corda e delle diteggiature della mano destra.

>     \relative c' {
>       \set fingeringOrientations = #'(left)
>       <c-1 e-3 a-5>4
>       \set fingeringOrientations = #'(down)
>       <c-1 e-3 a-5>4
>       \set fingeringOrientations = #'(down right up)
>       <c-1 e-3 a-5>4
>       \set fingeringOrientations = #'(up)
>       <c-1 e-3 a-5>4
>       \set fingeringOrientations = #'(left)
>       <c-1>2
>       \set fingeringOrientations = #'(down)
>       <e-3>2
>       \set stringNumberOrientations = #'(up left down)
>       <f\3 a\2 c\1>1
>       \set strokeFingerOrientations = #'(down right up)
>       <c\rightHandFinger #1 e\rightHandFinger #2 c'\rightHandFinger #4 >
>     }

#### Far sì che la diteggiatura appaia dentro il rigo

Per impostazione predefinita, le diteggiature orientate verticalmente sono poste fuori dal rigo; questo comportamento tuttavia può essere disabilitato. Occorre fare attenzione alle situazioni in cui le diteggiature e i gambi sono rivolti nella stessa direzione: normalmente le diteggiature evitano soltanto i gambi con travature. Questa impostazione predefinita può essere cambiata in modo da evitare tutti i gambi oppure nessuno. L’esempio seguente mostra queste due opzioni, così come tornare al comportamento predefinito.

>     \relative c' {
>       <c-1 e-2 g-3 b-5>2
>       \override Fingering.staff-padding = #'()
>       <c-1 e-2 g-3 b-5>4 g'-0
>       a8[-1 b]-2 g-0 r
>       \override Fingering.add-stem-support = ##f
>       a[-1 b]-2 g-0 r
>       \override Fingering.add-stem-support = ##t
>       a[-1 b]-2 g-0 r
>       \override Fingering.add-stem-support = #only-if-beamed
>       a[-1 b]-2 g-0 r
>     }

#### Vedi anche

Guida alla notazione: Direzione e posizionamento.

Frammenti: Editorial annotations.

Guida al funzionamento interno: FingeringEvent, fingering-event, Fingering_engraver, New_fingering_engraver, Fingering.

#### Dita che scivolano

Negli strumenti a corda un dito che scivola viene indicato solitamente da una linea che connette lo stesso dito da usare per note suonate in posizioni diverse sulla stessa corda. Questa linea inizia inserendo `\\glide` prima di una diteggiatura (`Fingering`) e termina quando si riusa lo stesso dito. La linea può apparire in vari stili.

>     mus = {
>       \set fingeringOrientations = #'(right)
>       <a'\glide-1>2.
>       \set fingeringOrientations = #'(left)
>       <d'-1>4
>     }

>     {
>       <>^"line"
>       \mus
>       <>^"stub-left"
>       \override FingerGlideSpanner.style = #'stub-left
>       \mus
>       <>^"stub-right"
>       \override FingerGlideSpanner.style = #'stub-right
>       \mus
>       <>^"stub-both"
>       \override FingerGlideSpanner.style = #'stub-both
>       \mus
>       <>^"dashed-line"
>       \override  FingerGlideSpanner.style = #'dashed-line
>       \mus
>       \break
>       <>^"dotted-line"
>       \override FingerGlideSpanner.style = #'dotted-line
>       \mus
>       <>^"bow"
>       \override FingerGlideSpanner.style = #'bow
>       \mus
>       <>^"trill"
>       \override FingerGlideSpanner.style = #'trill
>       \mus
>       <>^"zigzag"
>       \override FingerGlideSpanner.style = #'zigzag
>       \mus
>     }

Se `style` viene impostato su `'bow` (arco), la direzione dell’arco può essere regolata attraverso i modificatori della direzione.

>     {
>       \override FingerGlideSpanner.style = #'bow
>       \set fingeringOrientations = #'(down)
>       <b\glide-1>4 <d'-1>
>       \set fingeringOrientations = #'(up)
>       <e''\glide-2> <c''-2>

>       \set fingeringOrientations = #'(down)
>       <b^\glide-1>4 <d'-1>
>       \set fingeringOrientations = #'(up)
>       <e''^\glide-2> <c''-2>

>       \set fingeringOrientations = #'(down)
>       <b_\glide-1>4 <d'-1>
>       \set fingeringOrientations = #'(up)
>       <e''_\glide-2> <c''-2>
>     }

Se si sposta l’incisore `Finger_glide_engraver` nel contesto `Staff`, i grob `Fingering` che appartengono a contesti `Voice` diversi possono essere connessi.

>     \score {
>       \new Staff <<
>         \new Voice {
>           \voiceOne
>           \set fingeringOrientations = #'(right)
>           <e''-3>2
>           \set fingeringOrientations = #'(left)
>           <d''-\tweak bound-details.left.padding #2.5 \glide-2>
>           <c''-2>
>           \bar "||"
>         }
>         \new Voice {
>           \voiceTwo
>           \set fingeringOrientations = #'(right)
>           <c''\glide-2>
>           \set fingeringOrientations = #'(left)
>           <b'-\tweak bound-details.left.padding #2.5 \glide-4>
>           <a'-4>
>         }
>       >>
>       \layout {
>         ragged-right = ##f
>         \context {
>           \Voice
>           \remove "Finger_glide_engraver"
>         }
>         \context {
>           \Staff
>           \consists "Finger_glide_engraver"
>         }
>       }
>     }

#### Vedi anche

Guida alla notazione: Direzione e posizionamento.

Guida al funzionamento interno: FingeringGlideEvent, fingering-glide-event, Finger_glide_engraver, finger-glide-interface, FingerGlideSpanner.

#### Problemi noti e avvertimenti

Molteplici legature con lo stesso dito non sono supportate e producono risultati imprevisti. Un espediente consiste nell’usare dita diverse e `\tweak text`.

>     {
>         \clef "G_8"
>         <a\glide-1 cis'\glide-1>2 <bes-1 d'-1>
>         <a\glide-1 cis'\glide-\tweak text "1"-2>2
>         <bes-1 d'-\tweak text "1"-2>
>     }

#### Note nascoste

Le note nascoste (o invisibili o trasparenti) possono essere utili nella preparazione di esercizi di teoria e composizione.

>     \relative {
>       c''4 d
>       \hideNotes
>       e4 f
>       \unHideNotes
>       g a
>       \hideNotes
>       b
>       \unHideNotes
>       c
>     }

Questo comando rende invisibili le teste, i gambi e le code delle note, e le pause. Le travature sono invisibili se iniziano su una nota nascosta. Mentre gli oggetti attaccati a note invisibili sono comunque visibili.

>     \relative c'' {
>       e8(\p f g a)--
>       \hideNotes
>       e8(\p f g a)--
>     }

#### Comandi predefiniti

`\hideNotes`, `\unHideNotes`.

#### Vedi anche

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

Guida alla notazione: Pause invisibili, Visibilità degli oggetti, Nascondere i righi.

Frammenti: Editorial annotations.

Guida al funzionamento interno: Note_spacing_engraver, NoteSpacing.

#### Colorare gli oggetti

Si possono assegnare dei colori a ciascun oggetto. I nomi dei colori validi sono elencati nell’Elenco dei colori.

>     \override NoteHead.color = #red
>     c''4 c''
>     \override NoteHead.color = #(x11-color 'LimeGreen)
>     d''
>     \override Stem.color = "deepskyblue"
>     e''

Oltre a un insieme limitato di colori semplici disponibili come variabili predefinite (vedi “Colori normali” in Elenco dei colori), si può inserire qualsiasi colore come una stringa. Questa stringa può essere un nome colore definito in stile CSS oppure un codice colore esadecimale preceduto dal carattere `#` (dentro le virgolette doppie):

>     \override NoteHead.color = "lightsalmon"
>     \override Flag.color = "#E30074"
>     \override Beam.color = "#5e45ad"
>     \override Rest.color = "#3058"
>     g'8 \huge r4 a'16 f'

Il codice colore può avere un canale alfa per la semitrasparenza usando un codice a otto caratteri "#RRGGBBAA" o la sua forma abbreviata "#RGBA".

In un modo diverso, si può accedere all’intera gamma di colori definita per X11 con la funzione Scheme `x11-color`. La funzione prende un argomento, che può essere un simbolo, come `'DarkSeaGreen4`, o una stringa, come `"DarkSeaGreen4"`. La prima forma è più veloce da scrivere e un po’ più efficiente. Tuttavia, la seconda forma permette di specificare colori X11 anche attraverso più parole: in questo esempio, `"dark sea green 4"`.

La funzione `x11-color`, se non riesce a comprendere il parametro, restituisce il colore nero.

>     \new Staff \with {
>       instrumentName = \markup {
>         \with-color #(x11-color 'red) "Clarinet"
>         }
>       }
>       \relative c'' {
>       \override Staff.StaffSymbol.color = #(x11-color 'SlateBlue2)
>       gis8 a
>       \override Beam.color = #(x11-color "medium turquoise")
>       gis a
>       \override Accidental.color = #(x11-color 'DarkRed)
>       gis a
>       \override NoteHead.color = #(x11-color "LimeGreen")
>       gis a
>       % this is deliberate nonsense; note that the stems remain black
>       \override Stem.color = #(x11-color 'Boggle)
>       b2 cis
>     }

I colori RGB esatti si specificano con la funzione Scheme `rgb-color`. Questa funzione prende tre argomenti, usati rispettivamente per i canali red (rosso), green (verde) e blue (blu), e un numero alfa opzionale per la semitrasparenza. (Tutti i valori devono essere numeri compresi tra 0 e 1.) La semitrasparenza è supportata nell’output SVG, mentre per l’output PS e PDF è supportata solo se si una versione di Ghostscript uguale o superiore a 9.53. Nel frammento seguente la chiave del rigo appare semitrasparente se elaborato secondo le condizioni menzionate sopra.

>     \new Staff \with {
>       instrumentName = \markup {
>         \with-color #(x11-color 'red) "Clarinetto"
>         }
>       \override Clef.color = #(rgb-color 0 0 0 0.5)
>       }
>     \relative c'' {
>       \override Staff.StaffSymbol.color = #(x11-color 'SlateBlue2)
>       \override Stem.color = #(rgb-color 0 0 0)
>       gis8 a
>       \override Stem.color = #(rgb-color 1 1 1)
>       gis8 a
>       \override Stem.color = #(rgb-color 0 0 0.5)
>       gis4 a
>     }

#### Vedi anche

Guida alla notazione: Elenco dei colori, Il comando `\tweak`.

Frammenti: Editorial annotations.

#### Problemi noti e avvertimenti

Un colore X11 non ha necessariamente la stessa identica tonalità di un normale colore dal nome simile.

Non tutti i colori X11 sono distinguibili in un browser web. Per esempio, un browser potrebbe non mostrare alcuna differenza tra `LimeGreen` e `ForestGreen`. Per il web si consiglia di usare i colori CSS, come è spiegato in Elenco dei colori.

Le note in un accordo non possono essere colorate separatamente con un `\override`; al suo posto si usa `\tweak` o l’equivalente `\single\override`, vedi Il comando `\tweak`.

#### Parentesi

Gli oggetti possono essere messi tra parentesi se si usa il comando `\parenthesize` prima dell’evento musicale. Se precede un accordo, viene messa tra parentesi ogni nota dell’accordo. Si possono mettere tra parentesi anche singole note di un accordo.

>     \relative {
>       c''2 \parenthesize d
>       c2 \parenthesize <c e g>
>       c2 <c \parenthesize e g>
>     }

Si possono mettere tra parentesi anche oggetti diversi dalle note. Per le articolazioni è necessario usare un trattino prima del comando `\parenthesize`.

>     \relative {
>       c''2-\parenthesize -. d
>       c2 \parenthesize r
>     }

Quando `\parenthesize` si applica a un accordo, tutte le sue note vengono racchiuse tra parentesi.

Per racchiudere tra parentesi solo alcune note di un accordo, usare un costrutto per la musica parallela `<< … >>`.

Una forma alternativa del comando `\parenthesize` prevede un percorso al grob: `\parenthesize NomeContesto.NomeGrob` o semplicemente `\parenthesize NomeGrob` (l’ultimo sottintende il contesto al livello più basso, normalmente `Voice`). Bisogna inserirlo prima del momento musicale, come un `\once \override`. Questa forma permette di racchiudere tra parentesi grob che sono causati solo indirettamente dagli eventi.

>     \new Staff \relative <<
>       {
>         \parenthesize NoteHead
>         c'1
>       }
>       \new CueVoice {
>         s2
>         \voiceOne
>         \once \override Staff.Parentheses.font-size = 3
>         \parenthesize Staff.CueClef
>         \cueClef treble
>         e'8 f a g
>       }
>     >>

#### Vedi anche

Frammenti: Editorial annotations.

Guida al funzionamento interno: Parenthesis_engraver, Parentheses, parentheses-interface.

#### Problemi noti e avvertimenti

Attualmente, la proprietà `font-size` del grob `Parentheses` deve essere modificata manualmente per ottenere parentesi dalle dimensioni corrette per gli accordi e alcuni altri oggetti.

#### Gambi

Per ogni nota viene creato automaticamente un oggetto `Stem` (gambo). Vale anche per le semibrevi e le pause, anche se i loro gambi sono resi invisibili.

I gambi si possono posizionare sopra o sotto, vedi Direzione e posizionamento.

#### Comandi predefiniti

`\stemUp`, `\stemDown`, `\stemNeutral`.

#### Frammenti di codice selezionati

#### Direzione predefinita dei gambi sulla linea centrale del rigo

La direzione predefinita dei gambi sulla linea centrale del rigo si imposta con la proprietà `neutral-direction` dell’oggetto `Stem`.

>     \relative c'' {
>       a4 b c b
>       \override Stem.neutral-direction = #up
>       a4 b c b
>       \override Stem.neutral-direction = #down
>       a4 b c b
>     }

#### Cambiare automaticamente la direzione del gambo della nota centrale in base alla melodia

LilyPond può modificare la direzione del gambo della nota centrale di un rigo in modo che segua la melodia: occorre aggiungere l’incisore `Melody_engraver` al contesto `Voice`.

La proprietà di contesto `suspendMelodyDecisions` può essere usata per disattivare questo comportamento localmente.

>     \relative c'' {
>       \time 3/4
>       a8 b g f b g |
>       \set suspendMelodyDecisions = ##t
>       a  b g f b g |
>       \unset suspendMelodyDecisions
>       c  b d c b c |
>     }

>     \layout {
>       \context {
>         \Voice
>         \consists "Melody_engraver"
>         \autoBeamOff
>       }
>     }

#### Vedi anche

Guida alla notazione: Direzione e posizionamento.

Frammenti: Editorial annotations.

Guida al funzionamento interno: Stem_engraver, Stem, stem-interface.

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