Dinamiche e annotation testuali¶
Questo documento definisce la sintassi e la semantica della riga di
dinamiche D) in neumaRk: vocabolario degli elementi, allineamento
agli eventi musicali, sintassi delle annotation testuali, regole di
estensione e diagnostica.
La riga D) è la fascia annotativa sotto il rigo: ospita le
indicazioni dinamiche tradizionali (p, mf, ff, hairpin, cresc./dim.)
e — coerentemente con la pratica jazz/lead-sheet — anche annotation
testuali ancorate a eventi musicali (es. "drums fill", "freely",
"w synth") o alle stanghette di misura (es. "Vamp till cue").
1. Definizione¶
La riga D) è una riga musicale opzionale del datapack
(neumaRk_datapack.md §3, gruppo di note) che descrive eventi sotto-pentagramma
allineati per posizione agli eventi della riga N) parent.
Esistono due classi ortogonali di elementi in D):
- Elementi note-anchored — token in corrispondenza 1:1 con le note
della riga
N)parent (oN2). La classe principale. - Elementi barline-anchored — annotation testuali ancorate all'inizio o alla fine di una misura, indipendentemente dagli eventi note interni.
Le due classi convivono nella stessa riga: barline-anchored sono riconoscibili per adiacenza a un bordo barline composto; note-anchored sono tutti gli altri token.
2. Posizione strutturale e binding¶
La riga D) segue le regole generali del gruppo voce
(neumaRk_datapack.md §3, gruppo di note, e neumaRk_voices.md §3.1):
[A)] N)|N2|N+ [D)] [L)]
- è opzionale; può apparire al massimo una per gruppo voce;
- è legata alla riga
N)/N+/N2immediatamente precedente; - segue le stesse stanghette di misura (
|,||,:|,|:, ecc.) e gli stessi decoratori di misura della riga parent.
Una riga D) che non trova una N)/N+/N2 precedente nello stesso
datapack non è un errore: viene legata a uno stave implicito (rigo 0
con auto-rest) e il parser non emette alcun diagnostico. È una tolleranza
propria di D): una A) senza la sua riga sotto è invece ignorata con
W174 (neumaRk_articulations.md §2).
3. Vocabolario degli elementi¶
3.1 Dynamic puntuali¶
Marcatori dinamici tradizionali, ognuno puntuale (vale su una sola nota):
p mp mf f ff fff pp ppp pppp ffff sf sfz fp
Non si estendono nel tempo: il volume implicato dal mark vale per il beat dell'evento e — interpretativamente — fino al prossimo dynamic mark, ma graficamente compare una sola volta.
3.2 Hairpin grafici¶
Due token, ognuno renderizzato come segno grafico (crescendo/decrescendo "a forcina"):
| Token | Effetto |
|---|---|
< |
crescendo |
> |
decrescendo |
I hairpin si estendono per ripetizione: una sequenza < < < su tre
note produce un singolo segno grafico che copre quelle tre note. Una
singola occorrenza è ammessa (puntuale).
3.3 Hairpin testuali¶
Due token brevi che generano un'indicazione testuale con linea di estensione tratteggiata:
| Token | Rendering |
|---|---|
c |
"cresc. - - - - " |
d |
"dim. - - - - " |
Si estendono per ripetizione, esattamente come §3.2: una sequenza
c c c c produce un'unica scritta "cresc." seguita da una linea
tratteggiata che copre le quattro note.
Co-locazione con hairpin grafico (c< / d>): quando c e <
(o d e >) compaiono sulla stessa nota come token co-located, vince
la forcella grafica. Il token testuale è ignorato dal post-pass di
estrazione hairpin. Per ottenere il testo "cresc."/"dim." senza
forcella, usare c/d da soli. Per ottenere entrambi i segni
contemporaneamente serve scriverli su note diverse (es. c < su due
note adiacenti).
Compound testuali pc / fd: NON sono supportati. Un token
co-located con dynamic puntuale seguito da hairpin testuale (es. pc,
fd) produce solo il dynamic puntuale; l'hairpin testuale viene
ignorato. Per esprimere "p e poi cresc." scrivere su due note: p c.
3.4 Annotation testuali¶
Container testuali col modello a cornice (vedi neumaRk_text_markup.md
§2.1): il testo sta fra virgolette, la cornice è facoltativa.
| Forma | Effetto |
|---|---|
"text" |
annotation senza cornice |
["text"] |
annotation in un riquadro (forma di riferimento) |
[text] |
abbreviazione di ["text"]: stesso riquadro |
("text") |
annotation in una cornice tonda |
Le forme valgono in ogni posizione: sulla nota, alla stanghetta (§6), con o
senza estensione (§5). In D) la parentesi tonda serve solo alla cornice
("…"): una ( o ) in qualunque altra forma (es. (mf), (testo)) è
ignorata e segnalata con W177. (mf) produce quindi mf, senza
parentesi; per una dinamica editoriale fra parentesi si scrive il testo:
("mf").
Il contenuto del container è soggetto al markup unificato definito
in neumaRk_text_markup.md. Lo stile di default delle annotation
D) è plain, dimensione media (role reduced; ### la
rimpicciolisce): italic, bold e underline sono
applicati solo se richiesti esplicitamente tramite il markup utente
(*…*, **…**, __…__).
Le annotation testuali sono puntuali di default; diventano
estese se seguite da - adiacente (vedi §5).
3.5 Placeholder .¶
Il token . indica nessun elemento sull'evento corrispondente.
Serve a "saltare" un evento (nota o pausa) mantenendo l'allineamento
posizionale.
Il . ha anche un ruolo chiusura: una . su una nota interrompe
qualunque extension testuale in corso (vedi §5.4).
3.6 Continuation -¶
Il token - come token standalone (separato da spazi) significa
"prosegue l'extension testuale aperta a sinistra". Si applica alle sole
annotation testuali (vedi §5).
- ha anche un ruolo adiacente (senza spazi) come marcatore di
apertura extension ("text"-) o di ancoraggio barline
([1.]-"text", "text"-:|). I tre ruoli sono distinguibili per
posizione e adiacenza (vedi §4, §5, §6).
4. Elementi note-anchored¶
4.1 Corrispondenza 1:1 con la riga N) parent¶
Ogni token note-anchored della riga D) cade su un evento (nota o
pausa) della riga parent, in ordine left-to-right. La corrispondenza è
strettamente posizionale:
N) | a8 b c d e f g a |
D) | p . . < < < f . |
// ↑ ↑ ↑
// nota 1 note 4-6 nota 7
I rest contano come posizione (come
neumaRk_articulations.md §4, e a differenza diL)che li salta): una.sopra un rest è un evento a tutti gli effetti. Il conteggio è per-evento, non per-nota. Esempio:D) | f p mf |suN) | c4 r4 e4 |= 3 token su 3 eventi (2 note + 1 pausa), nessunW131.
4.2 Co-locazione: più elementi sulla stessa nota¶
Più elementi sulla stessa nota si scrivono come token unico senza spazi interni:
N) | a4 b c d |
D) | f"piano fill" . c< . |
// ↑ 3 elementi sulla stessa nota: f + "piano fill" + (nessuno su b)
L'ordine degli elementi co-located è libero: f"text"c< e
"text"<fc sono equivalenti dal punto di vista semantico (stessa nota,
stessi elementi). Il renderer può applicare un ordine canonico in
display.
4.3 Autofill di note residue¶
Se la riga D) contiene meno token note-anchored della riga N)
parent, le note residue ricevono un . implicito:
N) | a a a a a a a a |
D) | f | // ≡ D) | f . . . . . . . |
Se la riga D) contiene più token di quanti siano gli eventi (note
e pause) nella riga parent (extra-token), produce warning W131.
4.4 Misure e barline¶
La suddivisione in misure è definita dalle stanghette | come per le
altre righe musicali. Le stanghette di D) devono allinearsi a quelle
della riga parent (regole generali di neumaRk_datapack.md §6).
5. Estensione testuale -¶
5.1 Solo i testi sono estendibili¶
Le annotation testuali ("text", ["text"]/[text], ("text")) sono gli unici elementi
estendibili tramite trattino -. Dynamic puntuali (§3.1) non si
estendono per loro natura; hairpin grafici e testuali (§3.2, §3.3) si
estendono per ripetizione, non con -.
5.2 Apertura¶
Un trattino - adiacente (senza spazi) a destra di
un'annotation testuale apre un'extension:
D) | "intro"- - - - mp |
// ↑ apre extension ↑ chiude
In un gruppo co-located, il - adiacente vale per l'annotation testuale
del gruppo, non per gli altri elementi:
D) | ff"drums fill"- - - - - - - ppp - - - - |
// ↑ apre extension del testo (ff resta puntuale sulla nota 1)
// ↑ ppp puntuale, chiude "drums fill"
5.3 Continuazione¶
Un - standalone (token separato da spazi) prosegue l'extension
aperta a sinistra. Funziona per qualunque numero di note successive,
anche attraverso le stanghette di misura:
N) | a16 a a a a a a a a a a a a a a a | a8 a a a a a a a |
D) | ff"drums fill"- - - - - - - ppp"dim."- - - - - - - - - | - - - - - - - pp |
// └──── extension 1 ─────────┘└──── extension 2, oltre la stanghetta ─────┘
La seconda extension parte dal testo "dim." che accompagna ppp: una
dynamic puntuale da sola non si estende (§5.1), e un - incollato a ppp
non aprirebbe nulla.
5.4 Chiusura¶
Una extension testuale termina quando si incontra uno dei seguenti eventi:
- un nuovo elemento note-anchored senza
-adiacente sopra di sé (dynamic mark, hairpin, annotation, placeholder.); - la fine del system corrente (chiusura implicita);
- una nuova annotation testuale aperta con
-adiacente: chiude la precedente e ne apre una nuova; - un nuovo begin-bar anchor
-"text"(vedi §6.2) come primo token di una misura: chiude l'extension precedente alla barline di apertura della misura corrente (subito prima del nuovo ancoraggio) e apre un nuovo ancoraggio begin-bar lì allineato.
L'ultima regola si applica anche quando l'extension precedente è
cross-bar barline-anchored (apertura -"prev"- … - continua sulle
misure intermedie): un nuovo begin-bar -"new" la chiude
implicitamente e ne apre uno nuovo, allineato al bordo barline di
ingresso della misura corrente. Non occorre chiusura esplicita.
Esempio:
D) | "intro"- - - - - - - - | -"new" p . . ff |
// ↑ extension aperta ↑ chiude "intro" alla barra (subito
// prima di "new"), apre "new" begin-bar
// nella misura corrente
Per chiudere esplicitamente prima della fine del system senza aprire
un nuovo ancoraggio, inserire . (placeholder) o un altro elemento
note-anchored privo di - adiacente.
Resa della linea. La linea tratteggiata copre l'intera larghezza dell'ultima nota estesa e si arresta subito prima dell'onset dell'evento di chiusura — sia esso un elemento note-anchored, una nuova annotation testuale, o il begin-bar della misura successiva. È la stessa terminazione delle forcelle grafiche e testuali (§3.2, §3.3). Unica eccezione: la chiusura implicita a fine system estende la linea fino al bordo destro del rigo.
5.5 Cross-bar libero¶
La stanghetta di misura | (e le sue varianti composte) è
trasparente all'extension testuale: un - continua attraverso |
senza necessità di sintassi speciale. Per ancorare un'annotation alla
barline anziché a una nota interna, si usa la forma barline-anchored
(§6).
5.6 Extension parallele¶
Più extension parallele (es. testo + hairpin) si ottengono per
combinazione delle regole: il testo si estende con -, il hairpin
si ripete per nota. Non esiste un meccanismo - per estendere
hairpin:
N) | a a a a a a a a |
D) | "cresc."- - - - < < < < |
// ↑ testo esteso ↑ hairpin grafico per 4 note
Il rendering presenta entrambi i segni nella fascia D), con regole di posizionamento verticale a cura del renderer.
6. Elementi barline-anchored¶
6.1 Contesto: bordo barline e contenuto di D)¶
In neumaRk un "bordo barline" è il gruppo composto formato dalla
stanghetta | e dai suoi decoratori adiacenti: ripetizione (:),
cambio metro/tonalità ((3/4), (@F)), volta ([1.], [2.]),
conteggio ripetizioni (:x3), ecc. Il bordo barline è proprietà della
riga (vedi neumaRk_datapack.md §6) ed è comune a tutte le righe
musicali del datapack: D) non lo replica nel proprio contenuto.
Di conseguenza, il contenuto di D) per ciascuna misura è il testo fra una barline e la successiva, escluso ogni decoratore del bordo barline. È su questo contenuto pulito che si applicano le regole di ancoraggio di §6.2-§6.4.
6.2 Begin-bar¶
Un trattino - come carattere iniziale del primo token della
misura, seguito (senza spazi) da un'annotation testuale, ancora
l'annotation all'inizio della misura:
D) | -"my text 1" p . . ff |
// ↑ "my text 1" begin-bar anchored
Il - iniziale non rappresenta extension qui: rappresenta ancoraggio
barline. L'annotation resta puntuale di default; per estenderla
attraverso le misure successive si applica la regola di §6.4.
Interazione con extension precedente (§5.4): se la misura precedente aveva una extension testuale aperta (note-anchored o barline-anchored cross-bar), il nuovo begin-bar
-"text"la chiude implicitamente sulla nota immediatamente anteriore e apre il nuovo ancoraggio allineato al bordo barline. Per chiudere esplicitamente l'extension prima del begin-bar, inserire.o altro closing element sull'ultima nota della misura precedente.
6.3 End-bar¶
Simmetricamente: un'annotation testuale seguita (senza spazi) da -
come ultimo token della misura ancora l'annotation alla fine
della misura:
D) | ff "my text 2"- |
// ↑ "my text 2" end-bar anchored
6.4 Extension barline-anchored cross-bar¶
Un'annotation barline-anchored può estendersi attraverso più misure combinando due trattini sul primo token (ancora + apre) e uno sull'ultimo (ancora + chiude):
D) | -"Vamp till cue"- - - - | - - - - - | - - - "end"- |
// ↑ begin-bar + apre ext ↑ continua ext (cross-bar) ↑ end-bar (chiude)
- Il primo
-ancora l'annotation a begin-bar. - Il secondo
-adiacente al testo apre l'extension testuale (come per le note-anchored). - Nelle misure successive,
-standalone continua l'extension. - La chiusura segue le stesse regole di §5.4; in più, una forma
end-bar
"end"-come ultimo token può chiudere esplicitamente un'extension aperta (anche con"end"qui usato simbolicamente — un nuovo elemento barline-anchored chiude quello in corso).
"text"-che APRE (riclassificazione note-anchored). Un"text"-come ultimo token di misura, quando nessuna linea è aperta quando lo si raggiunge e la misura seguente continua con-, non chiude nulla: apre una nuova linea cross-bar. In tal caso l'etichetta è riclassificata come apertura note-anchored sull'ultimo evento della misura (rende SULLA nota — es. il primo slash di una misura-slash — non al bordo), e la linea prosegue a destra fino alla chiusura (nota o fine-rigo). È la forma per etichettare un punto interno con linea che attraversa (es.D) | . "solo break"- | -mette "solo break" sul primo slash e tira la linea a fine-rigo). Le forme. "x"-e. "x"- -(con-eccedente sotto slash=1slot) sono equivalenti e round-trip lossless. NON scatta se una linea è già aperta ("end"chiude, sopra) o se la misura seguente non continua (resta etichetta end-bar puntuale).
6.5 Convivenza begin + end nella stessa misura¶
Una misura può contenere sia un'annotation begin-bar sia una end-bar:
D) | -"text 1" p . . ff "text 2"- |
// ↑ begin ↑ end
Eventuali elementi note-anchored della misura (p . . ff) si
intercalano normalmente fra l'annotation begin e quella end.
6.6 Terminatore -| (chiudi sulla end-bar, senza testo)¶
Una extension aperta si chiude, di norma, su una nota (§5.4) — l'ultima nota
coperta o l'evento di chiusura. Il terminatore copre il caso "chiudi sulla
barline, gancetto, senza testo", idiomatico del rhythm tacet ----| (dove dopo
la linea non c'è testo né una nota su cui poggiare): un -
incollato al bordo composto come ultimo token della misura.
D) | -"vamp"- - | - -| |
// ↑ begin-bar + apre ↑ terminatore: chiude sull'end-bar della misura 2
- Prefisso dell'intero bordo, uniforme (nessun caso speciale per decoratore):
-|,-:|,-:open|,-:x3|,-||,-|.,-DCal@|→ il parser stacca il-iniziale (= "chiudi span + gancetto"), il resto è il normale bordo della misura (§6.1), parsato come ovunque. - Discriminatore incollato/spaziato (§7.2):
-|(incollato) aggancia il bordo;- |(spaziato) è un-di continuazione che attraversa la barra. - Il terminatore è ancorato alla barline, non a una colonna-nota: non tocca la
corrispondenza 1:1 con
N). - È speculare in
A)(neumaRk_articulations.md §13.5): stessa forma, stesso effetto, sopra il rigo.
Resa: la linea tratteggiata raggiunge il bordo destro della misura, con gancetto all'estremo (verso il rigo); nessuna etichetta.
7. Regole di parsing¶
7.1 Tokenizzazione¶
La riga D) è tokenizzata su spazi bianchi. All'interno di un
token possono comparire più elementi co-located (§4.2). I container
testuali ("…", ["…"]/[…], ("…")) ammettono spazi interni (sono
delimitati dalle loro virgolette/parentesi quadre).
7.2 Disambiguazione del -¶
Il carattere - ha tre ruoli, distinguibili per posizione e
adiacenza rispetto al contenuto della misura D):
| Forma | Ruolo |
|---|---|
"text"- (adiacente a annot, non ultimo token della misura) |
apre extension testuale (§5.2) |
- (token standalone) |
continua extension (§5.3) |
-"text" come PRIMO token della misura |
ancoraggio begin-bar (§6.2) |
"text"- come ULTIMO token della misura |
ancoraggio end-bar (§6.3) |
-"text"- come primo token |
begin-bar + apre extension cross-bar (§6.4) |
-\| (o -:\|, -\|.…) come ULTIMO token, incollato al bordo |
terminatore: chiude sulla end-bar, senza testo (§6.6) |
Un - non riconducibile a nessuno di questi pattern non ha effetto: diventa
una continuazione vuota, senza diagnostici (il codice W132, previsto per
questo caso, è riservato e non viene emesso).
7.3 Disambiguazione […] e (¶
Il container […] in D) è sempre un'annotation testuale in un riquadro.
Non collide con il volta begin ([1.]) perché quest'ultimo compare nella
riga di Markers, non in D). Non collide con polychord
([top|bottom]) per lo stesso motivo.
La ( in D) è una cornice tonda solo nella forma ("…"). Ogni altra
parentesi ((mf), (testo), p(…) è ignorata con W177; le play
directive (=…) fuori da M) restano segnalate da W138.
7.4 Single-line e container vuoti¶
I container testuali sono single-line (vedi neumaRk_text_markup.md
§6.2). Container vuoti "" e [] sono letterali e non interpretati
come annotation (sono token testuali vuoti).
7.5 Markup interno¶
Il contenuto dei container in D) è soggetto al markup unificato di
neumaRk_text_markup.md §3. Lo stile di default applicato è plain,
size media: italic, bold e underline si attivano solo tramite
markup esplicito (*…*, **…**, __…__).
8. Resa grafica¶
8.1 Fascia D)¶
Tutti gli elementi della riga D) sono renderizzati sotto il
pentagramma del rigo parent, in una fascia dedicata. Quando il rigo
parent è una voce 2 (N2), la fascia D) della voce 2 può essere
sovrapposta o adiacente a quella della voce 1: il posizionamento
verticale è scelta del renderer.
8.2 Dynamic puntuali¶
I dynamic mark (§3.1) sono renderizzati con i glifi di dinamica del font
musicale (le lettere corsive tradizionali di p, mf, sfz…), allineati
orizzontalmente al beat della nota corrispondente.
8.3 Hairpin grafici¶
I hairpin (</>) sono renderizzati come singolo segno "a forcina" che
copre l'intervallo da prima all'ultima ripetizione, con estremi
allineati ai beat delle note di apertura e chiusura.
8.4 Hairpin testuali¶
c e d producono rispettivamente "cresc." e "dim." come testo
italic, seguiti da una linea tratteggiata che si estende fino al
beat dell'ultima ripetizione. Lo stile è coerente con la convenzione
tipografica musicale.
8.5 Annotation testuali¶
Stile default: plain, dimensione media (coerente con §3.4 e §7.5;
italic/bold/underline solo via markup *…*/**…**/__…__). Le
annotation con ["…"]/[…] mostrano un riquadro attorno al testo, quelle
con ("…") una coppia di parentesi tonde; le annotation con "…" sono
solo testo.
Un ; nell'annotation va a capo (neumaRk_text_markup.md §3bis). La
pila sta sotto il rigo e cresce verso il basso: la prima riga resta
dove sarebbe la riga singola. Ogni riga è centrata sulla nota; se la pila
sborderebbe dal rigo, si sposta tutta insieme, in base alla riga più larga.
Una sola cornice (riquadro o tonda) avvolge l'intera pila.
D) | "dolce;espr." . . . | // → dolce
// espr.
Le extension testuali sono renderizzate come linea continua o tratteggiata (a discrezione del renderer) che parte dalla fine del testo e si estende fino al beat di chiusura. Con un'etichetta su più righe la linea segue la prima riga.
8.6 Annotation barline-anchored¶
Le annotation begin-bar sono allineate verticalmente al bordo sinistro della misura; quelle end-bar al bordo destro. Le extension cross-bar attraversano graficamente le stanghette di misura. Su più righe l'allineamento vale riga per riga: begin a sinistra, end a destra.
9. Diagnostica¶
9.1 Codici diagnostici¶
| Codice | Descrizione |
|---|---|
| W131 | Numero di token note-anchored in D) superiore agli eventi di N) (W131.excess_dynamic) |
| W132 | Riservato, non emesso: token - non riconducibile a extension o ancoraggio barline (§7.2) |
| W133 | Container testuale non chiuso nella misura ("…, [… o ("… senza chiusura): il resto della misura è letto come testo |
| W138 | Play directive (=…) fuori dalla riga M): ignorata (neumaRk_play_directive.md) |
| W177 | Parentesi fuori da una cornice ("…") ((mf), (testo)): ignorate (neumaRk_text_markup.md §2.1) |
9.2 Extension non chiuse¶
Una extension testuale che arriva alla fine del system è chiusa
implicitamente a fine system (§5.4). Non è un errore: la spec
considera questo un comportamento valido e robusto. Per chiudere
esplicitamente prima della fine del system, basta inserire . o un
altro elemento note-anchored senza - adiacente.
9.3 Hairpin con singola occorrenza¶
Un hairpin (<, >, c, d) che compare una sola volta su una nota
non è errore e non emette warning. Poiché i hairpin si estendono per
ripetizione, un'occorrenza singola non ha una nota di chiusura
distinta: viene renderizzata dandole la larghezza della durata della
nota — la forcella (o la linea cresc./dim.) si estende dalla nota
fino a poco prima dell'onset della nota successiva, oppure, se è
l'ultima nota della linea, fino al bordo destro del rigo. È il caso
idiomatico della nota finale del brano in dim./cresc. al niente, dove
ripetere il segno è impossibile per costruzione.
Con una dinamica co-located (forcella grafica </> + dynamic sulla
stessa nota) l'ordine di scrittura determina la disposizione
orizzontale lungo la durata della nota, speculare al senso musicale:
pp>— dinamica prima: la dinamica è di partenza, sta sull'onset e il cuneo si apre alla sua destra;>pp— forcella prima: la dinamica è di arrivo, il cuneo parte dall'onset e la dinamica è posta all'estremo destro del cuneo.
Entrambe le forme sono valide; scegli in base a dove vuoi la dinamica
(partenza vs arrivo). Vale per le forcelle grafiche; i text-hairpin
(c/d) con dinamica co-located non hanno questa distinzione.
10. Esempi¶
10.1 Dinamiche essenziali¶
N) | a4 b c d | e f g a |
D) | p . . f | . < < ff |
p su nota 1 di misura 1, f su nota 4; crescendo grafico su note
2-3 di misura 2 che culmina in ff su nota 4.
10.2 Annotation puntuale e estesa¶
N) | a8 a a a a a a a | a a a a a a a a |
D) | "intro"- - - mp< < < f | "verse"- - - - - - - - |
Misura 1: "intro" esteso per 4 note, poi mp chiude e parte hairpin
grafico fino a f. Misura 2: "verse" esteso per tutta la misura;
chiusura implicita a end-of-system.
10.3 Hairpin testuale c / d¶
N) | a8 a a a a a a a | a a a a a a a a |
D) | p c c c c c c c | c f . . d d d d |
Misura 1: p puntuale su nota 1, "cresc." si estende per 7 note. La
prima ripetizione c cade sulla stessa nota di p (co-located).
Misura 2: ulteriore c continua il "cresc." fino alla nota 1, poi f
chiude. Da nota 5: "dim." si estende per 4 note.
10.4 Co-locazione complessa¶
N) | a4 b c d |
D) | ff"drum fill"c< . . ppp |
Sulla nota 1: 4 elementi co-located (ff puntuale + testo "drum fill"
+ hairpin testuale c + hairpin grafico <). Le note 2-3 sono vuote;
ppp puntuale su nota 4.
10.5 Barline-anchored begin¶
M) |[V.] …
D) | -"Vamp till cue"- p . . . . . . . . |
"Vamp till cue" ancorato all'inizio della misura [V.] (volta), esteso
per tutta la misura (i - continuano sulle note successive perché il
trattino adiacente alla destra del testo apre l'extension).
Il decoratore [V.] di M) non è replicato nel contenuto di D): il
parser lavora sul contenuto pulito della misura (vedi §6.1).
10.6 Barline-anchored cross-bar¶
D) | -"Vamp till cue"- p . . . . . . . . | - - - - - - - - | - - - - mp - - - |
"Vamp till cue" copre 3 misure; chiude su mp in misura 3.
10.7 Begin + end nella stessa misura¶
M) |:(3/4)[1.] :x3|
D) | -"intro" p . . ff "outro"- |
Annotation "intro" begin-bar + annotation "outro" end-bar nella stessa
misura. Dinamiche p e ff sulle note interne. Il bordo barline di
M) (:(3/4)[1.] / :x3|) non compare nel contenuto di D).
10.8 Voce 2 con dinamiche indipendenti¶
N) | a4 b c d |
D) | f . . ff |
N2 | e4 d e2 |
D) | p . pp |
La voce 1 ha f su nota 1 e ff su nota 4; la voce 2 ha p su nota
1 e pp su nota 3. Le due D) sono entrambe legate alle rispettive
N)/N2 per posizione (vedi neumaRk_voices.md §3.1).
11. Riassunto¶
| Concetto | Sintassi | Sezione |
|---|---|---|
| Dynamic puntuale | p mp mf f ff fff pp ppp pppp ffff sf sfz fp |
§3.1 |
| Hairpin grafico | < > (per ripetizione) |
§3.2 |
| Hairpin testuale | c (→ cresc.) d (→ dim.) |
§3.3 |
| Annotation testuale | "text" / ["text"] ([text]) / ("text") |
§3.4 |
| Placeholder | . |
§3.5 |
| Continuation | - standalone |
§3.6 |
| Co-locazione | adiacenza senza spazi | §4.2 |
| Autofill | note residue → . implicito |
§4.3 |
| Extension testuale | "text"- apre, - continua, . chiude |
§5 |
| Begin-bar | -"text" come PRIMO token della misura |
§6.2 |
| End-bar | "text"- come ULTIMO token della misura |
§6.3 |
| Cross-bar barline-anch | -"text"- … "end"- (cross-bar) |
§6.4 |
| Terminatore | -\| ultimo token, incollato al bordo (chiude senza testo) |
§6.6 |
| Cross-bar note-anch | - attraversa | trasparente |
§5.5 |
Il sistema è ortogonale: i tre meccanismi (dynamic puntuali,
hairpin per ripetizione, testi con extension -) coesistono senza
interferenze e si combinano per co-locazione.
Questo documento definisce la riga D) di neumaRk come fascia
annotativa sotto-pentagramma unificata, in grado di esprimere
dinamiche tradizionali, indicazioni di crescendo/decrescendo,
annotation testuali puntuali ed estese e ancoraggi alle stanghette di
misura, attraverso un vocabolario compatto e regole ortogonali.