Vai al contenuto

Panoramica

1. Cos'è neumaRk

neumaRk è un sistema formale di rappresentazione testuale della musica. È progettato per essere contemporaneamente human‑readable e machine‑readable, con una sintassi e una semantica definite che consentono di descrivere eventi musicali, strutture temporali, armonia, dinamiche, testi e sezioni formali.

neumaRk è, allo stesso tempo:

  • un linguaggio di markup musicale;
  • una DSL (Domain Specific Language) orientata alla notazione musicale;
  • un formato testuale puro, utilizzabile come file standalone.

Il linguaggio nasce per colmare lo spazio tra la scrittura musicale tradizionale e le esigenze dei sistemi software moderni: versionamento, parsing affidabile, compattezza, condivisione e trasformazione automatica.


2. Obiettivi di progettazione

neumaRk è progettato attorno ai seguenti obiettivi principali:

  1. Chiarezza semantica
    Ogni costrutto ha un significato preciso e non ambiguo.

  2. Leggibilità umana
    Un file neumaRk può essere letto e compreso direttamente da un musicista o da un autore.

  3. Efficienza e rapidità di scrittura

neumaRk è progettato per favorire una scrittura musicale rapida ed efficiente, basata su input testuale e deduzione contestuale, riducendo al minimo le informazioni ridondanti.

  1. Affidabilità del parsing
    La sintassi consente un parsing deterministico, anche in presenza di informazioni implicite.

  2. Flessibilità espressiva
    Lo stesso contenuto musicale può essere espresso in forme più compatte o più verbose.

  3. Neutralità rispetto al rendering
    Il linguaggio descrive cosa è la musica, non come deve essere disegnata.

  4. Compatibilità con workflow moderni
    File testuali, diff‑friendly, adatti a sistemi di versionamento e a scambi via URL.


3. neumaRk come DSL musicale

neumaRk è una DSL: un linguaggio specializzato, con un dominio ben definito.

Il dominio di neumaRk comprende:

  • tempo e metrica;
  • altezze e durate;
  • articolazioni e dinamiche;
  • armonia e sigle di accordo;
  • testo (lyrics);
  • struttura formale (marker, sezioni, ripetizioni);
  • suggerimenti di layout e formattazione.

Il linguaggio non tenta di replicare ogni aspetto grafico della notazione musicale tradizionale, ma di fornire una rappresentazione testuale coerente e trasformabile.


4. Human‑readable e Machine‑readable

neumaRk è progettato per essere:

  • leggibile dall'uomo, senza necessità di strumenti dedicati;
  • interpretabile dalla macchina, senza euristiche fragili.

Questo risultato è ottenuto tramite:

  • una sintassi line‑based;
  • un insieme ridotto di simboli con significato stabile;
  • regole esplicite per la deduzione delle informazioni implicite.

Un file neumaRk può essere scritto rapidamente a mano, ma anche generato, validato e trasformato automaticamente.


5. Sintassi formale e sintassi informale

Uno degli elementi centrali di neumaRk è la coesistenza di due livelli di sintassi:

  • Sintassi formale
    Rigorosa, completamente disambiguata, pensata per garantire un parsing affidabile in qualsiasi situazione.

  • Sintassi informale
    Più compatta e naturale da scrivere, basata su convenzioni comuni e deduzione contestuale.

Le due sintassi non sono linguaggi separati: sono due modalità espressive dello stesso linguaggio.

L'autore può decidere, caso per caso, se privilegiare:

  • la massima precisione semantica;
  • la massima velocità e leggibilità.

6. Formati di file e livelli di dettaglio

neumaRk supporta diversi livelli di esplicitazione, che influenzano la quantità di informazione presente nel file:

  • Compact
    Informazioni ridotte all'essenziale. Massima compattezza.

  • Human
    Compromesso tra compattezza e chiarezza. Orientato alla lettura umana.

  • Verbose
    Tutte le informazioni sono esplicite. Nessuna ambiguità semantica.

Questi livelli non definiscono linguaggi diversi, ma modalità di utilizzo dello stesso linguaggio.


7. Casi d'uso tipici

neumaRk è pensato per supportare, tra gli altri, i seguenti scenari:

  • scrittura e condivisione di leadsheet;
  • rappresentazione testuale di partiture;
  • embedding di musica in URL o messaggi;
  • parsing e rendering automatico;
  • editing collaborativo e versionamento;
  • conversione verso formati grafici o audio.

8. Relazione con la notazione musicale tradizionale

neumaRk non è una trascrizione diretta della notazione su pentagramma.

Molti concetti sono condivisi (durate, battute, legature, accordi), ma il linguaggio:

  • privilegia la semantica rispetto alla grafica;
  • consente informazioni implicite non esplicitabili facilmente su carta;
  • separa la descrizione musicale dalla resa visiva.

La notazione tradizionale è una possibile rappresentazione di output, non il modello interno.


9. Non‑obiettivi

neumaRk non ha come obiettivo:

  • sostituire la notazione musicale tradizionale in ambito editoriale;
  • definire uno standard grafico unico;
  • rappresentare micro‑dettagli calligrafici;
  • coprire ogni possibile pratica musicale esistente.

Il linguaggio è intenzionalmente focalizzato e modulare.


10. Organizzazione della specifica

La documentazione di neumaRk è suddivisa in più file, ciascuno con una responsabilità specifica: questa panoramica concettuale, la specifica normativa, e i documenti di dettaglio (header, datapack, note e durate, accordi, flusso, dinamiche, markup, voci, grace notes, ecc.).

L'elenco completo e aggiornato dei documenti normativi è in neumaRk_specification.md §7. Per la pagina d'ingresso e la navigazione, vedi index.md.

Questa suddivisione consente una lettura progressiva e una manutenzione evolutiva della specifica.