Note e Durate¶
Questo documento definisce la sintassi e la semantica delle note musicali in neumaRk: altezze (pitch), accidenti, durate, prolungamenti e meccanismi di deduzione implicita.
L’obiettivo è fornire una specifica deterministica, ma compatibile con la scrittura rapida in modalità informale.
1. Evento nota¶
Un evento nota è l’unità musicale atomica nella riga N) di neumaRk.
Ogni evento nota rappresenta un accadimento musicale puntuale nel tempo e contribuisce alla costruzione della sequenza ritmica e melodica del brano.
Un evento nota può specificare, in forma esplicita o implicita:
- un’altezza (pitch);
- una durata;
- modificatori di durata;
- modificatori di ottava;
- annotazioni;
- legature di valore.
Alcuni di questi elementi possono essere omessi, purché possano essere dedotti in modo deterministico dal contesto musicale persistente, secondo le regole definite in questo documento.
Continuità della deduzione¶
La deduzione di altezze e durate in neumaRk si basa sull’ultimo valore esplicito incontrato nell’intero documento, e non è limitata al singolo rigo di note o al singolo datapack.
All’inizio di un nuovo datapack musicale, il riferimento per la deduzione delle altezze e delle durate è l’ultimo evento nota del datapack precedente, se presente.
In assenza di qualunque riferimento precedente (ad esempio all’inizio del brano), la deduzione utilizza i valori di default definiti dalla specifica, oppure fallisce nei casi in cui non sia possibile una deduzione deterministica.
1.1 Struttura sintattica dell’evento nota¶
Un evento nota è costituito da una sequenza ordinata di elementi adiacenti, senza spazi intermedi.
L’ordine degli elementi è fisso e deve essere il seguente:
- Marca di nota non intonata (
=), opzionale, sempre prima (§11.5) - Legatura alla nota precedente (
^), opzionale - Altezza (pitch), opzionale perché deducibile
- Forzatura di accidente (
!), opzionale
(ammessa solo se l’altezza è esplicitamente indicata) - Modificatori di ottava, opzionali
(ottave relative tramite'o,, oppure ottava assoluta) - Durata, opzionale
- durata esplicita (numero potenza di 2, con eventuali punti o moltiplicatori);
- indicatori di tuplet;
- oppure
?per durata sconosciuta - Annotazioni, opzionali, fra doppi apici
- Legatura alla nota successiva (
^), opzionale
Tutti gli elementi che compongono un evento nota devono essere adiacenti. La presenza di uno spazio separa eventi nota distinti.
Gruppi fra parentesi tonde
(…). Oltre alla durata esplicita in lista (r(…), suffisso) e al cambio di chiave ((@…), prefisso), un evento nota può portare gruppi(…)aggiuntivi che ne specificano la testa o un glissato ornamentale. Il loro significato si determina per contenuto e posizione: vedi la regola unica in §11. Al massimo per nota: una chiave (prefisso), un glissato-in (prefisso), un notehead (suffisso), un glissato-out (suffisso).
Un evento nota può omettere uno o più elementi secondo le regole di deduzione definite in questo documento, ma l’ordine relativo degli elementi non può mai essere alterato.
Eventi nota costituiti da un singolo simbolo¶
È ammesso un evento nota costituito esclusivamente da un singolo simbolo, senza indicazione esplicita di pitch o durata, purché esista un contesto musicale precedente valido.
I seguenti simboli possono costituire da soli un evento nota valido:
- Modificatori di ottava (
'o,) - Legatura di valore (
^)
In tali casi, l’evento nota:
- eredita il pitch dall’evento nota precedente;
- eredita la durata dall’evento nota precedente;
- applica esclusivamente la semantica del simbolo indicato.
In particolare:
- un evento costituito da
'o,modifica l’ottava del pitch ereditato; - un evento costituito da
^prolunga la nota precedente dello stesso valore.
Un evento nota costituito da un singolo simbolo è valido solo se
pitch e durata possono essere dedotti in modo deterministico dal contesto.
In assenza di tale contesto (ad esempio all’inizio del brano),
l’evento non è valido (E018). Se prima c’è soltanto una pausa (o uno spacer,
§14), ' e , non hanno una nota da spostare: ripetono la pausa con
W012 (r4 ' c = due pause da un quarto, poi c).
2. Pitch (altezza)¶
2.1 Sintassi di base¶
Un pitch è espresso come:
<nota>[alterazione][ottava]
Dove:
nota∈{a b c d e f g}alterazione∈{#, b}(opzionale, anche doppi)cambio di ottava(opzionale, vedi il prossimo paragrafo)
Esempi:
c d# fb g##
2.2 Ottave relative¶
Il calcolo dell'ottava viene fatto in base all'altezza della nota precedente, considerando l'intervallo meno ampio da essa.
Esempi:
f4 bb f c
Il carattere ' subito dopo l'altezza della nota, ne sposta l'ottava in senso ascendente.
Il carattere , subito dopo l'altezza della nota, ne sposta l'ottava in senso discendente.
Esempi:
f4 bb, f' c'
Sono permessi più segni consecutivi per il cambio di ottava.
Esempi:
a,4 g''' a,,,
All'inizio del brano (o all'inizio di uno stave, in un datapack
multi-rigo) l'altezza di orientamento è la nota marcata dalla
chiave di partenza: chiavi in G usano un riferimento g, chiavi
in F un riferimento f, chiavi in C un riferimento c.
In dettaglio, per le chiavi previste da neumaRk:
| Chiave | Notazione | Riferimento |
|---|---|---|
| violino | (@G) |
g4 |
| violino 8va alta | (@G8va) |
g5 |
| violino 8va bassa | (@G8vb) |
g3 |
| soprano | (@C1) |
c4 |
| mezzo-soprano | (@C2) |
c4 |
| contralto | (@C3) |
c4 |
| tenore | (@C4) |
c4 |
| baritono (variante in do) | (@C5) |
c4 |
| baritono (variante in fa) | (@F3) |
f3 |
| basso | (@F) o (@F4) |
f3 |
| basso 8va bassa | (@F8) o (@F8vb) |
f2 |
Solo la chiave dichiarata all'inizio (del brano o del rigo) determina il riferimento di orientamento. Un eventuale cambio di chiave successivo (vedi §9) modifica la chiave grafica e la resa visiva delle note, ma non altera il riferimento usato per il calcolo delle ottave relative.
"All'inizio" va inteso come alla prima altezza esplicita: se prima di essa ci sono solo pause, vale la chiave in vigore lì. La chiave è del rigo, non della singola misura: resta in vigore fino al cambio successivo, attraverso misure e datapack, e vale per entrambe le voci del rigo (
N)eN2), che siano state dichiarate nel decoratore di barra (|(@F)) o come token ((@F)).
2.3 Ottave assolute¶
È comunque possibile affermare l'ottava assoluta di una nota aggiungendo
il carattere @ seguito dal numero dell'ottava (4 per il do centrale)
e dal carattere _. La numerazione è quella scientifica: C-1 è il
MIDI 0, C9 è il MIDI 120; il range pratico utile è circa -1..9.
Esempi:
c@4_8. g@3_2
La durata è obbligatoria quando si usa
@<n>_: il_funge da separatore tra il numero d'ottava e il valore di durata, ed è privo di significato senza un valore che lo segua. Una scrittura comec@4_(senza durata) produce errore E008.
'/, restano ammessi come "nudge" sull'ottava assoluta, scritti prima
di @ (nell'ordine di §1.1: altezza, alterazione, ottava): c'@4_4 equivale
a C5 da semiminima, c,@4_8 a C3 da ottavo. Sono sconsigliati perché
ridondanti: usare direttamente c@5_4 / c@3_8.
Dopo una nota con ottava assoluta, l'inferenza per gli eventi successivi
riparte da quella nota come last_pitch standard (intervallo minimo
via DIATONIC_MATRIX, come in §2.2).
Ottava assoluta in chord-stack <…>
Dentro un chord-stack, l'ottava assoluta è ammessa soltanto sulla prima pitch, nella forma:
<a@4_ c>4
Vincoli obbligatori:
- il
_che chiude@<n>_sulla prima pitch è obbligatorio (è il separatore richiesto dalla notazione); - la durata dell'accordo dopo
>è obbligatoria (es.>4). La durata vive fuori dalle graffe e si riferisce a tutto l'accordo; omettendola si ricade nello stesso errore E008 del caso monofonico, perché internamente il token viene riformulato comea@4_4(prima pitch + durata) e quel_resta senza un valore numerico che lo segua.
Le pitch successive del chord-stack (le "extras") accettano
solo notazione relativa: la loro ottava è inferita per intervallo
minimo a partire dalla pitch primaria (vedi §2.2). Una scrittura
come <a@4_ c@5_>4 non è supportata.
2.4 Pitch implicito¶
Se una nota non specifica un pitch, essa erediterà l'ultimo
pitch incontrato nel parsing; se nessun pitch è ancora stato
visto, si usa il riferimento di orientamento iniziale definito
in §2.2 (g4 per chiave di violino, f3 per chiave di basso,
c4 per chiavi in do, ecc.).
Esempio:
f4 8 8 g 4 8
2.5 Accidenti forzati¶
Il carattere ! immediatamente dopo il pitch forza la visualizzazione dell’accidente, anche se sarebbe implicitamente deducibile dalla tonalità. Quando il pitch non porta alcuna alterazione, ! forza il bequadro di cortesia.
Esempio:
f#!8 → il diesis è mostrato per forza
c! → un bequadro di cortesia è mostrato per forza
f#!8 indica che l’accidente # deve essere mostrato graficamente; c! forza un bequadro anche dove non comparirebbe alcun accidente.
2.5.1 Propagazione degli accidenti entro la misura¶
Un accidente, una volta mostrato, propaga secondo la convenzione standard
fino alla fine della misura. La regola è modellata da una matrice
[lettera][ottava] che memorizza l'inflessione attiva per ogni coppia
lettera+ottava; la matrice è inizializzata dalla tonalità all'inizio di ogni
misura (e di ogni rigo).
- Una nota mostra il proprio simbolo di accidente solo se la sua inflessione
differisce dal valore corrente in matrice per quella lettera+ottava (oppure
se forzata con
!, §2.5); altrimenti nessun simbolo. Quando il simbolo è mostrato, la matrice viene aggiornata. - La propagazione è per-ottava: un accidente su
c(ottava 4) non influenzacdi un'altra ottava (c5). Ogni coppia lettera+ottava è indipendente. - Chord-stack (§2.6): ogni pitch dello stack è valutata singolarmente vs la matrice.
- Voce 2 (
N2): ha matrice di propagazione indipendente dalla voce 1. - Grace notes (precedono la main): sono valutate vs la matrice ma non la
aggiornano; se una grace devia dalla matrice, rompe la propagazione per
quella lettera+ottava → le main successive della stessa misura mostrano un
accidente esplicito anche se coincidono con la matrice (così il lettore non è
ingannato dall'inflessione introdotta dalla grace). Vedi
neumaRk_grace_notes.md §8.
2.6 Accordi impilati (chord-stack) <…>¶
Più altezze simultanee si scrivono fra parentesi angolari come un unico
evento: <p1 p2 …> seguito da una durata.
N) <c e g>4 . // do maggiore tenuto per due quarti
N) <f c'> f // bicordo + fa al canto
Sintassi interna. Le pitch dentro <…> sono separate da spazio; ognuna usa
la sintassi delle note (lettera + accidente + '/, per le ottave). Le ottave
si inferiscono a cascata: la prima pitch dalla nota precedente fuori dallo
stack, ciascuna successiva dalla precedente dentro lo stack (intervallo minimo,
§2.2). L'ottava assoluta è ammessa solo sulla prima pitch (§2.3).
Durata. Sta fuori dalle angolari, dopo > (<c e g>4), e vale per
l'intero accordo. Se omessa, l'evento eredita la durata dal contesto come una
nota normale (<c e g> .).
Un solo evento. Il chord-stack conta come un evento nell'allineamento
count-based con le righe A)/D)/L).
Legatura ^. Vale per l'intero evento; in resa lega i tasti corrispondenti
per indice (<c e>4^ <c e>4 → due legature).
Ancoraggio primario (regola normativa). L'evento successivo allo stack inferisce altezza e ottava dalla prima pitch dello stack, non dall'ultima. Internamente lo stack mantiene la cascata; verso l'esterno conta solo la primaria.
N) <c e g>^ <c e g> // due accordi identici (senza la regola il 2º salirebbe d'ottava)
N) <f c'> f // il 2º f resta all'ottava del primo f della triade
N) <f bb, d> f // triade di Sib con fa al canto; f successivo = primo dello stack
Errori e limiti.
<…non chiuso o<>→ E016 (chord-stack malformato);< >senza pitch → E017.- Stack attaccato alla nota seguente senza spazio (
<c e g>e4) → E001; rimedio: aggiungere lo spazio. r(rest) es(spacer, §14) non sono validi dentro uno stack: E004 (E004.stack_rest), l'elemento si scarta e lo stack tiene le altre altezze (<c r e>4→<c e>4). Lo stesso per un elemento che non è un'altezza (E004.stack_pitch_invalid).
Il
>che chiude uno stack appartiene al token: non è mai una stanghetta né un'anacrusi (§7), anche quando è seguito da una pitch (<c e g> e4). Analogamente la|interna a un polychord[top|bottom]è il separatore del polychord, non una stanghetta (neumaRk_chords.md §7.2).
3. Durata¶
3.1 Durata esplicita¶
La durata può essere indicata subito dopo il pitch:
c4 d8 e16
I valori ammessi sono quelli standard della notazione musicale (unità con denominatore basato su potenze del 2): 1 => semibreve 2 => minima 4 => semiminima 8 => croma 16 => semicroma 32 => biscroma
3.2 Gruppi irregolari (tuplet)¶
Una durata può essere seguita dalla lettera t che indica un valore di tuplet.
Se non ci sono altri caratteri a completamento, s'intenderà un a tuplet con rapporto 3:2 (terzina).
Se la lettera t è seguita da n:n il gruppo irregolare sarà basato su quel rapporto (es 5:3, 7:8).
La seconda parte del rapporto può essere omessa nei casi più frequenti:
t4 equivale a t4:3
t5 equivale a t5:4
t7 equivale a t7:4
3.2.1 Eredità della ratio nel gruppo¶
Solo la prima nota del gruppo deve portare il marcatore di tuplet. Una nota
senza durata esplicita che la segue eredita sia la durata sia la ratio
del gruppo corrente (t_num:t_den): l'eredità della ratio è un caso particolare
dell'eredità generale della durata (§3.3), e segue le stesse regole.
N) c8t d e | // d, e ereditano la croma e la terzina 3:2 aperta da c8t
Chiusura del gruppo (basata sulla durata). L'eredità prosegue nota dopo nota finché compare una nota con una durata esplicita: quella nota chiude il gruppo ed è una nota normale fuori dal tuplet. Il gruppo non si chiude automaticamente al completamento di un ciclo del rapporto: se l'eredità prosegue oltre il ciclo, le note in più aprono un nuovo ciclo dello stesso rapporto (eventualmente incompleto a fine misura, §3.2.2). In altre parole, è la durata esplicita a marcare l'uscita dal gruppo, non il conteggio delle note — coerente con l'eredità generale della durata (§3.3).
N) c8t5 d e f g // 5 crome = un ciclo 5:4 completo (g eredita croma + ratio)
N) c8t5 d e f g a // 6 crome nel tuplet: a apre un 2º ciclo, incompleto →
// autofill di pause + W002 a fine misura (§3.2.2)
N) c8t5 d e f g a4 // 5 crome nel tuplet + a come quarto normale FUORI dal
// tuplet: la durata esplicita 4 chiude il gruppo (nessun warning)
L'eredità segue le forme di prolungamento e ripetizione: in
a8t5 !!!! !, i sei eventi (la nota più cinque ripetizioni!, §5) sono tutte crome ereditate nel tuplet → il sesto apre un 2º ciclo incompleto e a fine misura scatta l'autofill con pause + W002 (§3.2.2).
Chiusura a ciclo incompleto (W011). Se la durata esplicita arriva quando il
gruppo non ha completato il ciclo, la nota che chiude partirebbe fuori dalla
griglia binaria della misura, e con lei tutto ciò che segue. Il gruppo viene
allora completato con pause della sua stessa unità (come §3.2.2, ma prima
della nota che chiude) e viene emesso W011. Se dopo le pause la misura sfora,
segue l'E005 di §3.3.1. Un gruppo a durate miste che riempie un movimento
intero (bb4t a8t) è completo e non riceve pause.
N) | c8t d e4 f g | // 2 crome di terzina su 3 → c d r8t e4 … (W011)
N) | a8t b4. b8 b8 | // una sola croma di terzina → a8t r8t r8t b4. … (W011)
N) | r2 r8t bb db | a b4. | // a eredita croma E terzina attraverso la stanghetta
// (§3.3): stesso caso, W011 sulla b4.
Un gruppo di rapporto diverso dichiarato mentre il precedente è ancora aperto
lo chiude come una durata esplicita senza t: il gruppo aperto si completa con
pause della sua unità e riceve W011.
N) |(12/8) c16t5 c4t7 c8t3 | // c4t7 chiude la quintina, c8t3 la settimina (W011 ×2);
// la terzina resta aperta a fine misura (W002)
3.2.2 Gruppo irregolare incompleto a fine misura¶
Se a fine misura un gruppo irregolare resta aperto (la somma delle sue unità
non raggiunge un ciclo completo del rapporto), l'autofill lo completa con
pause della stessa unità di tuplet (lo stesso base_dur dell'ultima nota del
gruppo), finché il gruppo si chiude o la misura è piena.
- Se la chiusura riesce, nessun diagnostic (è il caso tipico del round-trip di una terzina completa il cui rest finale era stato omesso).
- Se l'autofill non riesce a chiudere il gruppo, viene emesso W002 («Tuplet not closed before measure end; auto-filled with tuplet-unit rests»).
Se l'unità del gruppo non entra nello spazio che resta, la misura si completa con pause dello stesso rapporto e di valore minore; il gruppo resta incompleto (W002). Un gruppo che resta di una sola nota ha comunque la sua parentesi.
N) |(3/4) c4. c8t d e f | // f apre un 2º ciclo: la misura si chiude con f8t r16t (W002)
Nota (informativa). Se lo spazio non si esprime nemmeno così nel rapporto del gruppo, si usa lo stesso numeratore su un altro denominatore (5:4 → 5:2) o il rapporto standard del numeratore (§3.2: una quintina 5:3 si completa con pause di quintina 5:4).
3.3 Durata implicita¶
Se una nota non specifica una durata, valgono le seguenti regole, in ordine di priorità:
- se è l’unica nota della battuta, essa occupa l’intera durata della battuta;
- viene usata la durata dell’ultimo evento scritto, nota o pausa, dopo la
riconciliazione della sua misura (§3.3.1). Le pause aggiunte dall’autofill
per completare una misura non sono eventi scritti e non contano: in
c4 d | e f |laeeredita la semiminima dellad, non la pausa che completa la prima misura; ina4 r8 | d e f gle note ereditano la croma della pausa scritta; - se è all’inizio del brano e non esiste alcun riferimento precedente,
la durata è considerata sconosciuta (
?). Nel levare iniziale (§7), dove non c’è una misura da completare, una durata sconosciuta vale una semiminima e il parser emette W005. In una misura, se le durate sconosciute (queste o i?di §3.4) non si spartiscono lo spazio in figure scrivibili, ciascuna prende la figura binaria più lunga che entra per tutte, al più la semiminima, con W005 (W005.uneven_split); poi la misura si completa con pause (§3.3.1) o, se sfora, dà E005. Un rapporto irregolare è ammesso quando le sconosciute formano cicli completi o continuano un gruppo dello stesso rapporto: inN) |(5/8) c d e |le tre note sono crome (W005) e la misura si chiude con una pausa, inN) | c? d? e? |sono una terzina di minime.
La regola della nota unica che occupa l’intera battuta ha priorità superiore a tutte le altre forme di deduzione, incluse quelle basate sul contesto musicale persistente.
3.3.1 Riconciliazione con la durata della misura (algoritmo normativo)¶
Una volta attribuita a ogni evento una durata (esplicita o ereditata), la somma della misura può non coincidere con la durata del metro. La riconciliazione segue un algoritmo deterministico. Ogni evento è prima classificato:
- esplicito — durata scritta nell'evento. In anacrusi (§7) con più di una nota, tutti gli eventi sono trattati come espliciti (l'anacrusi non riempie la misura, quindi non si redistribuisce);
- sconosciuto — durata
?(§3.4); - implicito — durata ereditata dal contesto. Solo gli impliciti in coda (la sequenza di impliciti dopo l'ultimo esplicito) partecipano alla redistribuzione.
Invariante: le durate esplicite non vengono mai modificate dalla riconciliazione. Si toccano solo gli impliciti in coda, gli
?, o si aggiunge una pausa finale.Fuori dalla riconciliazione. Alcuni eventi non concorrono al computo: le parentesi editoriali
( … )(§11.4, che non creano eventi) e le note del gruppo anacrusi di ritornello>( … )(§7.2), che sono escluse dalla somma e restano in coda alla misura (una nota contata dopo il gruppo → E134).
Caso A — nessun ? (tutte le durate note). Sia S la somma della misura e
M la durata del metro:
S ≈ M(entro tolleranza) → la misura è valida, nessuna azione.S > M(eccesso):- se esistono impliciti in coda e la durata ricalcolata
(M − S + somma_impliciti_coda) / numero_impliciti_codacade su un valore ritmico rappresentabile (potenza di 2 con da 0 a 3 punti) → redistribuzione silenziosa su quegli impliciti. Idioma tipico:c2 d ein 4/4 →d/eereditano la minima (totale 1½ semibrevi), vengono compressi a semiminime; la durata ricalcolata può anche essere un valore irregolare (terzina, quintina, settimina), ma solo se gli impliciti in coda formano cicli completi del rapporto:a2 g d gin 4/4 →g d gdiventano una terzina di semiminime (idioma reale: il ritmo di Speak Low scritto senzat). Tre impliciti che diventerebbero semicrome in 9:8 (b2 c8t b b bin 3/4) non formano un ciclo: è un eccesso reale; - altrimenti è un eccesso reale → errore E005 (durata oltre il metro),
misura marcata non valida, troncamento delle note finali finché la misura
rientra, più un'eventuale pausa finale di riempimento. Copre sia l'eccesso
puramente esplicito (
4 4 4 4 4in 4/4) sia l'eccesso implicito non rappresentabile. S < M(difetto):- se una tuplet è rimasta aperta, viene prima completata (§3.2.2);
- poi la durata residua è riempita con una pausa finale. È autofill standard NRK: nessun diagnostic.
Caso B — misto (? insieme a durate note). La durata residua M − S è
ripartita equamente fra i soli eventi ? (vedi §3.4); non si aggiunge pausa
finale (gli ? assorbono il residuo).
Resa di riferimento (informativa). Una voce che tace per tutta la misura (pausa scritta che la copre,
rda solo o pausa d'ufficio) si disegna con la pausa di semibreve centrata nella misura, in ogni metro, anche in quelli da due semibrevi in su (4/2, 8/4); la durata resta quella della misura. Non si applica all'anacrusi, alla misura aperta, né a più pause scritte. Vale per voce: in un rigo a due voci la voce che tace prende la sua pausa centrata anche quando l'altra ha note (neumaRk_voices.md§5.2). Anche una nota sola che riempie la misura è centrata. Pause scritte consecutive che occupano ciascuna un blocco intero della pulsazione del metro restano come scritte (r2 r2in 4/4,r1 r1in 4/2); le altre possono fondersi in una figura sola (r4 r4 r4in 3/4 si disegna come una minima puntata).
3.4 Durata sconosciuta (?)¶
Indicando ? come durata, il valore è considerato indeterminato.
Il valore mancante per completare la misura viene ripartito equamente fra tutte le note con durata ?.
Esempio:
c? d? e?
in una misura di 4/4 individuerà una terzina di minime.
4. Prolungamenti di durata¶
N.B.¶
Il significato del punto (.) è specifico del contesto delle righe di note
e non coincide con quello utilizzato nelle righe di accordi.
Il carattere punto assume significati differenti a seconda della sua posizione adiacente o distanziata all'evento nota.
4.1 Punto adiacente¶
Un punto immediatamente adiacente al valore prolunga la durata della metà del valore precedente, come nella notazione standard:
g4.
4.2 Punto distanziato¶
Un punto separato da spazio prolunga la durata dello stesso valore, e può essere ripetuto:
g8 . .
g8 ..
individuerà una durata di tre crome.
Conta solo lo spazio dopo la nota, non fra i punti: entrambe le forme sono equivalenti.
4.3 Moltiplicatori¶
Un moltiplicatore esplicito può essere indicato come:
g16*5
g16x5
individuerà una durata pari a 5/16. Entrambe le forme sono equivalenti.
5. Ripetizione (!)¶
Il punto esclamativo (distanziato dall'evento nota) ripete la stessa nota e la stessa durata:
g8 !!!
Equivale a:
g8 g8 g8 g8
È possibile combinare . e !.
! ripete l’ultima nota, non l’ultimo evento: dopo una pausa o uno spacer
ripete la nota che li precede (g2 | s4 !!! = uno spacer e tre g4). Se prima
non c’è nessuna nota, all’inizio del brano, ! ripete la pausa o lo spacer
stesso con W012 (r4 !!! = quattro pause da un quarto).
! ripete anche la testa (§11.2) e la marca di nota non intonata = (§11.5)
di quella nota: =c8(x) !!! = quattro teste a croce non intonate. Non ripete un
glissato (§11.3).
6. Legatura di valore (^)¶
Il simbolo ^ indica una legatura di valore (tie).
- se adiacente a un evento nota, subito dopo di esso, esso lega con la nota successiva
- se adiacente a un evento nota, precedendolo, esso lega con la nota precedente
- se isolato, equivale a un punto (
.) - se è l’unico segno nella battuta, lega con una nota che riempie la battuta
- seguito da una durata (
^2), è una nota legata alla precedente, alla stessa altezza e con quella durata:c2^ ^2= due minime legate
La ^ in testa a una nota resta anche quando l’evento scritto prima è una pausa
(r2 ^c2) o quando la nota apre la seconda volta di un finale alternativo
(|[2.] ^d): marca la nota come legata in ingresso, e il documento riscritto la
conserva così. Una pausa non porta legature.
Accidenti attraverso la legatura. Una nota legata alla precedente segue due regimi rispetto alla propagazione (§2.5.1):
- continuazione naturale — stesso spelling (es.
eb ^eb): nessun simbolo di accidente (la legatura grafica esprime la continuazione), ma la nota semina comunque la matrice, così che note successive con la stessa lettera+ottava ma inflessione diversa mostrino l'accidente esplicito; - respelling enarmonico — lettera/inflessione diverse attraverso la legatura
(es.
eb ^d#): la seconda nota è trattata come una nota nuova e mostra l'accidente, perché è la prima volta che quella lettera compare nella misura.
6.bis Travatura manuale (beaming): / spezza, - unisce¶
Di norma il raggruppamento delle travature è automatico (dedotto dal metro).
Due marche per-nota permettono di forzarlo quando l'intenzione musicale non è
deducibile dalle note (es. 3+3+2, emiolia, note ribattute, melismi):
/= spezza la travatura sul gap adiacente;-= unisce la travatura sul gap adiacente (oltre un confine automatico).
Sono simmetriche come la legatura ^ (§6): adiacenti a un evento nota, in
coda agiscono sul gap a destra, in testa sul gap a sinistra. a8/ (coda)
e /a8 (testa) marcano lo stesso gap dai due lati. Possono coesistere con la tie
in qualunque ordine (c8-^ ≡ c8^-).
N) c8 c8 c8/ c8- c8 c8/ c8 c8 // 4/4: forza 3+3+2 (invece del 4+4 automatico)
N) |(6/8) c8 c8/ c8- c8/ c8 c8 // 6/8: emiolia 2+2+2 (invece del 3+3)
Regole:
- Precedenza. La marca manuale vince su tutto (raggruppamento automatico, tuplet, legatura).
- Conflitto sullo stesso gap. Se un lato chiede unisci e l'altro spezza, spezza vince.
uniscisolo tra note travabili.-unisce due eventi solo se entrambi sono note reali di durata ≤ croma; su una pausa o una nota ≥ 1/4 è no-op.- Non attraversa la barline (la travatura è per-misura).
Il comportamento di default del raggruppamento (per blocco metrico o per movimento) e la travatura sopra le pause sono preferenze di resa dello spartito, non sintassi: spettano al renderer.
7. Anacrusi¶
L’anacrusi (battuta in levare) è introdotta dal segno > come marcatore di
barline iniziale della prima misura:
N) > c8 d | e4 e e e | // levare di due crome prima della misura 1
Regole:
- Dove vale. Il
>che introduce il levare (il marcatore di barline iniziale) vive solo in una riga di note o accordi (C/N): è lì che la musica nasce. Nelle altre righe lo stesso carattere ha un significato proprio — inA)è accento, inD)decrescendo, inM)/L)testo (vedineumaRk_datapack.md §3.bisper il filtro di classificazione). Il>è riconosciuto come anacrusi solo se seguito da contenuto — pitch /</ barline, un blocco grace[…](§8.2), o un decoratore BEGIN glued ($/@,neumaRk_datapack.md §7.1) o di apertura-ripetizione/bar-style glued (:/.) — così un>finale d'accento non viene confuso. - Colonna del levare nelle righe allineate (
>leading, NON accento). Le righe secondarie sono allineate per colonna alla C/N. Quando il datapack ha un'anacrusi, un>leading (primo token, solo whitespace prima) di una rigaA)/D)/L)/M)non è un accento/decrescendo/testo ma il segno del levare che prenota la colonna dell'anacrusi, identico al>della C/N (stessa barra iniziale, stesso colore nell'editor). È la posizione, e non un carattere diverso, a distinguerlo — esattamente come la regola sopra distingue il levare dall'accento. Il discriminante è per-riga:M)eL)—>non vi è un carattere significante, quindi un>leading è sempre il levare (incondizionato).A)eD)—>è significante (accento / decrescendo), quindi un>leading è il levare solo se la C/N del datapack porta davvero l'anacrusi. Senza anacrusi resta un accento / decrescendo sul primo movimento. Con l'anacrusi, un accento o una forcella che parte dalla prima nota del levare si scrive dopo il segnaposto (D) > > | p |: il primo>prenota la colonna, il secondo apre il decrescendo).- Righe senza segnaposto. Se una riga
A)/D)/$)non scrive il segnaposto e comincia con una stanghetta (D) | p . . . |sottoN) > g8 | c4 d e f |), il suo primo token va sulla prima nota del levare, come inL): lapsopra cade sullag8. Per far partire la riga dalla misura piena si scrive il segnaposto (D) > | p . . . |).
A) > | > | // `>` leading = LEVARE (la N) ha l'anacrusi); il 2° `>` = accento su `a1`
N) > a4 | a1 |
A) > | > | // `>` leading = ACCENTO su `a4` (la N) NON ha l'anacrusi)
N) a4 | a1 |
> g a b | c1
= tre semiminime); scrivere la durata della prima nota (> g8 a b) evita
l'avviso. Se le durate ereditate da un datapack precedente portano il levare
oltre la misura (N) c2 d | seguito da N) > g a b | c1: tre minime),
è un eccesso reale: E005 e le note in eccesso si scartano (§3.3.1).
- Pausa o spacer in testa al levare. Il levare può cominciare con una pausa
o uno spacer (> r8 g a, > s8 g a): sono contenuto del levare come le note,
e la pausa di completamento si aggiunge prima di loro.
- Solo a inizio riga. Il > d'anacrusi apre la riga (o il datapack); un >
seguito da contenuto a metà riga (N) c4 | > r g a | c1 |) non è un
levare valido: il parser emette W184, la misura che precede resta vuota e
le note seguenti formano un levare. Per un levare di sezione si comincia un
nuovo datapack (§7.1).
- Pausa di completamento all'inizio. Se la misura d'anacrusi è più corta della
misura piena, la pausa di completamento è aggiunta in testa (non in coda),
così gli eventi si allineano al tempo forte che segue.
- Chiave / attributi di misura con l'anacrusi. La misura d'anacrusi può
portare un cambio di chiave (o di metro/tonalità) come ogni altra misura.
Tre forme, tutte valide e con lo stesso risultato:
| Forma | Sintassi | Strada |
|---|---|---|
| A | > (@F) g8 |
direttiva standalone spaziata dopo il > |
| B | (@F) >g8 |
direttiva standalone in testa, prima del > (canonica) |
| C | >(@F) g8 · >(3/4,Ab,@F) g8 |
decoratore glued alla barra d'anacrusi > (vedi neumaRk_datapack.md §7.1) |
Vincolo grafico: il decoratore combinato (metro/tonalità/chiave insieme) è
glued alla barra (>(…)), mentre la direttiva standalone è spaziata
(> (@F) oppure (@F) >). La forma B è quella emessa dal serializzatore:
l'impostazione della chiave precede visivamente la musica.
- Altri decoratori glued sulla barra d'anacrusi. Come una barra | piena,
anche > può portare glued gli stessi decoratori di misura:
| Decoratore | Sintassi | Significato |
|---|---|---|
$ / @ |
>$ g4 · >@ g4 |
segno / coda (BEGIN decorator, neumaRk_datapack.md §7.1) |
: / . |
>: c4 · >. c4 |
apertura ripetizione / bar-style tratteggiata sulla barra d'anacrusi stessa |
[…] |
>[d8]e4 · > [d8]e4 |
blocco grace (§8.2) come primo evento del levare, glued o spaziato |
Casi reali: un forward-repeat che in MusicXML cade sulla barra sinistra
della prima misura (che è anche l'anacrusi) produce >: …; un segno
posizionato all'inizio brano produce >$ ….
7.1 Anacrusi di sezione (a metà brano)¶
L'anacrusi non è confinata all'inizio del brano: una sezione interna (tipicamente un Refrain dopo un Verse) può aprirsi in levare. In quel caso l'ultima misura della sezione precedente mostra i propri valori fino alle note del levare escluse, e la sezione nuova inizia con l'anacrusi.
Il caso si esprime con due marcatori distinti, uno per lato:
| Marcatore | Posizione | Riga su cui sta | Significato |
|---|---|---|---|
>>> |
in coda alla misura | nessun contenuto dopo | misura aperta: la misura non viene completata con la pausa di coda, perché un levare la completa più avanti |
> |
in testa alla misura | seguito da contenuto | levare entrante: come §7, ma ammesso come barline iniziale del primo datapack di una sezione, non solo del primo datapack del brano |
[Verse]
a b | c d | a2 r8 >>> // ultima misura del verse, lasciata APERTA
> || [Refrain] // Markers: `>` tiene vuota la colonna del levare
> g a b || c1 // Notes: `>` apre il levare g a b, poi battere c1
Le note del levare g a b ereditano la croma della pausa r8 scritta prima
(§3.3).
Regole:
-
>leading vs>trailing. Lo stesso segno è disambiguato dalla posizione, esattamente come §7 distingue l'anacrusi dall'accento:>seguito da contenuto (pitch /</|) è levare entrante;>>>non seguito da nulla è misura aperta (uscente). Il sigillo di coda si scrive>>>; il numero di>non ha significato, e anche un>solo in coda alla riga vale>>>(il documento riscritto lo normalizza a>>>). -
>>>esplicito, obbligatorio. La misura aperta richiede il marcatore>>>: senza, una misura corta riceve la normale pausa di completamento di coda (autofill standard). NRK non deduce l'apertura dal datapack successivo — ogni datapack resta auto-descrittivo, e il marcatore sopravvive a riordini/spostamenti delle sezioni. -
>>>è strutturale (propaga al system). La misura aperta>>>è alla stregua di un segno di misura / barline: è una proprietà del system, non della singola voce. È perciò sufficiente su un rigo del datapack per propagarsi a tutti gli altri, esattamente come le barline condivise (§4.1 dineumaRk_datapack.md). Non va replicato voce per voce. -
>entrante è per-riga. Il levare entrante>è invece per-riga (come §6.4 dineumaRk_voices.md): ogni voce porta il proprio. Sulle righe senza note (Markers, Chords) il>prenota la colonna del levare lasciandola vuota, così l'etichetta di sezione ([Refrain]) e la barra di battere si allineano alla prima misura reale e non sopra l'anacrusi. La grammatica lo consente già perché|conta come contenuto valido dopo>(> || [Refrain]). La stessa prenotazione di colonna vale per le righe secondarieA)/D)/L)allineate alla C/N (vedi §7, Colonna del levare nelle righe allineate): il loro>leading non è accento/decrescendo/testo ma il placeholder del levare — incondizionato perM)/L), condizionato all'anacrusi della C/N perA)/D). -
Numerazione. Il levare di sezione non è contato (come §7). La misura aperta che lo precede è contata normalmente: è una misura reale della sezione precedente, solo più corta.
-
Niente doppia pausa. A differenza dell'anacrusi iniziale (§7), il levare di sezione non riceve la pausa di completamento in testa: è la misura aperta che lo precede a fornire la rincorsa. La coppia (misura aperta + levare) è temporalmente contigua nel flusso del brano. Simmetricamente, la misura aperta non riceve la pausa di completamento in coda.
-
Nessuna validazione metrica. (Misura aperta + levare) sono presi così come scritti, anche se non sommano a una misura piena: nessun warning. Resta responsabilità dell'autore.
-
Senza misura aperta. Se la sezione precedente termina su una misura piena (nessun
>>>) ma quella nuova apre con>, il>si comporta come un'anacrusi §7 a sé stante (levare parziale con pausa di completamento in testa).>>>è ciò che lega i due lati; in sua assenza non c'è legame. -
Barre di sezione. NRK non impone la convenzione tipografica "doppia barra prima del levare": le barline (incluse
||) si collocano dove l'autore le scrive. La forma… || c1con la doppia barra sul battere è legittima.
Composizione con i lyrics. Il gruppo pickup
<…>del bloccoLYRICS)(neumaRk_lyrics.md §8.4.1) è la controparte testuale di questo levare: le sillabe pickup si appoggiano alle note del levare di sezione qui definito.
7.2 Anacrusi di ritornello (reprise pickup) >( … )¶
Molti standard con anacrusi e finale ritornellato stampano l'ultima misura
piena di pause più le note del levare fra parentesi tonde, a indicare che
quando si prende il ritornello quel levare va eseguito per rientrare al capo. Es.
tipico: Now's the Time (levare di una croma prima del :|).
N) |: c1 | r2 r4 >( c@5_8 ) :|
Sintassi. Un gruppo prefissato da >: >( apre il gruppo, ) lo chiude. Le
tonde possono essere incollate alle note (>(c@5_8), forma consigliata) o
staccate da spazio (>( c@5_8 )): le due forme sono equivalenti. È il >,
che riusa il segno d'anacrusi (§7), a distinguere questa forma dalle parentesi
editoriali di gruppo §11.4, che si aprono con una ( staccata senza >. Dentro il gruppo vale la normale grammatica delle note (altezza, durata,
tie, teste, chord-stack) e sono ammesse le pause (>( r8 c ) — il levare può
iniziare con un silenzio).
Fuori-tempo. Le note del gruppo sono note reali in ogni aspetto — altezza, durata, gambo (direzione standard), travature, tie, articolazioni A), sillabe L), dinamiche D) — eccetto che sono escluse dalla riconciliazione di durata della misura (§3.3.1): non consumano il tempo metrico, non "mangiano" le pause che riempiono la battuta. Si disegnano fra tonde in coda alla misura, prima della barline. La parte contata della misura si completa normalmente con l'autofill (nessun warning).
Posizione. Il gruppo dev'essere il contenuto terminale della misura: una
nota contata dopo la chiusura ) è un errore E134. Il gruppo non va
incollato al token barline (lasciare lo spazio prima di :|, come per la barline
finale). Vale anche verso un salto o un segno/coda:
N) c1 | f2 e2 >( d@4_8 e@4_8 ) DCal@|
Tie sospesa. Una ^ sull'ultima nota del gruppo (>( … bb^ )) disegna una
legatura sospesa che curva verso la barline, senza agganciare una testa di
destinazione (il levare "rientra" nel ritornello). È sempre ammessa.
Contenuto musicale. Puramente grafico: le note del gruppo non producono eventi (come le tonde editoriali §11.4).
Diagnostici.
| Codice | Significato |
|---|---|
E134 |
Nota contata dopo il gruppo >( … ) (il gruppo dev'essere terminale nella misura). |
W160 |
Più di un gruppo >( … ) nella stessa misura. |
Allineamento A/L/D. I layer a conteggio trattano le note del gruppo come eventi ordinari (A) conta anche le pause, L) solo le note): le sillabe/articolazioni del levare vanno scritte nelle posizioni corrispondenti in coda alla riga.
8. Annotazioni¶
Dopo una nota è possibile aggiungere, ad essa adiacente,
un'annotazione testuale. Segue il modello a cornice comune a tutti i
container di testo (neumaRk_text_markup.md §2.1): il testo è sempre una
stringa "…"; la cornice è un involucro opzionale attorno alla
stringa, che ne sceglie solo la resa grafica.
| Forma | Cornice | Esempio |
|---|---|---|
"<testo>" |
nessuna | c4"dolce" |
["<testo>"] |
riquadro | c4["cantabile"] |
("<testo>") |
parentesi tonda | c4("ten.") |
Le virgolette sono sempre presenti; [ ] e ( ) sono puri
involucri di cornice. Il " è il sentinel che rende sicure le
cornici: (" la distingue dal namespace teste/gliss/chiave (il cui
carattere dopo ( è uno di x d t s / ) u @); [" la distingue dal
blocco grace (il cui contenuto non è mai fra virgolette).
c4"text" annotation senza cornice
c4["text"] annotation con riquadro
c4("text") annotation con parentesi tonda
Abbreviazione: il riquadro può essere scritto anche senza virgolette
(c4[testo]), come in ogni container (neumaRk_text_markup.md §2.1); viene
letto in modo identico e il serializer lo normalizza alla forma di
riferimento ["testo"].
Slot unico: la nota ha un solo slot di annotazione, ed è sempre
testo (con o senza cornice). Qualunque contenuto fra le virgolette, compreso
uno che inizia per $, è testo dell'annotazione.
L'annotation ammette il markup testuale definito in
neumaRk_text_markup.md, compreso l'a-capo ; (§3bis): l'annotazione
di nota si rende su più righe. Lo stile di default è plain, size media (role reduced;
### la rimpicciolisce), in tutte le
forme; con una cornice, una sola cornice si scala per avvolgere
l'intera pila di righe.
8.1 Diteggiatura e corde: riga $)¶
Diteggiatura, corde, dita della mano che pizzica e posizioni ferme non si
scrivono sulla nota: hanno una riga propria, la riga di diteggiatura $),
allineata per conteggio agli eventi della N) sottostante come la riga
A). Vedi neumaRk_fingering.md.
$) | 1 3B 0E |
N) | c4 d e |
8.2 Disambiguazione con grace notes¶
In note-row il delimitatore […] è condiviso con il blocco grace
(vedi neumaRk_grace_notes.md). La disambiguazione è posizionale
rispetto al pitch adiacente:
| Pattern | Interpretazione |
|---|---|
[…]MAIN (nessuno spazio dopo ]) |
grace block |
PITCH[…] con whitespace o EOT dopo ] |
annotation con box |
PITCH[…]MAIN (nessuno spazio prima né dopo) |
grace block (priorità): PITCH e […]MAIN sono due eventi |
PITCH […] MAIN (spazio fra ] e la nota) |
W003, blocco ignorato |
[…] orfana (nessuna nota dopo) |
W004, blocco ignorato |
Esempi:
c4[text] d4 annotation con box su c4 (spazio dopo `]`)
c4 [d8/^]e4 grace block ancorato a e4
c4[d8/^]e4 grace block ancorato a e4 (priorità grace)
c4 [text] d4 spazio fra `]` e d4 → W003 (grace ignorato)
c4 d e [text] nessuna nota dopo `]` → W004 (grace ignorato)
Per evitare ambiguità in casi limite, è raccomandato usare la forma
primaria c4"text" per le annotation: il delimitatore "…" non
collide con il blocco grace.
9. Cambio di chiave¶
La chiave di default è quella di violino. Si può definire un cambio chiave con le notazioni:
(@G)per la chiave di violino(@C1)per la chiave di soprano(@C2)per la chiave di mezzo-soprano(@C3)per la chiave di contralto(@C4)per la chiave di tenore(@F3)oppure(@C5)per la chiave di baritono(@F)oppure(@F4)per la chiave di basso(@G8va)per la chiave di violino all'ottava acuta(@G8vb)per la chiave di violino all'ottava bassa(@F8)oppure(@F8vb)per la chiave di basso all'ottava bassa
Il cambio di chiave si mantiene nel brano fino a una nuova definizione. Coerentemente con §2.2, solo la chiave iniziale (prima misura del rigo o del brano) fissa il riferimento d'ottava; i cambi di chiave successivi sono solo grafici e non alterano il calcolo delle ottave relative.
La direttiva (@…) è un token standalone e può comparire in qualunque
punto di una riga N): come primo token (a inizio rigo o subito dopo una
barra) oppure in mezzo a una misura, sciolta fra due note — in quest'ultimo
caso il cambio vale dalla nota che segue. In più può essere incollata alla
barra come decoratore di begin-barline (|(@F)), anche combinata con
metro/tonalità (vedi la nota sotto e neumaRk_datapack.md §7.1).
Combinazione e disambiguazione. In un decoratore di battuta
(…)(vedineumaRk_datapack.md §7.1) la chiave è combinabile con metro e tonalità nello stesso decoratore, in ordine libero:(@F),(3/4,Ab,@F). Ogni componente si autoidentifica dal primo carattere —@= chiave, cifra/[= metro, maiuscola A–G = tonalità. Il prefisso@identifica la chiave, così(@F)non viene letto come tonalità di Fa ((F)).
In un datapack a più righi (vedi neumaRk_datapack.md §4), la chiave
dichiarata come primo token di una riga N) si applica al rigo
corrispondente. In assenza di direttiva, ciascun rigo eredita l’ultima
chiave definita nel proprio contesto.
10. notazioni non standard¶
Slash notation¶
Sul pentagramma, al posto delle note, vengono disegnati degli slash (barre oblique) in numero pari ai movimenti della misura. Esistono due modi per generarla:
1. Implicita (default). In una misura con armonia attiva, se la riga di note è vuota (senza neanche pause), la misura viene resa con slash notation. È armonia attiva: un accordo esplicito, un %, oppure un accordo che persiste da una misura precedente (cella d'accordo vuota, vedi neumaRk_chords.md §1.1). Una misura marcata NC (neumaRk_chords.md §1.2) non è armonia attiva: con riga di note vuota riceve una pausa, non slash.
2. Esplicita, con il costrutto /. Il simbolo / nella riga N) è un evento del linguaggio che genera slash notation. Può essere usato da solo per riempire l'intera misura, oppure mescolato a note: la sua durata è implicita (autofill) e occupa tutto lo spazio non coperto dalle altre note della misura.
Esempi (in 4/4):
N) a b c d | / | a b c d
N) a4 /
N) / a8 b
Regole.
- Al più un
/per misura (più d'uno produce errore E006). - Lo slash non accetta una durata: la sua durata è sempre quella residua della misura.
- Quando la regione slash inizia o finisce a metà di un movimento (es.
| a8 / |), viene aggiunta una pausa interna per chiudere il movimento parziale, e gli slash disegnati coprono i movimenti interi restanti (in| a8 / |in 4/4: 1 croma + 1 pausa-croma + 3 slash da un quarto). - Allineamento A)/D): la regione slash conta come UNA sola posizione (ancorata al primo slash), a prescindere da quanti movimenti disegna. Cioè: un
/si copre con un solo token / un solo-nelle righeA)/D)(linea tratteggiata, articolazione, dinamica), non con uno per movimento. Es.N) | bb4 / |+A) | "riff"- - |= etichetta subb4e un-sull'intero slash. Per articolare i singoli movimenti di una misura tutta-slash si usa invece ritmo esplicito ({…}) o note vere. (Le sillabeL)non toccano gli slash: sono pause, non ricevono testo.) - Se dopo l'allineamento ai movimenti resta meno di un movimento per lo slash, il
/viene declassato a pausa (errore E007); se non resta spazio del tutto, il/si toglie. - Una riga composta solo da
/(più barlines/punti/spazi) non richiede il prefissoN): viene riconosciuta automaticamente come riga di note. Es.| / | / | / | / |è già una valida riga di note.
Estensioni dell'evento nota¶
Le sezioni §11-§13 sono normative. Cronologia:
neumaRk_changelog.md, Novità della 0.6. Impatto sulla classificazione basso:N)è il default sink della cascata (neumaRk_datapack.md §3.bis), quindi una riga con(x),(u-)…,{…},R4o=c4cade in Notes senza toccare gli altri predicati ({}R=non sono in nessun charset;Rmaiuscola è libera, i pitch sono minuscoli).
11. Teste di nota e glissato di nota (la regola delle parentesi (…))¶
In N) le parentesi tonde sono sovraccariche. Il significato di (…) legato a una
nota si determina per contenuto (e posizione prefisso/suffisso):
| Contenuto della parentesi | Significato | Posizione |
|---|---|---|
@… (es. @G) |
cambio chiave (§9) | prefisso/inline |
cifre / lista (es. 4, 16,8,8) |
ritmo esplicito (§3, anche r(…)) |
suffisso |
notehead-token x d t s /, oppure vuoto |
testa nota / nota fra parentesi (§11.2) | suffisso |
direzione+trattino u- d- u-- d-- |
glissato di nota (§11.3) | prefisso = in, suffisso = out |
( / ) staccati da spazio (token autonomi) |
parentesi editoriali di gruppo (span, §11.4) | delimitatori di span |
>( … ), incollate o staccate |
anacrusi di ritornello (levare fuori-tempo, §7.2) | delimitatori di gruppo in coda misura |
Discrimine operativo: primo carattere + presenza del trattino finale. Caso
chiave: (d) = diamante (notehead); (d-) = glissato giù (il trattino marca il
glissato). Senza il trattino i due collidono.
Adiacenza vs distacco. Tutte le forme della tabella tranne l'ultima sono
adiacenti a un evento nota (prefisso o suffisso, senza spazi). Le parentesi
staccate da spazio (a4 ( b c d )) non decorano una singola nota ma aprono/chiudono
uno span editoriale sulla serie (§11.4). Vale il principio cardine di NRK:
l'adiacenza lega, lo spazio separa.
Una nota può combinare gruppi-parentesi distinti (uno per concetto):
(u-)a2(x) = glissato-in-su corto + a2 + testa a croce; a2(x)(d-) = a2 testa
a croce + glissato-out-giù.
11.1 Le tre cose "slash" da non confondere¶
/standalone: slash-region ritmica (1 slash = 1 movimento, beat-aligned), vedi §10.(/): testa slash su una nota, all'altezza reale del pitch (§11.2).{…}: notazione ritmica, slash centrata senza pitch (§12).
11.2 Teste di nota (noteheads)¶
Suffisso (…) su una nota, insieme chiuso:
| Forma | Testa |
|---|---|
(x) |
croce |
(d) |
diamante |
(t) |
triangolo (orientamento unico) |
(s) |
quadrato |
(/) |
slash (testa rhythm all'altezza del pitch) |
() (vuote) |
nota fra parentesi (editoriale / ghost) |
N) a2(x) b2(/) | c2() d2(d)
- Chord-stack:
<c e g>(x)applica la testa a tutte le pitch dello stack. - Un solo notehead per nota.
- Eredità: le forme che prendono l'altezza dalla nota precedente ne prendono
anche la testa — ripetizione
!(§5), una durata da sola (8),'/,, un^da solo (§6) — anche oltre una pausa, dall'ultima nota:c8(x) ! ! != quattro teste a croce,c4(x) r4 != una croce dopo la pausa. Una testa scritta sul token vince (c4(x) !(d)); un'altezza esplicita riparte dalla testa normale (c4(x) c4), anche quando vi arriva una legatura. I glissati (§11.3) non si ereditano.
Overload posizionale: dentro
()la letteratè triangolo; fuoritè il marcatore tuplet (8t, §3.2); inA)è il gruppetto. Disambigua la posizione dentro/fuori parentesi (regola §11). Idemd(fuori da()non è notehead). Pers: dentro()è la testa quadrata; fuori, come token-pitch a sé, è lo spacer (§14).
11.3 Glissato di singola nota (scoop / fall / doit / plop)¶
Co-locabile con i noteheads (
a(x)(d-)).
Glissato ornamentale in entrata o uscita da una nota (diverso dal glissato fra
due note, che vive in A) come gl — neumaRk_articulations.md §9).
- direzione:
u(su) /d(giù); lunghezza:-corto,--lungo; - in/out dalla posizione: prefisso = in, suffisso = out;
- il trattino marca il glissato (lo distingue dal notehead, §11).
| Scrittura | Significato | Nome jazz |
|---|---|---|
(u-)a |
gliss IN su, corto | scoop |
(d-)a / (d--)a |
gliss IN giù | plop / drop |
a(u-) |
gliss OUT su, corto | doit / lift |
a(d-) / a(d--) |
gliss OUT giù | fall (corto / lungo) |
N) (u-)a2 a8 a(d--) | (d-)a a(u-)
11.4 Parentesi editoriali di gruppo ( … ) (span delimitato)¶
Una coppia di parentesi tonde staccate da spazio racchiude una serie di note
in una parentesi editoriale di dimensione media. ( apre sulla nota della sua
posizione, ) chiude su quella della sua (stile LilyPond, come la legatura di
A)). ( e ) staccati sono delimitatori nuovi in N) (come { }, §12).
N) a4 ( b c d ) | e ( f g ) a
Si distingue dalle altre parentesi del progetto per contenuto e dimensione:
| Costrutto | Dimensione | Ambito |
|---|---|---|
a() (vuote, suffisso adiacente) |
piccola, sulla singola testa | nota fra parentesi / ghost (§11.2) |
( … ) staccate in N) |
media, sull'estensione delle note | serie di note (questa §11.4) |
( … ) in C) |
grande, sull'intera colonna armonica | serie di accordi (neumaRk_chords.md §5) |
- Non contano come evento (decisione di design): i token
(/)non portano durata, non occupano posizione metrica e sono esclusi dalla riconciliazione di misura (§3.3.1) — non alterano l'autofill né lo split delle durate implicite. - Resa: parentesi tonda media — montante sinistro all'inizio, destro alla
fine — attorno all'estensione orizzontale delle note coperte (resa
coord-based: sui bordi clippati si usa la X del margine del rigo, niente
width = 0). È informazione di
N)(per-rigo/voce), non diA). - Puramente grafica: nessun effetto sul contenuto musicale (è un'annotazione editoriale,
come lo span editoriale della staffa d'analisi di
A)§10.3, che usa{ }). - Cross-barline / cross-system: sì — uno span può attraversare la stanghetta e
proseguire sul rigo logico successivo (stesso modello degli span di
A)). - No overlap / annidamento (v1): al più uno span aperto per volta; una seconda
(con una aperta → warning (W010.paren_open_overlap); una)orfana → warning (W010.paren_close_unmatched);( )degenere (apertura e chiusura senza alcuna nota in mezzo) → warning (W010.paren_degenerate); span non chiuso a fine rigo → chiusura implicita + warning (W010.paren_unclosed_eol).
Nota di sintassi. Un
( … | … )inN)è uno span che attraversa la barra: il|interno è una barline reale. Le parentesi adiacenti a una nota restano decoratori locali (chiave / glissato / notehead / ritmo, §11); solo la forma staccata apre lo span — il discrimine è lo spazio.
11.5 Note non intonate =¶
Il prefisso = marca una nota come non intonata: quello che scrive è una
posizione sul rigo, non un'altezza. Il caso tipico è un colpo di percussione
(testa a croce) su un rigo intonato:
N) > =c,8(x) =c'4(x) || b1 | d,8 c#8 b8 g#8 b4 ||
Una nota non intonata:
- non si traspone mai: né con la trasposizione del lettore, né con uno strumento traspositore, né con un'operazione di modifica che traspone un intervallo di misure;
- non ha alterazioni: l'armatura non la riguarda, non disegna accidenti e non
incide sulla propagazione degli accidenti nella misura (§2.5.1). Un'alterazione
scritta su di lei è ignorata, con W013 (
W013.accidental); - conserva la posizione sul rigo quando lo strumento del lettore impone una chiave diversa (uno strumento che suona un'ottava sotto, disegnato in chiave di basso): la posizione è quella che ha nella chiave scritta in quel punto;
- resta il riferimento dell'ottava relativa per la nota seguente (§2.2): aggiungere
o togliere
=non sposta mai le note che seguono.
Sintassi. = è il primo carattere dell'evento nota, prima di tutto il resto
(legatura ^, glissato d'entrata, marche di travatura, <): =^c4, =(u-)c4,
=<c e>8(x). È indipendente dalla testa: =c4(x), =c4(t), oppure =c4 con testa
normale.
| Forma | Significato |
|---|---|
=c4 |
nota non intonata |
=<c e>8(x) |
chord-stack non intonato: = vale per tutte le altezze (§2.6) |
[=c16]d4 |
abbellimento non intonato (neumaRk_grace_notes.md) |
[c16]=d4 |
nota principale non intonata dopo un blocco di abbellimenti |
>(=c8 =c8) |
pickup di ripresa su note non intonate (§7.2) |
Eredità. Le forme che prendono l'altezza dalla nota precedente ne prendono anche
il =; un'altezza esplicita lo prende solo se scritto:
| Evento | Non intonato? |
|---|---|
=c4 |
sì |
c4 dopo =c4 |
no: un'altezza esplicita senza = è intonata |
! (§5), una durata da sola (8), ' / , dopo =c4 |
sì |
! dopo =c8 r8 |
sì: come l'altezza, il = viene dall'ultima nota, scavalcando la pausa |
arrivo di una legatura (=c4^ c4, =c4 ^) |
come la nota di partenza (§6) |
Una legatura fra una nota non intonata e una intonata tiene il flag della nota di
partenza, con W013 (W013.tie_mixed).
Restrizioni.
=va attaccato a una nota:=da solo, o seguito da uno spazio, è ignorato con E022 (E022.unpitched_bare).- Non su una pausa o uno spacer:
=r4,=s4→ E022 (E022.unpitched_rest), la pausa resta. - Non dentro un chord-stack:
<=c e>→ E022 (E022.unpitched_inside_stack), il=è scartato; si scrive=<c e>. - Non davanti a un token che non è una nota:
=(@F),=/,=X, una(o)staccata, un blocco di abbellimenti=[…]→ E022 (E022.unpitched_misplaced), il=è scartato. - Sulla notazione ritmica
{…}(§12), che è già senza altezza,=è superfluo: W013 (W013.rhythm_redundant).
12. Notazione ritmica {…}¶
Un gruppo {…} è reso come notazione ritmica: teste slash centrate sul
rigo, senza altezza. { e } sono delimitatori nuovi in NRK.
N) a4 r | b4 {8 8 16 16 8 4}
- Contenuto: solo durate (niente pitch); rest ammessi (
{8 8 r8}→ glifi di pausa) e spacer ammessi ({8 8 s8}→ posizione ritmica saltata, nessuna testa, §14). L'altezza è sempre centrata. - Notehead di default = slash. Override col suffisso notehead di §11.2:
{8 8 16}(x)= teste a croce. - Solo le note dentro le graffe sono rese come rhythm notation; il resto della misura è normale.
- Tuplet ammessi dentro
{…}(es.{8t 8t 8t}); marcatore tuplet non valido → warning W007. - Contesto: il gruppo è metrico, non melodico (come lo slash
/, §10). Una testa ritmica non ha altezza, quindi non tocca l'altezza corrente: la nota a pitch implicito che segue il gruppo eredita dall'ultima nota reale, anche oltre la stanghetta (a,4 {4} 4= la seconda nota èa,), e la posizione centrata non emette mai un accidente né consuma la propagazione degli accidenti della misura (in F maggiore il bequadro spetta alla primabscritta, non alla testa ritmica). La durata invece sì: il gruppo è ritmo esplicito e la sua ultima testa detta la durata corrente (a4 {8 8} c=cè un ottavo).
13. Pausa multi-misura (MMR) RN¶
Cronologia:
neumaRk_changelog.md, Novità della 0.6.
RN (es. R4) rende una pausa multi-misura di N battute: un'unica cella
che vale N misure, col conteggio misure che avanza di N. Resa: glifo MMR standard
(barra spessa) col numero N sopra. R è maiuscola (libera in N), dove i
pitch sono minuscoli). Richiede N ≥ 2 (R1 = pausa di battuta singola,
ridondante → pausa normale).
13.1 Quando si usa (condizione di span vuoto)¶
Le stanghette sono condivise dal sistema: non si collassa un rigo mentre se ne
mostra un altro. Quindi un MMR si rende solo se l'intero span è vuoto a livello
di sistema — tutte le voci/stave a riposo e accordi vuoti. È utile
esattamente in due casi: (a) singolo staff/voice con span vuoto; (b) più
staff/voices tutti RN allineati sullo stesso span (incluso il doppio rigo
pianistico a riposo).
C) A | | B // accordi vuoti sullo span centrale
N) a | R4 | b // → MMR di 4 battute; conteggio misure +4
Se sullo span c'è qualsiasi contenuto (accordi, note di un'altra voce, marker),
RN non è lo strumento: W008 e degrado a una pausa di battuta, cioè lo
span vale una misura sola (si scrivono direttamente pause normali). Lo stesso
accade se un altro rigo del sistema, nella stessa misura, non porta la stessa
RN (W008.other_stave): N) | c1 | R2 | d1 | sopra N+ | c1 | e1 | d1 | dà
una pausa di battuta.
Corollario: poiché
RNvive solo in span uniformemente vuoti, non esiste mai un'altra parte con contenuto da allineare in quello span → nessuna macchineria "espandi-per-allineare".
13.2 RN ≠ collasso in estrazione¶
Vanno tenuti separati:
RN= "voglio un MMR qui, in questa vista" (notazione esplicita, span vuoto).- Collasso in estrazione = automatico: estraendo una parte singola da uno score multi-parte, le battute vuote di quella parte collassano in MMR senza notazione speciale (si scrivono pause normali). È comportamento di chi estrae le parti, non sintassi. La scelta "nella parte gli accordi si omettono" è un'impostazione di estrazione, non un marcatore MMR.
13.3 Regole di confine (resa)¶
- Solo battute intere: se la parte entra a metà battuta, le battute intere vanno in MMR e il mezzo-tempo ai bordi resta pausa normale.
- Lo span si spezza a: cambio di sistema (line break), doppia stanghetta,
ritornello
:|/|:, cambio di tonalità/metro/tempo, lettera di prova. Es.R8con un cambio di tonalità a metà → due MMR.
14. Spacer — pausa invisibile (s)¶
Cronologia:
neumaRk_changelog.md, Novità della 0.6. Impatto sulla classificazione basso: come perr, una riga di soliscade nel default sinkN)(neumaRk_datapack.md §3.bis, TB1 esteso as).
Lo spacer è un evento che occupa durata esattamente come una pausa
(r), ma non rende alcun glifo: avanza il tempo metrico senza disegnare
nulla sul rigo. È mutuato dal costrutto omonimo di LilyPond. Serve a riservare
spazio metrico senza segno grafico: allineare per colonna una seconda voce o le
sillabe (L)), lasciare "vuoti" pilotati in una misura, posizionare un'unica
annotazione su un punto del tempo senza pausa visibile.
14.1 Sintassi¶
s è un token-pitch speciale (come r): sostituisce l'altezza e accetta
tutta la grammatica di durata di una pausa.
| Forma | Significato |
|---|---|
s |
spacer di durata implicita (eredita dal contesto, §3.3) |
s4 s8 s16 |
durata esplicita (§3.1) |
s4. s2.. |
punto adiacente (§4.1) |
s8 . . |
punto distanziato (§4.2) |
s4t s8t5 |
dentro un tuplet (§3.2) |
s16*5 s16x5 |
moltiplicatore (§4.3) |
s !!! |
ripetizione (§5): ripete l'ultima nota; a inizio brano, senza note, ripete lo spacer (W012) |
N) c4 s4 e4 s4 // due eventi reali alternati a due spacer da un quarto
N) s2 g2 // primo tempo "vuoto" (invisibile), poi g da minima
14.2 Semantica¶
Lo spacer è indistinguibile da r per: durata, conteggio della misura,
autofill (§3.3.1) e assenza di nota (non porta alcuna altezza). L'unica
differenza è la resa grafica.
r (pausa) |
s (spacer) |
|
|---|---|---|
| Resa | glifo di pausa | nessun glifo |
| Durata / metro | conta | conta (identico) |
| Nota | nessuna | nessuna (identico) |
| Classificazione riga | Notes | Notes |
Misura interamente di spacer. La misura appare otticamente vuota ma il tempo avanza normalmente. Non si applica la pausa-di-misura di riempimento (whole rest) né la slash notation riservata alle misure armoniche vuote (§10): lo spacer è una scelta esplicita di "niente segno".
14.3 Restrizioni¶
Lo spacer non ha altezza né presenza grafica, quindi non accetta i modificatori che presuppongono una nota o un ancoraggio visivo. In tutti i casi seguenti il modificatore è ignorato con warning W009:
| Scrittura | Esito |
|---|---|
^s / s^ |
nessuna legatura: lo spacer non lega (§6). Per prolungare, usa la nota reale o r |
s"…" / s[…] |
nessuna annotazione (§8): manca l'ancora visiva |
s(x) (u-)s |
nessun notehead/glissato (§11): riservati alle note reali |
Inoltre, per simmetria con r:
- Chord-stack
<…>:sal suo interno non è valido, ignorato in silenzio (§2.6). - Grace block:
snon ammesso come evento grace → E013 (comer,neumaRk_grace_notes.md).
14.4 Niente forma multi-misura¶
Non esiste uno spacer multi-misura (SN non è definito): la S maiuscola è
il marcatore d'intestazione Style (neumaRk_header.md), e una MMR (§13) è per
definizione una pausa visibile. Per saltare N misure in modo invisibile si
ripete s misura per misura.
15. Regole di deduzione (riassunto)¶
- pitch o durata omessi vengono dedotti dal contesto
- la deduzione non deve mai produrre ambiguità semantica
- in caso di conflitto, prevale sempre la sintassi esplicita
16. Diagnostici¶
| Codice | Condizione |
|---|---|
| E001 | Token nota non interpretabile (nessun codice più specifico si applica; es. <c e g>e4, §2.6) |
| E002 | Una durata dopo . o ! (c4 !8) |
| E003 | Tuplet non valido (§3.2) |
| E004 | Pitch non interpretabile · pausa, spacer o non-altezza dentro un chord-stack (E004.stack_rest, E004.stack_pitch_invalid): elemento scartato (§2.6) |
| E005 | Durate oltre il metro della misura: eccesso reale (§3.3.1), anche nel levare (§7) |
| E006 | Più di uno / per misura (§10) |
| E007 | Meno di un movimento per lo / dopo l'allineamento: declassato a pausa (§10) |
| E008 | Ottava assoluta @<n>_ senza durata (§2.3) |
| E014 | Gruppo {…} non chiuso (§12) |
| E016 | Chord-stack malformato: < senza >, o <> (§2.6) |
| E017 | Chord-stack senza pitch < > (§2.6) |
| E018 | ., !, ^, ' o , senza una nota precedente (§1.1) |
| E022 | Marca = di nota non intonata fuori posto: da sola (unpitched_bare), su pausa o spacer (unpitched_rest), dentro un chord-stack (unpitched_inside_stack), davanti a un token che non è una nota (unpitched_misplaced); il = è ignorato (§11.5) |
| E134 | Nota contata dopo il gruppo >( … ) (§7.2) |
| W002 | Gruppo irregolare non chiuso a fine misura (§3.2.2) |
| W005 | Levare iniziale a durate implicite senza riferimento: semiminime (§7) · durate sconosciute che non si spartiscono la misura in figure scrivibili (W005.uneven_split, §3.3) |
| W006 | Altezza fuori dall'intervallo MIDI 1–127 (§2.3) |
| W007 | Token non valido nella notazione ritmica {…} (§12) |
| W008 | RN su uno span con contenuto, o non condiviso dagli altri righi: una pausa di battuta (§13.1) |
| W009 | Modificatore su uno spacer, ignorato (§14.3) |
| W010 | Parentesi editoriali ( … ) malformate (§11.4) |
| W011 | Gruppo irregolare chiuso prima di completare il ciclo, da una durata esplicita o da un gruppo di rapporto diverso (§3.2.1) |
| W012 | !, ' o , dopo una pausa senza una nota precedente: si ripete la pausa (§1.1, §5) |
| W013 | Nota non intonata =: alterazione ignorata (accidental), legatura con una nota intonata (tie_mixed, vale la partenza), = su {…} (rhythm_redundant) (§11.5) |
| W160 | Più di un gruppo >( … ) nella stessa misura (§7.2) |
| W184 | > d'anacrusi a metà riga (§7) |
I diagnostici dei blocchi grace (E009–E013, E015, E019–E021, W003,
W004) sono in neumaRk_grace_notes.md; quelli dell'oggetto di contesto (…)
(E135, E136, W169) in neumaRk_datapack.md §7.3. La tabella completa è
nel changelog.
Questo documento definisce il livello atomico della notazione musicale in neumaRk.