LilyPond: manuale d'uso del programma: 1.4 Errori comuni

## 1.4 Errori comuni

Le condizioni di errore descritte di seguito capitano spesso, ma la causa non è ovvia né facile da trovare. Una volta che sono state individuate e comprese, è facile gestirle.

### La musica esce dalla pagina

Se la musica esce dalla pagina al di là del margine destro o appare eccessivamente compressa, quasi sempre è dovuto all’inserimento di una durata errata di una nota, che fa sì che l’ultima nota di una misura si estenda oltre la barra di divisione. Non è sbagliato se la nota finale di una misura non termina entro la barra di divisione inserita automaticamente, perché semplicemente si assume che la nota continui nella misura successiva. Ma se si presenta una lunga sequenza di misure simili, la musica può apparire compressa o può uscire dalla pagina perché gli a capo automatici possono essere inseriti soltanto alla fine di misure complete, ovvero quando tutte le note finiscono prima o alla fine della misura.

Nota: Una durata sbagliata può inibire l’interruzione di linea, portando a una linea di musica estremamente compressa o a musica che esce dalla pagina.

La durata errata può essere trovata facilmente se si usano i controlli di battuta, si veda Controlli di battuta e del numero di battuta.

Se si vuole davvero ottenere una serie di tali misure sovrapposte bisogna inserire una barra di divisione invisibile nel punto in cui si desidera l’interruzione di linea. Per i dettagli si veda Stanghette.

### Appare un rigo in più

Se i contesti non sono creati esplicitamente con `\new` o `\context`, saranno creati senza avviso appena si incontra un comando che non può essere applicato a un contesto esistente. Nelle partiture semplici la creazione automatica dei contesti è utile: infatti la maggior parte degli esempi nei manuali LilyPond sfrutta questa semplificazione. Talvolta, però, la creazione silenziosa di contesti può causare la comparsa di nuovi righi o partiture non desiderate. Ad esempio, si potrebbe pensare che il seguente codice colori di rosso tutte le teste delle note nel rigo, ma in realtà produce due righi, di cui il più basso conserva il colore nero predefinito per le teste delle note.

>     \override Staff.NoteHead.color = #red
>     \new Staff { a' }

Questo accade perché non esiste un contesto `Staff` quando viene elaborata l’istruzione di override, quindi ne viene implicitamente creato uno e l’override viene applicato ad esso. Ma poi il comando `\new Staff` crea un altro rigo separato nel quale vengono inserite le note. Il codice corretto per colorare le teste di tutte le note è

>     \new Staff {
>       \override Staff.NoteHead.color = #red
>       a'
>     }

### Messaggio di errore Unbound variable %

Questo messaggio di errore comparirà in fondo alla console di output o nel file di log insieme al messaggio “GUILE signalled an error …” ogni volta che viene chiamata una routine di Scheme che contenga (erroneamente) un commento LilyPond invece di un commento Scheme.

I commenti LilyPond iniziano con un segno di percentuale, (`%`), e non devono essere usati all’interno delle routine di Scheme. I commenti Scheme iniziano con un punto e virgola, (`;`).

### Messaggio di errore FT_Get_Glyph_Name

Questo messaggio di errore compare nella console di output o nel file di log file se un file di input contiene un carattere non-ASCII e non è stato salvato nella codifica UTF-8. Per dettagli si veda Codifica del testo.

### Avvertimento sul fatto che le affinità del rigo devono solo diminuire

Questo avvertimento può apparire se non ci sono dei righi nell’output, ad esempio se ci sono solo un contesto `ChordName` e un contesto `Lyrics`, come in un lead sheet. Si possono evitare questi messaggi di avvertimento facendo in modo che uno dei contesti si comporti come un rigo inserendo

>     \override VerticalAxisGroup.staff-affinity = ##f

all’inizio del contesto. Per dettagli si veda “Spacing of non-staff lines” in Spaziatura verticale flessibile all'interno dei sistemi.

### Messaggio di errore `\new` inaspettato

Un blocco `\score` deve contenere una singola espressione musicale. Se invece contiene vari `\new Staff`, `\new StaffGroup` o simili contesti introdotti con `\new` senza che questi siano racchiusi tra parentesi graffe, `{ … }`, o doppie parentesi uncinate, `<< … >>`, ovvero così:

>     \score {
>       % Invalido! Genera l'errore: errore di sintassi, \new inaspettato
>       \new Staff { … }
>       \new Staff { … }
>     }

verrà generato questo messaggio di errore.

Per evitare l’errore, è sufficiente racchiudere tutti i blocchi `\new` tra parentesi graffe o doppie parentesi uncinate.

Se si usano le parentesi graffe, i blocchi `\new` appariranno in modo sequenziale:

>     \score {
>       {
>         \new Staff { a' a' a' a' }
>         \new Staff { g' g' g' g' }
>       }
>     }

ma è più probabile che si debbano usare le doppie parentesi uncinate in modo che i nuovi righi siano avviati in parallelo, ovvero contemporaneamente:

>     \score {
>       <<
>         \new Staff { a' a' a' a' }
>         \new Staff { g' g' g' g' }
>       >>
>     }

### Avviso questa voce ha bisogno di un’impostazione \voiceXx o \shiftXx

Se note appartenenti a due voci diverse con gambi nella stessa direzione si trovano nello stesso momento musicale, e per le voci non è stato specificato alcun spostamento, quando si compila il file apparirà il messaggio di avviso ‘`avviso: questa voce ha bisogno di un'impostazione \voiceXx o \shiftXx`’. Tale avviso apparirà anche quando le note non hanno gambi visibili, come nel caso delle semibrevi, se i gambi di note più brevi della stessa altezza sono nella stessa direzione.

Ricorda che la direzione del gambo, a meno che non sia specificata, per esempio tramite `\voiceOne`, etc., dipende dalla posizione della nota sul rigo. Dunque se la direzione del gambo non è specificata, l’avviso apparirà solo quando i gambi si trovano nella stessa direzione, ovvero quando le note si trovano nella stessa metà del rigo.

Si possono evitare questi avvisi mettendo le note in voci in cui siano indicate le direzioni dei gambi e gli spostamenti, per esempio usando `\voiceOne`, etc.

Le note delle voci con un numero maggiore di due, `\voiceThree` etc., sono spostate automaticamente per avitare la collisione tra colonne di note. Ciò causa uno spostamento visibile delle note con gambo, mentre le semibrevi non sono spostate visibilmente, a meno che non si verifichi una reale collisione tra teste di nota oppure quando le voci si incrociano rispetto al loro ordine naturale (quando le note di `\voiceThree` sono più alte di quelle di `\voiceOne`, etc.)

#### Vedi anche

Definire esplicitamente le voci, Esempio musicale, Polifonia su un solo rigo, Risoluzione delle collisioni.

#### LilyPond — Utilizzo v2.22.2 (ramo stabile).