La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

MIDI e XML Lezione 18 Programmazione MIDI (Prof. Luca A. Ludovico)

Presentazioni simili


Presentazione sul tema: "MIDI e XML Lezione 18 Programmazione MIDI (Prof. Luca A. Ludovico)"— Transcript della presentazione:

1 MIDI e XML Lezione 18 Programmazione MIDI (Prof. Luca A. Ludovico)

2 Compenetrazioni tra MIDI e XML MIDI nasce nei primi anni 80, XML alla fine degli anni 90. Quali compenetrazioni? Applicazioni affrontate nel corso: 1.Midnam Meccanismo per memorizzare e importare patch per dispositivi MIDI esterni 2.MIDI XML di Recordare Descrizione di un file di partitura MIDI in XML 3.Livello Performance di IEEE 1599 Informazioni di performance collegabili a eventi musicali Programmazione MIDI (Prof. Luca A. Ludovico) Lezione 18. MIDI e XML

3 Introduzione XML (acronimo di eXtensible Markup Language) è un metalinguaggio di markup, ovvero un linguaggio di marcatura che definisce un meccanismo sintattico per definire altri linguaggi marcatori. Il nome indica quindi che si tratta di un linguaggio marcatore (markup language) estensibile (eXtensible) in quanto permette di creare tag personalizzati. Programmazione MIDI (Prof. Luca A. Ludovico) Lezione 18. MIDI e XML

4 I tag in XML (1) In un documento XML possiamo inventare i tag La scelta dei tag può essere effettuata a seconda delle informazioni che interessa rappresentare.

5 I tag in XML (2) I tag si dividono in: –Tag di apertura (start tag): –Tag di chiusura (end tag): –Tag vuoti (empty tag): Nellesempio alla slide precedente: –La prima linea del documento (opzionale) identifica lo stesso come un XML ed indica anche la versione –Il primo tag identifica la radice del documento. In linguaggio naturale: questo documento descrive un banco di patch. –I restanti tag specificano il contenuto tramite una serie di comandi MIDI –Lultimo tag conclude la descrizione

6 Un elemento XML è tutto ciò che è compreso tra un tag di apertura (incluso) ed il corrispettivo tag di chiusura (incluso) Tra i due tag si trova il contenuto dellelemento, che può essere: –Simple content: se il contenuto è un semplice testo. Esempio: lelemento Yamaha MU-80 –Element content: se il contenuto è costituito da altri elementi. Esempio: lelemento –Mixed content: se contiene testo inframezzato da altri elementi. –Empty content: se il contenuto dellelemento è vuoto Esempio: lelemento Per un elemento vuoto la coppia apertura/chiusura può essere sostituita da un tag vuoto Esempio: contenuto Elementi Programmazione MIDI (Prof. Luca A. Ludovico) Lezione 18. MIDI e XML

7 … Esempio Markup End tag Content Start tag Programmazione MIDI (Prof. Luca A. Ludovico) Lezione 18. MIDI e XML

8 Esempio Un elemento può contenere: –Altri elementi (detti sotto-elementi) –Testo semplice Roland –Nessun contenuto Programmazione MIDI (Prof. Luca A. Ludovico) Lezione 18. MIDI e XML

9 Gli elementi in XML sono in relazione tra di loro e queste relazioni determinano il modello del documento Il documento è organizzato come un albero, in cui la relazione di contenimento tra elementi è equivalente alla relazione nodo- sottonodo Es: e sono sotto-elementi di Lentità che non è sottoentità di nessuno (es: ) è lelemento radice (root element) RayGriffin Roland JV-2080 Programmazione MIDI (Prof. Luca A. Ludovico) Lezione 18. MIDI e XML Modello ad albero

10 Gli attributi sono informazioni aggiuntive che possono essere inserite negli elementi XML per completarne o arricchirne linformazione. Vengono inseriti solo nei tag di apertura (o nei tag vuoti) Sintassi: coppie nome = valore Il valore degli attributi è racchiuso o tra apici singoli o tra apici doppi Nome attributo deve essere univoco nellelemento. Attributi... Programmazione MIDI (Prof. Luca A. Ludovico) Lezione 18. MIDI e XML

11 Spesso le stesse informazioni possono essere rappresentate sia tramite attributi che tramite (sotto)elementi. SottoelementiAttributi Appuntamento Luca Carlo ABC123 Luca Carlo ABC123 ABC123 Programmazione MIDI (Prof. Luca A. Ludovico) Lezione 18. MIDI e XML Attributi o elementi?

