Lylipond - Apprendimento
Lylipond - Apprendimento
Questo file fornisce un’introduzione alla versione di LilyPond 2.18.2.
Per maggiori informazioni su come questo manuale si integra col resto della documentazione, o
per leggere questo manuale in altri formati, si veda Sezione “Manuali” in Informazioni generali.
Se ti manca qualche manuale, puoi trovare la completa documentazione all’indirizzo
http://www.lilypond.org/.
Sommario
1 Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 Compilare un file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 Inserire l’input. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Generare l’output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.2 MacOS X. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.3 Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.4 Linea di comando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2 Come scrivere i file di input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2.1 Notazione semplice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Altezze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Durate (ritmi). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Pause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Indicazione di tempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Indicazioni di tempo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Chiave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Tutto insieme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.2.2 Lavorare sui file di input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3 Gestire gli errori. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.3.1 Consigli generali per la risoluzione dei problemi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.3.2 Alcuni errori comuni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.4 Come leggere i manuali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.4.1 Materiale omesso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.4.2 Esempi cliccabili . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.4.3 Panoramica dei manuali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Abbellimenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2 Note simultanee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2.1 Espressioni musicali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Analogia: le espressioni matematiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Espressioni musicali simultanee: righi multipli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Espressioni musicali simultanee: rigo singolo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.2.2 Righi multipli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.2.3 Gruppi di pentagrammi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.2.4 Combinare le note negli accordi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.2.5 Polifonia su un singolo rigo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.3 Canzoni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.3.1 Impostare canzoni semplici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.3.2 Allineare il testo alla melodia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.3.3 Testo su più righi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.4 Ritocchi finali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.4.1 Organizzare i brani con le variabili . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.4.2 Aggiungere i titoli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.4.3 Nomi assoluti delle note . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.4.4 Dopo il tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3 Concetti fondamentali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.1 Come funzionano i file di input di LilyPond . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.1.1 Introduzione alla struttura di un file di LilyPond . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.1.2 La partitura è una (singola) espressione musicale composta . . . . . . . . . . . . . . . . . . . 43
3.1.3 Annidare le espressioni musicali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.1.4 Sul non annidamento di parentesi e legature di valore . . . . . . . . . . . . . . . . . . . . . . . . 47
3.2 Le voci contengono la musica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.2.1 Sento le Voci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.2.2 Definire esplicitamente le voci. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.2.3 Voci e musica vocale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.3 Contesti e incisori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.3.1 I contesti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.3.2 Creare i contesti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.3.3 Gli incisori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.3.4 Modificare le proprietà di contesto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.3.5 Aggiungere e togliere gli incisori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
3.4 Estendere i modelli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.4.1 Soprano e violoncello . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.4.2 Partitura vocale a quattro parti SATB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
3.4.3 Scrivere una partitura da zero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.4.4 Ridurre l’input grazie a variabili e funzioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
3.4.5 Partiture e parti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4 Modifica dell’output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
4.1 Modifiche di base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
4.1.1 Introduzione alle modifiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
4.1.2 Oggetti e interfacce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
4.1.3 Convenzioni per i nomi di oggetti e proprietà . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
4.1.4 Metodi di modifica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Il comando \override . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Il comando \revert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Il prefisso \once . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Il comando \overrideProperty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
iii
Il comando \tweak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.2 Manuale del Funzionamento interno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.2.1 Proprietà degli oggetti di formattazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.2.2 Proprietà presenti nelle interfacce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
4.2.3 Tipi di proprietà . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
4.3 Aspetto degli oggetti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
4.3.1 Visibilità e colore degli oggetti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
La proprietà stencil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
La proprietà break-visibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
La proprietà transparent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
La proprietà color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
4.3.2 Dimensione degli oggetti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
4.3.3 Lunghezza e spessore degli oggetti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
4.4 Posizionamento degli oggetti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
4.4.1 Comportamento automatico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
4.4.2 Oggetti interni al rigo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
La proprietà direction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Diteggiatura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
4.4.3 Oggetti esterni al rigo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
La proprietà outside-staff-priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Il comando \textLengthOn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Posizionamento delle dinamiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Dimensione dei grob. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
4.5 Spaziatura verticale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
4.6 Collisioni tra oggetti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
4.6.1 Spostare gli oggetti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
4.6.2 Correggere la sovrapposizione di elementi della notazione . . . . . . . . . . . . . . . . . . . . 126
La proprietà padding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
La proprietà right-padding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
La proprietà staff-padding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
La proprietà self-alignment-X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
La proprietà staff-position . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
La proprietà extra-offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
La proprietà positions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
La proprietà force-hshift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
4.6.3 Esempio musicale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
4.7 Altre modifiche. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
4.7.1 Altri usi delle modifiche con \tweak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Legature di valore tra note di voci diverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Simulare una corona nel MIDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
4.7.2 Uso delle variabili per modificare la formattazione. . . . . . . . . . . . . . . . . . . . . . . . . . . 141
4.7.3 Fogli di stile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
4.7.4 Altre fonti di informazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
4.7.5 Modifiche avanzate con Scheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
iv
1 Tutorial
Questo capitolo fornisce un’introduzione di base all’uso di LilyPond.
I I II
Nota: Le note e i testi nel file LilyPond devono essere sempre scritti
tra { parentesi graffe }. Per evitare ambiguità, le parentesi dovrebbero
essere delimitate da degli spazi, a meno che non si trovino all’inizio o
alla fine di una linea. Può darsi che in alcuni esempi di questo manuale le
parentesi verranno omesse, ma non dimenticarle nella tua musica! Per
maggiori informazioni sull’aspetto degli esempi nel manuale, si veda
Sezione 1.4 [Come leggere i manuali], pagina 18.
Inoltre, l’input di LilyPond è sensibile alle maiuscole. ‘{ c d e }’ è un input valido; ‘{ C D E }’
invece produrrà un messaggio di errore.
Generare l’output
Come generare l’output di LilyPond dipende dal tuo sistema operativo e dai programmi che usi.
• Sezione 1.1.2 [MacOS X], pagina 2 Sezione 1.1.2 [MacOS X], pagina 2 (grafico)
• Sezione 1.1.3 [Windows], pagina 6 Sezione 1.1.3 [Windows], pagina 6 (grafico)
• Sezione 1.1.4 [Linea di comando], pagina 11 Sezione 1.1.4 [Linea di comando], pagina 11
(linea di comando)
Si noti che sono disponibili molti altri editor di testo con un miglior supporto per LilyPond.
Per maggiori informazioni, si veda Sezione “Editing facilitato” in Informazioni generali.
Nota: La prima volta che si esegue LilyPond la compilazione potrà
richiedere uno o due minuti perché tutti i font di sistema devono es-
sere prima analizzati. In seguito, LilyPond sarà molto più veloce!
Capitolo 1: Tutorial 2
1.1.2 MacOS X
Nota: Queste istruzioni presumono che tu stia usando il programma
LilyPond. Se stai usando uno dei programmi descritti in Sezione “Edit-
ing facilitato” in Informazioni generali, in caso di problemi consulta la
documentazione di quei programmi.
Dai menu in cima a sinistra dello schermo seleziona File > Salva.
Si aprirà una nuova finestra che mostra i messaggi di log della compilazione del file che hai
appena salvato.
Capitolo 1: Tutorial 5
Altri comandi
Per creare nuovi file per LilyPond, comincia col selezionare File > New
Capitolo 1: Tutorial 6
oppure File > Open per aprire e modificare file esistenti che hai salvato precedentemente.
Devi salvare qualsiasi nuova modifica fatta al file prima di cliccare Compile > Typeset e se
il file PDF non compare controlla se ci sono degli errori nella finestra dei messaggi di log.
Se non stai usando il visualizzatore d’anteprima PDF incluso nel sistema operativo del Mac e
un file PDF generato da una compilazione precedente è aperto, qualsiasi compilazione successiva
potrebbe non riuscire a generare un PDF aggiornato finché non chiudi l’originale.
1.1.3 Windows
Nota: Queste istruzioni presumono che tu stia usando l’editor LilyPad
incluso nel programma. Se stai usando uno dei programmi descritti in
Sezione “Editing facilitato” in Informazioni generali, in caso di problemi
nel compilare un file consulta la documentazione di quei programmi.
Capitolo 1: Tutorial 7
Dai menu che appaiono in cima al file di esempio seleziona File > Salva come. Non usare
File > Salva per il file di esempio perché non funzionerà finché non gli darai un nome di file
valido per LilyPond.
Passo 2. Compila
Per trasformare il file LilyPond in una partitura devi compilarlo. Ci sono vari modi per farlo:
il trascina e rilascia (drag and drop), il clic destro, il doppio clic o la linea di comando (nel
riquadro del terminale DOS). Vediamo intanto i primi tre.
Sembrerà che non stia accadendo niente, ma dopo pochi secondi dovresti vedere due nuovi
file sul desktop: ‘test.log’ e ‘test.pdf’.
2. Cliccare col tasto destro sul file e dal menu contestuale a comparsa scegliere Generate PDF.
Altri comandi
Per creare un nuovo file, per prima cosa seleziona File > Nuovo se hai aperto un file creato
in precedenza oppure File > Apri per aprire e modificare i file che hai salvato prima. Puoi
modificare un file anche facendo un clic destro e selezionando Edit Source.
Capitolo 1: Tutorial 11
Devi salvare qualsiasi nuova modifica prima di compilare. Se il file PDF non viene creato o
l’output non è quello che ti aspetti, controlla se ci sono degli errori nel file di log che sarà stato
creato durante il tentativo di compilazione.
Questo file di log viene sovrascritto ogni volta che compili il file LilyPond.
Se visualizzi il file in un lettore PDF, devi chiudere il PDF se desideri provare una nuova
compilazione, perché potrebbe non riuscire a creare il nuovo file PDF mentre è ancora aperto
per la visualizzazione.
I I II
Questo comportamento può essere modificato, ma nella maggior parte dei casi questi valori sono
utili.
Altezze
Glossario musicale: Sezione “altezza” in Glossario Musicale, Sezione “intervallo” in Glossario
Musicale, Sezione “scala” in Glossario Musicale, Sezione “Do centrale” in Glossario Musicale,
Sezione “ottava” in Glossario Musicale, Sezione “alterazione” in Glossario Musicale.
Il modo più semplice per inserire le note è usare il modo \relative (relativo). In questo
modo, l’ottava viene scelta automaticamente in base al principio per cui la nota che segue deve
essere posizionata vicino a quella precedente, ovvero deve essere posizionata nell’ottava che si
trova entro tre spazi di pentagramma dalla nota precedente. Per iniziare, scriveremo il pezzo
musicale più elementare, una scala, in cui ogni nota si trova entro una distanza di appena uno
spazio di pentagramma dalla nota precedente.
% set the starting point to middle C
\relative c' {
Capitolo 1: Tutorial 13
c d e f
g a b c
}
å å å å å å
å å
La nota iniziale è un Do centrale. Ogni nota successiva viene posta il più vicino possibile alla
nota precedente – in altre parole, la prima c è il Do più vicino al Do centrale. Questo è seguito
dal Re più vicino alla nota precedente. Possiamo creare melodie che hanno intervalli più ampi,
sempre usando soltanto il modo \relative:
\relative c' {
d f a g
c b f d
}
å å
å å å å åå
Non è necessario che la prima nota della melodia inizi con la nota che specifica l’altezza iniziale.
Nell’esempio precedente, la prima nota – il Re – è il Re più vicino al Do centrale.
Se si aggiungono (o si rimuovono) apostrofi ' o virgole , dal comando ‘\relative c'’, pos-
siamo cambiare l’ottava di partenza:
% one octave above middle C
\relative c'' {
e c a c
}
II I I
Il modo relativo all’inizio può apparire disorientante, ma è il sistema più semplice per inserire
gran parte delle melodie. Vediamo come questo calcolo relativo funziona in pratica. Se si parte
da un Si, che si trova sulla linea centrale in chiave di violino, si possono raggiungere un Do, un
Re e un Mi entro 3 spazi di pentagramma andando in su, e un La, un Sol e un Fa entro 3 spazi
di pentagramma andando in giù. Quindi se la nota che segue il Si è un Do, un Re o un Mi, si
troverà sopra il Si, mentre il La, il Sol o il Fa si troveranno sotto.
\relative c'' {
b c % c is 1 staff space up, so is the c above
b d % d is 2 up or 5 down, so is the d above
b e % e is 3 up or 4 down, so is the e above
b a % a is 6 up or 1 down, so is the a below
b g % g is 5 up or 2 down, so is the g below
b f % f is 4 up or 3 down, so is the f below
}
å å å å å åå å å å åå
Capitolo 1: Tutorial 14
Durate (ritmi)
Glossario musicale: Sezione “coda” in Glossario Musicale, Sezione “durata” in Glossario Mu-
sicale, Sezione “semibreve” in Glossario Musicale, Sezione “minima” in Glossario Musicale,
Sezione “semiminima” in Glossario Musicale, Sezione “nota puntata” in Glossario Musicale.
La durata di una nota viene indicata da un numero che segue il nome della nota: 1 per una
semibreve, 2 per una minima, 4 per una semiminima e cosı̀ via. Le Code vengono aggiunte in
automatico.
Se non si specifica una durata, si usa la durata precedente anche per la nota successiva. La
durata predefinita della prima nota è di un quarto.
\relative c'' {
a1
a2 a4 a8 a
a16 a a a a32 a a a a64 a a a a a a a a2
}
å å å
å å å å å å å å åååååååå
Per creare note puntate, aggiungi un punto . al numero di durata. La durata di una nota
puntata deve essere dichiarata esplicitamente (cioè con un numero).
\relative c'' {
a a a4. a8
a8. a16 a a8. a8 a4.
}
Capitolo 1: Tutorial 15
Pause
Glossario musicale: Sezione “pausa” in Glossario Musicale.
Una pausa viene inserita proprio come una nota ma col nome r :
\relative c'' {
a4 r r2
r8 a r4 r4. r8
}
Q Q Q
Indicazione di tempo
Glossario musicale: Sezione “indicazione di tempo” in Glossario Musicale.
Il tempo si imposta con il comando \time:
\relative c'' {
\time 3/4
a4 a a
\time 6/8
a4. a
\time 4/4
a4 a a a
}
43 6
8
x
Indicazioni di tempo
Glossario musicale: Sezione “indicazione di tempo” in Glossario Musicale, Sezione “metronomo”
in Glossario Musicale.
L’ indicazione di tempo e l’ indicazione metronomica si impostano col comando \tempo:
\relative c'' {
\time 3/4
\tempo "Andante"
a4 a a
\time 6/8
\tempo 4. = 96
a4. a
\time 4/4
\tempo "Presto" 4 = 120
a4 a a a
}
Chiave
Glossario musicale: Sezione “chiave” in Glossario Musicale.
La chiave si imposta con il comando \clef:
\relative c' {
\clef treble
c1
\clef alto
c1
\clef tenor
c1
\clef bass
c1
}
×
Tutto insieme
Ecco un piccolo esempio che mostra tutti questi elementi insieme:
\relative c, {
\clef "bass"
\time 3/4
\tempo "Andante" 4 = 120
c2 e8 c'
g'2.
f4 e d
c4 c, r
}
Andante ( = 120)
ü
3 ü ü ü ü ü
4 ü ü
Vedi anche
Guida alla notazione: Sezione “Inserimento delle altezze” in Guida alla Notazione, Sezione
“Inserimento delle durate” in Guida alla Notazione, Sezione “Inserimento delle pause” in Guida
alla Notazione, Sezione “Indicazione di tempo” in Guida alla Notazione, Sezione “Chiave” in
Guida alla Notazione.
• Dichiarazione di versione: Ogni file LilyPond deve contenere una dichiarazione di versione.
Una dichiarazione di versione è una linea che indica la versione di LilyPond per la quale il
file è stato scritto, come nel seguente esempio:
\version "2.18.2"
Per convenzione, la dichiarazione di versione viene posta all’inizio del file LilyPond.
La dichiarazione di versione è importante per almeno due ragioni. Primo, permette
l’aggiornamento automatico del file di input file via via che la sintassi di LilyPond cam-
bia. Secondo, indica la versione di LilyPond richiesta per compilare il file.
Se la dichiarazione di versione è omessa dal file di input, LilyPond mostra un avvertimento
durante la compilazione del file.
• Sensibile alle maiuscole: distingue tra lettere in minuscolo (es: a, b, s, t) o in maiuscolo
(es: A, B, S, T). Le note sono in minuscolo: { c d e } è un input valido; { C D E } causerà
un messaggio di errore.
• Insensibile agli spazi: non importa quanti spazi (o tabulazioni o nuove linee) aggiungi.
‘{ c4 d e }’ ha lo stesso significato di ‘{ c4 d e }’ e:
{ c4 d
e }
Certo, l’esempio precedente è scomodo da leggere. Una buona regola pratica è indentare i
blocchi di codice con una tabulazione o due spazi:
{
c4 d e
}
Tuttavia, uno spazio bianco è necessario per separare molti elementi sintattici gli uni dagli
altri. In altre parole, lo spazio bianco può essere aggiunto, ma non può essere eliminato.
Dal momento che uno spazio bianco mancante può dare adito a strani errori, si consiglia di
inserire sempre uno spazio bianco prima e dopo ogni elemento sintattico, ad esempio, prima
e dopo ogni parentesi graffa.
• Espressioni: ogni parte dell’input di LilyPond deve avere { parentesi graffe } intorno. Queste
parentesi dicono a LilyPond che l’input costituisce un’espressione musicale singola, proprio
come le parentesi () in matematica. Per evitare ambiguità, le parentesi dovrebbero essere
racchiuse tra spazi, a meno che non si trovino all’inizio o alla fine di una linea.
Anche un comando di LilyPond seguito da un’espressione semplice in parentesi (come
‘\relative c' { ... }’) conta come un’espressione musicale singola.
• Commenti: un commento è un appunto per il lettore umano dell’input musicale; viene
ignorato quando l’input viene analizzato, dunque non ha alcun effetto sull’output finale.
Ci sono due tipi di commenti. Il simbolo di percentuale % introduce un commento di linea;
tutto quello che sta dopo % su quella linea verrà ignorato. Per convenzione, un commento
di linea viene posto sopra il codice a cui si riferisce.
a4 a a a
% questo commento si riferisce ai Si
b2 b
Un commento di blocco segna come commento un’intera sezione di input musicale. Tutto ciò
che è compreso tra %{ e %} viene ignorato. Tuttavia, i commenti di blocco non si ‘annidano’.
Ovvero non si può inserire un commento di blocco dentro a un altro commento di blocco.
Se ci provi, il primo %} interromperà entrambi i commenti di blocco. Il seguente frammento
mostra gli usi possibili per i commenti:
% ecco le note di "Ah! Vous dirai-je, Maman"
c4 c g' g a a g2
Capitolo 1: Tutorial 18
%{
Questa linea e le note sotto vengono ignorate,
perché si trovano in un commento di blocco.
f4 f e e d d c2
%}
x
Clicca qui.
Tagliando e copiando quel che si trova nella sezione “ly snippet”, puoi ricavare un modello
di partenza per sperimentare. Per vedere esattamente lo stesso output (larghezza della linea e
tutto il resto), copia tutto da “Start cut-&-pastable section” alla fine del file.
Î
Controlli di battuta
I controlli di battuta, pur se non strettamente necessari, dovrebbero essere usati nel codice di
input per mostrare dove si vuole che cadano le stanghette. Vengono inseriti col simbolo della
barra verticale, |. Grazie ai controlli di battuta, il programma può verificare che tu abbia inserito
delle durate che facciano sı̀ che ogni misura raggiunga la giusta durata. I controlli di battuta
rendono anche il codice di input più facile da leggere, perché aiutano a tenere tutto in ordine.
g1 | e1 | c2. c'4 | g4 c g e | c4 r r2 |
å å åå
å å
Vedi anche
Guida alla notazione: Sezione “Controlli di battuta e del numero di battuta” in Guida alla
Notazione.
Alterazioni
Glossario musicale: Sezione “diesis” in Glossario Musicale, Sezione “bemolle” in Glossario Mu-
sicale, Sezione “doppio diesis” in Glossario Musicale,Sezione “doppio bemolle” in Glossario Mu-
sicale, Sezione “alterazione o accidente” in Glossario Musicale.
Capitolo 2: Notazione comunemente utilizzata 21
£
Armature di chiave
Glossario musicale: Sezione “armatura di chiave” in Glossario Musicale, Sezione “maggiore” in
Glossario Musicale, Sezione “minore” in Glossario Musicale.
L’ armatura di chiave viene impostata col comando \key seguito da un’altezza e da \major
o \minor.
\key d \major
a1 |
\key c \minor
a1 |
ª ª
ª
I I I I
Capitolo 2: Notazione comunemente utilizzata 22
I I I I
Se l’esempio precedente sembra poco chiaro, considera questo: se tu stessi suonando un pi-
anoforte, quale tasto premeresti? Se premi un tasto nero, allora devi aggiungere -is o -es al
nome della nota!
Aggiungere esplicitamente tutte le alterazioni richiederà un po’ più di lavoro in fase di scrit-
tura, ma il vantaggio è che la trasposizione è più semplice, e le alterazioni possono essere prodotte
usando diverse convenzioni. Per alcuni esempi che mostrano come sia possibile produrre delle
alterazioni in base a regole diverse, si veda Sezione “Alterazioni automatiche” in Guida alla
Notazione.
Vedi anche
Guida alla notazione: Sezione “Nomi delle note in altre lingue” in Guida alla Notazione,
Sezione “Alterazioni” in Guida alla Notazione, Sezione “Alterazioni automatiche” in Guida alla
Notazione, Sezione “Armatura di chiave” in Guida alla Notazione.
Î Î
Legature di portamento
Glossario musicale: Sezione “legatura di portamento” in Glossario Musicale.
Una legatura di portamento è una linea curva che collega più note. La nota iniziale e quella
finale sono indicate rispettivamente con ( e ).
d4( c16) cis( d e c cis d) e( d4)
I I I I I I I I I I
Capitolo 2: Notazione comunemente utilizzata 23
Legature di frase
Glossario musicale: Sezione “legatura di portamento” in Glossario Musicale, Sezione “legatura
di frase” in Glossario Musicale.
Le legature di portamento che indicano una frase più lunga possono essere inserite con \(
e \). E’ possibile avere allo stesso tempo sia le legature di portamento sia le legature di frase,
ma non si possono avere simultaneamente diverse legature di portamento, o diverse legature di
frase.
a8(\( ais b c) cis2 b'2 a4 cis,\)
å
å å å å å
I III I
Vedi anche
Guida alla notazione: Sezione “Legature di valore” in Guida alla Notazione, Sezione “Legature
di portamento” in Guida alla Notazione, Sezione “Legature di frase” in Guida alla Notazione.
å å å å å å
Capitolo 2: Notazione comunemente utilizzata 24
Diteggiature
Glossario musicale: Sezione “diteggiatura” in Glossario Musicale.
Analogalmente, le indicazioni di diteggiatura possono essere aggiunte a una nota con una
lineetta (-) e il numero che si vuole visualizzare:
c4-3 e-5 b-2 a-1
3 I5 2 1
I I I
4 |
1
| 2
Dinamiche
Glossario musicale: Sezione “dinamiche” in Glossario Musicale, Sezione “crescendo” in Glossario
Musicale, Sezione “decrescendo” in Glossario Musicale.
I segni di dinamica si ottengono aggiungendo alla nota i simboli (preceduti da un segno di
barra invertita, o backslash):
c4\ff c\mf c\p c\pp
I I I I
ff mf p pp
Crescendi e decrescendi iniziano coi comandi \< e \>. Il seguente segno di dinamica, ad
esempio \ff, terminerà il (de)crescendo, oppure può essere usato il comando \!:
c4\< c\ff\> c c\!
I I I I
ff
Vedi anche
Guida alla notazione: Sezione “Articolazioni e abbellimenti” in Guida alla Notazione, Sezione
“Fingering instructions” in Guida alla Notazione, Sezione “Dinamiche” in Guida alla Notazione.
Capitolo 2: Notazione comunemente utilizzata 25
I I I I I
I I I
Se non ti piace il modo in cui vengono prodotte automaticamente le travature, è possibile
sovrascriverle manualmente. Per correggere soltanto una singola travatura, indica la prima nota
da raggruppare con [ e l’ultima con ].
a8[ ais] d[ ees r d] c16 b a8
I
I I I I I I I
Vedi anche
Guida alla notazione: Sezione “Travature automatiche” in Guida alla Notazione, Sezione
“Travature manuali” in Guida alla Notazione.
2
2
Gruppi irregolari
Glossario musicale: Sezione “durata” in Glossario Musicale, Sezione “gruppo irregolare” in Glos-
sario Musicale.
I gruppi irregolari vengono preceduti dalla parola chiave \tuplet. Questa richiede due ar-
gomenti: una frazione e un frammento di musica. La frazione ha come numeratore il numero
di note del gruppo irregolare e come denominatore il numero di note che normalmente occupa
la stessa durata. Per le terzine ci sono tre note invece di due, quindi una terzina ha 3/2 come
frazione:
\tuplet 3/2 { f8 g a }
\tuplet 3/2 { c8 r c }
\tuplet 3/2 { f,8 g16[ a g a] }
\tuplet 3/2 { d4 a8 }
å å å å å å å å å å
å å
3
3 3 3
Abbellimenti
Glossario musicale: Sezione “abbellimenti” in Glossario Musicale, Sezione “acciaccatura” in Glos-
sario Musicale, Sezione “appoggiatura” in Glossario Musicale.
Gli abbellimenti sono creati col comando \grace, ma possono essere creati anche ponendo
davanti a un’espressione musicale le parole chiave \appoggiatura o \acciaccatura:
c2 \grace { a32 b } c2 |
c2 \appoggiatura b16 c2 |
c2 \acciaccatura b16 c2 |
Î Î Î Î Î Î
K K
Vedi anche
Guida alla notazione: Sezione “Abbellimenti” in Guida alla Notazione, Sezione “Gruppi ir-
regolari” in Guida alla Notazione, Sezione “Anacrusi” in Guida alla Notazione.
Capitolo 2: Notazione comunemente utilizzata 27
Ü
Se si racchiude una nota tra parentesi si crea un’espressione musicale composta. In questo
esempio abbiamo creato un’espressione musicale composta da due note:
{ a4 g4 }
I I
Se si mette un gruppo di espressioni musicali (es: note) tra parentesi, significa che sono in
sequenza (ovvero, ciascuna espressione segue la precedente). Il risultato è un’altra espressione
musicale:
{ { a4 g } f4 g }
I I I I
1 + 2
(1 + 2) * 3
((1 + 2) * 3) / (4 * 5)
Questa è una sequenza di espressioni, dove ogni espressione è racchiusa in quella succes-
siva (più grande). Le espressioni più semplici sono i numeri, e quelle più grandi si ottengono
combinando le espressioni con gli operatori (come +, * e /) e le parentesi. Come le espressioni
matematiche, le espressioni musicali possono essere annidate a qualsivoglia grado di profondità,
e questo è indispensabile per musica complessa come le partiture polifoniche.
Capitolo 2: Notazione comunemente utilizzata 28
2 2
2
2
2 2
Si noti che abbiamo indentato ogni livello dell’input con una diversa quantità di spazi. Lily-
Pond non si preoccupa di quanto spazio c’è all’inizio di una linea, tuttavia indentare il codice di
LilyPond in questo modo lo rende molto più semplice da leggere per l’essere umano.
Nota: ogni nota è relativa alla nota precedente nell’input, e solo la prima
è relativa al c'' nel comando \relative iniziale.
Î ÎÎ ÎÎ ÎÎÎ
Capitolo 2: Notazione comunemente utilizzata 29
Ü
Ü
Il comando \new introduce un ‘contesto di notazione.’ Un contesto è un ambiente in cui ven-
gono interpretati gli eventi musicali (come le note o i comandi \clef). Nel caso di brani semplici,
tali contesti vengono creati automaticamente. Per brani più complessi, è meglio contrassegnare
esplicitamente i contesti.
Ci sono vari tipi di contesto. Score, Staff, e Voice gestiscono la notazione melodica, mentre
Lyrics imposta i testi e ChordNames visualizza i nomi degli accordi.
In termini di sintassi, se si inserisce \new prima di un’espressione musicale, si crea
un’espressione musicale più grande. In questo modo assomiglia al segno di minore in
matematica. La formula (4 + 5) è un’espressione, quindi −(4 + 5) è un’espressione più grande.
Le indicazioni di tempo inserite in un rigo musicale si estendono di default a tutti gli altri righi.
L’armatura di chiave di un rigo, invece, non si estende agli altri. Questo diverso comportamento
di default è dovuto al fatto che le partiture con strumenti traspositori sono molto più frequenti
delle partiture poliritmiche.
\relative c'' {
<<
\new Staff { \clef "treble" \key d \major \time 3/4 c4 }
\new Staff { \clef "bass" c,,4 }
>>
}
3
4
3
4
Capitolo 2: Notazione comunemente utilizzata 30
2 å å å
4 å
¼ å åå
2
4 å
Altri raggruppamenti di pentagrammi vengono preceduti da \new GrandStaff, per le parti-
ture orchestrali, e da \new ChoirStaff, per le partiture corali. Ognuno di questi gruppi di pen-
tagramma costituiscono un altro tipo di contesto, un contesto che genera la graffa all’estremità
sinistra di ogni sistema e controlla inoltre l’estensione delle linee della battuta.
Vedi anche
Guida alla notazione: Sezione “Keyboard and other multi-staff instruments” in Guida alla
Notazione, Sezione “Aspetto del rigo” in Guida alla Notazione.
III
Pensa agli accordi come a qualcosa di equivalente alle note singole: quasi ogni cosa che
puoi attaccare a una nota singola può essere attaccata a un accordo, e tutto questo deve stare
Capitolo 2: Notazione comunemente utilizzata 31
fuori dalle parentesi angolari. Ad esempio, con gli accordi si possono combinare simboli come le
travature e le legature di valore. Questi devono essere posti fuori dalle parentesi angolari.
r4 <c e g>~ <c f a>2 |
<c e g>8[ <c f a> <c e g> <c f a>]
<c e g>8\>[ <c f a> <c f a> <c e g>]\! |
r4 <c e g>8.\p <c f a>16( <c e g>4-. <c f a>) |
Q Q
p
Vedi anche
Guida alla notazione: Sezione “Note in un accordo” in Guida alla Notazione.
Vedi anche
Manuale di Apprendimento: Sezione 3.2 [Le voci contengono la musica], pagina 48.
Guida alla notazione: Sezione “Note simultanee” in Guida alla Notazione.
2.3 Canzoni
Questa sezione presenta la musica vocale e gli spartiti di semplici canzoni.
å å å
86 å å å å
I testi possono essere collegati a queste note, combinandoli a esse per mezzo della parola
chiave \addlyrics. I testi si inseriscono separando ogni sillaba con uno spazio.
<<
\relative c'' {
\key g \major
\time 6/8
d4 b8 c4 a8 | d4 b8 g4
}
\addlyrics {
Capitolo 2: Notazione comunemente utilizzata 32
6 å
8 å å å å å å
Girls and boys come out to play,
Si notino le doppie parentesi ad angolo <<...>> che circondano l’intero brano per indicare
che la musica e il testo devono trovarsi in simultanea.
6 å å
8 å å å å å å
Girls and boys come out to play, The
3
§ §
moon doth shine as bright as day;
Se compili il codice dell’esempio precedente, dovresti vedere alcuni avvisi nell’output del
terminale:
song.ly:12:29: warning: barcheck failed at: 5/8
The | moon doth shine as
| bright as day; |
song.ly:12:46: warning: barcheck failed at: 3/8
The | moon doth shine as | bright as day;
|
Questo è un ottimo esempio dell’utilità dei controlli di battuta. Tornando alla musica, si
può vedere che il testo aggiunto non risulta ben allineato alle note. La parola shine dovrebbe
essere cantata su due note, non una. Questo si chiama melisma, una singola sillaba che viene
cantata per più di una nota. Ci sono molti modi per estendere una sillaba su molteplici note,
Capitolo 2: Notazione comunemente utilizzata 33
e il più semplice è aggiungere una legatura di portamento che le colleghi, per i dettagli si veda
Sezione 2.1.3 [Legature di valore e di portamento], pagina 22:
<<
\relative c'' {
\key g \major
\time 6/8
d4 b8 c4 a8 | d4 b8 g4 g8 |
a4 b8 c( b) a | d4 b8 g4. |
}
\addlyrics {
Girls and boys come | out to play,
The | moon doth shine as | bright as day; |
}
>>
86 å å å å å å å å
Girls and boys come out to play, The
3
§ §
moon doth shine as bright as day;
Adesso le parole sono allineate correttamente con le note, ma il raggruppamento automati-
co per le note che si trovano sopra shine as non ha un aspetto corretto. Possiamo correggerlo
inserendo i comandi per il raggruppamento manuale cosı̀ da scavalcare, in questo caso, il rag-
gruppamento automatico; per i dettagli si veda Sezione 2.1.6 [Code automatiche e manuali],
pagina 25.
<<
\relative c'' {
\key g \major
\time 6/8
d4 b8 c4 a8 | d4 b8 g4 g8 |
a4 b8 c([ b]) a | d4 b8 g4. |
}
\addlyrics {
Girls and boys come | out to play,
The | moon doth shine as | bright as day; |
}
>>
6 å å
8 å å å å å å
Girls and boys come out to play, The
3
§ §
moon doth shine as bright as day;
Capitolo 2: Notazione comunemente utilizzata 34
Come alternativa all’uso delle legature di portamento, si possono indicare i melismi nel testo
stesso, usando il trattino basso _ per ogni nota che si voglia includere nel melisma:
<<
\relative c'' {
\key g \major
\time 6/8
d4 b8 c4 a8 | d4 b8 g4 g8 |
a4 b8 c[ b] a | d4 b8 g4. |
}
\addlyrics {
Girls and boys come | out to play,
The | moon doth shine _ as | bright as day; |
}
>>
6 å å
8 å å å å å å
Girls and boys come out to play, The
3
§ §
moon doth shine as bright as day;
Se una sillaba si estende per molte note o per una singola nota molto lunga, solitamente viene
disegnata una linea di estensione che va dalla sillaba e si estende per tutte le note comprese in
quella sillaba. Si scrive con due trattini bassi __. Il seguente esempio è tratto dalle prime tre
battute del Lamento di Didone, dal Dido and Aeneas di Purcell:
<<
\relative c'' {
\key g \minor
\time 3/2
g2 a bes | bes2( a) b2 |
c4.( bes8 a4. g8 fis4.) g8 | fis1
}
\addlyrics {
When I am | laid,
am | laid __ in | earth,
}
>>
3
2
When I am laid, am laid in earth,
Nessuno degli esempi visti finora ha comportato l’uso di parole aventi più di una sillaba. Tali
parole vengono solitamente suddivise una sillaba per nota, con trattini posti tra le sillabe. Tali
trattini vengono inseriti con due lineette, e producono un trattino centrato tra le sillabe. Ecco un
esempio che, oltre a questo, mostra tutto quello che abbiamo imparato finora sull’allineamento
del testo con le note.
Capitolo 2: Notazione comunemente utilizzata 35
<<
\relative c' {
\key g \major
\time 3/4
\partial 4
d4 | g4 g a8( b) | g4 g b8( c) |
d4 d e | c2
}
\addlyrics {
A -- | way in a __ | man -- ger,
no __ | crib for a | bed, __
}
>>
3 å å å
4 å å å å å å å å å
A way in a man ger, no crib for a bed,
Alcuni testi, specialmente quelli in italiano, richiedono l’opposto: associare più di una sillaba
a una singola nota. Questo può essere ottenuto collegando le sillabe insieme con un singolo
trattino basso _ (senza spazi), o includendole tra virgolette. Ecco un esempio tratto dal Figaro
di Rossini, dove al deve essere cantato sulla stessa nota del go di Largo, nell’aria di Figaro Largo
al factotum:
<<
\relative c' {
\clef "bass"
\key c \major
\time 6/8
c4.~ c8 d b | c8([ d]) b c d b | c8
}
\addlyrics {
Lar -- go_al fac -- | to -- tum del -- la cit -- | tà
}
>>
6 å å å å å å å å å å å
8
Lar go al fac to tum del la cit tà
Vedi anche
Guida alla notazione: Sezione “Vocal music” in Guida alla Notazione.
\time 6/8
\partial 8
c8 | c8([ bes]) a a([ g]) f | f'4. b, | c4.~ c4
}
\addlyrics {
Let | flee -- cy flocks the | hills a -- | dorn, __
}
\relative c' {
\key f \major
\time 6/8
\partial 8
r8 | r4. r4 c8 | a'8([ g]) f f([ e]) d | e8([ d]) c bes'4
}
\addlyrics {
Let | flee -- cy flocks the | hills a -- dorn,
}
>>
6 å å å å å å å
8 å å å å
Let flee cy flocks the hills a dorn,
86
å
åååå å å åå å
å
Let flee cy flocks the hills a dorn,
Per scrivere partiture un po’ più complesse di questi semplici esempi, è meglio separare la
struttura dello spartito dalle note e dai testi mediante l’uso di variabili. Di queste si parla più
approfonditamente in Sezione 2.4.1 [Organizzare i brani con le variabili], pagina 36.
Vedi anche
Guida alla notazione: Sezione “Vocal music” in Guida alla Notazione.
a4 b c b
}
}
cello = \new Staff {
\relative c {
\clef "bass"
e2 d
}
}
{
<<
\violin
\cello
>>
}
I I I I
Il nome di una variabile deve contenere soltanto caratteri alfabetici, non può avere numeri,
trattini bassi (underscore) o trattini di altro tipo.
Le variabili devono essere definite prima della principale espressione musicale, ma possono
poi essere usate quante volte si vuole e ovunque, una volta definite. Possono essere usate anche
all’interno della definizione di un’altra variabile successiva, dando la possibilità di accorciare
l’input se una sezione della musica viene ripetuta molte volte.
tripletA = \tuplet 3/2 { c,8 e g }
barA = { \tripletA \tripletA \tripletA \tripletA }
\relative c'' {
\barA \barA
}
3 3 3 3 3 3 3 3
ü ü üü ü üü ü üü ü ü ü ü üü ü üü ü üü ü ü
Le variabili possono essere utilizzate per molti tipi di oggetto nell’input. Ad esempio,
width = 4.5\cm
name = "Wendy"
aFivePaper = \paper { paperheight = 21.0 \cm }
A seconda dei suoi contesti, la variabile può essere usata in punti differenti. L’esempio
seguente usa le variabili mostrate sopra:
\paper {
\aFivePaper
line-width = \width
}
{
Capitolo 2: Notazione comunemente utilizzata 38
c4^\name
}
{
... music ...
}
Quando il file viene elaborato, sopra la musica vengono visualizzati il titolo e il compositore. Si
possono trovare maggiori informazioni sui titoli in Sezione “Creating titles headers and footers”
in Guida alla Notazione.
å å å å å
å å å
å å å å å å å å
å å å å
å å å å
5
å å å å
Come si può vedere, scrivere una melodia in chiave di violino richiede un ampio uso di
virgolette '. Si consideri questo frammento tratto da Mozart:
{
\key a \major
\time 6/8
cis''8. d''16 cis''8 e''4 e''8 |
b'8. cis''16 b'8 d''4 d''8 |
}
6 å å å å å å å å å å
8
Tutte queste virgolette rendono l’input meno leggibile e sono una fonte di errori. Usando
\relative, l’esempio precedente è molto più semplice da leggere e scrivere:
\relative c'' {
\key a \major
\time 6/8
cis8. d16 cis8 e4 e8
b8. cis16 b8 d4 d8
}
6 å å å å å å å å å å
8
Se si fa un errore con un segno di ottava (' o ,) quando si lavora col modo \relative, è
molto evidente – tante note saranno nell’ottava sbagliata. Quando si lavora in modo assoluto,
un singolo errore non sarà tanto visibile, e non sarà cosı̀ facile da trovare.
Tuttavia, il modo assoluto è utile per la musica che fa uso di ampi intervalli, e lo è ancora di
più per i file LilyPond generati dal computer. Quando si tagliano e si incollano frammenti della
melodia, il modo assoluto preserva l’ottava originale.
Talvolta la musica è organizzata in modi più complessi. Se si usa \relative all’interno di un
altro \relative, ciascuna sezione \relative è indipendente:
\relative c { c'4 \relative c'' { f g } c }
I I
I I
Se si usa la modalità assoluta all’interno di quella relativa, è necessario contrassegnare esplici-
tamente la musica assoluta con \absolute per impedire che diventi parte della musica relativa:
\relative c { c'4 \absolute { f'' g'' } c }
I I
I I
Capitolo 2: Notazione comunemente utilizzata 40
3 Concetti fondamentali
Nel Tutorial abbiamo visto come produrre dei belli spartiti da un semplice file di testo. Questa
sezione presenta i concetti e le tecniche richiesti per produrre partiture ugualmente belle, ma
più complesse.
\header { }
\score {
... espressione musicale composta ... % tutta la musica va qui!
\layout { }
\midi { }
}
Ci sono molte varianti a questo modello di base, ma questo esempio serve da utile punto di
partenza.
Finora nessuno degli esempi che abbiamo visto ha usato il comando \score{}. Questo si
spiega col fatto che LilyPond, quando elabora un input semplice, aggiunge automaticamente gli
altri comandi necessari. LilyPond tratta un input come questo:
\relative c'' {
c4 a d c
}
come forma abbreviata per questo:
\book {
\score {
\new Staff {
\new Voice {
\relative c'' {
c4 a b c
}
}
}
\layout { }
}
}
In altre parole, se l’input contiene un’espressione musicale singola, LilyPond interpreterà il
file come se l’espressione musicale fosse racchiusa dentro i comandi mostrati sopra.
Attenzione! Molti esempi nella documentazione di LilyPond ometteranno i comandi \new
Staff e \new Voice, lasciando che questi siano creati implicitamente. Per gli esempi semplici
Capitolo 3: Concetti fondamentali 42
questo metodo funziona bene, ma per quelli più complessi, soprattutto quando vengono usati
ulteriori comandi, la creazione implicita dei contesti può dare risultati inattesi, ad esempio
creando dei righi non voluti. Il modo per creare i contesti esplicitamente è spiegato in hunde-
finedi [Contexts and engravers], pagina hundefinedi.
Nota: Quando si inseriscono più di poche linee di musica, si consiglia di
creare sempre esplicitamente i righi e le voci.
Ora però torniamo al primo esempio ed esaminiamo il comando \score, lasciando gli altri
comandi secondo l’impostazione predefinita.
Un blocco \score deve sempre contenere una sola espressione musicale, e questa deve trovarsi
subito dopo il comando \score. Ricorda che un’espressione musicale può essere qualsiasi cosa,
da una singola nota a una grande espressione composta come
{
\new StaffGroup <<
... inserisci qui l'intera opera di Wagner ...
>>
}
Tutto quanto è compreso in { ... } costituisce un’unica espressione musicale.
Come abbiamo detto prima, il blocco \score può contenere altri elementi, come ad esempio
\score {
{ c'4 a b c' }
\header { }
\layout { }
\midi { }
}
Si noti che questi tre comandi – \header, \layout e \midi – sono speciali: diversamente da molti
altri comandi che iniziano con un backslash (\), non sono espressioni musicali né fanno parte
di alcuna espressione musicale. Dunque, possono essere collocati dentro o fuori da un blocco
\score. Di solito questi comandi vengono posti fuori dal blocco \score – ad esempio, \header
spesso viene messo sopra il comando \score, come mostra l’esempio all’inizio di questa sezione.
Altri due comandi che non hai incontrato finora sono \layout { } e \midi {}. Se questi
appaiono come in figura, LilyPond creerà rispettivamente un output per la stampa e uno per il
MIDI. Sono descritti dettagliatamente nella Guida alla notazione, in Sezione “Score layout” in
Guida alla Notazione, e Sezione “Creating MIDI files” in Guida alla Notazione.
Puoi scrivere molteplici blocchi \score. Ciascuno verrà trattato come una partitura separata,
ma saranno tutti combinati in un unico file di output. Non è necessario il comando \book – ne
verrà creato uno automaticamente. Tuttavia, se si desiderano file di output separati da un file
‘.ly’, allora si deve usare il comando \book per separare le diverse sezioni: ogni blocco \book
produrrà un file di output separato.
In breve:
Ogni blocco \book crea un file di output separato (ovvero, un file PDF). Se non ne hai
aggiunto uno esplicitamente, LilyPond racchiude implicitamente tutto il tuo codice di input in
un blocco \book.
Ogni blocco \score è un pezzo di musica separato all’interno di un blocco \book.
Ogni blocco \layout influenza il blocco \score o \book in cui compare – ovvero, un blocco
\layout che si trova dentro un blocco \score riguarda solo quel blocco \score, mentre un blocco
\layout che si trova fuori da un blocco \score (e quindi in un blocco \book, esplicitamente o
implicitamente) riguarderà ogni \score in quel \book.
Capitolo 3: Concetti fondamentali 43
Per maggiori dettagli si veda Sezione “Multiple scores in a book” in Guida alla Notazione.
Un’altra grande scorciatoia è la possibilità di definire variabili, come è spiegato in Sezione 2.4.1
[Organizzare i brani con le variabili], pagina 36). Tutti i modelli usano questa forma
melodia = \relative c' {
c4 a b c
}
\score {
\melodia
}
Quando LilyPond esamina questo file, prende il valore di melodia (tutto ciò che si trova dopo
il segno di uguale) e lo inserisce ovunque si trovi \melodia. Non c’è una regola specifica per i
nomi – il nome può essere melodia, globale, tempo, manodestrapiano, o qualsiasi altro nome.
Ricordati che puoi usare quasi ogni nome che vuoi, purché esso contenga solo caratteri alfabetici
e sia diverso dai nomi dei comandi di LilyPond. Le esatte limitazioni relative ai nomi delle
variabili sono spiegate dettagliatamente in Sezione “File structure” in Guida alla Notazione.
Vedi anche
Per una definizione completa del formato di input, si veda Sezione “File structure” in Guida
alla Notazione.
<< ... >> non sarebbe necessario per il rigo del cantante nell’esempio precedente se contenesse
soltanto un’espressione musicale sequenziale, ma << ... >> al posto delle parentesi è necessario
se la musica sul rigo deve contenere due o più espressioni simultanee, ad esempio due voci
simultanee, o una voce con del testo. Vogliamo avere una voce con del testo, dunque ci servono
le parentesi ad angolo. Aggiungeremo la musica vera e propria in seguito; per adesso mettiamo
soltanto delle semplici note e del testo. Se hai dimenticato come aggiungere del testo, potresti
voler ripassare \addlyrics in Sezione 2.3.1 [Impostare canzoni semplici], pagina 31.
\score {
<<
\new Staff = "canto" <<
\new Voice = "vocal" { c'1 }
\addlyrics { And }
>>
\new PianoStaff = "piano" <<
\new Staff = "upper" { c'1 }
\new Staff = "lower" { c'1 }
>>
>>
\layout { }
}
·
And
¥ ·
·
Ora abbiamo molti più dettagli. Abbiamo il rigo del cantante: esso contiene una Voice o
voce (in LilyPond, questo termine si riferisce a un insieme di note, non necessariamente alle
note della voce – ad esempio, un violino di solito costituisce una voce) e del testo. Abbiamo
anche il rigo del pianoforte, che a sua volta comprende un rigo superiore (per la mano destra) e
uno inferiore (per la mano sinistra), sebbene a quest’ultimo debba ancora essere assegnata una
chiave di basso.
A questo punto possiamo iniziare ad inserire le note. All’interno delle parentesi graffe vicine
a \new Voice = "vocal", possiamo iniziare a scrivere
\relative c'' {
r4 d8\noBeam g, c4 r
}
Ma se facessimo cosı̀, la sezione \score diventerebbe molto lunga, e sarebbe più difficile
comprendere quel che accade. Usiamo quindi le variabili piuttosto. Queste sono state introdotte
alla fine della sezione precedente, ricordi? Per far sı̀ che i contenuti della variabile text siano
interpretati come testo, li facciamo precedere da \lyricmode. Come in \addlyrics, questo
comando trasforma la modalità di input in modalità testo. Senza di esso, LilyPond cercherebbe di
interpretare i contenuti come se fossero note, e questo produrrebbe degli errori. (Sono disponibili
molte altre modalità di input, si veda Sezione “Input modes” in Guida alla Notazione.)
Dunque se aggiungiamo un po’ di note e una chiave di basso per la mano sinistra, otteniamo
un brano musicale vero e proprio:
Capitolo 3: Concetti fondamentali 45
\score {
<<
\new Staff = "canto" <<
\new Voice = "vocal" { \melody }
\addlyrics { \text }
>>
\new PianoStaff = "piano" <<
\new Staff = "upper" { \upper }
\new Staff = "lower" {
\clef "bass"
\lower
}
>>
>>
\layout { }
}
å å
å
And God said,
¥
Quando scrivi (o leggi) una sezione \score, prenditela comoda e stai attento. Comincia dal
livello più esterno, poi lavora su ogni livello più piccolo. È anche molto utile essere rigorosi
nell’indentare l’input – ovvero fare attenzione che ogni elemento di uno stesso livello presente
nell’editor di testo si trovi nella stessa posizione orizzontale.
Vedi anche
Guida alla notazione: Sezione “Structure of a score” in Guida alla Notazione.
\new Staff {
f8 f c
}
>>
r4 |
}
}
å å å
ååå å åå
å åå
Si noti che la dimensione della chiave è la stessa di una chiave che segue un cambio di chiave
–ovvero leggermente più piccola della chiave all’inizio del rigo. Questo è utile per le chiavi che
devono essere posizionate a metà di un rigo.
La sezione ossia può anche essere posta sopra il rigo nel seguente modo:
\new Staff = "main" {
\relative g' {
r4 g8 g c4 c8 d |
e4 r8
<<
{ f8 c c }
\new Staff \with {
alignAboveContext = #"main"
} { f8 f c }
>>
r4 |
}
}
ååå
å å ååå
ååå å
Questo esempio usa \with, che verrà spiegato in modo più completo in seguito. È un modo
per cambiare il comportamento predefinito di un singolo rigo. In questo caso, indica che il nuovo
rigo deve essere posizionato sopra il rigo chiamato “main” invece che nella posizione predefinita,
che è in basso.
Vedi anche
Gli ossia vengono spesso scritti senza armatura di chiave e senza tempo, e solitamente hanno
un font più piccolo. Richiedono ulteriori comandi che non sono stati ancora presentati. Si veda
hundefinedi [Size of objects], pagina hundefinedi, e Sezione “Righi ossia” in Guida alla Notazione.
Capitolo 3: Concetti fondamentali 47
IIIIIII
In generale, tipi diversi di parentesi, costrutti in parentesi e segni che riguardano gruppi
irregolari, legature e abbellimenti possono essere combinati liberamente. L’esempio seguente
mostra una travatura che si estende su un gruppo irregolare (linea 1), una legatura di portamento
che si estende su una terzina (linea 2), una travatura e una legatura di portamento che si
estendono su una terzina, una legatura di valore che attraversa due gruppi irregolari, e una
legatura di frase che si estende fuori da un gruppo irregolare (linee 3 e 4).
r16[ g \tuplet 3/2 { r16 e'8] }
g,16( a \tuplet 3/2 { b16 d) e }
g,8[( a \tuplet 3/2 { b8 d) e~] } |
\tuplet 5/4 { e32\( a, b d e } a4.\)
3 3 3
ü ü ü ü ü
ü ü ü ü ü ü ü
Capitolo 3: Concetti fondamentali 48
2 5
ü ü ü ü
üü
3.2 Le voci contengono la musica
Un cantante ha bisogno della voce per cantare, e lo stesso vale per LilyPond. La musica vera
e propria per tutti gli strumenti di una partitura è contenuta nelle Voci – il più importante
concetto di LilyPond.
II II II II
Questa musica può essere espressa usando soltanto i simboli dell’accordo, ovvero le parentesi
angolari, < ... >, e una singola voce è sufficiente. Ma cosa accadrebbe se il Fa# fosse in realtà
una nota di un ottavo seguita da un Sol di un ottavo, una nota di passaggio che porta al La?
In questo caso abbiamo due note che iniziano nello stesso momento ma hanno durate diverse:
il Re da un quarto e il Fa# da un ottavo. Come si possono scrivere queste note? Non possono
essere scritte come un accordo perché tutte le note di un accordo devono avere la stessa durata.
E non possono nemmeno essere scritte come due note in sequenza perché devono iniziare in
contemporanea. Si tratta quindi di un caso in cui sono necessarie due voci.
Vediamo come ottenerle nella sintassi di input di LilyPond.
Il modo più semplice per inserire frammenti che utilizzino più di una voce su un rigo è scrivere
ogni voce come una sequenza (con { ... }), e poi combinarle in simultanea tramite le doppie
parentesi angolari, << ... >>. Per collocarli in voci distinte, i frammenti devono essere separati
da un doppio backslash, \\. Senza di esso, le note sarebbero inserite in un’unica voce, e questo
normalmente causerebbe degli errori. Questa tecnica è particolarmente adatta ai brani che sono
in gran parte omofonici ma con brevi e occasionali sezioni polifoniche.
Ecco come suddividere gli accordi precedenti in due voci e aggiungere sia la nota di passaggio
che la legatura di portamento:
\key g \major
% Voice "1" Voice "2"
<< { g4 fis8( g) a4 g } \\ { d4 d d d } >>
Capitolo 3: Concetti fondamentali 49
II II I II II
Si noti come i gambi della seconda voce adesso siano rivolti in basso.
Ecco un altro semplice esempio:
\key d \minor
% Voice "1" Voice "2"
<< { r4 g g4. a8 } \\ { d,2 d4 g } >> |
<< { bes4 bes c bes } \\ { g4 g g8( a) g4 } >> |
<< { a2. r4 } \\ { fis2. s4 } >> |
å åå å å åå åå åå å åå
Non è necessario usare un costrutto con << \\ >> in ogni battuta. Per musiche che hanno
poche note in ogni battuta questo layout può aiutare la leggibilità del codice, ma se ci sono
molte note in ogni battuta è preferibile dividere ogni voce, cosı̀:
\key d \minor
<< {
% Voice "1"
r4 g g4. a8 |
bes4 bes c bes |
a2. r4 |
} \\ {
% Voice "2"
d,2 d4 g |
g4 g g8( a) g4 |
fis2. s4 |
} >>
å å å å
å å
å åå å å å å å
Questo esempio ha solo due voci, ma si potrebbe usare lo stesso costrutto per scrivere tre o
più voci aggiungendo più backslash.
I contesti della voce hanno i nomi "1", "2", etc. I primi contesti impostano le voci più esterne,
la voce più alta nel contesto "1" e la più bassa nel "2". Le voci più interne vanno nei contesti
"3" e "4". In ogni contesto, la direzione verticale di legature di portamento, gambi, legature di
valore, dinamica, etc., è impostata correttamente.
\new Staff \relative c' {
% Main voice
c16 d e f
% Voice "1" Voice "2" Voice "3"
<< { g4 f e } \\ { r8 e4 d c8~ } >> |
<< { d2 e } \\ { c8 b16 a b8 g~ g2 } \\ { s4 b c2 } >> |
}
å
åååå ååååå å ååå å
Capitolo 3: Concetti fondamentali 50
Tutte queste voci sono separate dalla voce principale che contiene le note e che si trova fuori
dal costrutto << ... >>, che chiameremo il costrutto simultaneo. Legature di portamento e di
valore possono connettere solo note che fanno parte della stessa voce, quindi le legature non
possono entrare in un costrutto simultaneo o uscirne. Viceversa, voci parallele appartenenti a
costrutti simultanei distinti sullo stesso rigo sono la stessa voce. Anche altre caratteristiche della
voce di riferimento sono trasferite ai costrutti simultanei. Ecco lo stesso esempio, ma con colori
e teste delle note diversi per ogni voce. Si noti che i cambiamenti in una voce non interessano
le altre voci, ma persistono sulla stessa voce in seguito. Si noti anche che le note legate possono
essere divise sulle stesse voci in due costrutti, come mostra qui la voce con i triangoli blu.
\new Staff \relative c' {
% Main voice
c16 d e f
<< % Bar 1
{
\voiceOneStyle
g4 f e
}
\\
{
\voiceTwoStyle
r8 e4 d c8~
}
>> |
<< % Bar 2
% Voice 1 continues
{ d2 e }
\\
% Voice 2 continues
{ c8 b16 a b8 g~ g2 }
\\
{
\voiceThreeStyle
s4 b c2
}
>> |
}
I comandi \voiceXXXStyle sono pensati soprattutto per documenti didattici come questo.
Modificano il colore della testa, del gambo e delle travature, e lo stile della testa, cosı̀ da rendere
le voci facilmente distinguibili. La voce uno è impostata su rombi rossi, la voce due su trian-
goli blu, la voce tre su cerchi barrati verdi, e la voce quattro (non impiegata nell’esempio) su
croci magenta; \voiceNeutralStyle (anch’esso non usato qui) riporta lo stile all’impostazione
predefinita. Vedremo in seguito come l’utente possa creare comandi simili. Si veda hundefinedi
[Visibility and color of objects], pagina hundefinedi e hundefinedi [Using variables for layout
adjustments], pagina hundefinedi.
Capitolo 3: Concetti fondamentali 51
La polifonia non cambia le relazioni tra le note all’interno di un blocco \relative. L’altezza
di ogni nota continua a essere calcolata in rapporto a quella della nota che la precede, o della
prima nota del precedente accordo. Dunque, in
\relative c' { notaA << < notaB notaC > \\ notaD >> notaE }
notaB è relativa a notaA
notaC è relativa a notaB, non a notaA;
notaD è relativa a notaB, non a notaA o a notaC;
notaE è relativa a notaD, non a notaA.
Un metodo alternativo, che potrebbe essere più chiaro se le note nelle voci sono ampiamente
separate, consiste nel porre un comando \relative all’inizio di ogni voce:
\relative c' { noteA ... }
<<
\relative c'' { < noteB noteC > ... }
\\
\relative g' { noteD ... }
>>
\relative c' { noteE ... }
Analizziamo infine le voci in un brano più complesso. Queste note sono tratte dalle prime due
battute del secondo dei due Notturni op. 32 di Chopin. Questo esempio verrà usato successiva-
mente, in questo e nel prossimo capitolo, per illustrare varie tecniche di notazione, quindi per il
momento ignora qualsiasi cosa del codice sottostante che ti sembra incomprensibile e concentrati
solo sulla musica e sulle voci – le parti più complesse saranno spiegate tutte in sezioni successive.
··
··
La direzione dei gambi viene spesso usata per indicare la continuità di due linee melodiche
simultanee. In questo esempio i gambi delle note più acute sono tutti rivolti in su mentre i gambi
delle note più gravi sono tutti rivolti in giù. Questo è il primo indizio del fatto che è coinvolta
più di una voce.
Ma è quando note che iniziano nello stesso momento hanno durate diverse che il ricorso a
voci multiple diventa realmente indispensabile. Osserva le note che iniziano alla terza pulsazione
della prima battuta. Il La bemolle è una nota di tre ottavi, il Fa è una semiminima e il Re
bemolle è una minima. Non possono essere scritte come un accordo perché tutte le note di un
accordo devono avere la stessa durata. Né possono essere scritte come note in sequenza, dato
che devono iniziare contemporaneamente. Questa sezione della battuta necessita di tre voci, e
la normale pratica consiste nello scrivere l’intera battuta su tre voci, come mostrato sotto, dove
abbiamo usato diverse teste e colori per le tre voci. Ancora una volta, il codice che sta dietro
questo esempio verrà spiegato dopo, quindi ignora quel che non capisci.
··
··
Proviamo a scrivere il codice di questa musica da zero. Come vedremo, questo pone alcune
difficoltà. Come abbiamo imparato, iniziamo usando il costrutto << \\ >> per inserire la musica
della prima battuta in tre voci:
Capitolo 3: Concetti fondamentali 52
··
··
··
··
Possiamo vedere che questo corregge la direzione del gambo, ma il posizionamento orizzontale
delle note non è quello che desideriamo. LilyPond sposta le note più interne quando queste o
i loro gambi collidono con le voci più esterne, ma questo non è appropriato nella musica per
pianoforte. In altre situazioni, gli spostamenti applicati da LilyPond potrebbero non riuscire a
evitare le collisioni. LilyPond fornisce molti modi per aggiustare la collocazione orizzontale delle
note. Per ora, non siamo ancora pronti a cercare di correggere questo problema, dunque dovremo
aspettare fino a una prossima sezione – si veda la proprietà force-hshift in hundefinedi [Fixing
overlapping notation], pagina hundefinedi.
Nota: Il testo e gli spanner (come le legature di portamento e di valore,
le forcelle, etc.) non possono essere create ‘attraverso’ le voci.
Vedi anche
Guida alla notazione: Sezione “Più voci” in Guida alla Notazione.
Capitolo 3: Concetti fondamentali 53
II II II II
å å å å å å
å åå
\relative c' {
\voiceOne
c4 d8~ d e4( f | g4 a) b-> c |
\oneVoice
c,4 d8~ d e4( f | g4 a) b-> c |
}
å ååå å å å å å å ååå å å å å å
Capitolo 3: Concetti fondamentali 54
\relative c' {
\voiceTwo
c4 d8~ d e4( f | g4 a) b-> c |
\oneVoice
c,4 d8~ d e4( f | g4 a) b-> c |
}
å ååå å å å å å å ååå å å å å å
Vediamo adesso, usando l’esempio della sezione precedente, tre modi diversi di scrivere uno
stesso passo di musica polifonica, e i rispettivi vantaggi, a seconda delle circostanze.
Un’espressione che appare direttamente in un << >> appartiene alla voce principale (ma,
attenzione: non in un costrutto << \\ >>). Questo metodo è utile quando le altre voci entrano
mentre la voce principale sta già suonando. Ecco una versione più corretta del nostro esempio.
Le note a rombi rossi mostrano che la melodia principale si trova ora nel contesto di una voce
singola, e questo fa sı̀ che sia possibile disegnare una legatura di frase sopra di esse.
\new Staff \relative c' {
\voiceOneStyle
% This section is homophonic
c16^( d e f
% Start simultaneous section of three voices
<<
% Continue the main voice in parallel
{ g4 f e | d2 e) | }
% Initiate second voice
\new Voice {
% Set stems, etc., down
\voiceTwo
r8 e4 d c8~ | c8 b16 a b8 g~ g2 |
}
% Initiate third voice
\new Voice {
% Set stems, etc, up
\voiceThree
s2. | s4 b c2 |
}
>>
}
ååå å å å å å
Sono possibili costrutti polifonici annidati più fittamente, e se una voce appare solo breve-
mente questo potrebbe essere un modo più semplice di scrivere lo spartito:
\new Staff \relative c' {
c16^( d e f
Capitolo 3: Concetti fondamentali 55
<<
{ g4 f e | d2 e) | }
\new Voice {
\voiceTwo
r8 e4 d c8~ |
<<
{ c8 b16 a b8 g~ g2 | }
\new Voice {
\voiceThree
s4 b c2 |
}
>>
}
>>
}
å
åååå ååååå å ååå å
Questo metodo di annidare nuove voci in breve è utile quando solo piccole parti della musica
sono polifoniche, ma quando la polifonia è impiegata largamente in tutta la parte può essere più
chiaro ricorrere a voci multiple, usando le note spaziatrici per saltare le parti in cui una delle
voci è muta, come nel seguente esempio:
\new Staff \relative c' <<
% Initiate first voice
\new Voice {
\voiceOne
c16^( d e f g4 f e | d2 e) |
}
% Initiate second voice
\new Voice {
% Set stems, etc, down
\voiceTwo
s4 r8 e4 d c8~ | c8 b16 a b8 g~ g2 |
}
% Initiate third voice
\new Voice {
% Set stems, etc, up
\voiceThree
s1 | s4 b c2 |
}
>>
å
åååå ååååå å ååå å
Capitolo 3: Concetti fondamentali 56
Colonne di note
Le note maggiormente ravvicinate all’interno di un accordo o quelle che compaiono nello stesso
momento in voci diverse sono disposte in due, e talvolta più, colonne, per impedire la sovrap-
posizione delle teste. Esse vengono chiamate colonne delle note. Le singole colonne di ognuna
delle voci sono indipendenti, e lo scarto adottato nella voce in uso è determinato dal distanzi-
amento delle colonne nei casi in cui altrimenti si determinerebbe una collisione. Si può vedere
nell’esempio in basso. Nella seconda battuta il Do della seconda voce è spostato a destra del Re
nella prima voce, e nell’ultimo accordo il Do nella terza voce è spostato anch’esso a destra delle
altre note.
I comandi \shiftOn, \shiftOnn, \shiftOnnn, e \shiftOff specificano il grado con cui le note
e gli accordi della voce debbano essere spostati in caso di collisione. L’impostazione predefinita
prevede che le voci esterne (di norma le voci uno e due) abbiano \shiftOff attivato, mentre
le voci interne (terza e quarta) abbiano \shiftOn attivato. Quando uno spostamento viene
applicato, le voci una e tre vengono spostate a destra e le voci due e quattro a sinistra.
\shiftOnn e \shiftOnnn definiscono ulteriori livelli di scarto che possono essere temporanea-
mente specificati per risolvere le collisioni in situazioni complesse – si veda hundefinedi [Real
music example], pagina hundefinedi.
Una colonna di note può contenere soltanto una nota (o accordo) di una voce con gambi
in su e una nota (o accordo) di una voce con gambi in giù. Se note di due voci che hanno i
gambi nella stessa direzione sono poste nella stessa posizione ed entrambe le voci non hanno
uno spostamento specificato oppure ne hanno uno dello stesso tipo, si produrrà il messaggio di
errore “Too many clashing note columns”.
Vedi anche
Manuale di apprendimento: hundefinedi [Moving objects], pagina hundefinedi.
Guida alla notazione: Sezione “Più voci” in Guida alla Notazione.
Si noti che il testo deve essere collegato a un contesto Voice, non a un contesto Staff. Questo
è un caso in cui è necessario creare esplicitamente contesti Staff e Voice.
La disposizione automatica delle travature predefinita di LilyPond funziona bene per la mu-
sica strumentale, ma non altrettanto per la musica con testi, dove le travature o non sono usate
affatto o servono a indicare la presenza di melismi nel testo. Nell’esempio precedente usiamo il
comando \autoBeamOff per disattivare la travatura automatica.
Riprendiamo l’esempio precedente di Judas Maccabæus per presentare questa tecnica più
flessibile. Innanzitutto lo rimaneggiamo per usare delle variabili per mezzo delle quali la musica e
il testo possano essere separate dalla struttura del rigo. Inseriamo anche una parentesi ChoirStaff.
Il testo deve essere introdotto da \lyricmode per assicurare che siano interpretati come testo
invece che come musica.
\score {
\new ChoirStaff <<
\new Staff <<
\new Voice = "SopOne" {
\global
\SopOneMusic
}
\new Lyrics \lyricsto "SopOne" {
\SopOneLyrics
}
>>
\new Staff <<
\new Voice = "SopTwo" {
\global
\SopTwoMusic
}
\new Lyrics \lyricsto "SopTwo" {
\SopTwoLyrics
}
>>
>>
}
Capitolo 3: Concetti fondamentali 58
6 å å å å å å å
8 åå å å
Let flee cy flocks the hills a dorn,
6 åååå å å åå å
8 å å
Let flee cy flocks the hills a dorn,
Questa è la struttura di base di tutte le partiture vocali. Si possono aggiungere più righi, più
voci in ogni rigo, più versi nei testi, e le variabili contenenti la musica possono essere poste in
file separati se dovessero diventare troppo lunghe.
Ecco un esempio della prima linea di un inno con quattro strofe, impostate su SATB. In questo
caso le parole per tutte e quattro le parti sono le stesse. Si noti l’uso delle variabili per separare
la notazione musicale e le parole dalla struttura del rigo. Si veda anche come una variabile,
che abbiamo deciso di chiamare ‘keyTime’, venga usata per avere vari comandi a disposizione
all’interno dei due righi. In altri esempi questo viene spesso chiamato ‘global’.
VerseOne =
\lyricmode { E -- | ter -- nal fa -- ther, | strong to save, }
VerseTwo =
\lyricmode { O | Christ, whose voice the | wa -- ters heard, }
VerseThree =
\lyricmode { O | Ho -- ly Spi -- rit, | who didst brood }
VerseFour =
\lyricmode { O | Tri -- ni -- ty of | love and pow'r }
\score {
\new ChoirStaff <<
\new Staff <<
\clef "treble"
\new Voice = "Sop" { \voiceOne \keyTime \SopMusic }
\new Voice = "Alto" { \voiceTwo \AltoMusic }
\new Lyrics \lyricsto "Sop" { \VerseOne }
\new Lyrics \lyricsto "Sop" { \VerseTwo }
\new Lyrics \lyricsto "Sop" { \VerseThree }
\new Lyrics \lyricsto "Sop" { \VerseFour }
>>
\new Staff <<
\clef "bass"
\new Voice = "Tenor" { \voiceOne \keyTime \TenorMusic }
\new Voice = "Bass" { \voiceTwo \BassMusic }
>>
>>
}
Capitolo 3: Concetti fondamentali 59
åå åå åå åå åå åå åå
å
E ter
nal fa ther, strong to save,
O Christ, whose voice the wa ters heard,
O Ho ly Spi rit, who didst brood
O Tri ni ty of love and pow'r
åå å å å å åå åå åå åå åå
å å å å
Vedi anche
Guida alla notazione: Sezione “Vocal music” in Guida alla Notazione.
3.3.1 I contesti
Quando la musica viene elaborata, molti elementi notazionali che non compaiono esplicitamente
nel file di input devono essere aggiunti nell’output. Ad esempio, si confrontino l’input e l’output
del seguente esempio:
cis4 cis2. | a4 a2. |
å å
L’input è alquanto essenziale, ma nell’output sono stati aggiunti stanghette, alterazioni,
l’armatura di chiave e il tempo. Quando LilyPond interpreta l’input l’informazione musicale
viene analizzata da sinistra a destra, proprio come un musicista legge uno spartito. Mentre legge
l’input, il programma ricorda dove si trovano i confini della misura, e quali altezze richiedono
espliciti accidenti. Questa informazione deve essere conservata a diversi livelli. Ad esempio, un
accidente influisce solo su un singolo rigo, mentre una stanghetta deve essere sincronizzata lungo
l’intera partitura.
All’interno di LilyPond, queste regole e pezzi di informazione sono raggruppati nei Contesti.
Abbiamo già presentato il contesto Voice. Altri contesti sono Staff e Score. I contesti sono
strutturati gerarchicamente per riflettere la natura gerarchica di una partitura musicale. Ad es-
empio: un contesto Staff può contenere molti contesti Voice, e un contesto Score può contenere
molti contesti Staff.
Ogni contesto è responsabile di far rispettare alcune regole di notazione, creare alcuni oggetti
della notazione e conservare le proprietà associate. Ad esempio, il contesto Voice può introdurre
Capitolo 3: Concetti fondamentali 60
un’alterazione e poi il contesto Staff mantiene la regola per mostrare o sopprimere l’alterazione
per il resto della misura.
Un altro esempio: la sincronizzazione delle stanghette è gestita, per impostazione predefinita,
nel contesto Score. Tuttavia, in alcune forme musicali potremmo non volere che le stanghette
siano sincronizzate – si consideri una partitura polimetrica in 4/4 e 3/4. In questi casi, dobbiamo
modificare le impostazioni predefinite dei contesti Score e Staff.
Per spartiti molto semplici, i contesti vengono creati implicitamente, e non è necessario oc-
cuparsene. Ma per brani più ampi, come qualsiasi cosa abbia più di un rigo, devono essere creati
esplicitamente per essere sicuri di avere tutti i righi necessari, e che questi siano nel giusto or-
dine. Per scrivere brani che utilizzano una notazione speciale, di solito si modificano i contesti
esistenti, o addirittura se ne creano di completamente nuovi.
Oltre ai contesti Score, Staff e Voice ci sono contesti che stanno tra i livelli della partitura
(score) e del rigo (staff) per controllare i gruppi di pentagrammi, come i contesti PianoStaff
e ChoirStaff. Ci sono anche contesti alternativi per il rigo e la voce, e contesti per il testo, le
percussioni, la tastiera, il basso continuo, etc.
I nomi di tutti i tipi di contesto sono formati da una o più parole, e ogni parola viene unita
immediatamente alla parola precedente senza trattini o underscore bensı̀ con la prima lettera
maiuscola: ad esempio, GregorianTranscriptionStaff.
Vedi anche
Guida alla notazione: Sezione “Contexts explained” in Guida alla Notazione.
Nelle sezioni precedenti hai già visto molti esempi pratici della creazione di nuovi contesti
Staff e Voice, ma per ricordarti come questi comandi vengano usati in pratica, ecco un esempio
di musica vera e propria:
\score { % start of single compound music expression
<< % start of simultaneous staves section
\time 2/4
\new Staff { % create RH staff
\clef "treble"
\key g \minor
\new Voice { % create voice for RH notes
\relative c'' { % start of RH notes
d4 ees16 c8. |
d4 ees16 c8. |
} % end of RH notes
} % end of RH voice
} % end of RH staff
\new Staff << % create LH staff; needs two simultaneous voices
\clef "bass"
\key g \minor
\new Voice { % create LH voice one
\voiceOne
\relative g { % start of LH voice one notes
g8 <bes d> ees, <g c> |
g8 <bes d> ees, <g c> |
} % end of LH voice one notes
} % end of LH voice one
\new Voice { % create LH voice two
\voiceTwo
\relative g { % start of LH voice two notes
g4 ees |
g4 ees |
} % end of LH voice two notes
} % end of LH voice two
>> % end of LH staff
>> % end of simultaneous staves section
} % end of single compound music expression
åå å åå
42 å
å å
2 å å å åå å å å åå
4
(Si noti che tutte le asserzioni che aprono un blocco o con delle parentesi graffe, {, o con delle
parentesi angolari doppie, <<, sono indentate di due spazi, e la parentesi di chiusura corrispon-
dente è indentata esattamente dello stesso spazio. Pur non essendo un requisito indispensabile,
seguire questa pratica ridurrà enormemente il numero di errori da ‘parentesi spaiate’, ed è quindi
fortemente consigliato. Permette di vedere a colpo d’occhio la struttura della musica, e qualsi-
asi parentesi spaiata sarà facilmente riconoscibile. Si noti anche come il rigo LH faccia uso di
parentesi angolari doppie perché richiede due voci, mentre il rigo RH è costituito da una singola
espressione musicale compresa tra parentesi graffe perché richiede una sola voce.)
Capitolo 3: Concetti fondamentali 62
Il comando \new può anche dare un nome identificativo al contesto per distinguerlo da altri
contesti dello stesso tipo,
\new tipo = id espressione-musicale
Si noti la distinzione tra il nome del tipo di contesto, Staff, Voice, etc, e il nome identificativo
di un particolare esempio di quel tipo, che può essere qualsiasi sequenza di lettere inventata
dall’utente. Nel nome identificativo si possono usare anche numeri e spazi, ma in questo caso
deve essere compreso tra virgolette, ovvero \new Staff = "MioPentagramma 1" espressione-
musicale. Il nome identificativo viene utilizzato per riportare a quel particolare esempio di un
contesto. Abbiamo visto questo utilizzo nella sezione sul testo, si veda Sezione 3.2.3 [Voci e
musica vocale], pagina 56.
Vedi anche
Guida alla notazione: Sezione “Creating and referencing contexts” in Guida alla Notazione.
Incisore Funzione
Accidental engraver Crea le alterazioni, le alterazioni di precauzione e di cortesia
Beam engraver Incide le travature
Clef engraver Incide le chiavi
Completion heads engraver Separa le note che attraversano le stanghette
Dynamic engraver Crea le forcelle e i testi relativi alla dinamica
Forbid line break engraver Impedisce l’a capo se un elemento musicale è ancora attivo
Key engraver Crea l’armatura di chiave
Metronome mark engraver Incide il tempo metronomico
Note heads engraver Incide le teste delle note
Rest engraver Incide le pause
Capitolo 3: Concetti fondamentali 63
Vedi anche
Guida al funzionamento interno: Sezione “Engravers and Performers” in Guida al Funziona-
mento Interno.
c2 c
}
\new Staff \relative c' {
\set instrumentName = #"Alto" % Wrong!
d2 d
}
>>
Soprano Î Î
Î Î
Ricorda che il nome di contesto predefinito è Voice, dunque il secondo comando \set imposta
la proprietà instrumentName nel contesto Voice col valore “Alto”, ma dato che LilyPond non
trova tale proprietà nel contesto Voice, non ha avuto luogo alcuna altra azione. Questo non è
un errore, e nessun messaggio di errore viene riportato nel file di log.
Analogamente, se il nome della proprietà è stato scritto male, non viene generato alcun
messaggio di errore, e ovviamente l’azione desiderata non può essere eseguita. Infatti, col co-
mando \set puoi impostare qualsiasi ‘proprietà’ (anche inventata) usando qualsiasi nome che
ti piaccia in qualsiasi contesto esistente. Ma se LilyPond non conosce il nome, allora non verrà
intrapresa alcuna azione. Alcuni editor di testo che hanno uno speciale supporto per i file di
input di LilyPond presentano i nomi delle proprietà con una lista scorrevole al passaggio del
mouse, come JEdit col plugin LilyPondTool, oppure evidenziano in modo diverso i nomi delle
proprietà non conosciuti, come fa ConTEXT. Se non usi un editor con queste funzionalità, è
consigliabile controllare il nome delle proprietà nella Guida al funzionamento interno: si veda
Sezione “Tunable context properties” in Guida al Funzionamento Interno, o Sezione “Contexts”
in Guida al Funzionamento Interno.
<<
\new Staff \relative c'' {
aeses2 aes
}
\new Staff \relative c'' {
\set Staff.extraNatural = ##f
aeses2 aes
}
>>
Capitolo 3: Concetti fondamentali 65
e in questo modo si disattiva in tutti i righi:
<<
\new Staff \relative c'' {
aeses2 aes
}
\new Staff \relative c'' {
\set Score.extraNatural = ##f
aeses2 aes
}
>>
£
£
Un altro esempio: se la proprietà clefTransposition viene posta nel contesto Score, cambia
immediatamente il valore della trasposizione in tutti i righi presenti e imposta un nuovo valore
predefinito che sarà applicato a tutti i righi.
Il comando opposto, \unset, di fatto rimuove la proprietà dal contesto, e questo fa sı̀ che
molte proprietà tornino al valore predefinito. Solitamente \unset non è necessario dal momento
che un nuovo comando \set permetterà di ottenere quanto si desidera.
I comandi \set e \unset possono trovarsi in qualsiasi punto del file di input e avranno effetto
dal momento in cui si incontrano fino alla fine della partitura o finché la proprietà non viene
attivata (\set) o disattivata (\unset) di nuovo. Proviamo a cambiare varie volte la dimensione
del font, che influisce (tra le altre cose) sulla dimensione delle teste delle note. La modifica è
relativa al valore predefinito, non all’ultimo valore impostato.
c4 d
% make note heads smaller
\set fontSize = #-4
e4 f |
% make note heads larger
\set fontSize = #2.5
g4 a
% return to default size
\unset fontSize
b4 c |
åå å å
å å å å
Abbiamo visto come impostare i valori di diversi tipi di proprietà. Si note che gli interi e
i numeri sono sempre preceduti da un segno di cancelletto, #, mentre un valore vero o falso è
Capitolo 3: Concetti fondamentali 66
specificato con ##t e ##f, con due cancelletti. Una proprietà testuale dovrebbe essere racchiusa
tra virgolette, come abbiamo visto prima, sebbene vedremo in seguito che in realtà il testo può
essere specificato in un modo molto più generale usando il potente comando \markup.
I I I I
I I I I
Si possono ancora cambiare dinamicamente le proprietà impostate in questo modo usando
\set, mentre con \unset si possono riportare al valore predefinito impostato nel blocco \with.
Quindi se la proprietà fontSize viene inserita in una proposizione \with, imposta il valore
predefinito della dimensione del font. Se viene in seguito modificato con \set, questo nuovo
valore predefinito può essere recuperato col comando \unset fontSize.
cisis4 e d cis
}
}
\layout {
\context {
\Staff
extraNatural = ##t
}
}
}
I I I
I
Se si vuole che la modifica della proprietà venga applicata a tutti i righi della partitura:
\score {
<<
\new Staff {
\relative c'' {
gisis4 gis aeses aes
}
}
\new Staff {
\relative c'' {
gisis4 gis aeses aes
}
}
>>
\layout {
\context {
\Score extraNatural = ##f
}
}
}
I I I I
I I I I
Le proprietà di contesto impostate in questo modo possono essere sovrascritte per alcuni par-
ticolari contesti attraverso asserzioni in un blocco \with, e tramite comandi \set incorporati
nelle asserzioni musicali.
Vedi anche
Guida alla notazione: Sezione “Changing context default settings” in Guida alla Notazione,
Sezione “The set command” in Guida alla Notazione.
Guida al funzionamento interno: Sezione “Contexts” in Guida al Funzionamento Interno,
Sezione “Tunable context properties” in Guida al Funzionamento Interno.
Capitolo 3: Concetti fondamentali 68
åå å å
å å å å
Gli incisori possono essere aggiunti anche a contesti individuali. Il comando per farlo è
\consists Engraver_name,
posto all’interno di un blocco \with. Alcune partiture vocali hanno un ambitus collocato all’inizio
del pentagramma per indicare l’intervallo tra la nota più grave e quella più acuta in quella
parte – si veda Sezione “ambitus” in Glossario Musicale. L’ambitus viene creato dall’incisore
Ambitus_engraver, che di norma non è incluso in alcun contesto. Se lo aggiungiamo al contesto
Voice, calcola l’intervallo di quella voce soltanto:
\new Staff <<
\new Voice \with {
\consists "Ambitus_engraver"
} {
\relative c'' {
\voiceOne
c4 a b g
}
}
\new Voice {
\relative c' {
\voiceTwo
c4 e d f
}
}
Capitolo 3: Concetti fondamentali 69
>>
II I I I II
I I I
ma se aggiungiamo l’incisore ambitus al contesto Staff, calcola l’intervallo di tutte le note in
tutte le voci di quel pentagramma:
\new Staff \with {
\consists "Ambitus_engraver"
}
<<
\new Voice {
\relative c'' {
\voiceOne
c4 a b g
}
}
\new Voice {
\relative c' {
\voiceTwo
c4 e d f
}
}
>>
I I I I II
I I I I
Modificare tutti i contesti dello stesso tipo
Gli esempi precedenti mostrano come rimuovere o aggiungere degli incisori a contesti individuali.
È anche possibile rimuovere o aggiungere gli incisori per ogni contesto di un particolare tipo
inserendo i comandi nel contesto appropriato in un blocco \layout. Ad esempio, se volessimo
mostrare un ambitus per ogni pentagramma in una partitura di quattro pentagrammi, potremmo
scrivere
\score {
<<
\new Staff {
\relative c'' {
c4 a b g
}
}
\new Staff {
\relative c' {
c4 a b g
}
}
\new Staff {
\clef "G_8"
Capitolo 3: Concetti fondamentali 70
\relative c' {
c4 a b g
}
}
\new Staff {
\clef "bass"
\relative c {
c4 a b g
}
}
>>
\layout {
\context {
\Staff
\consists "Ambitus_engraver"
}
}
}
åå åå åå
åå åå åå
åå åå åå
8
åå å å å å
I valori delle proprietà di un contesto possono essere impostati anche per tutti i contesti di un
particolare tipo includendo il comando \set in un blocco \context nello stesso modo.
Vedi anche
Guida alla notazione: Sezione “Modifying context plug-ins” in Guida alla Notazione, Sezione
“Changing context default settings” in Guida alla Notazione.
testo = \lyricmode {
Aaa Bee Cee Dee
}
\score {
<<
\new Voice = "one" {
\autoBeamOff
\melodia
}
\new Lyrics \lyricsto "one" \testo
>>
\layout { }
\midi { }
}
Ora vogliamo aggiungere una parte per violoncello. Vediamo l’esempio ‘Solo note’:
\version "2.18.2"
\score {
\new Staff \melodia
\layout { }
\midi { }
}
Non ci servono due comandi \version. Ci servirà invece la sezione melodia. Non vogliamo
due sezioni \score – se avessimo due \score, le due parti sarebbero separate. Ma le vogliamo
insieme, come un duetto. All’interno della sezione \score, non ci servono due \layout o due
\midi.
Se semplicemente tagliamo e incolliamo la sezione melodia, finiremo con l’avere due
definizioni melodia. Questo non produrrebbe un errore, ma la seconda definizione sarebbe usata
per entrambe le melodie. Dunque rinominiamole per distinguerle. Chiameremo la sezione per il
Capitolo 3: Concetti fondamentali 72
testoSoprano = \lyricmode {
Aaa Bee Cee Dee
}
musicaVioloncello = \relative c {
\clef "bass"
\key c \major
\time 4/4
d4 g fis8 e d4
}
\score {
<<
\new Voice = "one" {
\autoBeamOff
\musicaSoprano
}
\new Lyrics \lyricsto "one" \testoSoprano
>>
\layout { }
\midi { }
}
L’aspetto è promettente, ma la parte del violoncello non apparirà nella partitura – perché
non l’abbiamo inserita nella sezione \score. Se vogliamo che la parte del violoncello compaia
sotto quella del soprano, dobbiamo aggiungere
\new Staff \musicaVioloncello
sotto la parte del soprano. Dobbiamo anche aggiungere << e >> intorno alla musica – che dice
a LilyPond che c’è più di una cosa (in questo caso, due Staff) che sono simultanei. Lo \score
ora appare cosı̀:
\score {
<<
<<
\new Voice = "one" {
\autoBeamOff
\musicaSoprano
Capitolo 3: Concetti fondamentali 73
}
\new Lyrics \lyricsto "one" \testoSoprano
>>
\new Staff \musicaVioloncello
>>
\layout { }
\midi { }
}
L’aspetto è un po’ confuso; l’indentazione non è pulita. Ma si può correggere facilmente. Ecco il
modello completo per soprano e violoncello.
\version "2.18.2"
musicaSoprano = \relative c' {
\clef "treble"
\key c \major
\time 4/4
a4 b c d
}
testoSoprano = \lyricmode {
Aaa Bee Cee Dee
}
musicaVioloncello = \relative c {
\clef "bass"
\key c \major
\time 4/4
d4 g fis8 e d4
}
\score {
<<
<<
\new Voice = "one" {
\autoBeamOff
\musicaSoprano
}
\new Lyrics \lyricsto "one" \testoSoprano
>>
\new Staff \musicaVioloncello
>>
\layout { }
\midi { }
}
å å å å
Aaa Bee Cee Dee
å å ååå
Capitolo 3: Concetti fondamentali 74
Vedi anche
I modelli da cui partire si trovano nell’appendice ‘Modelli’, si veda hundefinedi [Single staff
templates], pagina hundefinedi.
Soprano ü ü ü ü ü
Wor thy is the lamb that was slain
Alto ü ü ü ü ü
Wor thy is the lamb that was slain
ü ü ü ü
Tenor ü
Wor thy is the lamb that was slain
ü ü ü
8
ü ü
Bass
Wor thy is the lamb that was slain
ü ü
üü üü üü üü üü
ü ü ü
¼
ü ü üü
Piano
ü ü ü
ü ü ü ü ü
Nessun modello fornisce esattamente questo assetto. Quello più simile è ‘Partitura vocale
SATB e riduzione automatica per pianoforte’, ma abbiamo bisogno di modificare l’assetto e
aggiungere un accompagnamento per pianoforte che non sia derivato automaticamente dalle
parti vocali. Le variabili che si riferiscono alla musica e alle parole per le parti vocali vanno
bene, ma dovremo aggiungere le variabili per la riduzione per pianoforte.
L’ordine con cui i contesti appaiono nel ChoirStaff del modello non corrisponde all’ordine della
partitura vocale mostrata sopra. Dobbiamo risistemarli in modo che ci siano quattro righi con le
parole scritte direttamente sotto le note di ogni parte. Tutte le voci devono essere \voiceOne, che
è l’impostazione predefinita, quindi i comandi \voiceXXX devono essere tolti. Dobbiamo anche
specificare la chiave di tenore per i tenori. Il modo in cui il testo viene specificato nel modello
non è stato ancora esaminato quindi dovremo usare un metodo con cui siamo già familiari.
Aggiungeremo anche i nomi per ogni rigo.
In questo modo il nostro ChoirStaff avrà questo aspetto:
\new ChoirStaff <<
\new Staff = "sopranos" <<
\set Staff.instrumentName = #"Soprano"
\new Voice = "sopranos" {
Capitolo 3: Concetti fondamentali 75
\global
\sopranoMusic
}
>>
\new Lyrics \lyricsto "sopranos" {
\sopranoWords
}
\new Staff = "altos" <<
\set Staff.instrumentName = #"Alto"
\new Voice = "altos" {
\global
\altoMusic
}
>>
\new Lyrics \lyricsto "altos" {
\altoWords
}
\new Staff = "tenors" <<
\set Staff.instrumentName = #"Tenor"
\new Voice = "tenors" {
\global
\tenorMusic
}
>>
\new Lyrics \lyricsto "tenors" {
\tenorWords
}
\new Staff = "basses" <<
\set Staff.instrumentName = #"Bass"
\new Voice = "basses" {
\global
\bassMusic
}
>>
\new Lyrics \lyricsto "basses" {
\bassWords
}
>> % end ChoirStaff
Poi dobbiamo lavorare sulla parte per pianoforte. Questo è facile - basta prendere la parte
per pianoforte dal modello ‘Pianoforte solista’:
\new PianoStaff <<
\set PianoStaff.instrumentName = #"Piano "
\new Staff = "upper" \upper
\new Staff = "lower" \lower
>>
e aggiungere le definizioni delle variabili upper e lower.
ChoirStaff e PianoStaff devono essere uniti attraverso parentesi angolari, perché vogliamo
che siano impilati uno sopra l’altro:
<< % combine ChoirStaff and PianoStaff one above the other
\new ChoirStaff <<
\new Staff = "sopranos" <<
Capitolo 3: Concetti fondamentali 76
\score {
<< % combine ChoirStaff and PianoStaff in parallel
\new ChoirStaff <<
\new Staff = "sopranos" <<
\set Staff.instrumentName = #"Soprano"
\new Voice = "sopranos" {
\global
\sopranoMusic
}
>>
\new Lyrics \lyricsto "sopranos" {
\sopranoWords
}
\new Staff = "altos" <<
\set Staff.instrumentName = #"Alto"
\new Voice = "altos" {
\global
Capitolo 3: Concetti fondamentali 78
\altoMusic
}
>>
\new Lyrics \lyricsto "altos" {
\altoWords
}
\new Staff = "tenors" <<
\set Staff.instrumentName = #"Tenor"
\new Voice = "tenors" {
\global
\tenorMusic
}
>>
\new Lyrics \lyricsto "tenors" {
\tenorWords
}
\new Staff = "basses" <<
\set Staff.instrumentName = #"Bass"
\new Voice = "basses" {
\global
\bassMusic
}
>>
\new Lyrics \lyricsto "basses" {
\bassWords
}
>> % end ChoirStaff
ü ü ü ü ü
Soprano
Wor thy is the lamb that was slain
Alto ü ü ü ü ü
Wor thy is the lamb that was slain
ü ü ü ü
Tenor ü
Wor thy is the lamb that was slain
ü ü ü
8
ü ü
Bass
Wor thy is the lamb that was slain
ü ü
üü üü üü üü üü
ü ü ü
¼
ü ü ü üü
Piano
ü ü
ü ü ü ü ü
3.4.3 Scrivere una partitura da zero
Dopo aver acquisito un po’ di confidenza nella scrittura del codice LilyPond, potresti scoprire
che è più facile costruire una partitura da zero piuttosto che modificare uno dei modelli. In
questo modo puoi anche sviluppare il tuo stile per adattarlo al tipo di musica che vuoi. Come
esempio, vediamo come mettere insieme la partitura di un preludio per organo.
Cominciamo con una sezione d’intestazione. Qui va il titolo, il nome del compositore, etc, poi
vengono le varie definizioni, e infine il blocco della partitura. Spieghiamo questi prima a grandi
linee e in seguito aggiungeremo i dettagli.
Useremo le prime due battute del preludio di Bach basato su Jesu, meine Freude, che è
scritto per organo con due manuali e pedaliera. Puoi vedere queste due battute in fondo a
questa sezione. La parte per il manuale superiore ha due voci, quella inferiore e la pedaliera
ne hanno una. Abbiamo quindi bisogno di quattro definizioni musicali e di una definizione per
stabilire il tempo e la tonalità:
\version "2.18.2"
\header {
title = "Jesu, meine Freude"
composer = "J S Bach"
}
keyTime = { \key c \minor \time 4/4 }
ManualOneVoiceOneMusic = { s1 }
ManualOneVoiceTwoMusic = { s1 }
ManualTwoMusic = { s1 }
PedalOrganMusic = { s1 }
\score {
}
Per ora abbiamo usato soltanto una nota spaziatrice, s1, invece di musica vera e propria. La
aggiungeremo in seguito.
Ora vediamo cosa dovrebbe andare nel blocco della partitura. Mostriamo soltanto la struttura
del pentagramma che vogliamo. La musica per organo di solito viene scritta su tre righi, uno per
Capitolo 3: Concetti fondamentali 80
ogni mano e uno per i pedali. I righi della tastiera dovrebbero essere raggruppati insieme con
una graffa, dunque dobbiamo usare PianoStaff per loro. La parte del primo manuale ha bisogno
di due voci mentre la parte per il secondo manuale di una soltanto.
\new PianoStaff <<
\new Staff = "ManualOne" <<
\new Voice {
\ManualOneVoiceOneMusic
}
\new Voice {
\ManualOneVoiceTwoMusic
}
>> % end ManualOne Staff context
\new Staff = "ManualTwo" <<
\new Voice {
\ManualTwoMusic
}
>> % end ManualTwo Staff context
>> % end PianoStaff context
Poi dobbiamo aggiungere un rigo per i pedali. Questo va sotto il PianoStaff, ma deve svolgersi
simultaneamente a quest’ultimo, quindi abbiamo bisogno delle parentesi angolari intorno ai due
gruppi. Altrimenti, verrà generato un errore nel file di log. È un errore comune che farai prima
o poi! Prova a copiare l’esempio finale alla fine di questa sezione, togli le parentesi angolari, e
compilalo per vedere quali errori genera.
<< % PianoStaff and Pedal Staff must be simultaneous
\new PianoStaff <<
\new Staff = "ManualOne" <<
\new Voice {
\ManualOneVoiceOneMusic
}
\new Voice {
\ManualOneVoiceTwoMusic
}
>> % end ManualOne Staff context
\new Staff = "ManualTwo" <<
\new Voice {
\ManualTwoMusic
}
>> % end ManualTwo Staff context
>> % end PianoStaff context
\new Staff = "PedalOrgan" <<
\new Voice {
\PedalOrganMusic
}
>>
>>
Non è necessario usare il costrutto simultaneo << ... >> per il rigo del secondo manuale
e per quello della pedaliera, poiché contengono solo una espressione musicale, ma non è male
usarlo comunque; usare sempre le parentesi angolari dopo \new Staff è una buona abitudine
da coltivare nel caso ci sia più di una voce. Per le Voci, è vero l’opposto: queste devono essere
seguite regolarmente da parentesi graffe { ... } nel caso in cui la musica sia composta da diverse
variabili che devono essere eseguite consecutivamente.
Capitolo 3: Concetti fondamentali 81
\score {
<< % PianoStaff and Pedal Staff must be simultaneous
\new PianoStaff <<
\new Staff = "ManualOne" <<
\keyTime % set key and time signature
\clef "treble"
\new Voice {
\voiceOne
\ManualOneVoiceOneMusic
}
\new Voice {
\voiceTwo
\ManualOneVoiceTwoMusic
}
>> % end ManualOne Staff context
\new Staff = "ManualTwo" <<
\keyTime
\clef "bass"
\new Voice {
\ManualTwoMusic
}
>> % end ManualTwo Staff context
>> % end PianoStaff context
\new Staff = "PedalOrgan" <<
\keyTime
\clef "bass"
\new Voice {
\PedalOrganMusic
}
>> % end PedalOrgan Staff
>>
} % end Score context
L’aspetto dei righi dell’organo mostrati sopra è quasi perfetto; tuttavia c’è un piccolo difetto
che non è visibile se si guarda un sistema singolo soltanto: La distanza tra il rigo della ped-
aliera e il rigo della mano sinistra dovrebbe essere all’incirca la stessa distanza tra il rigo della
mano destra e quello della mano sinistra. In particolare, l’allungabilità dei righi in un contesto
PianoStaff è limitata (in modo che la distanza tra i righi della mano destra e sinistra non possa
diventare eccessiva), e il rigo della pedaliera dovrebbe comportarsi allo stesso modo.
L’allungabilità dei righi può essere controllata con la proprietà staff-staff-spacing dell’
‘oggetto grafico’ VerticalAxisGroup (gli oggetti grafici vengono comunemente chiamati ‘grob’
nella documentazione di lilypond) – non preoccuparti dei dettagli in questo momento; in seguito
verrà fornita una spiegazione approfondita. I curiosi possono dare un’occhiata a Sezione “Over-
view of modifying properties” in Guida alla Notazione. In questo caso, vogliamo modificare
soltanto la sottoproprietà allungabilità. Di nuovo, chi è curioso può trovare i valori predefini-
ti per la proprietà staff-staff-spacing nel file ‘scm/define-grobs.scm’ guardando la definizione
Capitolo 3: Concetti fondamentali 82
del grob VerticalAxisGroup. Il valore dell’ allungabilità viene preso dalla definizione del
contesto PianoStaff (nel file ‘ly/engraver-init.ly’) cosı̀ che i valori siano identici.
\score {
<< % PianoStaff e Pedal Staff devono essere simultanei
\new PianoStaff <<
\new Staff = "ManualOne" <<
\keyTime % imposta l'armatura di chiave e il tempo
\clef "treble"
\new Voice {
\voiceOne
\ManualOneVoiceOneMusic
}
\new Voice {
\voiceTwo
\ManualOneVoiceTwoMusic
}
>> % fine del contesto ManualOne Staff
\new Staff = "ManualTwo" \with {
\override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
} <<
\keyTime
\clef "bass"
\new Voice {
\ManualTwoMusic
}
>> % fine del contesto ManualTwo Staff
>> % fine del contesto PianoStaff
\new Staff = "PedalOrgan" <<
\keyTime
\clef "bass"
\new Voice {
\PedalOrganMusic
}
>> % fine di PedalOrgan Staff
>>
} % fine del contesto Score
Questo completa la struttura. Qualsiasi musica per organo a tre righi avrà una struttura
simile, sebbene il numero delle voci possa variare. Tutto ciò che resta da fare ora è aggiungere
la musica, e combinare tutte le parti insieme.
\version "2.18.2"
\header {
title = "Jesu, meine Freude"
composer = "J S Bach"
}
keyTime = { \key c \minor \time 4/4 }
ManualOneVoiceOneMusic = \relative g' {
g4 g f ees |
d2 c |
}
ManualOneVoiceTwoMusic = \relative c' {
ees16 d ees8~ ees16 f ees d c8 d~ d c~ |
Capitolo 3: Concetti fondamentali 83
c8 c4 b8 c8. g16 c b c d |
}
ManualTwoMusic = \relative c' {
c16 b c8~ c16 b c g a8 g~ g16 g aes ees |
f16 ees f d g aes g f ees d ees8~ ees16 f ees d |
}
PedalOrganMusic = \relative c {
r8 c16 d ees d ees8~ ees16 a, b g c b c8 |
r16 g ees f g f g8 c,2 |
}
\score {
<< % PianoStaff and Pedal Staff must be simultaneous
\new PianoStaff <<
\new Staff = "ManualOne" <<
\keyTime % set key and time signature
\clef "treble"
\new Voice {
\voiceOne
\ManualOneVoiceOneMusic
}
\new Voice {
\voiceTwo
\ManualOneVoiceTwoMusic
}
>> % end ManualOne Staff context
\new Staff = "ManualTwo" \with {
\override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
} <<
\keyTime
\clef "bass"
\new Voice {
\ManualTwoMusic
}
>> % end ManualTwo Staff context
>> % end PianoStaff context
\new Staff = "PedalOrgan" <<
\keyTime
\clef "bass"
\new Voice {
\PedalOrganMusic
}
>> % end PedalOrgan Staff context
>>
} % end Score context
üü ü ü üü ü ü ü ü ü üü ü
Z
ü
ü ü ü ü ü ü ü ü ü ü ü ü ü
üüüüü ü ü üü üü ü
2
ü ü üüüü
C
ü ü ü
ü
ü ü ü ü ü ü ü ü ü ü üüüü
üüüüüü
Vedi anche
Glossario musicale: Sezione “sistema” in Glossario Musicale.
I
I I I
Potresti anche essere accorto che questo può essere utile nella musica minimalista:
fragmentA = \relative c'' { a4 a8. b16 }
fragmentB = \relative c'' { a8. gis16 ees4 }
\score {
{
\violin
}
Capitolo 3: Concetti fondamentali 85
ò
Tuttavia, puoi usare queste variabili (note anche come macro, o comandi definiti dall’utente)
anche per le modifiche manuali:
dolce = \markup { \italic \bold dolce }
\score {
{
\violin
}
\layout { ragged-right = ##t }
}
hi there!
..
. .
.
dolce
f 2nd p
Chiaramente queste variabili sono utili per ridurre la quantità di testo da scrivere. Ma vale
la pena tenerle in considerazione anche se le usi una volta sola – perché riducono la complessità.
Vediamo l’esempio precedente senza alcuna variabile. È molto difficile da leggere, soprattutto
l’ultima linea.
violin = \relative c'' {
\repeat volta 2 {
c4._\markup { \italic \bold dolce } b8 a8 g a b |
\once \override TextScript.padding = #5.0
c4.^"hi there!" d8 e' f g d |
c,4.\markup {
\dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p
}
b8 c4 c-. |
}
Capitolo 3: Concetti fondamentali 86
}
Finora abbiamo visto la sostituzione statica – quando LilyPond vede \padText, lo sostituisce
con quel che noi abbiamo definito che sia (ovvero tutto ciò che sta a destra di padtext=).
LilyPond può gestire anche la sostituzione non statica (la puoi immaginare come una fun-
zione).
padText =
#(define-music-function
(parser location padding)
(number?)
#{
\once \override TextScript.padding = #padding
#})
\relative c''' {
c4^"piu mosso" b a b |
\padText #1.8
c4^"piu mosso" d e f |
\padText #2.6
c4^"piu mosso" fis a g |
}
å å å å å å
piu mosso
piu mosso
å å å å å
piu mosso
å
L’uso di variabili è anche un buon modo per ridurre il lavoro quando la sintassi di input di
LilyPond cambia (vedi Sezione “Aggiornare i file con convert-ly” in Uso del Programma). Se si
ha un’unica definizione (come \dolce) per tutti i file di input (vedi hundefinedi [Style sheets],
pagina hundefinedi), allora se la sintassi cambia bisogna aggiornare soltanto la singola definizione
\dolce, invece di dover modificare tutti i file ‘.ly’.
\header {
instrument = "Horn in F"
}
Capitolo 3: Concetti fondamentali 87
{
\transpose f c' \hornNotes
}
La linea
\include "horn-music.ly"
sostituisce i contenuti di ‘horn-music.ly’ in quella posizione del file, quindi hornNotes è definito
dopo. Il comando \transpose f c' indica che l’argomento, ovvero \hornNotes, deve essere
trasposto di una quinta ascendente. La tonalità f è indicata dalla nota c', che corrisponde
all’accordatura di un normale corno francese in Fa. La trasposizione può essere vista nel seguente
output
42 å å å å å å
Nei brani di insieme, una delle voci non suona per molte misure. Questo viene indicato da una
pausa speciale, la pausa multi-misura. Si inserisce con una R maiuscola seguita da una durata
(1 per una semibreve, 2 per una minima, etc.). Moltiplicando la durata, si possono costruire
pause più lunghe. Ad esempio, questa pausa prende 3 misure in un tempo di 2/4
R2*3
Quando la parte viene stampata, le pause multiple devono essere condensate. Si può fare
impostando una variabile run-time
\set Score.skipBars = ##t
Questo comando imposta la proprietà skipBars nel contesto Score su vero (##t). Aggiungendo
la pausa e questa opzione alla musica precedente, si arriva al seguente risultato
3
2
4 å å å å å
å
Lo spartito si forma combinando tutta la musica insieme. Assumendo che l’altra voce si trovi
in bassoonNotes nel file ‘bassoon-music.ly’, lo spartito sarà
\include "bassoon-music.ly"
\include "horn-music.ly"
<<
\new Staff \hornNotes
\new Staff \bassoonNotes
>>
ovvero
42
ò
2 ò ò
4
Capitolo 4: Modifica dell’output 88
4 Modifica dell’output
Questo capitolo spiega come modificare l’output. LilyPond è estremamente configurabile; prati-
camente si può modificare qualsiasi elemento dell’output.
con un nome che finisce con interface. In totale ci sono più di 100 interfacce. Vedremo in
seguito perché questo sia di interesse e di utilità per l’utente.
Questi sono dunque i termini principali riguardanti gli oggetti che useremo in questo capitolo.
‘modalità Scheme’, che viene invocata inserendo ‘#’ prima del valore. Sebbene i valori possano
avere talvolta una valida rappresentazione nella modalità musicale di LilyPond, per coerenza
questo manuale li farà sempre precedere da ‘#’. Per maggiori informazioni sulla modalità Scheme,
si veda Sezione “LilyPond Scheme syntax” in Estendere.
\override è il comando più usato nelle modifiche e quasi tutto il resto del capitolo ha lo
scopo di mostrare alcuni esempi di utilizzo. Ecco un semplice esempio che mostra come cambiare
il colore della testa di nota:
c4 d
\override NoteHead.color = #red
e4 f |
\override NoteHead.color = #green
g4 a b c |
å å å å å å
å å
Il comando \revert
Quando viene sovrascritta, la proprietà mantiene il suo nuovo valore finché non viene sovrascritta
di nuovo o non si incontra un comando \revert. Il comando \revert fa sı̀ che il valore della
proprietà sia ripristinato al suo valore predefinito. Attenzione: non al suo valore precedente (nel
caso siano stati inseriti vari comandi \override). Impiega la seguente sintassi:
\revert Contesto.OggettoDiFormmattazione.proprietà-formattazione
Anche in questo caso, come per il comando \override, Contesto di solito non è necessario e
verrà omesso in molti degli esempi seguenti. In questo esempio ripristiniamo il colore della testa
delle ultime due note al valore predefinito:
c4 d
\override NoteHead.color = #red
e4 f |
\override NoteHead.color = #green
g4 a
\revert NoteHead.color
b4 c |
å å å å å å
å å
Il prefisso \once
Sia il comando \override che il comando \set possono essere preceduti da \once. Questo fa
sı̀ che il successivo comando \override o \set sia effettivo solo in relazione a quel determinato
momento musicale, prima che la proprietà sia ripristinata al suo valore precedente (che può
essere diverso da quello predefinito se un altro \override è ancora attivo). Usando lo stesso
esempio, possiamo cambiare il colore di una singola nota in questo modo:
c4 d
\override NoteHead.color = #red
e4 f |
\once \override NoteHead.color = #green
g4 a
\revert NoteHead.color
Capitolo 4: Modifica dell’output 91
b c |
å å å å å å
å å
Il prefisso \once può essere usato anche di fronte a molti comandi predefiniti per limitare il
loro effetto a un momento musicale:
c4 d
\once \stemDown
e4 f |
g4 a
\once \hideNotes
b c |
å å
å å å å å
Tuttavia, i comandi predefiniti che hanno la forma \...Neutral, \...Off e \un... usano
internamente \revert invece di \override dunque inserire \once prima di questi comandi non
produce alcun effetto.
Il comando \overrideProperty
Esiste un’altra forma di comando di sovrascrittura, \overrideProperty, che si rende neces-
sario raramente. Lo menzioniamo qui per completezza, ma per approfondire l’argomento si veda
Sezione “Difficult tweaks” in Estendere.
Il comando \tweak
L’ultimo comando di modifica a disposizione è \tweak. Si usa quando vari oggetti compaiono
nello stesso momento musicale, ma si vogliono modificare soltanto le proprietà di alcuni oggetti,
come ad esempio una singola nota all’interno di un accordo. Se si usa \override la modifica ha
effetto su tutte le note di un accordo, mentre \tweak ha effetto solo sul singolo elemento che
segue.
Per esempio, supponiamo di voler modificare la dimensione della testa della nota centrale (il
Mi) in un accordo di Do maggiore. Vediamo prima cosa succede se si usa \once \override:
<c e g>4
\once \override NoteHead.font-size = #-3
<c e g>4
<c e g>4
II III
I II
I
Come si vede, la sovrascrittura riguarda tutte le teste di nota dell’accordo. Ciò è dovuto al
fatto che tutte le note di un accordo si trovano nello stesso momento musicale e l’azione di \once
consiste nell’applicare la sovrascrittura a tutti gli oggetti di formattazione del tipo specificato
che si trovano nello stesso momento musicale del comando \override stesso.
Capitolo 4: Modifica dellfloutput 92
III III
Si noti che la sintassi di \tweak è diversa da quella di \override. Il contesto non deve
essere specificato; anzi, se lo fosse verrebbe generato un errore. Sia il contesto che l’oggetto di
formattazione sono sottintesi dall’elemento che segue nel flusso di input. Nota anche che non ci
devono essere segni di uguale (=). Dunque la forma semplice del comando \tweak è
\tweak proprietà-formattazione #valore
Il comando \tweak serve anche a modificare soltanto una di una serie di articolazioni:
a4^"Black"
-\tweak color #red ^"Red"
-\tweak color #green _"Green"
Red
Black
x
Green
Nota che il comando \tweak deve essere preceduto da un segno di articolazione, perché la stessa
espressione modificata deve essere applicata come articolazione. In caso di più sovrascritture della
direzione (^ o _), prevale la sovrascrittura posizionata più a sinistra, perché viene applicata per
ultima.
Alcuni oggetti, come gambi e alterazioni, vengono creati dopo, non direttamente dall’evento
che segue. È comunque possibile usare \tweak con questi oggetti creati indirettamente se si
indica esplicitamente l’oggetto di formattazione, purché LilyPond riesca a seguire la sua origine
fino all’evento originale:
<\tweak Accidental.color #red cis4
\tweak Accidental.color #green es
g>
£
Questa forma estesa del comando \tweak può essere descritta cosı̀
\tweak oggetto-formattazione.proprietà-formattazione valore
Il comando \tweak è necessario anche quando si vuole cambiare l’aspetto di uno di una serie
di gruppi irregolari annidati che iniziano nello stesso momento musicale. Nell’esempio seguente,
la prima lunga parentesi del gruppo irregolare e la prima delle tre brevi parentesi iniziano
nello stesso momento musicale, quindi qualsiasi comando \override produrrebbe degli effetti
su entrambi. In questo esempio, si usa \tweak per distinguerli. Il primo comando \tweak indica
Capitolo 4: Modifica dellfloutput 93
che la lunga parentesi del gruppo irregolare deve essere posizionata sopra le note e il secondo
indica che il numero del primo gruppo irregolare deve essere in rosso.
\tweak direction #up
\tuplet 3/4 {
\tweak color #red
\tuplet 3/2 { c8[ c c] }
\tuplet 3/2 { c8[ c c] }
\tuplet 3/2 { c8[ c c] }
}
ååååååååå
3
3 3 3
Se i gruppi irregolari annidati non iniziano nello stesso momento, il loro aspetto può essere
modificato come di consueto con i comandi \override:
\tuplet 3/2 { c8[ c c] }
\once \override TupletNumber.text = #tuplet-number::calc-fraction-text
\tuplet 3/2 {
c8[ c]
c8[ c]
\once \override TupletNumber.transparent = ##t
\tuplet 3/2 { c8[ c c] }
\tuplet 3/2 { c8[ c c] }
}
3:2
3
å å å å å å å åååååå
3
Vedi anche
Guida alla Notazione: Sezione “The tweak command” in Guida alla Notazione.
{
\key es \major
\time 6/8
{
r4 bes8 bes[( g]) g |
g8[( es]) es d[( f]) as |
as8 g
}
\addlyrics {
The man who | feels love's sweet e -- | mo -- tion
}
}
86 å å å å å å å å å å å å
The man who feels love's sweet e mo tion
Supponiamo ora che si vogliano rendere un po’ più spesse le legature di portamento. È possi-
bile? La legatura di portamento è certamente un oggetto di formattazione, dunque la domanda
è: ‘Esiste una proprietà che appartiene a una legatura di portamento in grado di controllare lo
spessore?’ Per rispondere a questa domanda dobbiamo guardare nella guida al Funzionamento
interno.
Puoi trovare la guida nella versione di LilyPond che stai usando sul sito di LilyPond: http://
lilypond.org. Vai alla pagina della documentazione e clicca sul link alla guida del Funzion-
amento interno. Per poter seguire questo manuale dovresti usare la versione HTML standard,
non quella in un’unica grande pagina né il PDF. Nei prossimi paragrafi ti servirà per seguire gli
esempi che faremo.
Sotto il titolo vedrai cinque link. Seleziona il link al Backend, dove si trovano le informazioni
sugli oggetti di formattazione (layout objects). Poi sotto il titolo Backend, seleziona il link a All
layout objects. La pagina che compare elenca tutti gli oggetti di formattazione usati nella tua
versione di LilyPond, in ordine alfabetico. Seleziona il link a Slur (legatura di portamento) e
verranno elencate le sue proprietà.
Si può trovare questa pagina anche dalla Guida alla notazione. In una delle pagine che tratta
le legature di portamento potrai trovare un link alla Guida al funzionamento interno. Il link ti
porterà direttamente a questa pagina, ma se hai un’idea di quale sia l’oggetto di formattazione da
modificare, è più semplice andare direttamente nella guida del Funzionamento interno e cercare
lı̀.
La pagina sulla legatura di portamento (Slur ) ci dice per prima cosa che gli oggetti Slur
sono creati dall’incisore Slur engraver. Poi elenca le impostazioni standard. Scorrile cercando la
proprietà che potrebbe controllare lo spessore delle legature di portamento; dovresti trovare
thickness (number)
1.2
Line thickness, generally measured in line-thickness
Sembra che sia quel che stiamo cercando. Ci dice che il valore di thickness (spessore) è un
semplice numero, che il valore predefinito è 1.2 e che le unità si trovano in un’altra proprietà
chiamata line-thickness.
Come abbiamo detto prima, ci sono poche spiegazioni nella guida al Funzionamento interno,
tuttavia abbiamo già informazioni sufficienti per cercare di cambiare lo spessore delle legature
di portamento. Vediamo che il nome dell’oggetto di formattazione è Slur, che il nome della
Capitolo 4: Modifica dell’output 95
proprietà da modificare è thickness e che il nuovo valore dovrà essere un numero un po’ più
grande di 1.2 se vogliamo rendere più spesse le legature.
Ora possiamo costruire il comando \override sostituendo i valori che abbiamo trovato per i
nomi e omettendo il contesto. Inizialmente usiamo un valore molto grande per lo spessore, per
essere sicuri che il comando funzioni:
\override Slur.thickness = #5.0
Non dimenticare il # che precede il nuovo valore!
L’ultima domanda è: ‘dove va messo questo comando?’ Finché non sei sicuro e stai ancora
imparando, la risposta migliore è: ‘dentro la musica, prima della prima legatura di portamento
e accanto ad essa.’ Facciamolo:
{
\key es \major
\time 6/8
{
% Increase thickness of all following slurs from 1.2 to 5.0
\override Slur.thickness = #5.0
r4 bes8 bes[( g]) g |
g8[( es]) es d[( f]) as |
as8 g
}
\addlyrics {
The man who | feels love's sweet e -- | mo -- tion
}
}
6 å å
8 å å å å å å å å å å
The man who feels love's sweet e mo tion
e vediamo che la legatura di portamento è davvero più grossa.
Questi sono i fondamenti per costruire i comandi \override. Incontreremo delle situazioni
più complesse nelle sezioni successive, ma ora possiedi già tutte le conoscenze di base che ti
permetteranno di costruire i tuoi comandi. Ti manca solo un po’ di pratica, che potrai fare
grazie ai prossimi esempi.
Trovare il contesto
E se avessimo bisogno di specificare il contesto? Quale dovrebbe essere? Potremmo immaginare
che le legature di portamento si trovino nel contesto Voice, dato che sono ovviamente collegate
strettamente alle singole voci, ma possiamo esserne sicuri? Per scoprirlo, vai in cima alla pagina
del Funzionamento Interno relativa a Slur, dove dice ‘Slur objects are created by: Slur en-
graver’. Significa che le legature di portamento sono create nel contesto in cui si trova l’incisore
Slur_engraver. Segui il link alla pagina Slur_engraver. In fondo dice che lo Slur_engraver
fa parte di vari contesti Voice, incluso il contesto standard della voce, Voice. Dunque la nostra
supposizione era corretta. E dato che Voice è uno dei contesti che si trovano al livello più bas-
so, come è sottinteso senza ambiguità dal fatto che stiamo inserendo delle note, in questo caso
possiamo ometterlo.
do \once. Se posto immediatamente prima di \override fa sı̀ che questo modifichi soltanto la
legatura di portamento che inizia sulla nota immediatamente seguente. Se la nota immediata-
mente seguente non inizia la legatura, il comando non ha alcun effetto – non è ricordato finché
non si incontra una legatura di portamento, ma viene direttamente scartato. Quindi il comando
con \once deve essere riposizionato nel modo seguente:
{
\key es \major
\time 6/8
{
r4 bes8
% Aumenta lo spessore solo della legatura che segue
\once \override Slur.thickness = #5.0
bes8[( g]) g |
g8[( es]) es d[( f]) as |
as8 g
}
\addlyrics {
The man who | feels love's sweet e -- | mo -- tion
}
}
6 å å
8 å å å å å å å å å å
The man who feels love's sweet e mo tion
Ripristinare
E se volessimo che soltanto le prime due legature di portamento fossero più spesse? Potremmo
usare due comandi, ciascuno preceduto da \once, messo immediatamente prima di ognuna delle
note da cui iniziano le legature:
{
\key es \major
\time 6/8
{
r4 bes8
% Aumenta lo spessore solo della legatura che segue
\once \override Slur.thickness = #5.0
bes[( g]) g |
% Aumenta lo spessore solo della legatura che segue
\once \override Slur.thickness = #5.0
g8[( es]) es d[( f]) as |
as8 g
}
\addlyrics {
The man who | feels love's sweet e -- | mo -- tion
}
}
Capitolo 4: Modifica dell’output 97
86 å å å å å å å å å å å å
The man who feels love's sweet e mo tion
oppure potremmo omettere il comando \once e usare il comando \revert per far sı̀ che la
proprietà thickness ritorni al valore predefinito dopo la seconda legatura:
{
\key es \major
\time 6/8
{
r4 bes8
% Aumenta lo spessore di tutte le legature di portamento che seguono da 1.2 a 5.0
\override Slur.thickness = #5.0
bes[( g]) g |
g8[( es]) es
% Ripristina lo spessore di tutte le legature di portamento che seguono al valore p
\revert Slur.thickness
d8[( f]) as |
as8 g
}
\addlyrics {
The man who | feels love's sweet e -- | mo -- tion
}
}
86 å å å å å å å å å å å å
The man who feels love's sweet e mo tion
Il comando \revert serve a riportare qualsiasi proprietà modificata con \override al suo valore
predefinito. Puoi usare qualsiasi metodo si adatti meglio a quello che vuoi fare.
Si conclude l’introduzione alla guida al Funzionamento interno e ai metodi di base delle mod-
ifiche. Nelle sezioni successive di questo capitolo seguiranno vari esempi, in parte per presentar-
ti ulteriori caratteristiche della guida al Funzionamento interno e in parte per farti esercitare
nell’estrarre informazioni da esso. Questi esempi conterranno sempre meno consigli e spiegazioni.
Vediamo tutte le proprietà configurabili dall’utente che controllano i tipi di carattere, com-
presa font-shape(symbol), dove symbol può essere impostato su upright, italic o caps.
Puoi notare che lı̀ sono elencate anche font-series e font-size. Ti potresti chiedere:
perché le proprietà comuni dei tipi di carattere font-series e font-size fanno parte sia
dell’oggetto LyricText sia dell’interfaccia font-interface mentre font-shape è presente solo
nell’interfaccia? Ciò è dovuto al fatto che i valori globali predefiniti di font-series e font-size
cambiano quando viene creato un oggetto LyricText, mentre i valori di font-shape non cam-
biano. Gli elementi in LyricText indicano quali sono i valori per queste due proprietà che
si applicano a LyricText. Altri oggetti che supportano font-interface imposteranno queste
proprietà in modo diverso quando vengono creati.
Vediamo se ora riusciamo a costruire il comando \override per rendere il testo corsivo.
L’oggetto è LyricText, la proprietà è font-shape e il valore è italic. Come in precedenza,
ometteremo il contesto.
Per inciso, è importante notare che alcune proprietà prendono come valori dei simboli, ad
esempio italic; in questo caso i valori devono essere preceduti da un apostrofo, '. I simboli ven-
gono letti internamente da LilyPond. Nota che sono diversi dalle stringhe di testo arbitrarie, che
appaiono nella forma "una stringa di testo"; maggiori informazioni sui simboli e le stringhe
si trovano in Sezione “Scheme tutorial” in Estendere.
Quindi il comando \override che rende il testo corsivo è:
\override LyricText.font-shape = #'italic
Deve essere posizionato proprio di fronte al testo che vogliamo modificare, in questo modo:
{
\key es \major
\time 6/8
{
r4 bes8 bes[( g]) g |
g8[( es]) es d[( f]) as |
as8 g
}
\addlyrics {
\override LyricText.font-shape = #'italic
The man who | feels love's sweet e -- | mo -- tion
}
}
86 ü ü ü ü ü ü ü ü ü ü ü ü
The man who feels love's sweet e mo tion
Vedi anche
Estendere: Sezione “Scheme tutorial” in Estendere.
Capitolo 4: Modifica dell’output 99
Vedi anche
Estendere: Sezione “Scheme tutorial” in Estendere.
La proprietà stencil
Questa proprietà controlla l’aspetto delle stanghette specificando il simbolo (glifo) da usare.
Come nel caso di molte altre proprietà, si può far in modo che non usi nessun simbolo impostando
il suo valore su #f. Proviamo, come prima, omettendo il contesto implicito, Voice:
{
\time 12/16
\override BarLine.stencil = ##f
c4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
12 å å å ååå å å å å å å
16 å
Le stanghette sono ancora visibili. Cosa abbiamo sbagliato? Torna alla guida del Funziona-
mento interno e scorri di nuovo la pagina che elenca le proprietà di BarLine. In cima alla pagina
dice “Barline objects are created by: Bar engraver”. Vai alla pagina Bar_engraver. In fondo
si trova una lista dei contesti nel quale opera l’incisore della battuta. Tutti questi sono di tipo
Staff, dunque la ragione per cui il comando \override precedente non funziona è che Barline
non si trova nel contesto predefinito, Voice. Se il contesto indicato non è corretto, il comando
non funziona. Non viene generato alcun messaggio di errore e non viene registrato niente nel file
di log. Proviamo a correggerlo specificando il contesto giusto:
{
\time 12/16
\override Staff.BarLine.stencil = ##f
c4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
Capitolo 4: Modifica dell’output 101
12 å å å ååå å åå å å å å
16
Ora le stanghette sono sparite. Impostare la proprietà stencil su #f è un’operazione talmente
frequente che è stata creata una scorciatoia, \omit:
{
\time 12/16
\omit Staff.BarLine
c4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
12 å å å ååå å åå å å å å
16
Si noti però che impostare la proprietà stencil su #f causerà degli errori nel caso in cui
le dimensioni dell’oggetto siano necessarie per elaborarlo correttamente. Ad esempio, si creano
degli errori se la proprietà stencil dell’oggetto NoteHead è impostata su #f. In questo caso
è possibile usare invece la funzione point-stencil, che trasforma lo stencil in un oggetto a
dimensione zero:
{
c4 c
\once \override NoteHead.stencil = #point-stencil
c4 c
}
I I I
La proprietà break-visibility
Nella pagina di BarLine della guida al Funzionamento interno vediamo che la proprietà
break-visibility richiede un vettore di tre valori booleani. Questi valori controllano rispetti-
vamente se le stanghette debbano comparire alla fine, in mezzo o all’inizio dei righi. Dato che
nel nostro esempio vogliamo sopprimere tutte le stanghette, il valore che ci serve è #(#f #f #f)
(equivalente al nome all-invisible). Proviamo, ricordando di includere il contesto Staff. Si
noti che prima della parentesi di apertura abbiamo ##. Un # è necessario perché introduce un
vettore, mentre il primo # deve precedere, come sempre, il valore del comando \override.
{
\time 12/16
\override Staff.BarLine.break-visibility = ##(#f #f #f)
c4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
12 å å å ååå å åå å å åå
16
E vediamo che anche questo comando elimina tutte le stanghette.
Capitolo 4: Modifica dell’output 102
La proprietà transparent
Nelle proprietà specificate nella pagina grob-interface della guida al Funzionamento inter-
no vediamo che la proprietà transparent è un booleano. Quindi deve essere impostata su #t
(true, ’vero’) per rendere trasparente il grob. Nel prossimo esempio rendiamo trasparente
il segno di tempo invece delle stanghette. Per farlo dobbiamo trovare il nome del grob del
segno di tempo (in inglese time signature). Torniamo alla pagina ‘All layout objects’ per sco-
prire quali sono le proprietà dell’oggetto di formattazione TimeSignature. Tale grob è generato
dall’incisore Time_signature_engraver, che opera nel contesto Staff e supporta l’interfaccia
grob-interface. Quindi il comando che rende trasparente l’indicazione di tempo è:
{
\time 12/16
\override Staff.TimeSignature.transparent = ##t
c4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
å å å ååå å åå å å å å
Impostare la proprietà transparent è un’operazione piuttosto frequente, perciò è stata creata
la scorciatoia \hide:
{
\time 12/16
\hide Staff.TimeSignature
c4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
å å å ååå å åå å å å å
L’indicazione di tempo è scomparsa; è rimasto però uno spazio al suo posto. Magari questo è
quello che si desidera, ad esempio per creare un esercizio in cui uno studente deve riempire degli
spazi vuoti. Ma in altre circostanze ciò può non essere gradito. Per eliminare lo spazio vuoto
bisogna impostare la proprietà stencil su #f:
{
\time 12/16
\omit Staff.TimeSignature
c4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
å å å ååå å å å å å å
å
la differenza è ovvia: se si imposta lo stencil su #f (possibilmente con \omit) l’oggetto scompare
del tutto; se si rende l’oggetto trasparente questo resta dove è, anche se invisibile.
Capitolo 4: Modifica dellfloutput 103
La proprietà color
Infine, proviamo a rendere le stanghette invisibili colorandole di bianco. (Si tratta di un metodo
problematico perché la stanghetta bianca può imbiancare o meno le linee del rigo che incrocia.
Puoi vedere in alcuni degli esempi successivi che questo accade in modo imprevedibile. I motivi
per cui questo accade e il modo in cui è possibile controllarlo sono esposti in Sezione “Painting
objects white” in Guida alla Notazione. Ma per il momento stiamo imparando la proprietà color,
quindi accettiamo questa limitazione.)
L’interfaccia grob-interface stabilisce che il valore della proprietà color è una lista, ma non
spiega cosa debba essere questa lista. La lista di cui ha bisogno è in realtà una lista di valori
in unità interne, ma per evitare di dover imparare quali siano queste unità vengono forniti vari
modi di specificare un colore. Il primo modo consiste nell’usare uno dei colori ‘normali’ elencati
nella prima tabella in Sezione “List of colors” in Guida alla Notazione. Per rendere bianche le
stanghette scriviamo:
{
\time 12/16
\override Staff.BarLine.color = #white
c4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
12 å å å ååå å åå å å å å
16
e di nuovo vediamo che le stanghette non sono visibili. Si noti che white non è preceduto da un
apostrofo, perché non è un simbolo, ma una variabile. Quando viene esaminata, fornisce la lista
di valori interni necessari per impostare il colore su bianco. Gli altri colori nella lista normale
sono anch’essi delle variabili. Per convincerti che funziona potresti provare a cambiare il colore
e usare una delle altre variabili presenti nella lista.
Il secondo modo per cambiare il colore è attraverso la lista di nomi di colori X11 che si trova
in Sezione “List of colors” in Guida alla Notazione. Questi colori vengono trasformati in valori
reali dalla funzione x11-color, che converte i simboli di colore X11 nella lista di valori interni:
{
\time 12/16
\override Staff.BarLine.color = #(x11-color 'white)
c4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
12 å å å ååå å å å å å å
16 å
Si noti che in questo caso la funzione x11-color prende un simbolo come argomento, dunque il
simbolo deve essere preceduto da un apostrofo per impedire che sia considerato una variabile e
l’intera funzione deve essere racchiusa tra parentesi.
Esiste un’altra funzione, che converte i valori RGB in colori interni, la funzione rgb-color.
Prende tre argomenti che specificano l’intensità dei colori rosso, verde e blu. I valori vanno da 0
a 1. Quindi per avere il colore rosso il valore sarà (rgb-color 1 0 0) e per avere il bianco sarà
(rgb-color 1 1 1):
Capitolo 4: Modifica dellfloutput 104
{
\time 12/16
\override Staff.BarLine.color = #(rgb-color 1 1 1)
c4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
12 å å å ååå å åå å å å å
16
Infine, è disponibile anche una scala di grigi, appartenente all’insieme di colori X11. Questi
vanno dal nero, 'grey0, al bianco, 'grey100, con cadenza di 1. Ecco un esempio in cui tutti gli
oggetti di formattazione sono impostati su diverse tonalità di grigio:
{
\time 12/16
\override Staff.StaffSymbol.color = #(x11-color 'grey30)
\override Staff.TimeSignature.color = #(x11-color 'grey60)
\override Staff.Clef.color = #(x11-color 'grey60)
\override Voice.NoteHead.color = #(x11-color 'grey85)
\override Voice.Stem.color = #(x11-color 'grey85)
\override Staff.BarLine.color = #(x11-color 'grey10)
c4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
12 å å å ååå å åå å å å å
16
Nota i contesti associati a ciascuno degli oggetti di formattazione. È importante scegliere quelli
giusti, altrimenti i comandi non funzioneranno! Ricorda, il contesto è quello in cui si trova il
relativo incisore. Il contesto predefinito per gli incisori si trova partendo dall’oggetto di format-
tazione (layout object) per poi andare all’incisore che lo produce: la pagina dell’incisore nella
guida al Funzionamento interno riporterà a quale contesto appartenga di norma l’incisore.
r4 |
}
}
ååå
å å ååå
ååå å
Gli ossia di norma vengono scritti senza chiave e senza indicazione di tempo e hanno soli-
tamente una dimensione leggermente inferiore a quella del rigo principale. Sappiamo già come
togliere la chiave e il segno di tempo, cioè impostando semplicemente la proprietà stencil di
ciascun oggetto su #f, cosı̀:
\new Staff ="main" {
\relative g' {
r4 g8 g c4 c8 d |
e4 r8
<<
{ f8 c c }
\new Staff \with {
alignAboveContext = #"main"
}
{
\omit Staff.Clef
\omit Staff.TimeSignature
{ f8 f c }
}
>>
r4 |
}
}
å åå
å å
ååå åå åå
dove l’ulteriore coppia di parentesi dopo il blocco \with è necessaria perché le sovrascritture e
la musica racchiusi siano applicati al rigo dell’ossia.
Ma qual è la differenza tra modificare il contesto del rigo con \with e modificare la proprietà
stencil della chiave e del segno di tempo con \override o in questo caso \omit? La principale
differenza è che le modifiche inserite in un blocco \with vengono applicate nel momento in cui
viene creato il contesto e permangono come valori predefiniti per la durata di quel contesto,
mentre i comandi \set o \override incorporati nel blocco della musica sono dinamici – le loro
modifiche sono sincronizzate con un punto preciso della musica. Se le modifiche sono disattivate
o ripristinate con \unset o \revert tornano ai valori stabiliti nel blocco \with o, in mancanza
di impostazioni al suo interno, a quelli predefiniti.
Capitolo 4: Modifica dellfloutput 106
Alcune proprietà di contesto possono essere modificate solo nei blocchi \with. Si trat-
ta di quelle proprietà che non si possono modificare in seguito alla creazione del contesto.
alignAboveContext e alignBelowContext sono due di esse: dopo la creazione del rigo il suo
allineamento è fissato, e non ha senso tentare di cambiarlo successivamente.
I valori predefiniti delle proprietà degli oggetti di formattazione possono essere definiti anche
nei blocchi \with. Basta usare il normale comando \override senza specificare il nome del
contesto, dato che questo è definito senza ambiguità come il contesto che il blocco \with sta
modificando. Anzi, viene generato un errore se si specifica un contesto in questa situazione.
Dunque possiamo sostituire l’esempio precedente con
\new Staff ="main" {
\relative g' {
r4 g8 g c4 c8 d |
e4 r8
<<
{ f8 c c }
\new Staff \with {
alignAboveContext = #"main"
% Nasconde le chiavi di questo rigo
\override Clef.stencil = ##f
% Nasconde le indicazioni di tempo di questo rigo
\override TimeSignature.stencil = ##f
}
{ f8 f c }
>>
r4 |
}
}
å åå
å å
ååå åå åå
Si possono usare anche le scorciatoie \hide e \omit per impostare la proprietà transparent
e togliere lo stencil
\new Staff ="main" {
\relative g' {
r4 g8 g c4 c8 d |
e4 r8
<<
{ f8 c c }
\new Staff \with {
alignAboveContext = #"main"
% Nasconde le chiavi di questo rigo
\omit Clef
% Nasconde le indicazioni di tempo di questo rigo
\omit TimeSignature
}
{ f8 f c }
Capitolo 4: Modifica dell’output 107
>>
r4 |
}
}
å åå
å å å å å åå
åå
Infine arriviamo a modificare la dimensione degli oggetti di formattazione.
Alcuni oggetti di formattazione sono dei glifi scelti da un tipo di carattere. Ad esempio le
teste di nota, le alterazioni, le annotazioni, le chiavi, le indicazioni di tempo, le dinamiche, il
testo vocale. La loro dimensione varia se si modifica la proprietà font-size, come vedremo a
breve. Altri oggetti di formattazione come le legature di portamento e di valore – in generale,
tutti gli oggetti estensori (spanner ) – vengono disegnati individualmente, dunque non esiste un
font-size a loro associato. Questi oggetti generalmente derivano la loro dimensione dagli oggetti
a cui sono connessi, quindi di solito non è necessario modificare la loro dimensione a mano. Altre
proprietà, come la lunghezza dei gambi e delle stanghette, lo spessore delle travature e di altre
linee e la separazione delle linee del rigo, devono essere modificate in modi speciali.
Tornando all’esempio dell’ossia, proviamo prima a cambiare font-size. Possiamo farlo in due
modi. Possiamo modificare la dimensione dei tipi di carattere di ogni tipo di oggetto, come le
teste di nota (NoteHead) con un comando di questo tipo
\override NoteHead.font-size = #-2
oppure possiamo modificare la dimensione di tutti i tipi di carattere usando una proprietà
speciale, fontSize, con \set oppure includendola in un blocco \with (ma senza \set).
\set fontSize = #-2
Entrambe queste dichiarazioni fanno sı̀ che la dimensione del tipo di carattere sia ridotta di
due unità rispetto al valore precedente, dove ogni unità riduce o aumenta la dimensione di circa
il 12%.
Proviamolo nel nostro esempio dell’ossia:
\new Staff ="main" {
\relative g' {
r4 g8 g c4 c8 d |
e4 r8
<<
{ f8 c c }
\new Staff \with {
alignAboveContext = #"main"
\omit Clef
\omit TimeSignature
% Riduce la dimensione di tutti i tipi di carattere di circa il 24%
fontSize = #-2
}
{ f8 f c }
>>
r4 |
}
Capitolo 4: Modifica dell’output 108
}
å å å
å ååå
ååå åå
L’esempio non è ancora a posto. Le teste di nota e le code sono più piccole, ma in proporzione
i gambi sono troppo lunghi e le linee del rigo sono troppo separate. Dovrebbero essere scalati in
proporzione alla riduzione del tipo di carattere. La prossima sezione spiega come farlo.
å ååå
ååå åå
Capitolo 4: Modifica dell’output 109
Dato che la lunghezza dei gambi e molte altre proprietà relative alla lunghezza sono sempre cal-
colate in relazione al valore della proprietà staff-space, anche queste sono automaticamente
ridimensionate in lunghezza. Nota che ciò riguarda solo la scala verticale dell’ossia – la scala
orizzontale è determinata dalla formattazione della musica principale perché deve restare sin-
cronizzata con quest’ultima, quindi le modifiche di dimensione non la riguardano. Ovviamente,
se la scala di tutta la musica principale venisse cambiata allora la spaziatura orizzontale cam-
bierebbe. Tratteremo questo argomento più avanti, nella parte relativa alla formattazione.
Questo completa la creazione dell’ossia. Le dimensioni e le lunghezze di tutti gli altri oggetti
possono essere modificati in modi analoghi.
Per piccole modifiche della dimensione, come nell’esempio precedente, non sono necessari soli-
tamente degli aggiustamenti globali dello spessore delle varie linee disegnate (come stanghette,
travature, forcine, legature di portamento, etc.). Se si deve aggiustare lo spessore di un parti-
colare oggetto di formattazione, è meglio sovrascrivere la sua proprietà thickness. Un esempio
di come modificare lo spessore delle legature di portamento è stato mostrato prima in hunde-
finedi [Properties of layout objects], pagina hundefinedi. Lo spessore di tutti gli oggetti disegnati
(ovvero quelli non prodotti da un tipo di carattere) può essere cambiato nello stesso modo.
Testo2 Testo4
Î Î Î Î
Testo1 Testo3
Di norma, anche i righi sono collocati quanto più possibile ravvicinati (ma con una dis-
tanza minima). Se delle note si estenderanno molto al di fuori del rigo, fino a quello adiacente,
costringeranno i righi a distanziarsi solo in caso di sovrapposizione degli elementi della notazione.
L’esempio seguente mostra questo ‘annidamento’ delle note su righi adiacenti:
<<
\new Staff {
\relative c' { c4 a, }
}
\new Staff {
\relative c'''' { c4 a, }
}
>>
I
I
I
I
La proprietà direction
L’esempio seguente mostra nella prima battuta il comportamento predefinito dei gambi, per cui
i gambi delle note superiori puntano in basso e quelli delle note inferiori in alto; poi seguono
quattro note con tutti i gambi forzati verso il basso, quattro con i gambi forzati verso l’alto e,
infine, quattro con i gambi nuovamente disposti secondo il comportamento predefinito.
a4 g c a |
\override Stem.direction = #DOWN
a4 g c a |
\override Stem.direction = #UP
a4 g c a |
\revert Stem.direction
a4 g c a |
Capitolo 4: Modifica dellfloutput 111
å å å å å å åå å å åå å å å å
Abbiamo usato le costanti DOWN (giù) e UP (su). Queste hanno rispettivamente i valori -1 e
+1, ed è possibile usare tali valori numerici al loro posto. In alcuni casi si può usare anche il
valore 0, che significa UP per i gambi, ma per alcuni oggetti significa ‘center’ (centro). Esiste una
costante, CENTER che ha valore 0.
Tuttavia queste sovrascritture esplicite solitamente non vengono usate, perché ci sono dei
comandi predefiniti equivalenti e più semplici. Ecco una tabella con quelli più utilizzati; il sig-
nificato di ognuno è esplicitato laddove non è ovvio.
Diteggiatura
Anche il posizionamento della diteggiatura sulle singole note può essere controllato dalla propri-
età direction, ma la modifica di direction non produce effetti sugli accordi. Come vedremo,
ci sono comandi specifici che permettono di controllare la diteggiatura delle singole note degli
accordi, col segno di diteggiatura posizionato sopra, sotto, a sinistra o a destra di ogni nota.
Vediamo innanzitutto l’effetto di direction sulla diteggiatura attaccata alle singole note.
La prima battuta mostra il comportamento predefinito e le due battute successive mostrano gli
effetti dei valori DOWN e UP:
c4-5 a-3 f-1 c'-5 |
\override Fingering.direction = #DOWN
c4-5 a-3 f-1 c'-5 |
\override Fingering.direction = #UP
c4-5 a-3 f-1 c'-5 |
å åå å å åå å å åå å
5 3 1 5 5 3 1 5
5 3 1 5
Tuttavia sovrascrivere la proprietà direction non è il modo più semplice di definire a mano
la diteggiatura sopra o sotto le note; di solito è preferibile usare _ o ^ invece di - prima del
numero della diteggiatura. Ecco l’esempio precedente riscritto usando questo metodo:
Capitolo 4: Modifica dellfloutput 112
å åå å å åå å å åå å
5 3 1 5 5 3 1 5
5 3 1 5
La proprietà direction viene ignorata negli accordi, ma i prefissi direzionali, _ e ^ fun-
zionano. Per impostazione predefinita, la diteggiatura viene disposta automaticamente sopra e
sotto le note di un accordo:
<c-5 g-3>4
<c-5 g-3 e-2>4
<c-5 g-3 e-2 c-1>4
5 5
II III III
5 3 3
3 2 I
2
1
ma può essere sovrascritta per forzare manualmente in su o in giù tutti o alcuni dei singoli
numeri della diteggiatura:
<c-5 g-3 e-2 c-1>4
<c^5 g_3 e_2 c_1>4
<c^5 g^3 e^2 c_1>4
5
5 3
III III III
3 5 2
I I I
2 3 1
1 2
1
È possibile avere un controllo ancora maggiore sulla disposizione della diteggiatura delle
singole note di un accordo usando il comando \set fingeringOrientations. Il formato di
questo comando è:
\set fingeringOrientations = #'([up] [left/right] [down])
Si usa \set perché fingeringOrientations è una proprietà del contesto Voice, creato e usato
dall’incisore New_fingering_engraver.
Questa proprietà accetta come valori una lista comprendente da uno a tre elementi. Stabilisce
se la diteggiatura debba essere posizionata sopra (se nella lista c’è up), sotto (se c’è down), a
sinistra (se c’è left) o a destra (se c’è right). Nel caso vengano inseriti valori non accettati dalla
lista, non sarà invece collocata alcuna diteggiatura. LilyPond prende in considerazione questi
limiti e trova la migliore disposizione per la diteggiatura delle note degli accordi che seguono.
Nota che left e right si escludono a vicenda – la diteggiatura può essere posta solo da un lato
o dall’altro, non da entrambi.
Nota: Per controllare la posizione della diteggiatura di una singola nota
con questo comando bisogna scrivere la nota come un accordo con una
nota sola, ovvero racchiuderla tra parentesi angolari.
Capitolo 4: Modifica dell’output 113
2 2 å2 2 å 2å 2å 2å 2
1 1 1 1
1
Se la diteggiatura appare eccessivamente fitta, si può ridurre la dimensione del tipo di carat-
tere modificando la proprietà font-size. Si può vedere nell’oggetto Fingering della guida al
Funzionamento interno che il valore predefinito di tale proprietà è -5, dunque proviamo con -7:
\override Fingering.font-size = #-7
\set fingeringOrientations = #'(left)
<f-2>4
<c-1 e-2 g-3 b-5>4
\set fingeringOrientations = #'(left)
<f-2>4
<c-1 e-2 g-3 b-5>4 |
\set fingeringOrientations = #'(up left down)
<f-2>4
<c-1 e-2 g-3 b-5>4
\set fingeringOrientations = #'(up left)
<f-2>4
<c-1 e-2 g-3 b-5>4 |
\set fingeringOrientations = #'(right)
<f-2>4
<c-1 e-2 g-3 b-5>4
2 å 53 åå 2 å 53 åå å 3 åå å 3 åå å 2 åå 53
2 5 2 5
2å 2å 2å å1 21 åå åå 21
1å 1å
La proprietà outside-staff-priority
Gli oggetti dai valori più bassi per la proprietà outside-staff-priority vengono posizionati
più vicino al rigo, mentre gli altri oggetti esterni al rigo vengono distanziati quanto bas-
ta per evitare collisioni. La proprietà outside-staff-priority è definita nell’interfaccia
grob-interface ed è quindi una proprietà di tutti gli oggetti di formattazione. Il valore pre-
definito è #f per tutti gli oggetti interni al rigo e un valore numerico appropriato, determinato
al momento della creazione dell’oggetto, per ogni oggetto esterno al rigo. La seguente tabella
mostra i valori numerici predefiniti di alcuni dei più comuni oggetti esterni al rigo.
Si notino i nomi insoliti di alcuni oggetti: gli oggetti estensori (spanner) sono creati
automaticamente per controllare la disposizione verticale dei grob che (potrebbero) iniziare e
finire in diversi momenti musicali, quindi la modifica della proprietà outside-staff-priority
del grob sottostante non produrrebbe alcun effetto. Ad esempio, la modifica di
outside-staff-priority dell’oggetto Hairpin non avrà alcun effetto sulla disposizione
verticale delle forcelle. Occorre invece modificare la proprietà outside-staff-priority
dell’oggetto associato DynamicLineSpanner. Questa sovrascrittura deve essere posta all’inizio
dell’estensore, che potrebbe includere più forcelle e indicazioni dinamiche tra loro collegate.
Text
8va
Slower
pp ff
Questo esempio mostra anche come creare gli estensori (spanner) del testo, ovvero testo
con delle linee che si estendono sopra una sezione musicale. L’estensore si allunga dal comando
\startTextSpan fino al comando \stopTextSpan e il formato del testo è definito dal comando
\override TextSpanner. Per maggiori dettagli si veda Sezione “Text spanners” in Guida alla
Notazione.
Mostra anche come si creano le estensioni del segno d’ottava.
Se i valori predefiniti di outside-staff-priority non producono il posizionamento desider-
ato, è possibile sovrascrivere la priorità di qualsiasi oggetto. Immaginiamo di voler posizionare
l’estensione del segno d’ottava sotto l’estensore del testo nell’esempio precedente. Basta control-
lare la priorità dell’oggetto OttavaBracket nella guida al Funzionamento interno o nelle tabelle
precedenti e ridurla a un valore inferiore di quello di un oggetto TextSpanner, ricordando che
OttavaBracket è creato nel contesto Staff:
% Imposta i dettagli per l'estensione del testo vocale seguente
\override TextSpanner.bound-details.left.text
= \markup { \small \bold Slower }
% Posiziona le indicazione dinamiche sopra il rigo
\dynamicUp
% Posiziona l'estensione del segno d'ottava sotto il testo vocale
\once \override Staff.OttavaBracket.outside-staff-priority = #340
% Inizia l'estensione del segno d'ottava
\ottava #1
c'4 \startTextSpan
% Aggiunge l'indicazione dinamica
c4\pp
% Aggiunge la forcella della dinamica
c4\<
% Aggiunge l'oggetto di testo
c4^Text |
c4 c
% Aggiunge l'indicazione dinamica
c4\ff c \stopTextSpan |
% Termina l'estensione de segno d'ottava
\ottava #0
c,4 c c c |
Text
Slower
8va
pp ff
Capitolo 4: Modifica dellfloutput 116
Si noti che alcuni di questi oggetti, in particolare i numeri di battuta, i segni di metronomo e
i numeri di chiamata, si trovano nel contesto Score; dunque, assicurati di richiamare il contesto
giusto per sovrascriverli.
Le legature di portamento sono classificate come oggetti interni al rigo, anche se spesso
sono poste sopra il rigo, se le note alle quali sono collegate si trovano nella parte superiore
del pentagramma. Questo può far sı̀ che gli oggetti esterni al rigo, come le articolazioni, siano
spinti troppo in alto, dato che la legatura viene posizionata prima. La proprietà avoid-slur
dell’articolazione può essere impostata su 'inside per portare l’articolazione dentro la legatura,
ma la proprietà avoid-slur funziona solo se anche outside-staff-priority è impostata su #f.
Altrimenti, si può impostare la proprietà outside-staff-priority della legatura di portamento
su un valore numerico, in modo che sia posizionata insieme ad altri oggetti esterni al rigo in
base a quel valore. Ecco un esempio che mostra l’effetto dei due metodi:
c4( c^\markup { \tiny \sharp } d4.) c8 |
c4(
\once \override TextScript.avoid-slur = #'inside
\once \override TextScript.outside-staff-priority = ##f
c4^\markup { \tiny \sharp } d4.) c8 |
\once \override Slur.outside-staff-priority = #500
c4( c^\markup { \tiny \sharp } d4.) c8 |
ò ò
å å å å å å å å å å å å
ò
Testo3
Testo2
Î Î Î Î
Testo1 Testo4
Questo ovviamente pone “Testo3” sopra “Testo4”, ma anche sopra “Testo2”, mentre “Testo4”
si sposta più in basso. Forse questo risultato non ci soddisfa: vorremmo piuttosto collocare tutti
i testi alla stessa distanza dal rigo. Per riuscirci, naturalmente, dobbiamo creare più spazio
orizzontale tra le note per far posto al testo. Lo si può ottenere con il comando textLengthOn.
Il comando \textLengthOn
Per impostazione predefinita, finché si tratta di formattare la musica il testo prodotto dal co-
mando \markup non occupa uno spazio orizzontale. Il comando \textLengthOn inverte questo
comportamento e fa sı̀ che le note si distanzino quanto basti per introdurre il testo:
Capitolo 4: Modifica dellfloutput 117
Î Î Î Î
Text1 Text2 Text3 Text4
Î Î
Testo Î Î
Testo Lungo Testo Lungo
Î Î Î Î
Tes
\dynamicUp
bes4.~\f\< \( bes4 bes8 des4\ff\> c16 bes\! |
ees,2.~\)\mf ees4 r8 |
f ff
9 å å å å å å mf
å
8
Tuttavia, se le note e le loro dinamiche sono molto vicine, la disposizione automatica eviterà
le collisioni spostando più all’esterno i segni di dinamica successivi. Questo potrebbe non essere
però il posizionamento migliore, come mostra questo esempio piuttosto improbabile:
\dynamicUp
a4\f b\mf a\mp b\p
mp
f mf p
I I I I
Se si dovesse presentare una situazione simile in un ‘vero’ brano musicale, converrebbe distanziare
un po’ di più le note, in modo che i segni di dinamica possano essere tutti collocati alla stessa
distanza verticale dal rigo. Abbiamo potuto farlo per il testo a margine usando il comando
\textLengthOn, ma non esiste un comando equivalente per i segni di dinamica. Dunque dovremo
scoprire come farlo usando i comandi \override.
f mf mp p
I I I I
L’aspetto è migliore, ma sarebbe preferibile avere i segni di dinamica allineati alla stessa linea di
base invece di spostarsi su e giù seguendo la posizione delle note. La proprietà che permette di
ottenere tale risultato è staff-padding ed è trattata nella sezione relativa alle collisioni (vedi
hundefinedi [Collisions of objects], pagina hundefinedi).
Î
Î Î Î
Here are some lyrics
Î
Î Î Î
Î Î Î
Î
¥
Î Î Î Î
Non c’è niente di sbagliato con la spaziatura verticale predefinita. Tuttavia, supponiamo che
si stia lavorando con un editore che abbia requisiti specifici per la spaziatura verticale dei righi e
del testo vocale, ovvero maggior spazio tra testo e note, e tra l’accompagnamento del pianoforte
e la linea vocale, e minor spazio tra i righi del pianoforte. Iniziamo dal testo.
Il testo vocale si trova all’interno di un sistema, dunque i comandi per modificarne la spaziatu-
ra sono descritti in Sezione “Flexible vertical spacing within systems” in Guida alla Notazione.
Quel paragrafo ci dice che il testo è costituito da linee che non appartengono al rigo (non-staff
lines), quindi il comando per cambiarne la spaziatura sarà riferito alla proprietà nonstaff. Per
allontanarlo dal rigo a cui si riferiscono (la linea superiore) si usa la proprietà relatedstaff.
Per allontanarli dalla linea più bassa si usa la proprietà unrelatedstaff. Le parti vocali fanno
parte del VerticalAxisGroup, dunque dobbiamo aggiustare le sue proprietà. Proviamo a vedere
se funziona.
<<
\new ChoirStaff
<<
\new Staff {
\new Voice = "music" {
b'2 c' c' c'
}
Capitolo 4: Modifica dellfloutput 120
}
\new Lyrics \with {
\override VerticalAxisGroup.
nonstaff-relatedstaff-spacing.padding = #5
\override VerticalAxisGroup.
nonstaff-unrelatedstaff-spacing.padding = #5
}
\lyricsto "music" {
Here are some lyrics
}
\new Staff {
\clef bass e'2 f e c
}
>>
\new PianoStaff
<<
\new Staff {
g''2 c'' c'' a''
}
\new Staff {
\clef bass e2 f c e
}
>>
>>
Î
Î Î Î
Here are some lyrics
Î
Î Î Î
Î Î
Î Î
¥
Î Î Î Î
Funziona, ma forse non molto bene. Quando impostiamo il padding su 5, LilyPond aggiunge
5 spazi rigo alla distanza tra gli oggetti, che è troppo in questo caso. Useremo 2.
Ora allontaniamo la musica per pianoforte dalle parti vocali. La musica vocale si trova
nel rigo ChoirStaff, quindi dobbiamo aumentare lo spazio tra quel gruppo di righi e il rigo
per pianoforte che si trova sotto. Lo faremo modificando la proprietà basic-distance del
staffgroup-staff-spacing di StaffGrouper.
<<
\new ChoirStaff \with {
Capitolo 4: Modifica dell’output 121
\override StaffGrouper.
staffgroup-staff-spacing.basic-distance = #15
}
<<
\new Staff {
\new Voice = "music" {
b'2 c' c' c'
}
}
\new Lyrics \with {
\override VerticalAxisGroup.
nonstaff-relatedstaff-spacing.padding = #2
\override VerticalAxisGroup.
nonstaff-unrelatedstaff-spacing.padding = #2
}
\lyricsto "music" {
Here are some lyrics
}
\new Staff {
\clef bass e'2 f e c
}
>>
\new PianoStaff
<<
\new Staff {
g''2 c'' c'' a''
}
\new Staff {
\clef bass e2 f c e
}
>>
>>
Î
Î Î Î
Here are some lyrics
Î
Î Î Î
Î Î
Î Î
¥
Î Î Î Î
Capitolo 4: Modifica dell’output 122
Ottimo. Non ci resta che avvicinare i righi del pianoforte. Per farlo, modifichiamo di nuovo le
proprietà di StaffGrouper, ma questa volta riduciamo sia basic-distance che padding. Ecco
come fare:
<<
\new ChoirStaff \with {
\override StaffGrouper.
staffgroup-staff-spacing.basic-distance = #15
}
<<
\new Staff {
\new Voice = "music" {
b'2 c' c' c'
}
}
\new Lyrics \with {
\override VerticalAxisGroup.
nonstaff-relatedstaff-spacing.padding = #2
\override VerticalAxisGroup.
nonstaff-unrelatedstaff-spacing.padding = #2
}
\lyricsto "music" {
Here are some lyrics
}
\new Staff {
\clef bass e'2 f e c
}
>>
\new PianoStaff \with {
\override StaffGrouper.staff-staff-spacing = #'(
(basic-distance . 0)
(padding . 0))
}
<<
\new Staff {
g''2 c'' c'' a''
}
\new Staff {
\clef bass e2 f c e
}
>>
>>
Capitolo 4: Modifica dell’output 123
Î
Î Î Î
Here are some lyrics
Î
Î Î Î
Î Î
Î Î
Î Î Î Î
In questo modo sono molto vicini, ma è quello che vuole l’editore. Se necessario, possono
essere allontanati modificando padding o basic-distance.
Ci sono molti modi per modificare la spaziatura verticale. Il punto fondamentale da ricor-
dare è che la spaziatura degli oggetti in un contesto StaffGroup (come i gruppi GrandStaff
o PianoStaff) è controllata dalle variabili spaziali di StaffGrouper. La spaziatura relativa ai
righi non raggruppati (come Lyrics e Staff) è regolata dalle variabili del VerticalAxisGroup.
Ulteriori dettagli in Sezione “Flexible vertical spacing paper variables” in Guida alla Notazione
e Sezione “Flexible vertical spacing within systems” in Guida alla Notazione.
a cui si trova. Nota che si tratta del valore di padding dell’oggetto che si sta posizio-
nando, mentre quello dell’oggetto già posizionato viene ignorato. Gli spazi specificati
da padding possono essere applicati a tutti gli oggetti che supportano l’interfaccia
side-position-interface.
Invece che da padding, la disposizione dei gruppi di alterazioni è regolata da
right-padding. Questa proprietà appartiene all’oggetto AccidentalPlacement
che si trova nel contesto Staff. Il processo di formattazione della partitura crea per
prime le teste di nota e poi, se presenti, aggiunge le alterazioni alla sinistra delle
teste di nota usando la proprietà right-padding per stabilire la distanza tra le
teste e le singole alterazioni. Dunque, solo la proprietà right-padding dell’oggetto
AccidentalPlacement produce un effetto sul posizionamento delle alterazioni.
La proprietà staff-padding è strettamente connessa alla proprietà padding: padding
regola la quantità minima di spazio tra qualsiasi oggetto che supporti l’interfaccia
side-position-interface e quello più vicino (solitamente, la nota o le linee del rigo);
staff-padding si applica solo a quegli oggetti che stanno sempre fuori dal rigo e regola
la distanza minima tra l’oggetto e il rigo. Nota che staff-padding non ha alcun effetto
sugli oggetti disposti relativamente alla nota invece che al rigo, anche se può essere
sovrascritto senza generare degli errori per tali oggetti; quindi viene semplicemente
ignorata.
Per scoprire quale proprietà padding è richiesta per l’oggetto che desideri riposizionare,
devi tornare alla guida del Funzionamento interno e cercare le proprietà dell’oggetto.
Presta attenzione al fatto che le proprietà padding potrebbero non trovarsi nell’oggetto
più ovvio; in tal caso devi cercare negli oggetti simili.
I valori delle proprietà padding sono misurati in spazi del rigo. Il valore predefinito
della maggior parte degli oggetti è circa 1.0 o meno (a seconda dell’oggetto). Può
essere sovrascritto per ottenere una distanza maggiore o minore.
• self-alignment-X
Questa proprietà serve ad allineare l’oggetto a sinistra, a destra o al centro rispetto al
punto di riferimento dell’oggetto genitore. Si può usare con tutti gli oggetti che sup-
portano l’interfaccia self-alignment-interface. Generalmente si tratta di oggetti
che contengono testo. I valori sono LEFT (sinistra), RIGHT (destra) o CENTER (centro).
Altrimenti, è possibile definire un valore numerico compreso tra -1 e +1, dove -1 indica
allineamento a sinistra e +1 allineamento a destra, mentre gli altri numeri spostano
progressivamente il testo dall’allineamento a sinistra all’allineamento a destra. È possi-
bile specificare valori numerici maggiori di 1, per spostare il testo ancora più a sinistra,
o valori inferiori a -1, per spostarlo ancora più a destra. Ogni modifica di 1 nel valore
corrisponde a uno spostamento pari alla metà della lunghezza del testo.
• extra-spacing-width
Questa proprietà è disponibile per tutti gli oggetti che supportano l’interfaccia
item-interface. Accetta due numeri: il primo è aggiunto all’estensione più a
sinistra, il secondo a quella più a destra. I numeri negativi spostano il bordo verso
sinistra, quelli positivi verso destra: quindi, per allargare un oggetto il primo numero
deve essere negativo, il secondo deve essere positivo. Nota che non tutti gli oggetti
rispettano entrambi i numeri. Ad esempio, l’oggetto Accidental considera soltanto il
primo numero (bordo sinistro).
• staff-position
staff-position è una proprietà dell’interfaccia staff-symbol-referencer-interface,
supportata dagli oggetti che vengono posizionati in relazione al rigo. Specifica in unità
di mezzo spazio di rigo la posizione verticale dell’oggetto rispetto alla linea centrale
Capitolo 4: Modifica dell’output 125
del rigo stesso. È utile per risolvere collisioni tra oggetti come le pause di più misure,
le legature di valore e le note in voci diverse.
• horizontal-shift
All’interno di una voce, tutte le note che si trovano nello stesso momento musicale
sono raggruppate in una colonna di note, e viene creato un oggetto NoteColumn per
controllare il posizionamento orizzontale di quel gruppo di note (vedi “Colonne di
note” in hundefinedi [Explicitly instantiating voices], pagina hundefinedi). Se e solo
se due o più colonne di note in un solo contesto Staff, entrambe con i gambi nella
stessa direzione, si trovano sullo stesso momento musicale, i valori delle loro proprietà
horizontal-shift sono usati per attribuire un punteggio e le colonne che hanno un
punteggio più alto vengono progressivamente spostate per evitare le collisioni delle
teste di nota. Questa proprietà viene impostata dai comandi \voiceXXX e può essere
scavalcata direttamente con un comando \override o, di solito, dai comandi \shiftOn.
Attenzione: questa proprietà viene usata per dare un punteggio alle colonne di note
per spostarle orizzontalmente; non specifica la grandezza dello spostamento, che viene
aumentata progressivamente per gradi in base alla larghezza della testa di nota per
ogni punteggio. I gradi sono solitamente di metà della larghezza della testa di nota, ma
possono essere della larghezza intera della testa quando c’è un gruppo di note molto
ravvicinate.
• force-hshift
La proprietà force-hshift appartiene a NoteColumn (più precisamente all’interfaccia
note-column-interface). Modificandola è possibile spostare la colonna di note in
situazioni in cui le colonne di note sono sovrapposte. Non ha effetto su colonne di
note non sovrapposte. Viene specificata in unità appropriate per una colonna di note,
ovvero la larghezza della testa della nota nella prima voce. Si usa in situazioni complesse
in cui i normali comandi \shiftOn (vedi hundefinedi [Explicitly instantiating voices],
pagina hundefinedi) non risolvono adeguatamente le collisioni tra le note. Per questo
scopo, è preferibile alla proprietà extra-offset perché non c’è bisogno di trovare la
giusta distanza in spazi di rigo e lo spostamento delle note dentro o fuori da una
NoteColumn si ripercuote su altre azioni, come il congiungimento delle teste delle note.
3. Infine, se i metodi precedenti non funzionano, si possono riposizionare verticalmente gli
oggetti rispetto alla linea centrale del rigo oppure collocarli a una qualsiasi distanza rispet-
to a una nuova posizione. Gli svantaggi di questo metodo consistono nel fatto che i corretti
valori per il riposizionamento debbano essere trovati per tentativi e per ogni singolo oggetto;
inoltre, dato che lo spostamento avviene dopo che LilyPond ha posizionato tutti gli altri
oggetti, spetta all’utente evitare le eventuali collisioni. La principale difficoltà che questo
approccio comporta, però, è che i valori di riposizionamento potrebbero dover essere rical-
colati se la musica venisse successivamente modificata. Le proprietà che si possono usare
con questo tipo di riposizionamento manuale sono:
extra-offset
Questa proprietà si applica a qualsiasi oggetto di formattazione che supporta
l’interfaccia grob-interface. Accetta come valore una coppia di numeri che
specificano l’ulteriore spostamento nelle direzioni orizzontale e verticale. I nu-
meri negativi spostano l’oggetto a sinistra o in basso. Le unità sono gli spazi
del rigo. Questo spostamento aggiuntivo è applicato dopo la formattazione degli
oggetti, dunque gli oggetti possono essere riposizionati ovunque senza incidere
sugli altri.
positions
Questa proprietà è utile specialmente per correggere manualmente l’inclinazione
e l’altezza di travature, legature di portamento e graffette dei gruppi irregolari.
Capitolo 4: Modifica dell’output 126
Accetta come valore una coppia di numeri, che specifica la posizione dei bordi
sinistro e destro della travatura, della legatura, etc., rispetto alla linea centrale
del rigo. L’unità di misura è lo spazio del rigo. Considera, però, che le legature di
portamento e di frase non possono essere riposizionate del tutto arbitrariamente.
LilyPond, infatti, genera prima una lista delle possibili posizioni per la legatura
e poi determina la legatura che “ritiene migliore”. Se la proprietà positions
è stata sovrascritta, viene scelta dalla lista la legatura più vicina alle posizioni
richieste.
Alcuni oggetti potrebbero non disporre di tutte queste proprietà. Occorre andare a vedere
nella guida al Funzionamento interno quali proprietà siano disponibili per l’oggetto che si intende
modificare.
Segue una lista degli oggetti che hanno la maggiore probabilità di essere coinvolti in collisioni,
insieme al nome dell’oggetto che deve essere cercato nella guida al Funzionamento interno per
poter sapere quali proprietà si possono usare per spostarlo.
La proprietà padding
La proprietà padding serve a aumentare (o diminuire) la distanza tra i simboli che si trovano
sopra o sotto le note.
c2\fermata
\override Script.padding = #3
b2\fermata
2
2
% Questo non funziona, vedi sotto
\override MetronomeMark.padding = #3
\tempo 4 = 120
c1 |
% Questo funziona
\override Score.MetronomeMark.padding = #3
\tempo 4 = 80
d1 |
Capitolo 4: Modifica dell’output 127
å = 80
å = 120
· ·
Nota nel secondo esempio come è importante sapere quale contesto gestisce un certo oggetto.
Dato che l’oggetto MetronomeMark è regolato dal contesto Score, le modifiche della proprietà
nel contesto Voice non vengono prese in considerazione. Per approfondire l’argomento si veda
Sezione “Modifying properties” in Guida alla Notazione.
Se la proprietà padding di un oggetto viene aumentata quando quell’oggetto si trova insieme
ad altri oggetti disposti secondo la loro proprietà outside-staff-priority, allora si sposter-
anno quell’oggetto e tutti gli oggetti esterni a esso.
La proprietà right-padding
La proprietà right-padding agisce sullo spazio tra l’alterazione e la nota corrispondente. Non è
una necessità frequente, ma la spaziatura predefinita potrebbe risultare errata nei casi di alcuni
speciali glifi delle alterazioni usati nella musica microtonale. Questi si inseriscono sovrascrivendo
lo stampo (stencil) dell’alterazione con un segno che contenga il simbolo desiderato:
sesquisharp = \markup { \sesquisharp }
\relative c'' {
c4
% Mostra un triesis (alterazione ascendente di tre quarti di tono) ma lo spazio è tro
\once \override Accidental.stencil = #ly:text-interface::print
\once \override Accidental.text = #sesquisharp
cis4 c
% Ecco come migliorare lo spazio
\once \override Score.AccidentalPlacement.right-padding = #0.6
\once \override Accidental.stencil = #ly:text-interface::print
\once \override Accidental.text = #sesquisharp
cis4 |
}
Siamo costretti a usare una sovrascrittura dello stampo dell’alterazione che verrà spiegata succes-
sivamente. Il tipo di stampo deve essere una procedura e in questo esempio è stato modificato
per mostrare i contenuti della proprietà text dell’oggetto Accidental, che è esso stesso im-
postato sul segno di triesis. Poi questo segno viene distanziato dalla testa di nota grazie alla
sovrascrittura di right-padding.
La proprietà staff-padding
staff-padding serve ad allineare gli oggetti come i segni di dinamica lungo una linea di base a
una certa distanza dal rigo, quando nessun altro elemento della notazione li allontana dal rigo.
Non è una proprietà di DynamicText bensı̀ di DynamicLineSpanner, perché la base deve essere
applicata ugualmente a tutti i segni dinamica, compresi quelli creati come estensori. Ecco come
allineare i segni di dinamica nell’esempio preso dalla sezione precedente:
\override DynamicLineSpanner.staff-padding = #3
a4\f b\mf a\p b\mp
Capitolo 4: Modifica dellfloutput 128
I I I I
f mf p mp
La proprietà self-alignment-X
L’esempio successivo mostra come aggiustare la posizione di un numero di corda rispetto a un
gambo allineando il bordo destro del numero al punto di riferimento della nota a cui si riferisce:
\voiceOne
<a\2>
\once \override StringNumber.self-alignment-X = #RIGHT
<a\2>
I 2I
2
La proprietà staff-position
Le pause d’intero di una voce possono entrare in collisione con le note di un’altra. Dal momento
che queste pause sono centrate rispetto alle stanghette della battuta, calcolare quali altre note
potrebbero sovrapporsi richiederebbe un notevole grado d’elaborazione, dato che l’attuale ges-
tione delle collisioni tra note e tra note e pause riguarda solo le note e le pause simultanee. Ecco
un esempio di collisione di questo tipo:
<< { c4 c c c } \\ { R1 } >>
I I I I
In questo caso la soluzione migliore è spostare in basso la pausa d’intero, poiché si trova nella
seconda voce. In \voiceTwo (ovvero nella seconda voce di un costrutto <<{...} \\ {...}>>)
il valore predefinito di staff-position è -4 per la pausa multipla (MultiMeasureRest), quindi
dobbiamo spostarla più in basso, ad esempio di altri quattro semispazi del rigo; il nuovo valore
sarà -8.
<<
{ c4 c c c }
\\
\override MultiMeasureRest.staff-position = #-8
{ R1 }
>>
I I I I
Questa soluzione è preferibile all’uso di extra-offset, perché il taglio addizionale sopra la
pausa è inserito automaticamente.
Capitolo 4: Modifica dellfloutput 129
La proprietà extra-offset
La proprietà extra-offset fornisce un controllo completo sul posizionamento di un oggetto sia
in orizzontale che in verticale.
Nell’esempio seguente, la seconda diteggiatura viene spostata un po’ a sinistra e in basso di
1.8 spazi rigo:
\stemUp
f4-5
\once \override Fingering.extra-offset = #'(-0.3 . -1.8)
f4-5
5
I I
5
La proprietà positions
La proprietà positions permette di controllare manualmente la posizione verticale e quindi
l’inclinazione delle graffette dei gruppi irregolari, delle legature di portamento e di frase e delle
travature. Ecco un esempio in cui una legatura di frase e una legatura di portamento collidono:
a8 \( ( a'16 ) a \)
II
I
Si potrebbero spostare più in alto le due estremità della legatura di frase. Possiamo provare a
impostare quella sinistra su 2.5 spazi sopra la linea centrale e quella destra a 4.5 spazi; LilyPond
sceglierà la legatura di frase tra quelle candidate che hanno le estremità più vicine a queste:
\once \override PhrasingSlur.positions = #'(2.5 . 4.5)
a8 \( ( a'16 ) a \)
II
I
È migliorato, ma perché non abbassare un po’ l’estremità destra della legatura di portamento?
Se provi vedrai che non può essere fatto in questo modo. Il motivo è che non ci sono legature
di portamento candidate più basse di quella già selezionata, quindi in questo caso la proprietà
positions non può produrre effetti. Tuttavia, legature di valore, di portamento e di frase possono
essere posizionate e disegnate in modo molto preciso se necessario. Per sapere come fare si veda
Sezione “Modifying ties and slurs” in Guida alla Notazione.
Ecco un altro esempio. Vediamo che le travature collidono con le legature di valore:
{
\time 4/2
<<
{ c'1 ~ c'2. e'8 f' }
\\
{ e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g'' }
>>
<<
{ c'1 ~ c'2. e'8 f' }
Capitolo 4: Modifica dell’output 130
\\
{ e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g'' }
>>
}
åååååååå åååååååå
42 åå åå
Si può risolvere spostando manualmente in su entrambi gli estremi della travatura dalla loro
posizione di 1.81 spazi rigo sotto la linea centrale a, per esempio, 1:
{
\time 4/2
<<
{ c'1 ~ c'2. e'8 f' }
\\
{
\override Beam.positions = #'(-1 . -1)
e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g''
}
>>
<<
{ c'1 ~ c'2. e'8 f' }
\\
{ e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g'' }
>>
}
åååååååå åååååååå
42 å
å åå
Come vedi, la sovrascrittura si applica anche alla prima voce della seconda misura di otto note,
ma a nessuna delle travature nella seconda voce.
La proprietà force-hshift
Possiamo vedere ora come applicare le correzioni finali all’esempio di Chopin introdotto alla fine
del paragrafo hundefinedi [I’m hearing Voices], pagina hundefinedi, che avevamo lasciato cosı̀:
\new Staff \relative c'' {
\key aes \major
<<
{ c2 aes4. bes8 }
\\
{ <ees, c>2 des }
\\
\\
{ aes'2 f4 fes }
>> |
<c ees aes c>1 |
}
Capitolo 4: Modifica dell’output 131
··
··
La nota interna del primo accordo (ovvero il La bemolle della quarta voce) non deve essere allon-
tanata dalla colonna della nota più alta. Potremmo pensare di correggerlo con \shiftOff, ma ciò
causerebbe degli avvertimenti relativi alla collisione di note. Impostiamo invece force-hshift,
una proprietà di NoteColumn, su zero.
Nel secondo accordo preferiamo che il Fa sia allineato al La bemolle e che la nota più grave
sia posizionata leggermente più a destra, in modo da evitare la collisione dei gambi. Per farlo
dobbiamo impostare force-hshift nella colonna (NoteColumn) del Re bemolle grave in modo
che si sposti a destra di mezzo spazio di rigo e force-hshift per il Fa su zero. Si usa \once
per evitare che tali impostazioni si propaghino oltre il momento musicale immediato, sebbene
in questo piccolo esempio il \once e il secondo \override nella quarta voce potrebbero essere
omessi. Ma non sarebbe un esempio di buona pratica.
··
··
L’esempio è tratto dalla Première Ballade op. 23 di Chopin e va dalla battuta 6 alla 9, la
transizione dal Lento iniziale al Moderato. Vediamo prima come vogliamo che l’output appaia;
per evitare di complicare troppo l’esempio abbiamo però tolto le dinamiche, le diteggiature e le
pedalizzazioni.
Capitolo 4: Modifica dellfloutput 132
Moderato
ü 6 ü ü
ü 4 ü
Ó
ü
6
4 ü
Vediamo che la parte della mano destra nella terza battuta richiede quattro voci. Si tratta
delle cinque crome unite da travatura, il Do legato, la minima di Re che è unita alla croma di
Re, e la semiminima puntata del Fa diesis, anch’essa unita alla croma della stessa altezza. Tutto
il resto è su una voce singola, quindi il sistema più semplice è introdurre queste ulteriori voci
temporaneamente, quando sono richieste. Se ti sei dimenticato come fare, rileggi i paragrafi hun-
definedi [I’m hearing Voices], pagina hundefinedi e hundefinedi [Explicitly instantiating voices],
pagina hundefinedi. In questo caso scegliamo di usare per il passaggio polifonico le voci definite
esplicitamente, dato che LilyPond riesce a evitare meglio le collisioni se tutte le voci sono definite
esplicitamente in questo modo.
Dunque iniziamo con l’inserire le note in due variabili, impostare la struttura del rigo in un
blocco \score e vedere che cosa LilyPond produce senza modifiche manuali:
rhMusic = \relative c'' {
\new Voice {
r2 c4. g8 |
bes1~ |
\time 6/4
bes2. r8
% Inizia la sezione polifonica a quattro voci
<<
{ c,8 d fis bes a } % continuazione della voce principale
\new Voice {
\voiceTwo
c,8~ c2
}
\new Voice {
\voiceThree
s8 d2
}
\new Voice {
\voiceFour
s4 fis4.
}
>> |
g2. % continuazione della voce principale
}
}
\score {
Capitolo 4: Modifica dellfloutput 133
å 6 å å
å 4 å åå
¼
å
6
4 å
Le note sono giuste ma l’aspetto è ben lontano dall’essere soddisfacente. La legatura collide col
nuovo segno di tempo, alcune note non sono accorpate e mancano vari elementi della notazione.
Partiamo dalle cose più semplici. Possiamo aggiungere la legatura di portamento della mano
sinistra e la legatura di frase della mano destra, dato che queste sono state già trattate nel
Tutorial. In questo modo abbiamo:
rhMusic = \relative c'' {
\new Voice {
r2 c4.\( g8 |
bes1~ |
\time 6/4
bes2. r8
% Inizia la sezione polifonica a quattro voci
<<
{ c,8 d fis bes a } % continuazione della voce principale
\new Voice {
\voiceTwo
c,8~ c2
}
\new Voice {
\voiceThree
s8 d2
}
\new Voice {
\voiceFour
s4 fis4.
}
>> |
g2.\) % continuazione della voce principale
}
}
Capitolo 4: Modifica dellfloutput 134
\score {
\new PianoStaff <<
\new Staff = "RH" <<
\key g \minor
\rhMusic
>>
\new Staff = "LH" <<
\key g \minor
\clef "bass"
\lhMusic
>>
>>
}
å 6 å å
å 4 å åå
¼
å
6
4 å
Ora la prima battuta è corretta. La seconda battuta contiene un arpeggio e è terminata da
una stanghetta doppia. Dato che non sono stati menzionati in questo manuale di Apprendimen-
to, come possiamo ottenerli? Dobbiamo andare a vedere nella guida alla Notazione. Cercando
nell’indice i termini “arpeggio” e “stanghetta”, scopriamo rapidamente che un arpeggio viene
prodotto posponendo \arpeggio a un accordo e che la stanghetta doppia si ottiene col comando
\bar "||". Questo è stato facile. Ora dobbiamo correggere la collisione della legatura di valore
con l’indicazione di tempo. Il modo migliore è spostare la legatura verso l’alto. Lo spostamento
degli oggetti è stato trattato prima in hundefinedi [Moving objects], pagina hundefinedi, dove
si dice che gli oggetti posizionati relativamente al rigo possono essere spostati verticalmente
sovrascrivendo la proprietà staff-position, specificata in metà spazi-rigo rispetto alla linea
centrale del rigo. Dunque la seguente sovrascrittura posizionata proprio prima della prima nota
della legatura sposta la legatura 3.5 mezzi spazi di rigo sopra la linea centrale:
\once \override Tie.staff-position = #3.5
Questo completa la seconda battuta:
rhMusic = \relative c'' {
\new Voice {
r2 c4.\( g8 |
\once \override Tie.staff-position = #3.5
bes1~ |
\bar "||"
\time 6/4
bes2. r8
Capitolo 4: Modifica dell’output 135
\score {
\new PianoStaff <<
\new Staff = "RH" <<
\key g \minor
\rhMusic
>>
\new Staff = "LH" <<
\key g \minor
\clef "bass"
\lhMusic
>>
>>
}
å 6 å å
å 4 å åå
¼
å
6
4 å
Proseguiamo con la terza battuta e l’inizio della sezione del Moderato. Nel tutorial abbiamo
visto come aggiungere del testo in grassetto tramite il comando \markup, quindi aggiungere
“Moderato” in grassetto è facile. Ma come facciamo ad accorpare le note appartenenti a voci
Capitolo 4: Modifica dellfloutput 136
diverse? Ancora una volta dobbiamo rivolgerci alla guida alla Notazione per un aiuto. Una ricerca
del termine “accorpare” (merge) nell’indice della guida ci porta rapidamente al paragrafo Sezione
“Collision resolution” in Guida alla Notazione, dove troviamo i comandi per allineare le note
con teste e punti diversi. Nel nostro esempio abbiamo bisogno di accorpare entrambi i tipi di
note per la durata della sezione polifonica della terza battuta. Dunque, usando le informazioni
trovate nella guida alla Notazione, aggiungiamo
\mergeDifferentlyHeadedOn
\mergeDifferentlyDottedOn
all’inizio di questa sezione e
\mergeDifferentlyHeadedOff
\mergeDifferentlyDottedOff
alla fine, ottenendo:
Moderato
ü 6 ü ü
ü 4 ü ü
Ó
ü
6
4 ü
Queste sovrascritture hanno accorpato i due Fa diesis, ma non i due Re. Perché? La risposta
si trova nella stessa sezione della guida alla Notazione: le note da unire devono avere i gambi
in direzioni opposte e due note non possono essere accorpate se c’è una terza nota nella stessa
colonna. In questo esempio i due Re hanno entrambi i gambi in su e c’è una terza nota, il Do.
Sappiamo come cambiare la direzione dei gambi con \stemDown e la guida alla Notazione ci dice
anche come spostare il Do, applicando uno spostamento con uno dei comandi \shift. Ma quale?
Il Do si trova nella seconda voce che ha lo spostamento (shift) disattivato, mentre i due Re sono
nella prima e nella terza voce, che ce l’hanno rispettivamente disattivato e attivato. Dunque
dobbiamo distanziare il Do di un ulteriore livello usando \shiftOnn per evitare che interferisca
con i due Re. Applicando queste modifiche abbiamo:
rhMusic = \relative c'' {
\new Voice {
r2 c4.\( g8 |
\once \override Tie.staff-position = #3.5
bes1~ |
\bar "||"
\time 6/4
bes2.^\markup { \bold "Moderato" } r8
\mergeDifferentlyHeadedOn
\mergeDifferentlyDottedOn
% Inizia la sezione polifonica a quattro voci
<<
{ c,8 d fis bes a } % continuazione della voce principale
\new Voice {
\voiceTwo
% Sposta il c2 fuori dalla colonna della nota principale
% in modo che l'unione di note funzioni
c,8~ \shiftOnn c2
}
Capitolo 4: Modifica dellfloutput 137
\new Voice {
\voiceThree
% Il gambo di d2 deve essere in giù per permettere l'unione delle note
s8 \stemDown d2
}
\new Voice {
\voiceFour
s4 fis4.
}
>> |
\mergeDifferentlyHeadedOff
\mergeDifferentlyDottedOff
g2.\) % continuazione della voce principale
}
}
\score {
\new PianoStaff <<
\new Staff = "RH" <<
\key g \minor
\rhMusic
>>
\new Staff = "LH" <<
\key g \minor
\clef "bass"
\lhMusic
>>
>>
}
Moderato
ü 6 ü ü
ü 4 ü ü
Ó
6
4 ü
Ci siamo quasi, restano solo due problemi: il gambo in giù del Re unito non ci dovrebbe essere
e il Do dovrebbe essere posizionato a destra dei Re. Sappiamo come fare grazie alle modifiche
precedenti: rendiamo il gambo trasparente e spostiamo il Do con la proprietà force-hshift.
Ecco il risultato finale:
rhMusic = \relative c'' {
\new Voice {
Capitolo 4: Modifica dellfloutput 138
r2 c4.\( g8 |
\once \override Tie.staff-position = #3.5
bes1~ |
\bar "||"
\time 6/4
bes2.^\markup { \bold "Moderato" } r8
\mergeDifferentlyHeadedOn
\mergeDifferentlyDottedOn
% Inizia la sezione polifonica a quattro voci
<<
{ c,8 d fis bes a } % continuazione della voce principale
\new Voice {
\voiceTwo
c,8~
% Riposiziona il c2 a destra della nota unita
\once \override NoteColumn.force-hshift = #1.0
% Sposta il c2 fuori dalla colonna della nota principale
% in modo che l'unione di note funzioni
\shiftOnn
c2
}
\new Voice {
\voiceThree
s8
% Il gambo di d2 deve essere in giù per permettere l'unione delle note
\stemDown
% Il gambo di d2 deve essere invisibile
\tweak Stem.transparent ##t
d2
}
\new Voice {
\voiceFour
s4 fis4.
}
>> |
\mergeDifferentlyHeadedOff
\mergeDifferentlyDottedOff
g2.\) % continuazione della voce principale
}
}
\score {
\new PianoStaff <<
\new Staff = "RH" <<
\key g \minor
Capitolo 4: Modifica dellfloutput 139
\rhMusic
>>
\new Staff = "LH" <<
\key g \minor
\clef "bass"
\lhMusic
>>
>>
}
Moderato
ü 6 ü ü
ü 4 ü
Ó
ü
6
4 ü
4.7 Altre modifiche
4.7.1 Altri usi delle modifiche con \tweak
Legature di valore tra note di voci diverse
L’esempio seguente mostra come unire con legature di valore note appartenenti a voci diverse.
Di norma, solo le note nella stessa voce possono essere unite da una legatura di valore. Se si
usano due voci con le note legate in una voce
I II
e si cancella il primo gambo di quella voce, la legatura sembra attraversare le voci:
<<
{
\tweak Stem.transparent ##t
b8~ b\noBeam
}
\\
{ b8[ g] }
>>
I II
Per far sı̀ che il gambo cancellato non schiacci troppo la legatura, possiamo allungarlo impo-
stando la proprietà length su 8,
<<
{
\tweak Stem.transparent ##t
Capitolo 4: Modifica dellfloutput 140
\tweak Stem.length #8
b8~ b\noBeam
}
\\
{ b8[ g] }
>>
I II
Per sovrascrivere (con \override) la trasparenza di un oggetto grafico, avremmo potuto
usare la scorciatoia \hide, come spiegato in precedenza. Ma la modifica manuale con \tweak è
un’operazione diversa, che riguarda solo le proprietà generate da una singola espressione mu-
sicale. Tuttavia è possibile convertire le sovrascritture in tweak usando \single. Questo ci
permette di riscrivere l’esempio precedente in questo modo
<<
{
\single \hide Stem
\single \hide Flag
\tweak Stem.length #8
b8~ b\noBeam
}
\\
{ b8[ g] }
>>
I II
In questo caso particolare, la differenza rispetto a \once \hide non è evidente. La differenza
è evidente quando ci sono vari oggetti che si trovano nello stesso punto del tempo musicale (come
le teste delle note in un accordo). In quel caso, \once avrà effetto su tutti quegli oggetti mentre
\single solo su uno, ovvero quello generato dall’espressione musicale immediatamente seguente.
å = 100
å = 120
å å å å å å å å
\score {
\relative c'' {
% Indicazione di tempo visibile
\tempo 4=120
a4 a a
\once \omit Score.MetronomeMark
% Indicazione di tempo invisibile per allungare la fermata nel MIDI
\tempo 4=80
a4\fermata |
% Nuovo tempo per la sezione successiva
\tempo 4=100
a4 a a a |
}
\layout { }
\midi { }
}
å = 120 å = 100
å å å å å å å å
Entrambi i metodi tolgono dalla partitura l’indicazione metronomica ed entrambi cambiano il
tempo del MIDI come volevamo, ma nel primo esempio l’indicazione metronomica trasparente
sposta troppo in alto l’indicazione di tempo successiva, mentre nel secondo esempio, dove viene
tolto lo stampo (stencil ), ciò non accade.
Vedi anche
Glossario musicale: Sezione “sistema” in Glossario Musicale.
alla parola o alle parole da modificare, in un blocco \markup: dunque sono scomodi da inserire.
Dovendo inserire le parole stesse non si possono usare variabili semplici. Come alternativa pos-
siamo usare i comandi \override e \revert?
\override Lyrics.LyricText.font-shape = #'italic
\override Lyrics.LyricText.font-series = #'bold
\revert Lyrics.LyricText.font-shape
\revert Lyrics.LyricText.font-series
Anche questi sarebbero molto noiosi da inserire se ci fossero molte parole che richiedono
enfasi. Ma possiamo inserirli in due variabili e poi usare queste per le parole da enfatizzare. Un
altro vantaggio dell’uso di variabili per queste sovrascritture è che gli spazi intorno al punto
non sono necessari, perché non sono interpretati direttamente in \lyricmode. Ecco un esempio,
anche se nella pratica comune avremmo scelto dei nomi più brevi per le variabili in modo da
poterle inserire più rapidamente:
emphasize = {
\override Lyrics.LyricText.font-shape = #'italic
\override Lyrics.LyricText.font-series = #'bold
}
normal = {
\revert Lyrics.LyricText.font-shape
\revert Lyrics.LyricText.font-series
}
VerseOne = \lyrics {
E -- | ter -- nal \emphasize Fa -- ther, | \normal strong to save,
}
VerseTwo = \lyricmode {
O | \once \emphasize Christ, whose voice the | wa -- ters heard,
}
VerseThree = \lyricmode {
O | \emphasize Ho -- ly Spi -- rit, | \normal who didst brood
}
VerseFour = \lyricmode {
O | \emphasize Tri -- ni -- ty \normal of | love and pow'r
}
\score {
\new ChoirStaff <<
\new Staff <<
\clef "treble"
Capitolo 4: Modifica dellfloutput 143
üü üü üü üü üü üü üü
ü
E ter
nal Fa ther, strong to save,
O Christ, whose voice the wa ters heard,
O Ho ly Spi rit, who didst brood
O Tri ni ty of love and pow'r
üü üü üü ü ü üü üü üü üü üü
ü ü
4.7.3 Fogli di stile
L’output prodotto da LilyPond può essere ampiamente modificato, come abbiamo visto nel
capitolo hundefinedi [Tweaking output], pagina hundefinedi. Ma se avessi molti file di input a
cui voler applicare delle modifiche? O se volessi semplicemente separare le modifiche dalla musica
vera e propria? È molto semplice.
Prendiamo un esempio. Non ti preoccupare se non capisci le parti che hanno #(); verranno
spiegate nel capitolo hundefinedi [Advanced tweaks with Scheme], pagina hundefinedi.
mpdolce =
\tweak self-alignment-X #-0.6
#(make-dynamic-script
#{ \markup { \dynamic mp \normal-text \italic \bold dolce } #})
inst =
#(define-music-function
(parser location string)
(string?)
#{ <>^\markup \bold \box #string #})
\relative c'' {
\tempo 4=50
a4.\mpdolce d8 cis4--\glissando a |
b4 bes a2 |
\inst "Clarinet"
Capitolo 4: Modifica dellfloutput 144
cis4.\< d8 e4 fis |
g8(\! fis)-. e( d)-. cis2 |
}
= 50
Clarinet
mp dolce
Facciamo qualcosa a proposito delle definizioni di mpdolce e inst. Producono l’output che
desideriamo, ma potremmo volerle usare in un altro brano. Potremmo semplicemente copiarle
e incollarle in cima a ogni file, ma sarebbe una seccatura e lascerebbe queste definizioni nel file
di input; personalmente trovo tutti quei #() piuttosto brutti, dunque nascondiamoli in un altro
file:
%%% salva queste righe in un file chiamato "definitions.ily"
mpdolce =
\tweak self-alignment-X #-0.6
#(make-dynamic-script
#{ \markup { \dynamic mp \normal-text \italic \bold dolce } #})
inst =
#(define-music-function
(parser location string)
(string?)
#{ <>^\markup \bold \box #string #})
Ci riferiremo a questo file tramite il comando \include in cima al file dove c’è la musica. Si
usa l’estensione ‘.ily’ per distinguere il file da includere, che non intendiamo compilare da solo,
dal file principale. Ora modifichiamo la musica (e salviamo questo file come ‘music.ly’).
\include "definitions.ily"
\relative c'' {
\tempo 4=50
a4.\mpdolce d8 cis4--\glissando a |
b4 bes a2 |
\inst "Clarinet"
cis4.\< d8 e4 fis |
g8(\! fis)-. e( d)-. cis2 |
}
= 50
Clarinet
mp dolce
L’aspetto è migliore, ma facciamo ancora qualche modifica. Il glissando si vede appena,
rendiamolo quindi più spesso e più vicino alle teste di nota. Mettiamo l’indicazione metronomica
al di sopra della chiave invece che della prima nota. E, infine, dato che il mio professore di
composizione odia l’indicazione di tempo “C”, usiamo “4/4” al suo posto.
Ma non devi cambiare ‘music.ly’ bensı̀ ‘definitions.ily’, in questo modo:
Capitolo 4: Modifica dellfloutput 145
%%% definitions.ily
mpdolce =
\tweak self-alignment-X #-0.6
#(make-dynamic-script
#{ \markup { \dynamic mp \normal-text \italic \bold dolce } #})
inst =
#(define-music-function
(parser location string)
(string?)
#{ <>^\markup \bold \box #string #})
\layout{
\context {
\Score
\override MetronomeMark.extra-offset = #'(-5 . 0)
\override MetronomeMark.padding = #'3
}
\context {
\Staff
\override TimeSignature.style = #'numbered
}
\context {
\Voice
\override Glissando.thickness = #3
\override Glissando.gap = #0.1
}
}
= 50
Clarinet
44
mp dolce
Ora l’aspetto è decisamente migliore! Supponiamo ora di voler pubblicare questo brano. Il
mio professore di composizione non ama il segno di tempo “C”, mentre a me piace. Copiamo
l’attuale file ‘definitions.ily’ in ‘web-publish.ily’ e modifichiamolo. Dato che questa musica
verrà distribuita su un pdf da leggere a schermo, aumenteremo anche la dimensione complessiva
dell’output.
%%% web-publish.ily
mpdolce =
\tweak self-alignment-X #-0.6
#(make-dynamic-script
#{ \markup { \dynamic mp \normal-text \italic \bold dolce } #})
inst =
#(define-music-function
(parser location string)
(string?)
#{ <>^\markup \bold \box #string #})
Capitolo 4: Modifica dell’output 146
#(set-global-staff-size 23)
\layout{
\context {
\Score
\override MetronomeMark.extra-offset = #'(-5 . 0)
\override MetronomeMark.padding = #'3
}
\context {
\Staff
}
\context {
\Voice
\override Glissando.thickness = #3
\override Glissando.gap = #0.1
}
}
= 50 Clarinet
. .
mp dolce
4 ü
Nel file che contiene la musica non rimane che sostituire \include "definitions.ily"
con \include "web-publish.ily". Potremmo usare un sistema ancora più conveniente:
creare un file ‘definitions.ily’ che contenga solo le definizioni di mpdolce e inst,
un file ‘web-publish.ily’ che contenga solo la sezione \layout vista prima, e un file
‘university.ily’ che contenga solo le modifiche necessarie per produrre l’output preferito dal
mio professore. L’inizio di ‘music.ly’ apparirebbe cosı̀:
\include "definitions.ily"
\include "../init/init-defs.ly"
\include "../init/init-layout.ly"
\include "../init/init-headers.ly"
Capitolo 4: Modifica dell’output 147
\include "../init/init-paper.ly"
Scaricato da lilypond.org
• GNU/Linux
Vai in
‘INSTALLDIR/lilypond/usr/share/lilypond/current/’
• MacOS X
Vai in
‘INSTALLDIR/LilyPond.app/Contents/Resources/share/lilypond/current/’
usando cd in un terminale per entrare in questa directory oppure facendo un Ctrl+click
sull’applicazione LilyPond e scegliendo “Mostra i contenuti dei pacchetti”.
• Windows
Con Windows Explorer vai in
‘INSTALLDIR/LilyPond/usr/share/lilypond/current/’
\relative c' {
% Fa sı̀ che il colore sia preso dalla procedura color-notehead
Capitolo 4: Modifica dell’output 149
Î Î Î Î
Î Î Î Î
Altri esempi che mostrano l’uso di queste interfacce programmabili si trovano in Sezione
“Callback functions” in Estendere.
Appendice A: Modelli 150
Appendice A Modelli
Questa sezione del manuale contiene dei modelli con la struttura del file LilyPond già preim-
postata. Non ti resta che aggiungere le note, eseguire LilyPond e goderti dei belli spartiti!
a4 b c d
}
\score {
\new Staff \melody
\layout { }
\midi { }
}
I I I I
A.1.2 Note e testo
Questo piccolo modello presenta una semplice linea melodica con un testo. Copialo e incollalo,
aggiungi le note e le parole. Questo esempio disabilita la disposizione automatica delle travature,
come è consuetudine per le parti vocali. Per usare la disposizione automatica delle travature,
cambia o commenta la relativa linea di codice.
\version "2.18.2"
melody = \relative c' {
\clef treble
\key c \major
\time 4/4
a4 b c d
}
text = \lyricmode {
Aaa Bee Cee Dee
}
\score{
<<
Appendice A: Modelli 151
å å å å
Aaa Bee Cee Dee
A.1.3 Note e accordi
Vuoi preparare uno spartito semplificato (lead sheet) con melodia e accordi? La tua ricerca è
finita!
melody = \relative c' {
\clef treble
\key c \major
\time 4/4
f4 e8[ c] d4 g
a2 ~ a
}
harmonies = \chordmode {
c4:m f:min7 g:maj c:aug
d2:dim b:sus
}
\score {
<<
\new ChordNames {
\set chordChanges = ##t
\harmonies
}
\new Staff \melody
>>
\layout{ }
\midi { }
}
7 o
Cm Fm G C+ D B
L L
A.1.4 Note, testo e accordi
Ecco il modello di un comune spartito semplificato (lead sheet): include linea melodica, testo
vocale e sigle degli accordi.
Appendice A: Modelli 152
a4 b c d
}
text = \lyricmode {
Aaa Bee Cee Dee
}
harmonies = \chordmode {
a2 c
}
\score {
<<
\new ChordNames {
\set chordChanges = ##t
\harmonies
}
\new Voice = "one" { \autoBeamOff \melody }
\new Lyrics \lyricsto "one" \text
>>
\layout { }
\midi { }
}
A C
c c c c
Aaa Bee Cee Dee
a4 b c d
}
lower = \relative c {
\clef bass
\key c \major
\time 4/4
Appendice A: Modelli 153
a2 c
}
\score {
\new PianoStaff <<
\set PianoStaff.instrumentName = #"Piano "
\new Staff = "upper" \upper
\new Staff = "lower" \lower
>>
\layout { }
\midi { }
}
Piano ¥
Î
Î
A.2.2 Pianoforte e melodia con testo
Ecco un tipico formato per canzoni: un rigo con linea melodica e testo, e sotto
l’accompagnamento per pianoforte.
melody = \relative c'' {
\clef treble
\key c \major
\time 4/4
a b c d
}
text = \lyricmode {
Aaa Bee Cee Dee
}
a4 b c d
}
lower = \relative c {
\clef bass
\key c \major
\time 4/4
a2 c
}
Appendice A: Modelli 154
\score {
<<
\new Voice = "mel" { \autoBeamOff \melody }
\new Lyrics \lyricsto mel \text
\new PianoStaff <<
\new Staff = "upper" \upper
\new Staff = "lower" \lower
>>
>>
\layout {
\context { \Staff \RemoveEmptyStaves }
}
\midi { }
}
å å å å
Aaa Bee Cee Dee
å å å å
¥
A.2.3 Pianoforte con testo al centro
Invece di destinare un rigo a parte alla linea melodica e al suo testo, è possibile collocare il testo
al centro di un doppio pentagramma per pianoforte.
upper = \relative c'' {
\clef treble
\key c \major
\time 4/4
a4 b c d
}
lower = \relative c {
\clef bass
\key c \major
\time 4/4
a2 c
}
text = \lyricmode {
Aaa Bee Cee Dee
}
\score {
\new GrandStaff <<
\new Staff = upper { \new Voice = "singer" \upper }
Appendice A: Modelli 155
å å å å
Ð Aaa Bee Cee Dee
c2 d
e1
\bar "|."
}
g2 f
e1
\bar "|."
}
Appendice A: Modelli 156
e2 d
c1
\bar "|."
}
c2 b
a1
\bar "|."
}
\score {
\new StaffGroup <<
\new Staff << \global \violinOne >>
\new Staff << \global \violinTwo >>
\new Staff << \global \viola >>
\new Staff << \global \cello >>
>>
\layout { }
\midi { }
}
·
Violin 1
Violin 2 ·
Viola ·
·
Cello
A.3.2 Parti di un quartetto d’archi
Il frammento di codice del “Modello per quartetto d’archi” crea un bel quartetto, ma cosa fare se
si ha bisogno di creare le singole parti? Questo nuovo modello mostra come usare la funzionalità
\tag per dividere facilmente un pezzo in parti staccate.
Occorre dividere questo modello in file separati; i nomi dei file sono indicati nei commenti
all’inizio di ogni file. piece.ly contiene tutte le definizioni musicali. Gli altri file – score.ly,
vn1.ly, vn2.ly, vla.ly e vlc.ly – creano ciascuna parte.
Appendice A: Modelli 157
%%%%% piece.ly
%%%%% (This is the global definitions file)
global= {
\time 4/4
\key c \major
}
c2 d e1
g2 f e1
e2 d c1
c2 b a1
music = {
<<
\tag #'score \tag #'vn1 \new Staff { << \global \Violinone >> }
\tag #'score \tag #'vn2 \new Staff { << \global \Violintwo>> }
\tag #'score \tag #'vla \new Staff { << \global \Viola>> }
\tag #'score \tag #'vlc \new Staff { << \global \Cello>> }
>>
}
%%% These are the other files you need to save on your computer
%%%%% score.ly
%%%%% (This is the main file)
%\include "piece.ly"
#(set-global-staff-size 14)
\score {
\new StaffGroup \keepWithTag #'score \music
\layout { }
\midi { }
}
%%%%% vn1.ly
%%%%% (This is the Violin 1 part file)
\include "piece.ly"
\score {
\keepWithTag #'vn1 \music
\layout { }
}
%%%%% vn2.ly
%%%%% (This is the Violin 2 part file)
\include "piece.ly"
\score {
\keepWithTag #'vn2 \music
\layout { }
}
%%%%% vla.ly
%%%%% (This is the Viola part file)
\include "piece.ly"
\score {
\keepWithTag #'vla \music
\layout { }
}
%%%%% vlc.ly
%%%%% (This is the Cello part file)
\include "piece.ly"
\score {
\keepWithTag #'vlc \music
\layout { }
}
%}
Appendice A: Modelli 159
·
Violin 1
Violin 2 ·
Viola ·
·
Cello
A.4 Modelli per gruppi vocali
A.4.1 Partitura vocale SATB
Ecco una tipica partitura corale a quattro parti, SATB. Se il complesso è più ampio, è spesso
comodo scrivere gli elementi comuni in un’unica sezione, che verrà poi inclusa in tutte le parti.
Ad esempio, l’indicazione di tempo e l’armatura di chiave sono quasi sempre le stesse per tutte
le parti. Come nel modello dell’“Inno”, le quattro voci sono ripartite in due soli righi.
\paper {
top-system-spacing #'basic-distance = #10
score-system-spacing #'basic-distance = #20
system-system-spacing #'basic-distance = #20
last-bottom-spacing #'basic-distance = #10
}
global = {
\key c \major
\time 4/4
}
bassMusic = \relative c {
c4 c g c
}
bassWords = \lyricmode {
Appendice A: Modelli 160
ho ho ho ho
}
\score {
\new ChoirStaff <<
\new Lyrics = "sopranos" \with {
% this is needed for lyrics above a staff
\override VerticalAxisGroup.staff-affinity = #DOWN
}
\new Staff = "women" <<
\new Voice = "sopranos" {
\voiceOne
<< \global \sopMusic >>
}
\new Voice = "altos" {
\voiceTwo
<< \global \altoMusic >>
}
>>
\new Lyrics = "altos"
\new Lyrics = "tenors" \with {
% this is needed for lyrics above a staff
\override VerticalAxisGroup.staff-affinity = #DOWN
}
\new Staff = "men" <<
\clef bass
\new Voice = "tenors" {
\voiceOne
<< \global \tenorMusic >>
}
\new Voice = "basses" {
\voiceTwo << \global \bassMusic >>
}
>>
\new Lyrics = "basses"
\context Lyrics = "sopranos" \lyricsto "sopranos" \sopWords
\context Lyrics = "altos" \lyricsto "altos" \altoWords
\context Lyrics = "tenors" \lyricsto "tenors" \tenorWords
\context Lyrics = "basses" \lyricsto "basses" \bassWords
>>
}
Appendice A: Modelli 161
hi hi hi hi
åå åå åå å åå
ha ha ha ha
hu hu hu hu
åå åå åå åå
ho ho ho ho
global = {
\key c \major
\time 4/4
}
bassMusic = \relative c {
c4 c g c
}
Appendice A: Modelli 162
bassWords = \lyricmode {
ho ho ho ho
}
\score {
<<
\new ChoirStaff <<
\new Lyrics = "sopranos" \with {
% This is needed for lyrics above a staff
\override VerticalAxisGroup.staff-affinity = #DOWN
}
\new Staff = "women" <<
\new Voice = "sopranos" { \voiceOne << \global \sopMusic >> }
\new Voice = "altos" { \voiceTwo << \global \altoMusic >> }
>>
\new Lyrics = "altos"
\new Lyrics = "tenors" \with {
% This is needed for lyrics above a staff
\override VerticalAxisGroup.staff-affinity = #DOWN
}
hi hi hi hi
åå åå å å åå
å
ha ha ha ha
hu hu hu hu
åå åå å åå
å
ho ho ho ho
åå åå å åå
å
¥ å
åå åå å åå
å
A.4.3 SATB con contesti allineati
Questo modello è fondamentalmente analogo al semplice modello “Complesso vocale”, con
l’unica differenza che qui tutti i versi del testo sono posizionati usando alignAboveContext
e alignBelowContext.
global = {
\key c \major
\time 4/4
}
bassMusic = \relative c {
c4 c g c
}
bassWords = \lyricmode {
ho ho ho ho
Appendice A: Modelli 164
\score {
\new ChoirStaff <<
\new Staff = "women" <<
\new Voice = "sopranos" { \voiceOne << \global \sopMusic >> }
\new Voice = "altos" { \voiceTwo << \global \altoMusic >> }
>>
\new Lyrics \with { alignAboveContext = #"women" }
\lyricsto "sopranos" \sopWords
\new Lyrics \with { alignBelowContext = #"women" }
\lyricsto "altos" \altoWords
% we could remove the line about this with the line below, since
% we want the alto lyrics to be below the alto Voice anyway.
% \new Lyrics \lyricsto "altos" \altoWords
hi hi hi hi
å å ååå
å å å å
ha ha ha ha
hu hu hu hu
åå åå å åå
å
ho ho ho ho
A.4.4 SATB su quattro righi
Modello per coro SATB (quattro righi)
global = {
\key c \major
\time 4/4
\dynamicUp
}
sopranonotes = \relative c'' {
c2 \p \< d c d \f
}
Appendice A: Modelli 165
sopranowords = \lyricmode { do do do do }
altonotes = \relative c'' {
c2\p d c d
}
altowords = \lyricmode { re re re re }
tenornotes = {
\clef "G_8"
c2\mp d c d
}
tenorwords = \lyricmode { mi mi mi mi }
bassnotes = {
\clef bass
c2\mf d c d
}
basswords = \lyricmode { mi mi mi mi }
\score {
\new ChoirStaff <<
\new Staff <<
\new Voice = "soprano" <<
\global
\sopranonotes
>>
\lyricsto "soprano" \new Lyrics \sopranowords
>>
\new Staff <<
\new Voice = "alto" <<
\global
\altonotes
>>
\lyricsto "alto" \new Lyrics \altowords
>>
\new Staff <<
\new Voice = "tenor" <<
\global
\tenornotes
>>
\lyricsto "tenor" \new Lyrics \tenorwords
>>
\new Staff <<
\new Voice = "bass" <<
\global
\bassnotes
>>
\lyricsto "bass" \new Lyrics \basswords
>>
>>
}
Appendice A: Modelli 166
p f
å å å å
do do do do
p
å å å å
re re re re
mp
å å å å
mi mi mi mi
8
mf
å å å å
mi mi mi mi
% verse
\time 3/4
s2.*2
\break
% refrain
\time 2/4
s2*2
\bar "|."
}
% verse
g4 g g |
b4 b b |
% refrain
R2*2 |
}
SoloLyrics = \lyricmode {
One two three |
four five six |
}
\clef "treble"
% verse
R2.*2 |
% refrain
c4 c |
g4 g |
}
SopranoLyrics = \lyricmode {
la la |
la la |
}
BassNotes = \relative c {
\clef "bass"
% verse
R2.*2 |
% refrain
c4 e |
d4 d |
}
BassLyrics = \lyricmode {
dum dum |
dum dum |
}
\score {
<<
\new Voice = "SoloVoice" << \global \SoloNotes >>
\new Lyrics \lyricsto "SoloVoice" \SoloLyrics
43 å å å å å å 2
4
One two three four five six
3 å å
2 å å
4
la la la la
2 å å å å
4
dum dum dum dum
A.4.6 Inni
Il codice seguente presenta un modo di impostare un inno in cui ogni verso inizia e finisce con
una misura parziale. Mostra anche come aggiungere delle strofe come testo separato sotto la
musica.
Timeline = {
\time 4/4
\tempo 4=96
\partial 2
s2 | s1 | s2 \breathe s2 | s1 | s2 \bar "||" \break
s2 | s1 | s2 \breathe s2 | s1 | s2 \bar "||"
}
TenorMusic = \relative a {
b4 b | b b b b | b b b b | b b b b | b2
b4 b | b b b b | b b b b | b b b b | b2
}
BassMusic = \relative g {
g4 g | g g g g | g g g g | g g g g | g2
g4 g | g g g g | g g g g | g g g g | g2
}
global = {
\key g \major
}
Appendice A: Modelli 169
\markup {
\fill-line {
""
{
\column {
\left-align {
"This is line one of the first verse"
"This is line two of the same"
"And here's line three of the first verse"
"And the last line of the same"
}
}
}
""
}
}
Appendice A: Modelli 170
å = 96
åå åå åå åå åå åå åå åå åå åå åå åå åå åå
Ó
åå åå åå åå åå åå åå åå åå åå åå åå åå åå
åå åå åå åå åå åå åå åå åå åå åå åå åå åå
Ó
åå åå åå åå åå åå åå åå åå åå åå åå åå åå
A.4.7 Salmi
Questo modello presenta un modo per impostare un salmo anglicano. Mostra anche come le
strofe possano essere aggiunte come testo separato al di sotto della musica. Le due strofe sono
scritte con stili diversi per illustrare le varie possibilità.
SopranoMusic = \relative g' {
g1 | c2 b | a1 | \bar "||"
a1 | d2 c | c b | c1 | \bar "||"
}
TenorMusic = \relative a {
c1 | c2 c | c1 |
d1 | g,2 g | g g | g1 |
}
BassMusic = \relative c {
c1 | e2 e | f1 |
d1 | b2 c | g' g | c,1 |
}
global = {
\time 2/2
Appendice A: Modelli 171
dot = \markup {
\raise #0.7 \musicglyph #"dots.dot"
}
tick = \markup {
\raise #1 \fontsize #-5 \musicglyph #"scripts.rvarcomma"
}
} % End score
}
} % End markup
\markup {
\fill-line {
\column {
\left-align {
\null \null \null
\line {
\fontsize #5 O
\fontsize #3 come
let us \bold sing | unto \dot the | Lord : let
}
\line {
us heartily
\concat { re \bold joice }
in the | strength of | our
}
\line {
sal | vation.
}
\null
\line {
\hspace #2.5 8. Today if ye will hear his voice *
}
\line {
\concat { \bold hard en }
\tick not your \tick hearts : as in the pro-
}
\line {
vocation * and as in the \bold day of tempt- \tick
}
\line {
-ation \tick in the \tick wilderness.
}
}
}
}
}
åå åå åå
åå åå åå
å å å åå å å
å å å
Appendice A: Modelli 173
\score {
<<
\new StaffGroup = "StaffGroup_woodwinds" <<
Appendice A: Modelli 174
% incipit
\once \hide Score.SystemStartBracket
% Set tight spacing
\override Score.SpacingSpanner.spacing-increment = #1.0
\key f \major
\time 2/2
\once \override Staff.TimeSignature.style = #'neomensural
Appendice A: Modelli 177
% main
\cadenzaOff % turn bar lines on again
\once \override Staff.Clef.full-size-change = ##t
\set Staff.forceClef = ##t
\key g \major
\time 4/4
\override Voice.NoteHead.style = #'default
\override Voice.Rest.style = #'default
% finis bar
\bar "|."
}
discantusNotes = {
\transpose c' c'' {
\set Staff.instrumentName = #"Discantus "
% incipit
\clef "neomensural-c1"
c'1. s2 % two bars
\skip 1*8 % eight bars
\skip 1*1 % one bar
% main
\clef "treble"
d'2. d'4 |
b e' d'2 |
c'4 e'4.( d'8 c' b |
a4) b a2 |
Appendice A: Modelli 178
discantusLyrics = \lyricmode {
% incipit
IV-
% main
Ju -- bi -- |
la -- te De -- |
o, om --
nis ter -- |
ra, __ om- |
"..." |
-us. |
}
altusNotes = {
\transpose c' c'' {
\set Staff.instrumentName = #"Altus "
% incipit
\clef "neomensural-c3"
r1 % one bar
f1. s2 % two bars
\skip 1*7 % seven bars
\skip 1*1 % one bar
% main
\clef "treble"
r2 g2. e4 fis g | % two bars
a2 g4 e |
fis g4.( fis16 e fis4) |
g1 |
\once \hide NoteHead g1 |
g\breve |
}
}
altusLyrics = \lyricmode {
% incipit
IV-
% main
Ju -- bi -- la -- te | % two bars
De -- o, om -- |
nis ter -- ra, |
"..." |
-us. |
Appendice A: Modelli 179
tenorNotes = {
\transpose c' c' {
\set Staff.instrumentName = #"Tenor "
% incipit
\clef "neomensural-c4"
r\longa % four bars
r\breve % two bars
r1 % one bar
c'1. s2 % two bars
\skip 1*1 % one bar
\skip 1*1 % one bar
% main
\clef "treble_8"
R1 |
R1 |
R1 |
r2 d'2. d'4 b e' | % two bars
\once \hide NoteHead e'1 |
d'\breve |
}
}
tenorLyrics = \lyricmode {
% incipit
IV-
% main
Ju -- bi -- la -- te | % two bars
"..." |
-us. |
}
bassusNotes = {
\transpose c' c' {
\set Staff.instrumentName = #"Bassus "
% incipit
\clef "bass"
r\maxima % eight bars
f1. s2 % two bars
\skip 1*1 % one bar
% main
\clef "bass"
R1 |
R1 |
R1 |
R1 |
Appendice A: Modelli 180
g2. e4 |
\once \hide NoteHead e1 |
g\breve |
}
}
bassusLyrics = \lyricmode {
% incipit
IV-
% main
Ju -- bi- |
"..." |
-us. |
}
\score {
\new StaffGroup = choirStaff <<
\new Voice =
"discantusNotes" << \global \discantusNotes >>
\new Lyrics =
"discantusLyrics" \lyricsto discantusNotes { \discantusLyrics }
\new Voice =
"altusNotes" << \global \altusNotes >>
\new Lyrics =
"altusLyrics" \lyricsto altusNotes { \altusLyrics }
\new Voice =
"tenorNotes" << \global \tenorNotes >>
\new Lyrics =
"tenorLyrics" \lyricsto tenorNotes { \tenorLyrics }
\new Voice =
"bassusNotes" << \global \bassusNotes >>
\new Lyrics =
"bassusLyrics" \lyricsto bassusNotes { \bassusLyrics }
>>
\layout {
\context {
\Score
% no bars in staves
\hide BarLine
% no slurs
\hide Slur
\remove "Forbid_line_break_engraver"
}
}
}
Discantus
IV- Ju bi
Altus
IV- Ju
Tenor
IV-
8
Bassus
IV-
2
la te De o, om nis ter
bi la te De o, om nis ter
8
Ju
Appendice A: Modelli 182
5
ra, om- ... -us.
ra, ... -us.
8
bi la te ... -us.
Ju bi- ... -us.
verba = \lyricmode {
Lo -- rem ip -- sum do -- lor sit a -- met
}
\score {
\new Staff <<
\new Voice = "melody" \chant
\new Lyrics = "one" \lyricsto melody \verba
>>
\layout {
\context {
\Staff
\remove "Time_signature_engraver"
\remove "Bar_engraver"
\hide Stem
}
\context {
\Voice
\override Stem.length = #0
}
\context {
\Score
barAlways = ##t
}
}
Appendice A: Modelli 183
å å å å ååå
Lo rem ip sum do lor sit a met
%#(set-global-staff-size 16)
\include "english.ly"
sl = {
\override NoteHead.style = #'slash
\hide Stem
}
nsl = {
\revert NoteHead.style
\undo \hide Stem
}
crOn = \override NoteHead.style = #'cross
crOff = \revert NoteHead.style
jazzChords = { }
c1 | c | c
}
rhLower = \relative c' {
\voiceTwo
\Key
e1 | e | e
}
PianoRH = {
\clef treble
\global
\set Staff.midiInstrument = #"acoustic grand"
<<
\new Voice = "one" \rhUpper
\new Voice = "two" \rhLower
>>
}
PianoLH = {
\clef bass
\global
\set Staff.midiInstrument = #"acoustic grand"
<<
\new Voice = "one" \lhUpper
\new Voice = "two" \lhLower
>>
}
piano = {
<<
\set PianoStaff.instrumentName = #"Piano"
\new Staff = "upper" \PianoRH
\new Staff = "lower" \PianoLH
>>
}
\global
\set Staff.instrumentName = #"Bass"
\clef bass
<<
\Bass
>>
}
drumContents = {
\global
<<
\set DrumStaff.instrumentName = #"Drums"
\new DrumVoice \up
\new DrumVoice \down
>>
}
\score {
<<
\new StaffGroup = "horns" <<
\new Staff = "trumpet" \trumpet
\new Staff = "altosax" \altoSax
\new ChordNames = "barichords" \bariHarmony
\new Staff = "barisax" \bariSax
\new Staff = "trombone" \trombone
>>
Song
(tune)
Me
moderato
Swing
L L L
Trumpet
Alto Sax L L L
7
B C m
Solo
Bari Sax L L
L L L
Trombone
9
L L
Cm D
Guitar
LL L
L
L
L
Piano Q
LL L
L LL
Bass
L L L
Drums
Appendice B: GNU Free Documentation License 189
covers must also clearly and legibly identify you as the publisher of these copies. The front
cover must present the full title with all words of the title equally prominent and visible.
You may add other material on the covers in addition. Copying with changes limited to the
covers, as long as they preserve the title of the Document and satisfy these conditions, can
be treated as verbatim copying in other respects.
If the required texts for either cover are too voluminous to fit legibly, you should put the
first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto
adjacent pages.
If you publish or distribute Opaque copies of the Document numbering more than 100, you
must either include a machine-readable Transparent copy along with each Opaque copy,
or state in or with each Opaque copy a computer-network location from which the general
network-using public has access to download using public-standard network protocols a
complete Transparent copy of the Document, free of added material. If you use the latter
option, you must take reasonably prudent steps, when you begin distribution of Opaque
copies in quantity, to ensure that this Transparent copy will remain thus accessible at the
stated location until at least one year after the last time you distribute an Opaque copy
(directly or through your agents or retailers) of that edition to the public.
It is requested, but not required, that you contact the authors of the Document well before
redistributing any large number of copies, to give them a chance to provide you with an
updated version of the Document.
4. MODIFICATIONS
You may copy and distribute a Modified Version of the Document under the conditions
of sections 2 and 3 above, provided that you release the Modified Version under precisely
this License, with the Modified Version filling the role of the Document, thus licensing
distribution and modification of the Modified Version to whoever possesses a copy of it. In
addition, you must do these things in the Modified Version:
A. Use in the Title Page (and on the covers, if any) a title distinct from that of the
Document, and from those of previous versions (which should, if there were any, be
listed in the History section of the Document). You may use the same title as a previous
version if the original publisher of that version gives permission.
B. List on the Title Page, as authors, one or more persons or entities responsible for
authorship of the modifications in the Modified Version, together with at least five of
the principal authors of the Document (all of its principal authors, if it has fewer than
five), unless they release you from this requirement.
C. State on the Title page the name of the publisher of the Modified Version, as the
publisher.
D. Preserve all the copyright notices of the Document.
E. Add an appropriate copyright notice for your modifications adjacent to the other copy-
right notices.
F. Include, immediately after the copyright notices, a license notice giving the public
permission to use the Modified Version under the terms of this License, in the form
shown in the Addendum below.
G. Preserve in that license notice the full lists of Invariant Sections and required Cover
Texts given in the Document’s license notice.
H. Include an unaltered copy of this License.
I. Preserve the section Entitled “History”, Preserve its Title, and add to it an item stating
at least the title, year, new authors, and publisher of the Modified Version as given
on the Title Page. If there is no section Entitled “History” in the Document, create
one stating the title, year, authors, and publisher of the Document as given on its
Appendice B: GNU Free Documentation License 192
Title Page, then add an item describing the Modified Version as stated in the previous
sentence.
J. Preserve the network location, if any, given in the Document for public access to a
Transparent copy of the Document, and likewise the network locations given in the
Document for previous versions it was based on. These may be placed in the “History”
section. You may omit a network location for a work that was published at least four
years before the Document itself, or if the original publisher of the version it refers to
gives permission.
K. For any section Entitled “Acknowledgements” or “Dedications”, Preserve the Title
of the section, and preserve in the section all the substance and tone of each of the
contributor acknowledgements and/or dedications given therein.
L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their
titles. Section numbers or the equivalent are not considered part of the section titles.
M. Delete any section Entitled “Endorsements”. Such a section may not be included in
the Modified Version.
N. Do not retitle any existing section to be Entitled “Endorsements” or to conflict in title
with any Invariant Section.
O. Preserve any Warranty Disclaimers.
If the Modified Version includes new front-matter sections or appendices that qualify as
Secondary Sections and contain no material copied from the Document, you may at your
option designate some or all of these sections as invariant. To do this, add their titles to
the list of Invariant Sections in the Modified Version’s license notice. These titles must be
distinct from any other section titles.
You may add a section Entitled “Endorsements”, provided it contains nothing but endorse-
ments of your Modified Version by various parties—for example, statements of peer review
or that the text has been approved by an organization as the authoritative definition of a
standard.
You may add a passage of up to five words as a Front-Cover Text, and a passage of up
to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified
Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added
by (or through arrangements made by) any one entity. If the Document already includes
a cover text for the same cover, previously added by you or by arrangement made by the
same entity you are acting on behalf of, you may not add another; but you may replace the
old one, on explicit permission from the previous publisher that added the old one.
The author(s) and publisher(s) of the Document do not by this License give permission to
use their names for publicity for or to assert or imply endorsement of any Modified Version.
5. COMBINING DOCUMENTS
You may combine the Document with other documents released under this License, under
the terms defined in section 4 above for modified versions, provided that you include in the
combination all of the Invariant Sections of all of the original documents, unmodified, and
list them all as Invariant Sections of your combined work in its license notice, and that you
preserve all their Warranty Disclaimers.
The combined work need only contain one copy of this License, and multiple identical
Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections
with the same name but different contents, make the title of each such section unique by
adding at the end of it, in parentheses, the name of the original author or publisher of that
section if known, or else a unique number. Make the same adjustment to the section titles
in the list of Invariant Sections in the license notice of the combined work.
Appendice B: GNU Free Documentation License 193
In the combination, you must combine any sections Entitled “History” in the various original
documents, forming one section Entitled “History”; likewise combine any sections Entitled
“Acknowledgements”, and any sections Entitled “Dedications”. You must delete all sections
Entitled “Endorsements.”
6. COLLECTIONS OF DOCUMENTS
You may make a collection consisting of the Document and other documents released under
this License, and replace the individual copies of this License in the various documents with
a single copy that is included in the collection, provided that you follow the rules of this
License for verbatim copying of each of the documents in all other respects.
You may extract a single document from such a collection, and distribute it individually
under this License, provided you insert a copy of this License into the extracted document,
and follow this License in all other respects regarding verbatim copying of that document.
7. AGGREGATION WITH INDEPENDENT WORKS
A compilation of the Document or its derivatives with other separate and independent
documents or works, in or on a volume of a storage or distribution medium, is called
an “aggregate” if the copyright resulting from the compilation is not used to limit the
legal rights of the compilation’s users beyond what the individual works permit. When the
Document is included in an aggregate, this License does not apply to the other works in
the aggregate which are not themselves derivative works of the Document.
If the Cover Text requirement of section 3 is applicable to these copies of the Document,
then if the Document is less than one half of the entire aggregate, the Document’s Cover
Texts may be placed on covers that bracket the Document within the aggregate, or the
electronic equivalent of covers if the Document is in electronic form. Otherwise they must
appear on printed covers that bracket the whole aggregate.
8. TRANSLATION
Translation is considered a kind of modification, so you may distribute translations of the
Document under the terms of section 4. Replacing Invariant Sections with translations
requires special permission from their copyright holders, but you may include translations of
some or all Invariant Sections in addition to the original versions of these Invariant Sections.
You may include a translation of this License, and all the license notices in the Document,
and any Warranty Disclaimers, provided that you also include the original English version
of this License and the original versions of those notices and disclaimers. In case of a
disagreement between the translation and the original version of this License or a notice or
disclaimer, the original version will prevail.
If a section in the Document is Entitled “Acknowledgements”, “Dedications”, or “History”,
the requirement (section 4) to Preserve its Title (section 1) will typically require changing
the actual title.
9. TERMINATION
You may not copy, modify, sublicense, or distribute the Document except as expressly
provided under this License. Any attempt otherwise to copy, modify, sublicense, or distribute
it is void, and will automatically terminate your rights under this License.
However, if you cease all violation of this License, then your license from a particular copy-
right holder is reinstated (a) provisionally, unless and until the copyright holder explicitly
and finally terminates your license, and (b) permanently, if the copyright holder fails to
notify you of the violation by some reasonable means prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is reinstated permanently if the
copyright holder notifies you of the violation by some reasonable means, this is the first
time you have received notice of violation of this License (for any work) from that copyright
holder, and you cure the violation prior to 30 days after your receipt of the notice.
Appendice B: GNU Free Documentation License 194
Termination of your rights under this section does not terminate the licenses of parties
who have received copies or rights from you under this License. If your rights have been
terminated and not permanently reinstated, receipt of a copy of some or all of the same
material does not give you any rights to use it.
10. FUTURE REVISIONS OF THIS LICENSE
The Free Software Foundation may publish new, revised versions of the GNU Free Doc-
umentation License from time to time. Such new versions will be similar in spirit to the
present version, but may differ in detail to address new problems or concerns. See http://
www.gnu.org/copyleft/.
Each version of the License is given a distinguishing version number. If the Document
specifies that a particular numbered version of this License “or any later version” applies
to it, you have the option of following the terms and conditions either of that specified
version or of any later version that has been published (not as a draft) by the Free Software
Foundation. If the Document does not specify a version number of this License, you may
choose any version ever published (not as a draft) by the Free Software Foundation. If the
Document specifies that a proxy can decide which future versions of this License can be
used, that proxy’s public statement of acceptance of a version permanently authorizes you
to choose that version for the Document.
11. RELICENSING
“Massive Multiauthor Collaboration Site” (or “MMC Site”) means any World Wide Web
server that publishes copyrightable works and also provides prominent facilities for anybody
to edit those works. A public wiki that anybody can edit is an example of such a server. A
“Massive Multiauthor Collaboration” (or “MMC”) contained in the site means any set of
copyrightable works thus published on the MMC site.
“CC-BY-SA” means the Creative Commons Attribution-Share Alike 3.0 license published
by Creative Commons Corporation, a not-for-profit corporation with a principal place of
business in San Francisco, California, as well as future copyleft versions of that license
published by that same organization.
“Incorporate” means to publish or republish a Document, in whole or in part, as part of
another Document.
An MMC is “eligible for relicensing” if it is licensed under this License, and if all works that
were first published under this License somewhere other than this MMC, and subsequently
incorporated in whole or in part into the MMC, (1) had no cover texts or invariant sections,
and (2) were thus incorporated prior to November 1, 2008.
The operator of an MMC Site may republish an MMC contained in the site under CC-BY-
SA on the same site at any time before August 1, 2009, provided the MMC is eligible for
relicensing.
Appendice B: GNU Free Documentation License 195
! \< . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 \> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
\\ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31, 48
\absolute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
% \acciaccatura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
\addlyrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
% . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
\addlyrics, esempio . . . . . . . . . . . . . . . . . . . . . . . . . 93, 98
%{ ... %} . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
\appoggiatura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
\autoBeamOff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25, 57
’ \autoBeamOn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
\book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41, 42
' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 \clef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
\consists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
\context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
( \f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
( ... ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 \ff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
\grace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
\header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38, 42
, \hide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
, . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 \key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
\layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42, 69
\lyricmode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
. \lyricsto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 \major . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
\markup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
\mf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
< \midi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
< . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24, 30 \minor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
< ... > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 \mp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
<< . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28, 31 \new . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29, 60
<< ... >> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 \new ChoirStaff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
<< ... \\ ... >> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 \new Lyrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
<< \\ >> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 \new Staff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
\new Voice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
\omit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101, 105
> \once . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90, 95
> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24, 30 \once \override . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
>> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28, 31 \oneVoice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
\override . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
\overrideProperty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
[ \p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
\partial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
[ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
\pp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
[ ... ] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
\relative . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
\remove. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
] \revert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90, 96
\score . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41, 43
] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 \set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
\set, esempio di utilizzo . . . . . . . . . . . . . . . . . . . . . . . . 113
^ \shiftOff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56, 125
\shiftOn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56, 125
^ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 \shiftOnn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56, 125
\shiftOnnn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56, 125
\single . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
\startTextSpan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
_ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 \stopTextSpan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
\tempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
\textLengthOff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
\ \textLengthOn. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
\! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 \time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
\( ... \) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 \tuplet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Appendice C: Indice di LilyPond 197
I manuale, leggere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
identificatori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Manuali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
implicito, blocco del libro . . . . . . . . . . . . . . . . . . . . . . . . 42 markup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
impostare le proprietà all’interno dei contesti . . . . . 63 markup, esempio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
incisori. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 melisma. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
incisori, aggiungere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 metodi di modifica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
incisori, rimuovere. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 MetronomeMark, esempio di sovrascrittura . . . . . 126,
indicazione metronomica, modificare il 140, 141
posizionamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 midi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
indicazioni di tempo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 minima . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
indicazioni metronomiche . . . . . . . . . . . . . . . . . . . . . . . . 15 minor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
insensibile agli spazi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 minore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
interfaccia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88, 97 modelli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
intestazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 modelli, SATB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
is . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 modello, modificare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
isis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 modello, scrivere il tuo . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
italic, esempio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 modifica, metodi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
modificare i modelli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
modificare il posizionamento dei numeri di chiamata
K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
modificare il posizionamento del numero di battuta
key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
modificare il posizionamento dell’indicazione
metronomica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
L modificare il posizionamento delle dinamiche . . . . 117
layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42, 69 modificare la dimensione degli oggetti . . . . . . . . . . . 104
layout vs. contenuto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 modificare le proprietà del contesto . . . . . . . . . . . . . . . 63
layout, effetto della posizione del blocco . . . . . . . . . . 42 modo assoluto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
legatura di fraseggio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 modo relativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
legatura di portamento . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 modo relativo e polifonia . . . . . . . . . . . . . . . . . . . . . . . . . 50
legatura di portamento, esempio di sovrascrittura modo relativo, e alterazioni . . . . . . . . . . . . . . . . . . . . . . . 12
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 MultiMeasureRest, esempio di sovrascrittura . . . . 128
legatura di portamento, fraseggio . . . . . . . . . . . . . . . . . 22 multipli, righi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28, 29
legatura di valore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 musica simultanea. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
legature che attraversano le parentesi . . . . . . . . . . . . . 49 musica simultanea e note relative . . . . . . . . . . . . . . . . . 28
legature di frase, controllo manuale . . . . . . . . . . . . . . 129 musica sincrona . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
legature di portamento e articolazioni . . . . . . . . . . . 116
legature di portamento e outside-staff-priority . . . 116
legature di portamento vs. legature di valore . . . . . . 23 N
legature di portamento, controllo manuale . . . . . . . 129 nascondere gli oggetti . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
legature di valore tra note di voci diverse . . . . . . . . 139 neutral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
leggere il manuale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 new . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29, 60
libro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 new Staff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
libro, blocco implicito . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 nomi assoluti delle note . . . . . . . . . . . . . . . . . . . . . . . . . . 38
linea di estensione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 nomi delle note . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
linea, commento di . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 nomi delle note, assoluti . . . . . . . . . . . . . . . . . . . . . . . . . . 38
livelli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 nota puntata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
lunghezza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 notazione delle durate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
lunghezza del gambo, modificare la . . . . . . . . . . . . . . 108 notazione delle pause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
lyricmode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 notazione semplice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Lyrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29, 56 notazione, semplice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Lyrics, creazione di un contesto . . . . . . . . . . . . . . . . . . 56 note relative e espressioni parallele . . . . . . . . . . . . . . . 28
lyricsto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 note relative e musica simultanea . . . . . . . . . . . . . . . . . 28
LyricText, esempio di sovrascrittura . . . . . . . . . 98, 142 note spaziatrici. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
note, collisioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
note, collisioni di . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
M note, distanziarle insieme al testo. . . . . . . . . . . . . . . . 116
MacOS X, eseguire LilyPond . . . . . . . . . . . . . . . . . . . . . . 2 NoteColumn, esempio di sovrascrittura . . . . . 131, 137
macro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 NoteHead, esempio di sovrascrittura . . . . . 90, 91, 104,
maggiore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 148
magstep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 numeri di battuta, modificare il posizionamento . . 115
magstep, esempio di uso. . . . . . . . . . . . . . . . . . . . . . . . . 108 numeri di chiamata, modificare il posizionamento
maiuscole, sensibile alle. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
major . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 numero di versione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
manuale del Funzionamento Interno . . . . . . . . . . . . . . 93 nuovi contesti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Appendice C: Indice di LilyPond 200