Grace notes (appoggiature e acciaccature)¶
Questo documento definisce la sintassi e la semantica delle grace notes in neumaRk: appoggiature e acciaccature, con relativi modificatori grafici e regole di interazione con il contesto musicale.
Le grace notes sono eventi musicali ornamentali: vengono eseguite in prossimità di una nota reale (la main) ma non concorrono al computo ritmico della misura.
1. Definizione¶
Una grace note è una nota ornamentale racchiusa tra parentesi quadre
[ … ] e ancorata, in posizione adiacente a sinistra, a una nota reale
detta main.
Una grace note:
- non occupa tempo: la sua durata è grafica, non ritmica, e non contribuisce al riempimento della misura;
- deve avere durata esplicita all’interno delle parentesi quadre;
- non aggiorna il contesto musicale persistente: né la pitch né la
durata di una grace note vengono memorizzate come riferimento per la
deduzione degli eventi successivi (vedi
neumaRk_specification.md§2.1).
2. Sintassi¶
Un blocco grace è costituito da una parentesi quadra aperta, da una sequenza di eventi grace separati da spazi, e da una parentesi quadra chiusa, immediatamente seguita — senza spazi — dalla nota main.
[ <grace> [<grace> …] ] <main>
2.1 Evento grace¶
Un evento grace è formato da:
- Pitch — obbligatorio, con la stessa sintassi delle note ordinarie
(vedi
neumaRk_notes_and_durations.md§2). È ammessa anche la forma di chord-stack<…>. L'inferenza dell'ottava ha per riferimento la pitch della main a cui il blocco è ancorato (la nota reale che segue]), non il contesto musicale che precede il blocco — vedi §7.1. - Durata — obbligatoria sul primo evento grace del blocco; sugli eventi successivi è opzionale e, se omessa, eredita dal valore precedentemente esplicitato nel blocco (vedi §3).
- Modificatori
/e/o^— opzionali, ammessi solo sull’ultimo evento grace del blocco (vedi §4).
Esempi di eventi grace validi:
f#8 g16 <c e g>8 a16/^ g f#/^
Negli ultimi due esempi la durata è omessa: viene ereditata dal valore esplicito della grace precedente nel blocco. Il primo evento di un blocco senza durata produce E009.
Non sono ammessi all’interno di un evento grace:
- pause (rest);
- annotazioni
"…"; - modificatori
!di forzatura accidente; - gruppi irregolari (
t); - prolungamenti distanziati (
.separato,^distanziato, ripetizione!).
2.2 Adiacenza con la main¶
La parentesi quadra di chiusura ] deve essere immediatamente adiacente
alla nota main, senza spazi intermedi.
[f#8/^]c4 ✓
[f#8/^] c4 ✗ (spazio tra blocco grace e main)
In assenza di adiacenza, il blocco grace non viene riconosciuto come tale e produce W003 (vedi §8).
3. Durate ammesse e ereditarietà¶
I valori di durata ammessi per una grace note sono esclusivamente:
4 8 16
Non sono ammessi:
- prolungamenti adiacenti (
.); - moltiplicatori (
*ox); - gruppi irregolari (
t); - durata indeterminata (
?).
Una grace note con durata non conforme produce E009.
3.1 Ereditarietà locale al blocco¶
La durata del primo evento grace del blocco è obbligatoria. Gli eventi grace successivi, se omettono la cifra di durata, ereditano il valore esplicitato per ultimo all’interno dello stesso blocco.
[f#8 g a]c4 ≡ [f#8 g8 a8]c4
[f#16 g8 a]c4 ≡ [f#16 g8 a8]c4 (a eredita 8, non 16)
[f# g8]c4 → E009 (primo evento senza durata)
L’ereditarietà è strettamente locale al blocco: non interagisce con
il contesto musicale persistente (vedi §7) né attraversa il ]. Due
blocchi grace consecutivi non condividono il valore: ognuno deve avere
la propria durata esplicita sul primo evento.
Il valore ereditato viene preservato dal serializer in forma compatta (no cifra) per round-trip lossless del sorgente.
4. Modificatori grafici¶
All’interno della parentesi quadra sono ammessi due modificatori, posti in coda all’ultimo evento grace del blocco, in qualunque ordine:
/— barrata: la grace viene resa graficamente con una barra obliqua sulla cediglia (acciaccatura);^— legata: la grace è collegata alla main da una legatura grafica (slur). Riusa il simbolo^della legatura di valore (vedineumaRk_notes_and_durations.md§6), in contesto grace.
I due modificatori sono combinabili: /^ o ^/ indicano una grace
barrata e legata alla main, forma tipica dell’acciaccatura classica.
4.1 Vincolo di posizione dei modificatori¶
I modificatori / e ^ sono ammessi soltanto sull’ultimo evento
grace del blocco. La loro presenza su un evento grace non finale
produce E010.
[f#8 g8 a16/^]c ✓
[f#8/]c ✓
[f#8/ g8]c ✗ (modificatore su grace non finale → E010)
[f#8/ g8/^]c ✗ (idem)
5. Cardinalità del blocco¶
Un blocco grace deve contenere almeno un evento grace e al massimo quattro.
- Blocco vuoto
[]→ E011. - Blocco con più di quattro eventi grace → E012.
[f#8]c ✓ (1 grace)
[f#8 g8 a16 b16/^]c ✓ (4 grace, ultima con modificatori)
[f#8 g8 a16 b16 c16/^]c ✗ (5 grace → E012)
6. Ancoraggio alla nota main¶
Il blocco grace deve essere seguito, in posizione adiacente, da una nota reale (pitch o chord-stack), che ne costituisce la main.
La nota main:
- è una nota ordinaria a tutti gli effetti, soggetta alle normali regole
di deduzione di pitch e durata (vedi
neumaRk_notes_and_durations.md); - è l’evento ritmicamente rilevante al quale la grace è graficamente e musicalmente subordinata.
6.1 Blocco grace senza main¶
Un blocco grace non seguito da una nota main valida (es. ultimo evento della misura o del datapack, oppure seguito da pausa, barlinea, marker strutturale) viene ignorato dal parser e produce W004.
| c4 d4 e4 [f#8/^] | → grace ignorata, W004
| c4 d4 e4 [f#8/^] r | → grace ignorata, W004 (main non può essere rest)
7. Effetto sul contesto musicale¶
Una grace note non altera il contesto musicale persistente:
- la pitch di una grace non viene memorizzata come ultima pitch esplicita ai fini della deduzione delle pitch successive;
- la durata di una grace non viene memorizzata come ultima durata esplicita ai fini della deduzione delle durate successive.
Esempio (in 4/4):
c4 [f#8/^]c [f#8/^]c8 c4.
c4— main esplicita, contesto: pitch=c, durata=4.[f#8/^]c— gracef#8ignorata ai fini del contesto; mainceredita durata4(ultima durata esplicita rimasta nel contesto).[f#8/^]c8— mainc8aggiorna il contesto a durata=8.c4.— main aggiorna durata=4. (puntato).
Il contesto al termine della sequenza è coerente come se le grace non fossero mai state scritte.
7.1 Inferenza dell’ottava delle grace¶
La pitch di una grace deduce l’ottava rispetto alla pitch della
main a cui il blocco è ancorato (la nota reale che segue ]), non
rispetto al contesto musicale che precede il blocco. Le grace sono
ornamentazioni della main e l’ottava più vicina è quella che le rende
adiacenti al loro target visivo.
Esempio (treble, 4/4):
N) a [f8/^]g'
a— main, pitch a4.g'— main della grace, pitch g5 (intervallo minimo daa4porterebbe ag4; il modificatore'aggiunge +1 ottava).[f8/^]— gracefcon riferimentog5: lafpiù vicina ag5è f5 (un tono sotto), nonf4(che disterebbe una nona). Risultato: grace f5 → main g5, intervallo di seconda maggiore discendente.
All’interno del blocco grace, le ottave dei singoli eventi grace si calcolano in catena: il primo evento grace è ottava-inferito dalla main; i successivi sono ottava-inferiti dall’evento grace precedente nello stesso blocco (inferenza monodica standard intra-blocco). La chain del contesto della linea, invece, non attraversa il blocco: l’evento subito dopo la main eredita il contesto della main, non delle grace (vedi §7).
8. Rendering degli accidenti¶
Per la resa grafica degli accidenti, una grace note non aggiorna lo stato di propagazione della misura, ma lo influenza. Tre regole.
8.1 Accidente sulla grace¶
L’accidente viene disegnato sulla grace se e soltanto se la pitch della grace devia dalla matrice corrente della misura (cioè dalla key signature aggiornata dagli accidenti già occorsi nella misura prima del blocco grace).
In altre parole, il criterio è lo stesso che si applica alle main: la grace mostra un accidente quando suona "inatteso" rispetto allo stato visivo corrente.
Esempi (key signature: G major, F# in chiave; 4/4):
| Contesto a sinistra | Input grace | Resa grafica della grace |
|---|---|---|
| (misura nuova) | [f#8/^]c |
nessun accidente (F# coincide con chiave) |
f4 (F♮) |
[f#8/^]g |
# (matrix=’f’→♮, la grace ne devia) |
| (misura nuova) | [f8/^]c |
♮ (F♮ devia da F# in chiave) |
| (misura nuova) | [g8/^]c |
nessun accidente (G♮ coincide con chiave) |
g#4 |
[g#8/^]c |
nessun accidente (matrix=’g’→# dopo g#4) |
8.2 Rottura della propagazione dopo la grace¶
Una grace che devia dalla matrice corrente (cioè una grace che ha fatto disegnare un accidente per §8.1) rompe la propagazione degli accidenti per le main successive della misura aventi la stessa pitch-letter e ottava.
Concretamente, dopo una grace di questo tipo, ogni main successiva con
stessa (lettera, ottava) deve riportare a video un accidente esplicito
(#, b o ♮), anche se la matrice corrente coincide con la pitch.
Esempio (key signature: G major; misura in 4/4):
f4 [f#8/^]g4 f4
Resa grafica:
| Evento | matrix[‘f’][4] prima | Accidente a video |
|---|---|---|
f4 (F♮) |
1 (F# da key sig) | ♮ (devia dalla matrice). matrix → 0 |
[f#8/^]g4 |
0 (dopo f4) |
# sulla grace (devia, §8.1). matrix → 0 |
f4 (F♮) |
0 | ♮ (precauzionale, propagazione rotta) |
Nota: la grace non aggiorna la matrice. La main f4 finale legge
ancora matrix[‘f’][4] = 0 (lo stato lasciato dal primo f4); senza
§8.2 non mostrerebbe alcun accidente. Il ♮ precauzionale è imposto
dal "broken propagation" registrato dalla grace.
8.3 Indipendenza interna al blocco¶
All’interno di un blocco grace, ciascun evento grace è isolato rispetto agli altri ai fini del rendering: poiché nessuna grace aggiorna la matrice (§8.1 / regola implicita), tutte le grace del blocco vedono la stessa matrice di partenza, valutate indipendentemente l’una dall’altra.
Nota. Le regole di §8 riguardano esclusivamente la resa grafica. L’input neumaRk usa sempre pitch assolute:
fdenota F♮,f#denota F#, indipendentemente da contesto e key signature.
9. Esempi riassuntivi¶
Acciaccatura classica (barrata, legata):
N) c4 [f#8/^]c [f#8/^]c8 c4.
Appoggiatura semplice (non barrata, non legata):
N) c4 [f#8]c4
Appoggiatura legata, non barrata:
N) c4 [f#8^]c4
Cluster di grace (legatura sull’ultimo):
N) c4 [d8 e8 f8/^]g4
Grace con accordo:
N) c4 [<c e g>8/^]c4
10. Errori e warning¶
| Codice | Tipo | Condizione |
|---|---|---|
| E009 | error | Durata grace mancante sul primo evento del blocco, oppure durata non conforme (ammesse soltanto 4, 8, 16) |
| E010 | error | Modificatore / o ^ su evento grace non finale del blocco |
| E011 | error | Blocco grace vuoto [] |
| E012 | error | Blocco grace con più di quattro eventi grace |
| E013 | error | Pause non ammesse come evento grace (es. [r8]c) |
| W003 | warning | Blocco grace non adiacente a una nota main (spazio tra ] e main) |
| W004 | warning | Blocco grace senza nota main a destra; il blocco viene ignorato |
Ulteriori condizioni di errore generali (pitch non valida, durata malformata, parentesi quadre non bilanciate, ecc.) ricadono sulle diagnostiche già definite per le note ordinarie.
11. Limitazioni note¶
In questa versione della specifica, le grace notes:
- non ammettono articolazioni, dinamiche né annotazioni;
- non ammettono pause (rest) come eventi grace;
- non sono valide nelle righe di accordi (
C)), né nelle righe di chord-rhythm: il costrutto[ … ]è riservato alle righeN).
Estensioni a questi vincoli saranno oggetto di versioni successive.