Lezione 13 DARMS Programmazione per la Musica Prof

  • Slides: 20
Download presentation
Lezione 13 DARMS Programmazione per la Musica | Prof. Luca A. Ludovico

Lezione 13 DARMS Programmazione per la Musica | Prof. Luca A. Ludovico

Rappresentazione alfanumerica della musica Programmazione per la Musica - Prof. Luca A. Ludovico 13.

Rappresentazione alfanumerica della musica Programmazione per la Musica - Prof. Luca A. Ludovico 13. DARMS

Rappresentazione alfanumerica della musica • In un formato di rappresentazione alfanumerica della musica, ogni

Rappresentazione alfanumerica della musica • In un formato di rappresentazione alfanumerica della musica, ogni simbolo musicale è rappresentato da un carattere ASCII o da un’apposita combinazione. L’idea originaria era poter usare una comune macchina da scrivere per creare equivalenti informativi delle partiture. • Principali vantaggi: motivi storici, affinità al linguaggio naturale, compattezza, interoperabilità, interscambiabilità, formati aperti e niente royalties • Svantaggi: complessità nel supportare tutti i simboli, lontananza dall’aspetto grafico della musica. Programmazione per la Musica - Prof. Luca A. Ludovico 13. DARMS

Finalità della lezione • Durante la lezione ci si concentrerà su un particolare formato,

Finalità della lezione • Durante la lezione ci si concentrerà su un particolare formato, il DARMS. Però le finalità sono più generali: 1. Conoscere i linguaggi di codifica alfanumerica della musica, alcuni dei quali sono ancora in uso e dispongono di librerie di centinaia di migliaia di brani 2. Convertire informazione simbolica da un formato (ad esempio quello alfanumerico basato su testo semplice) a un altro formato (ad esempio una rappresentazione interna basata su classi) Piè di pagina: spazio libero per eventuale nome struttura o altro

Esempi • Descrizione tramite testo semplice (logica) – ABC http: //abcnotation. com/ – GUIDO

Esempi • Descrizione tramite testo semplice (logica) – ABC http: //abcnotation. com/ – GUIDO http: //guidolib. sourceforge. net/doc/GUIDOMusic%20 Notation%20 Format. html – Plaine & Easie Code http: //www. iaml. info/en/activities/projects/plain_and_easy_code • Compilazione di testo semplice (grafica) – Lily. Pond http: //www. lilypond. org/ • XML musicale • Music. XML http: //www. musicxml. com/ • IEEE 1599 http: //emipiu. di. unimi. it/ Programmazione per la Musica - Prof. Luca A. Ludovico 13. DARMS