12 La scelta tra attributi o elementi (quando si progetta il linguaggio) è soggettiva, tuttavia le due soluzioni non sono in genere equivalenti. Problemi con gli attributi: –Non possono contenere valori multipli Marco Mario –Sono difficilmente espandibili (aggiunta di sottoelementi) –Non possono descrivere strutture.... E opportuno usare gli attributi per informazioni essenziali per lelemento, come ad esempio gli identificativi (ID) Programmazione MIDI (Prof. Luca A. Ludovico) Lezione 18. MIDI e XML Attributi o elementi?

13 Esempi OK NO, perché non posso avere più attributi con identico nome nello stesso elemento. Sintatticamente OK, però è difficile effettuare il parsing dei singoli valori.

14 Tutti i tag aperti devono essere chiusi. I tag devono essere correttamente annidati (innestati, nested) quindi lordine di chiusura deve essere inverso rispetto a quello di apertura. CorrettoNon corretto Roland Roland JV-2080 CorrettoNon corretto JV-2080 JV-2080 Programmazione MIDI (Prof. Luca A. Ludovico) Lezione 18. MIDI e XML Regole sintattiche

15 Ogni documento XML deve avere uno ed un solo elemento radice. Se la rappresentazione dei dati implica luso di più nodi radice, è necessario sostituire il nodo radice scelto con uno di significato più generale. –Ad esempio, se è necessario rappresentare tanti elementi …, lelemento radice sarà più propriamente … contenitore di sottoelementi … CorrettoNon corretto Programmazione MIDI (Prof. Luca A. Ludovico) Lezione 18. MIDI e XML Regole sintattiche

16 I valori degli attributi devono sempre essere inclusi tra apici XML è case sensitive, cioè sensibile a maiuscole/minuscole In XML gli spazi vengono preservati I commenti possono essere inseriti tra i segni CorrettoNon corretto CorrettoNon corretto JV-2080 Programmazione MIDI (Prof. Luca A. Ludovico) Lezione 18. MIDI e XML Regole sintattiche

17 ESERCITAZIONE Sezione 16.1 Programmazione MIDI (Prof. Luca A. Ludovico) Lezione 18. MIDI e XML

18 Editor XML Editing di XML con XML Copy Editor –Software scaricabile da Ausili grafici (e non) per la generazione di sintassi XML ben formata –Autocompletamento –Colorazione dei tag –Indentazione e pretty-print Verifica di Well-formedness, o correttezza della forma (e di Validity: vedi prossima lezione) Programmazione MIDI (Prof. Luca A. Ludovico) Lezione 18. MIDI e XML

19 Esempi di errori XML Programmazione MIDI (Prof. Luca A. Ludovico) Lezione 18. MIDI e XML NoteOn NoteOff Control Change NoteOn NoteOff Control Change

20 Esempi di errori XML Programmazione MIDI (Prof. Luca A. Ludovico) Lezione 18. MIDI e XML NoteOn NoteOff Control Change NoteOn NoteOff Control Change

21 Esempi di errori XML Programmazione MIDI (Prof. Luca A. Ludovico) Lezione 18. MIDI e XML NoteOn NoteOff Control Change NoteOn NoteOff Control Change

22 Esempi di errori XML Programmazione MIDI (Prof. Luca A. Ludovico) Lezione 18. MIDI e XML NoteOn NoteOff ControlChange NoteOn NoteOff ControlChange

23 Esempio Programmazione MIDI (Prof. Luca A. Ludovico) Lezione 18. MIDI e XML Obiettivo: rappresentare sequenze di messaggi MIDI non temporizzati Informazioni da codificare: –Solo messaggi NoteOn e NoteOff, con relativo canale, pitch e velocity A titolo di esempio, si presenti un NoteOn e un NoteOff di un pitch 60 (C5) con velocity 100 In questo contesto, non avendo vincoli imposti sul formato da adottare, esistono numerose varianti, tutte ugualmente accettabili –Utilizzo di soli elementi –Utilizzo di elementi vuoti e attributi –...

24 Rappresentazione alternativa 1 Programmazione MIDI (Prof. Luca A. Ludovico) Lezione 18. MIDI e XML

25 Rappresentazione alternativa 2 Programmazione MIDI (Prof. Luca A. Ludovico) Lezione 18. MIDI e XML......

26 Rappresentazione alternativa 3 Programmazione MIDI (Prof. Luca A. Ludovico) Lezione 18. MIDI e XML NoteOn ch. 1 Pitch C5 Velocity 100 NoteOff ch. 1 Pitch C5 Velocity 100

27 Rappresentazioni alternative 5 e 6 Programmazione MIDI (Prof. Luca A. Ludovico) Lezione 18. MIDI e XML


Scaricare ppt "MIDI e XML Lezione 18 Programmazione MIDI (Prof. Luca A. Ludovico)"

Presentazioni simili


Annunci Google