La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "Lezione 13 DARMS Programmazione per la Musica | Prof. Luca A. Ludovico."— Transcript della presentazione:

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

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

3 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

4 Finalità della lezione
Durante la lezione ci si concentrerà su un particolare formato, il DARMS. Però le finalità sono più generali: 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 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

5 Esempi Descrizione tramite testo semplice (logica)
ABC GUIDO Plaine & Easie Code Compilazione di testo semplice (grafica) LilyPond XML musicale MusicXML IEEE 1599 Programmazione per la Musica - Prof. Luca A. Ludovico 13. DARMS

6 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

7 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

8 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

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

10 Scorciatoie Ai fini di migliorare la compattezza nella scrittura, il linguaggio introduce numerose scorciatoie. Ad esempio: 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: 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

11 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

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

13 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 Longa S Sedicesimo WW Breve T Trentaduesimo W Intero (Whole) X Sessantaquattresimo H Metà (Half) Y Centoventottesimo Q Quarto (Quarter) Z … E Ottavo (Eighth) ZZ … G Abbellimento (Grace Note) . Punto di valore Programmazione per la Musica - Prof. Luca A. Ludovico 13. DARMS

14 Se la durata è la stessa del simbolo precedente, può essere omessa.
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

15 Travi Le travi sono codificate dal numero di parentesi aperte e chiuse. Per queste note 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

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

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

18 Utilizzo dei gruppi irregolari
Notazione: !n1dur1id:n2dur2 Significato: n1 note di valore dur1 occupano lo spazio di n2 note di valore dur2, 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 !5Q3:4, la notazione Q3 Q.3 E3 RQ3 Q3 corrisponde a Esempio: dopo aver definito !3E4:Q, la notazione (E.4 (S4) E4) corrisponde a Programmazione per la Musica - Prof. Luca A. Ludovico 13. DARMS

19 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

20 ESEMPIO / ESERCIZIO DarmsParsingExample.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


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

Presentazioni simili


Annunci Google