DARMS (Digital Alternate Representation of Musical Scores) • Il formato DARMS (primi anni ‘

DARMS (Digital Alternate Representation of Musical Scores) • Il formato DARMS (primi anni ‘ 60) rappresenta elementi della notazione musicale in formato alfanumerico, attraverso stringhe di testo semplice. • La sua sintassi è fortemente orientata all’ordine e alla funzione dei singoli elementi, giungendo in tal modo a una significativa eliminazione delle ridondanze. • Codici che non appaiono nella posizione corretta potrebbero essere mal interpretati o ignorati, a seconda delle implementazioni. Programmazione per la Musica - Prof. Luca A. Ludovico 13. DARMS

Approccio • DARMS è stato originariamente concepito per la tipografia musicale, e dunque codifica

Approccio • DARMS è stato originariamente concepito per la tipografia musicale, e dunque codifica i simboli anziché il loro significato. • Per conoscere il significato di un simbolo (ad esempio l’altezza di una nota) è necessario avere una conoscenza più globale di altri simboli (ad esempio la chiave, l’armatura, le alterazioni precedenti, ecc. ): è necessaria una nozione di “stato” • Per i caratteri alfabetici, DARMS usa sempre maiuscole Programmazione per la Musica - Prof. Luca A. Ludovico 13. DARMS

Codifica del pitch • A differenza di molti altri linguaggi, DARMS non attribuisce una

Codifica del pitch • A differenza di molti altri linguaggi, DARMS non attribuisce una codifica alle altezze, ma piuttosto alla posizione sul pentagramma – Si noti che quindi ricostruire l’altezza richiede quanto meno la conoscenza della chiave • La codifica avviene tramite numeri interi detti space codes. Le linee e gli spazi sono numerati da 21 a 29, e i tagli addizionali vengono computati di conseguenza Programmazione per la Musica - Prof. Luca A. Ludovico 13. DARMS

Codifica del pitch Programmazione per la Musica - Prof. Luca A. Ludovico 13. DARMS

Codifica del pitch Programmazione per la Musica - Prof. Luca A. Ludovico 13. DARMS

Scorciatoie • Ai fini di migliorare la compattezza nella scrittura, il linguaggio introduce numerose

Scorciatoie • Ai fini di migliorare la compattezza nella scrittura, il linguaggio introduce numerose scorciatoie. Ad esempio: 1. Soppressione del 2 (two suppression): i codici da 20 a 29 possono essere codificati solo con l’ultima cifra. Per distinguerli rispetto agli space code 0. . 9 ammessi per i tagli addizionali, a questi ultimi si premette obbligatoriamente lo zero: 00. . 09. 2. Se una nota ha lo stesso space code della precedente, è possibile ometterlo (specificando solo la sua durata). Programmazione per la Musica - Prof. Luca A. Ludovico 13. DARMS

Alterazioni e chiavi • Le alterazioni si codificano aggiungendo se necessario i caratteri #

Alterazioni e chiavi • Le alterazioni si codificano aggiungendo se necessario i caratteri # (diesis), - (bemolle) e * (bequadro) allo space code. Mettendo in serie più simboli si codificano doppio diesis, doppio bemolle, ecc. • Le chiavi si codificano facendo seguire al ! i simboli G, F o C per le chiavi di Sol, di Fa e di Do rispettivamente. Per posizionare in modo non standard le chiavi sul pentagramma si utilizzano gli space code (vedi esempi più avanti) Programmazione per la Musica - Prof. Luca A. Ludovico 13. DARMS

Specchietto riassuntivo Programmazione per la Musica - Prof. Luca A. Ludovico 13. DARMS

Specchietto riassuntivo Programmazione per la Musica - Prof. Luca A. Ludovico 13. DARMS

Aspetti ritmici Per i simboli musicali la durata è specificata dai duration code, che

Aspetti ritmici Per i simboli musicali la durata è specificata dai duration code, che cercano di richiamare i nomi delle durate (in inglese) dal punto di vista mnemonico: WWW WW W H Q E Longa Breve Intero (Whole) Metà (Half) Quarto (Quarter) Ottavo (Eighth) S T X Y Z ZZ Sedicesimo Trentaduesimo Sessantaquattresimo Centoventottesimo … … G Abbellimento (Grace Note) . Punto di valore Programmazione per la Musica - Prof. Luca A. Ludovico 13. DARMS

Aspetti ritmici • Il duration code normalmente segue uno space code, oppure l’alterazione se

Aspetti ritmici • Il duration code normalmente segue uno space code, oppure l’alterazione se presente, oppure il carattere R se si tratta di una pausa. I punti di valore se presenti seguono il duration code. • Se la durata è la stessa del simbolo precedente, può essere omessa. • Esempio: R H Q E. Programmazione per la Musica - Prof. Luca A. Ludovico 13. DARMS

Travi • Le travi sono codificate dal numero di parentesi aperte e chiuse. Per

Travi • Le travi sono codificate dal numero di parentesi aperte e chiuse. Per queste non si usa il duration code, che può essere inferito (ad eccezione dei gruppi irregolari) – L’esempio mostra la codifica completa delle note, ossia travi e pitch (con two suppression) Programmazione per la Musica - Prof. Luca A. Ludovico 13. DARMS

Segnatura di tempo • Codifica standard: !Mxxx Ad esempio: !M 3/4 oppure !M 5:

Segnatura di tempo • Codifica standard: !Mxxx Ad esempio: !M 3/4 oppure !M 5: 8 • Notazioni complesse: Programmazione per la Musica - Prof. Luca A. Ludovico 13. DARMS

Definizione dei gruppi irregolari • E’ necessario definire e marchiare univocamente un gruppo irregolare

Definizione dei gruppi irregolari • E’ necessario definire e marchiare univocamente un gruppo irregolare prima di poterlo utilizzare. • Notazione: !n 1 dur 1 id: n 2 dur 2 Significato: n 1 note di valore dur 1 occupano lo spazio di n 2 note di valore dur 2, e al gruppo si attribuisce l’identificativo id • Esempio: !3 H 7: 2 H Lettura: 3 metà nello spazio di 2 metà, identificativo 7 • Esempio: !5 Q 3: 4 Lettura: 5 quarti nello spazio di 4, identificativo 3 Programmazione per la Musica - Prof. Luca A. Ludovico 13. DARMS

Utilizzo dei gruppi irregolari • Notazione: !n 1 dur 1 id: n 2 dur

Utilizzo dei gruppi irregolari • Notazione: !n 1 dur 1 id: n 2 dur 2 Significato: n 1 note di valore dur 1 occupano lo spazio di n 2 note di valore dur 2, e al gruppo si attribuisce l’identificativo id • Una volta definito il gruppo irregolare, lo si attribuisce alle note aggiungendo l’identificatore del gruppo al duration code • Esempio: dopo aver definito !5 Q 3: 4, la notazione Q 3 Q. 3 E 3 RQ 3 corrisponde a • Esempio: dopo aver definito !3 E 4: Q, la notazione (E. 4 (S 4) E 4) corrisponde a Programmazione per la Musica - Prof. Luca A. Ludovico 13. DARMS

Delimitatori di battuta e legature di valore • Delimitatori di battuta (assomigliano graficamente al

Delimitatori di battuta e legature di valore • Delimitatori di battuta (assomigliano graficamente al risultato in partitura): • Legature di valore: si fa seguire il duration code dalla lettera J, nella nota che dà avvio alla legatura. La lettera J può seguire direttamente lo space code se il duration code è stato soppresso. – E’ possibile numerare partenza (n, dispari) e arrivo delle legature (n+1, pari) • Esempio: Programmazione per la Musica - Prof. Luca A. Ludovico 13. DARMS

ESEMPIO / ESERCIZIO Darms. Parsing. Example. java Si implementi un convertitore da DARMS a

ESEMPIO / ESERCIZIO Darms. Parsing. Example. java Si implementi un convertitore da DARMS a strutture dati interne, con la definizione di molteplici classi per descrivere i diversi simboli musicali. L’inserimento della stringa contenente il DARMS ha luogo attraverso il passaggio parametri iniziale. Programmazione per la Musica - Prof. Luca A. Ludovico 13. DARMS