La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


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

1 DARMS Lezione 13 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: 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

5 Esempi Descrizione tramite testo semplice (logica) –ABC –GUIDO Music%20Notation%20Format.html –Plaine & Easie Code Compilazione di testo semplice (grafica) –LilyPond XML musicale MusicXML IEEE 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: 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: 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 LongaSSedicesimo WWBreveTTrentaduesimo WIntero (Whole)XSessantaquattresimo HMetà (Half)YCentoventottesimo QQuarto (Quarter)Z… EOttavo (Eighth)ZZ… GAbbellimento (Grace Note).Punto di valore Programmazione per la Musica - Prof. Luca A. Ludovico 13. DARMS

14 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: !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: !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: !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 !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 "DARMS Lezione 13 Programmazione per la Musica | Prof. Luca A. Ludovico."

Presentazioni simili


Annunci Google