Massimiliano Pancini LIM-Laboratorio di Informatica Musicale

Slides:



Advertisements
Presentazioni simili
Conservatorio “D. Cimarosa” di Avellino INFORMATICA MUSICALE
Advertisements

Conservatorio “D. Cimarosa” di Avellino INFORMATICA MUSICALE
Modulo 4 – Seconda Parte Foglio Elettronico
Lezione 1 Primi passi in HtML SCRIVERE TESTI di Sergio Capone
Laboratorio Professionalizzante
Lezione 18 MIDI e XML Programmazione MIDI (Prof. Luca A. Ludovico)
HTML LE PAGINE WEB COME SI SA, INTERNET E UN SISTEMA MONDIALE DI RETI DI COMPUTER CHE PERMETTE DI UTILIZZARE UN SISTEMA DI CONNESSIONE TRA COMPUTER.
PHP.
Ogni PC, per iniziare a lavorare, ha bisogno di un sistema operativo. Infatti questo è il primo programma che viene eseguito e che permette all'utente.
1 Semantica Operazionale di un frammento di Java: lo stato.
GLUT & OpenGL Ing. Tommaso Coviello Politecnico di Bari
Conservatorio “D. Cimarosa” di Avellino INFORMATICA MUSICALE
Anno accademico Le classi di memorizzazione.
TW Analisi dei documenti n Classificazione dei componenti n Selezione dei componenti, costruzione della gerarchia, dei blocchi informativi e degli elementi.
I file l I File sono l unità base di informazione nellinterazione tra utente e sistema operativo l Un file e costituito da un insieme di byte attinenti.
JavaScript Laboratorio di Applicazioni Informatiche II mod. A.
1 HTML - I Frame Laboratorio di Applicazioni Informatiche II mod. A.
Argomenti dalla linea dei comandi Gli argomenti possono essere passati a qualsiasi funzione di un programma, compresa la main(), direttamente dalla linea.
Funzioni definite dall’utente
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Le stringhe di caratteri in Java Anno Accademico 2009/2010.
1 Anatomia di una pagina Un insieme di pagine web hanno generalmente una parte invariante (o poco): header, navigazione, footer una parte variabile: contenuti.
Corso di Informatica per Giurisprudenza
Laboratorio di Informatica
DBMS ( Database Management System)
1 IsaPress. 2 Obiettivo Realizzare uno strumento di facile uso per estrarre il contenuto da documenti binari di vario tipo in un formato utile per l'impaginazione.
1 IsaPress. 2 Obiettivo Realizzare uno strumento di facile uso per estrarre il contenuto da documenti binari di vario tipo in un formato utile per l'impaginazione.
Finale 2003 Lezione 3 Laboratorio Professionalizzante Ing. Luca A. Ludovico LIM (Laboratorio di Informatica Musicale) DICo – Università degli Studi di.
Dall’algoritmo al programma.
RAPPRESENTAZIONE DELL'INFORMAZIONE
FORMATTARE LE LISTE DI LINK  MENU
CORSO AVANZATO INFORMATICA
Posizionamento Come posizionare gli elementi HTML nella pagina web e come JavaScript può muoverli cambiando la loro posizione nel tempo.
Introduzione al linguaggio assembly del microprocessore a parte
CODIFICA Da flow-chart a C++.
Creare pagine web Xhtlm. Struttura di una pagina.
HTML Lezione 3 Stili.
Posizionamento Come posizionare gli elementi HTML nella pagina web e come JavaScript può muoverli.
Che cos’è un sistema di numerazione?
Corso JAVA Lezione n° 11 Istituto Statale di Istruzione Superiore “F. Enriques”
Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Programma del Corso.
Strumenti di Presentazione (Microsoft PowerPoint 2000)
Il Linguaggio HTML “Profe, ma io a casa l’HTML non ce l’ho!“
Linguaggi per COMUNICARE
Il linguaggio musicale
Rappresentazione delle durate Lezione 7 Programmazione per la Musica | Prof. Luca A. Ludovico.
ITCG “V. De Franchis” - PON FSE Modulo G/1 l’informatica”
TAG e CSS Ricalcare la grgilia di impaginazione. UNA STRUTTURA PER I CONTENUTI Oltre a caratterizzare i contenuti (titoli, paragrafi, liste, collegamenti),
POWER POINT.
Prof. Giuseppe Boncoddo
HTML 4.01 Apogeo. I tag di base Capitolo 1 I tag SintassiEsempi:
Tecnologie di InternetDocument Type Definition Dott. Nicola Dragoni Document Type Definition  Document Type Definition (DTD)  Documento XML valido 
Eprogram informatica V anno. ASP.NET Introduzione ASP.NET (Active Server Page) è il linguaggio che, sfruttando la tecnologia.NET, permette di: -scrivere.
Tag FRAMESET. I frame sono un particolare tipo di struttura HTML, che consente di suddividere la finestra del browser in diversi riquadri distinti. Un'insieme.
Informatica Applicata al Suono Tutorial Matlab
HTML e CSS C. Gena, C. Picardi, J. Sproston HTML e CSS.
Microsoft Access Chiavi, struttura delle tabelle.
Fondamenti di Informatica1 Memorizzazione su calcolatore L'unità atomica è il bit (BInary DigiT) L'insieme di 8 bit è detta byte Altre forme di memorizzazione:
Servizi Internet Claudia Raibulet
Laboratorio Informatico
Informatica e Informatica di Base
Microsoft Access (parte 3) Introduzione alle basi di dati Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Cloud informatica V anno. Introduzione a PHP Lo scripting PHP PHP è un linguaggio di scripting lato server. Le caratteristiche di un linguaggio di scripting.
Cloud Tecno V. Percorso didattico per l’apprendimento di Microsoft Access 4 - Le maschere.
Riprendendo Il tag il tag Div rappresenta un contenitore. Tutto quello che è incluso fra il tag iniziale e quello di chiusura reagisce secondo gli stili.
Diagramma degli Stati. Diagramma degli Stati … Definizione è un grafico con nodi ed archi in cui i nodi rappresentano gli stati di una classe e gli archi,
Parsing ricorsivo discendente Il parsing ricorsivo discendente (recursive descent parsing) è un metodo di tipo top-down che può essere facilmente codificato.
Autoresizing e autolayout. Posizionare gli elementi All’interno dello storyboard, gli elementi possono essere posizionati trascinandoli nella posizione.
Transcript della presentazione:

Massimiliano Pancini LIM-Laboratorio di Informatica Musicale Il formato NIFF Massimiliano Pancini LIM-Laboratorio di Informatica Musicale

Il formato NIFF Cos’e’ il NIFF ?

Il formato NIFF MIDI Files: Descrizione simbolica dell’informazione musicale rivolta all’esecuzione N.I.F.F. (Notation Interchange File Format)

POVERO DI INFORMAZIONI: GRAFICHE E MUSICOLOGICHE Il formato NIFF MIDI Files: Descrizione simbolica dell’informazione musicale rivolta all’esecuzione POVERO DI INFORMAZIONI: GRAFICHE E MUSICOLOGICHE

Obiettivi: Il formato NIFF 1) Completezza notazionale (editoria, acquisizione da scanner) 2) Equivalenza con il MIDI (informazione relativa all’esecuzione) 3) Espandibilita’, Flessibilita’ e Compattezza

Il formato NIFF Form List e Chunk Tag Elementi principali: Segue le regole dettate dalla specifica per il formato RIFF Microsoft (Resource Interchange File Format) Elementi principali: Form “contenitore” List e Chunk Lunghezza variabile Tag Parti opzionali

Il formato NIFF Form “contenitore principale” All’inizio del file, Segue le regole dettate dalla specifica per il formato RIFF Microsoft (Resource Interchange File Format) Form “contenitore principale” All’inizio del file, contiene tutti gli altri list e chunk RIFF/ RIFX Dimensione dati in Form Tipo di file (NIFF) DATI (list & Chunk)

Il formato NIFF Form RIFF/ RIFX Dimensione dati in Form Segue le regole dettate dalla specifica per il formato RIFF Microsoft (Resource Interchange File Format) RIFF/ RIFX Dimensione dati in Form Tipo di file (NIFF) DATI (list & Chunk) Form Chunk LIST … LIST … … Chunk Chunk ……… Chunk

Il formato NIFF Form RIFF/ RIFX Dimensione dati in Form Segue le regole dettate dalla specifica per il formato RIFF Microsoft (Resource Interchange File Format) Form RIFF/ RIFX Dimensione dati in Form Tipo di file (NIFF) DATI (list & Chunk) Nome del chunk(4 byte ) POINTER (4 byte ) Chunk Length Table

Il formato NIFF Form Chunk Length Table POINTER 1 Nome del chunk 1 Segue le regole dettate dalla specifica per il formato RIFF Microsoft (Resource Interchange File Format) Form Chunk Length Table POINTER 1 Nome del chunk 1 Nome del chunk 2 POINTER 2 POINTER 3 Nome del chunk 3 POINTER 4 Nome del chunk 4 POINTER 5 Nome del chunk 5

Il formato NIFF Form Chunk Length Table Nome del chunk 2 POINTER Segue le regole dettate dalla specifica per il formato RIFF Microsoft (Resource Interchange File Format) Form Chunk Length Table Nome del chunk 2 POINTER CHUNK 1 CHUNK 2 Tag1 Tag2 Tag3 Tag4 …

Part Description Chunk Il formato NIFF Segue le regole dettate dalla specifica per il formato RIFF Microsoft (Resource Interchange File Format) Form RIFF/ RIFX Dimensione dati in Form Tipo di file (NIFF) DATI (list & Chunk) nome del chunk (4 byte ) POINTER (4 byte ) Part ID Part Name Part Abbreviation Max. num. di Pentagrammi MIDI Ch. & Cable number Transpose Part Description Chunk

Il formato NIFF Form Part List Segue le regole dettate dalla specifica per il formato RIFF Microsoft (Resource Interchange File Format) Form Part ID Part Name Part Abbreviation Max. num. di Pentagrammi MIDI Ch. & Cable number Transpose Part ID Part Name Part Abbreviation Max. num. di Pentagrammi MIDI Ch. & Cable number Transpose Part ID Part Name Part Abbreviation Max. num. di Pentagrammi MIDI Ch. & Cable number Transpose Part List

Il formato NIFF Form List “LIST” Dimensione dati Tipo dati DATI Segue le regole dettate dalla specifica per il formato RIFF Microsoft (Resource Interchange File Format) DATI (list & Chunk) Form List = struttura, contenitore “LIST” LIST … … Dimensione dati Chunk Tipo dati DATI

Il formato NIFF Form Chunk Tipo di Chunk Dimensione dati DATI Segue le regole dettate dalla specifica per il formato RIFF Microsoft (Resource Interchange File Format) DATI (list & Chunk) Form Chunk =informazione codificata LIST … … Tipo di Chunk Dimensione dati Chunk DATI

Il formato NIFF Il TAG Tipo di Chunk Dimensione dati DATI =parte opzionale del chunk Tag Tipo di Chunk Tag Dimensione dati Chunk Chunk DATI Tag …

Il formato NIFF Il TAG =parte opzionale del chunk Tag

Il formato NIFF Il TAG Tipo di Tag Dimensione dati DATI =parte opzionale del chunk Tipo di Tag Tag Dimensione dati DATI

Un “ perché ” importante Il formato NIFF ? Un “ perché ” importante Nei tipi di dati dove e’ definita la parte variabile troviamo sempre indicata la dimensione dell’area riservata ai dati Questo permette al linguaggio di soddisfare il requisito di flessibilita’

Il formato NIFF ? Infatti, questo mette in grado il programma che utilizza il formato NIFF di ignorare ogni dato che non riconosce. Questo implica la possibilita’ di definire nuovi tipi di dati da aggiungere al formato, salaguardando la compatibilita’ delle versioni precedenti.

Il formato NIFF ? I produttori di software commerciale o i ricercatori accademici possono definire nuovi chunk o tag propri , registrando un NIFF user ID riservato i chunk definiti da utente, avranno il codice identificativo “user”, e memorizzeranno nei primi due byte dello spazio riservato ai dati il NIFF user ID

I tag definiti da utente hanno il tag ID uguale a 255 (x’FF’) Il formato NIFF ? I produttori di software commerciale o i ricercatori accademici possono definire nuovi chunk o tag propri , registrando un NIFF user ID riservato I tag definiti da utente hanno il tag ID uguale a 255 (x’FF’) e memorizzeranno nei primi due byte dello spazio riservato ai dati del tag il NIFF user ID

Score Lo spartito… Il formato NIFF E’ presente in ogni file niff, Contiene tutte le informazioni di partitura

Part Lo spartito… Il formato NIFF Score E’ un flusso di eventi musicali. Il vero e proprio “spartito”, relativo ad uno o ad un gruppo di strumenti suonati dallo stesso strumentista

Voice Lo spartito… Il formato NIFF Score Part E’ un flusso di eventi musicali ritmicamente indipendenti all’interno di una parte

System Lo spartito… Il formato NIFF Score Part Voice E’ la struttura della pagina dello spartito Simboli che rappresentano eventi simultanei sono allineati verticalmente

Staff Lo spartito… Il formato NIFF Score Part Voice System Rappresenta il singolo pentagramma, su cui vengono visualizzati i simboli musicali

Time-slice Lo spartito… Il formato NIFF Score Part Voice System Staff E’ il meccanismo per temporizzare gli eventi all’interno della partitura Part Time-slice Voice Inizio Misura: tempo dall’inizio dello spartito System Staff Inizio Evento: tempo dall’inizio della misura

Il formato NIFF Lo spartito… Score Part Voice System Staff Time-Slice

La struttura Il formato NIFF Setup section Data section NIFF Information chunk (versione NIFF, provenienza, unita’ di misura, bpm) Chunk length table (tabella che configura la lunghezza fissa di ciascun chunk) Parts list (Chunk ID, Chunk Name, massimo numero di pentagrammi, Canale e strumento MIDI associati, ecc.)

La struttura Il formato NIFF Setup section Data section Pagina Informazione musicale Contiene la vera e propria informazione musicale sotto tutti gli aspetti: Notazionale Esecutivo Grafico… Pagina (accollatura) system Pentagramma …. simboli … (note, pause, indicazioni temporali)

La struttura Il formato NIFF Sono Liste: Pagina Composte da un header chunk e, di seguito, i chunk relativi ai vari simboli Pagina (accollatura) system Pentagramma …. simboli … (note, pause, indicazioni temporali)

La struttura Il formato NIFF Pagina Una LISTA-pentagramma puo’ contenere simboli musicali appartenenti a piu’ di una PART Pagina (accollatura) system Pentagramma Pentagramma …. simboli … (note, pause, indicazioni temporali)

La struttura Il formato NIFF 1 Part per pentagramma chunk chunk chunk Pentagramma (Staff Header Chunk) PART ID = numero della part chunk chunk chunk chunk chunk … simboli

La struttura Il formato NIFF Part diversi su un pentagramma chunk Pentagramma (Staff Header Chunk) xxxx chunk chunk chunk chunk chunk … …… … PartID = m …… … PartID = p …… … PartID = m …… … PartID = ..

La struttura Il formato NIFF Dentro al pentagramma chunk chunk chunk Pentagramma (Staff Header Chunk) chunk chunk chunk chunk chunk … Time slice Ch. …… … nota …… … … Time slice Ch. …… …

Unita’ di misura e sistema di coordinate Il formato NIFF Unita’ di misura e sistema di coordinate Scopi Configurabilita’ per programmi di editoria e OMR Sufficiente precisione grafica Interi VS floating point per le coordinate Congruenza delle informazioni grafiche e semantiche

Unita’ di misura e sistema di coordinate Il formato NIFF Unita’ di misura e sistema di coordinate Unita’ assolute Descritte nella sezione di Setup. Descrivono la densita’ di unita’ assolute per unita’ standard Rappresentati da : tipo di unita’ standard (inches, centrimetri, punti..) densita’ per unita’ standard

Unita’ di misura e sistema di coordinate Il formato NIFF Unita’ di misura e sistema di coordinate Staff step Riferimento verticale rispetto alla linea inferiore del pentagramma Il simbolo viene posizionato verticalmente nel pentagramma in base a questo valore

Unita’ di misura e sistema di coordinate Il formato NIFF Unita’ di misura e sistema di coordinate La pagina Altezza Unita’ assolute + Larghezza Lo 0 cartesiano e’ nell’angolo in alto a sinistra +

Unita’ di misura e sistema di coordinate Il formato NIFF Unita’ di misura e sistema di coordinate Dimensione dei font di testo : E’ espressa in twips (1/20 di punto) Permette, nei programmi in cui e’ previsto, di proporzionare il testo in modo fine rispetto alla dimensione “punto”

Unita’ di misura e sistema di coordinate Il formato NIFF Unita’ di misura e sistema di coordinate Dimensione dei font musicali : E’ espressa in due differenti modi: dimensione (in twips) Altezza dello spazio occupato(in unita’ assolute) (quest’ultimo per ovviare alla non univocita’ del concetto di “size” nel caso di tipi di font diversi)

Il formato NIFF Rappresentazione temporale Obiettivi : Il NIFF e’ stato progettato per poter contemporaneamente fornire informazioni sulle durate precise per l’aspetto simbolico, e sufficienti per l’esecuzione tramite un sequencer o la trasformazione a MIDI.

Il formato NIFF Rappresentazione temporale Start time Durata (Istante di inizio) Rappresenta il punto di inizio della nota. A livello simbolico si rappresenta con una frazione, che indica la distanza temporale dall’inizio della battuta A livello esecutivo la frazione e’convertita in MIDI ticks (con la relazione “MIDI ticks per quarto” ), a cui verranno aggiunti un offset dovuto all’interpretazione

Il formato NIFF Rappresentazione temporale Start time Durata A livello simbolico si rappresenta con una frazione, pari alla durata della figura della nota I gruppi irregolari sono espressi come rapporto tra la durata quella che avrebbero le note che li costituiscono e quella effettiva. Ancora, a livello esecutivo la frazione e’convertita in MIDI ticks a cui verranno aggiunti un offset dovuto all’interpretazione

Caratteristiche grafiche Il formato NIFF Rappresentazione temporale Caratteristiche grafiche Nel formato NIFF sono rappresentati tramite chunk associati alle note alcune indicazioni grafiche, tra cui la forma della testa della nota, o il numero di punti o di gambi della nota, o al contrario informazioni notazionali che compensano e permettano l’assenza di tutte le note necessarie a completare una battuta, o abbellimenti i cui valori non vengono calcolati.

Caratteristiche grafiche Il formato NIFF Rappresentazione temporale Caratteristiche grafiche Barra della battuta: e’ un chunk che viene notato come fine della battuta anziche’ l’inizio (come da teoria musicale) e quindi cade prima del time slice chunk di inizio battuta

Caratteristiche grafiche Il formato NIFF Rappresentazione temporale Caratteristiche grafiche Cambio di chiave, armatura o tempo: Anche questo e’ rappresentato da un chunk che , pur seguendo il Barline chunk, viene posto anch’esso prima del time slice chunk di inizio battuta. Nel caso in cui siano posti all’inizio del pentagramma, seguono invece immediatamente il time slice chunk di inizio battuta. Nel caso in cui il cambio sia in mezzo a una battuta, essi seguono il chunk che rappresenta l’evento successivo

Il formato NIFF I FONT CUSTOM in un file NIFF si possono definire tipi di Font speciali Nella sezione setup, puo’ esistere una tabella opzionale chiamata Font Description List. E’ composta da una serie di Font Description Chunks. Essi vengono indentificati come FONTIDX data type Nome Font Dimensione del font Stile (NCGS) Posizione nel file (Se presente) E’ un puntatore ad un font Post Script, nella Custom Graphic List

Il formato NIFF I FONT CUSTOM La Custom Graphic List e’ una tabella opzionale che contiene i Font (in formato Post Script Type 1 o Type 3) e elementi grafici proprietari (in formato EPS, encapsulated Post Script ) in una struttura di chunk

Un file MIDI puo’ essere integrato in un file NIFF Il formato NIFF Integrazione MIDI Un file MIDI puo’ essere integrato in un file NIFF Nella sezione setup, ciascuna part puo’ essere globalmente assegnata ad un numero di canale MIDI e si puo’ fissare il numero nel part description chunk. pu

Il formato NIFF Integrazione MIDI Setup section Data section Nella sezione setup, ciascuna part puo’ essere globalmente assegnata ad un numero di canale e periferica MIDI e si puo’ fissare il numero nel part description chunk. Tramite il Part Description Override tag si puo’ modificare in ogni momento della partitura la configurazione MIDI attuale

Il formato NIFF Integrazione MIDI Setup section Data section Nella sezione data, sono utilizzati i MIDI Data Stream chunk e i MIDI Performance tag. A seconda della notazione ci sono 4 possibili relazioni tra i simboli musicali e I dati MIDI

Correlazione uno a uno: Il formato NIFF Integrazione MIDI Setup section Data section Correlazione uno a uno: e’ il caso di note (il simbolo “testa della nota”) che genera un messaggio di Note On. Vengono forniti dal MIDI Performance Tag, aggiunto al simbolo della nota, altezza, dinamica, e i tempi assoluti di partenza e durata in MIDI Ticks

Correlazione uno a molti: Il formato NIFF Integrazione MIDI Setup section Data section Correlazione uno a molti: e’ l’esempio di un trillo , in cui un solo simbolo grafico viene “esploso” in diversi dettagli esecutivi,e rappresentato in NIFF da un MIDI Data Stream chunk, ancorato al simbolo grafico in questione.Contiene il numero di eventi, a partire da dove si inserisce

Correlazione molti a molti: Il formato NIFF Integrazione MIDI Setup section Data section Correlazione molti a molti: e’ l’esempio di un portamento , cioe’ una combinazione di simboli grafici che genera un traffico di segnali MIDI. In questo caso il MIDI Data Stream chunk,e’ un simbolo composto da piu’ nodi, dove ogni nodo corrisponde ad un simbolo notazionale.Nell’esempio, solo il primo nodo contiene la serie di messagi MIDI Pitch Bend

Il formato NIFF Integrazione MIDI Setup section Data section Nessuna correlazione La notazione non ha una interpretazione esecutiva (MIDI) univoca, o non esiste un equivalente nello standard MIDI. E’ l’esempio del simbolo grafico “espressivo” o dei valori MIDI di informazioni sul PANNING

Informazione rappresentabile in entrambi i formati Il formato NIFF Integrazione MIDI Setup section Data section Nessuna correlazione NIFF MIDI Informazione rappresentabile in entrambi i formati

Il formato NIFF Integrazione MIDI Setup section Data section In questo caso il MIDI Data Stream chunk contiene tutte le informazioni MIDI non rappresentabili simbolicamente e viene ancorato al Time Slice

______________________________________ Il formato NIFF Altre possibilita’ ______________________________________ TAB Intavolatura per chitarra Simboli per chitarra Nomi di spartiti e pentagrammi Numerazione delle battute e segni di richiamo Ritornelli e code Trombe{ 1 2 3. In la

Attivazione e disattivazione di un Tag Il formato NIFF Altre possibilita’ Attivazione e disattivazione di un Tag Esempio: Un passaggio con note di dimensione piu’ piccola: viene inserito il Tag Activate Chunk per il tag Small Size all’inizio della sequenza dei simboli “nota” all’interno del pentagramma, e il Tag Activate Chunk alla fine della medesima.

Attivazione e disattivazione di un Tag Il formato NIFF Altre possibilita’ Attivazione e disattivazione di un Tag Questa possibilita’ puo’ essere anche impiegata selettivamente, solo sui simboli relativi ad una voce o ad una parte Questo e’ possibile in quanto i simboli sono rappresentati tramite chunk, e al loro interno si puo’ scegliere quelli che abbiano un determinato Voice ID o Part ID

Simboli dipendenti e loro ancore Il formato NIFF Ancoraggio Simboli dipendenti e loro ancore In NIFF, un simbolo dal cui posizionamento dipenda quello di uno o piu’ simboli e’ chiamato ancora. Per ogni tipo di chunk che porta un simbolo e’ definito un chunk ancora.

Simboli dipendenti e loro ancore Il formato NIFF Ancoraggio Simboli dipendenti e loro ancore Il simbolo dipendente appare fisicamente nel file prima possibile dopo la sua ancora. Quando ci sono piu’ tipi di simboli dipendenti dalla stessa ancora essi compaiono in ordine di prossimita’ grafica, dal piu’ vicino al piu’ lontano

Simboli dipendenti e loro ancore Il formato NIFF Ancoraggio Simboli dipendenti e loro ancore Vediamo come esempio il caso della nota, che e’ un accordo degenere: il “gambo” della nota (stem)e’ l’ancora, e la testa della nota (notehead) e’ dipendente. Infatti dove viene posizionata l’asta della nota, c’e’ anche la testa.

Simboli dipendenti e loro ancore Il formato NIFF Ancoraggio Simboli dipendenti e loro ancore Qualora sia un accordo con seconde, il chunk dipendente (notehead) puo’ adattare il posizionamento del simbolo grazie al valore di “offset” che muove il posizionamento del carattere dal punto “caldo” (coordinata del carattere).

Il formato NIFF Fig. 2a Stem Notehead, staff step=3, duration=1/4 Fingering, shape=1 Notehead, staff step=7, duration=1/4 Ornament, shape=short trill Accidental, shape=sharp, Small Size, Anchor Override=Ornament, Logical Placement=above

Il formato NIFF Fig.2b Time-Slice, type=event,start time=0/4 Stem Notehead, staff step=5, duration=1/4 Articulation, shape=staccato Parenthesis, shape = "(", Anchor Override=Articulation,Logical Placement = left,   ID=1, Number of Nodes=2 [multi-node] Time-slice, type=event, start-time=1/4 Stem Notehead, staff step=5, duration=1/4 Articulation, shape=staccato Time-slice, type=event, start-time=2/4 Note, staff step=5, duration=1/4 Parenthesis, shape = ")", Anchor Override=Articulation,Logical Placement = right, ID=1

Il formato NIFF Fig.3 a sinistra Staff 1) Time-slice, type=event, start time=1/8 Stem Beam, ID=1, Number of Nodes=3,parts to left=1, parts to right=1 Notehead, staff step= 2, duration=1/8 Time-slice, type=event, start time=2/8 Stem Beam, ID=1, part to left=1, parts to right=0 Notehead, staff step=5, duration=1/8 (Staff 2) Time-slice, type=event, start-time=0/8 Beam, ID=1,parts to left=0, parts to right =1 NoteHead, Staff step = 6, duration = 1 / 8

Il formato NIFF Fig.3 a destra (Staff 1) Time-slice. type=event, start-time=0/8 Rest, duration=1/8 Time-slice. type=event, start-time=1/8 Rest, duration=1/8 Time-slice. type=event, start-time=2/8 Stem, ID=1, Number of nodes=2 Notehead, staff step=2, duration=1/4 Notehead, staff step=-1, duration=1/4 (staff 2) Time-slice. type=event, start-time=0/8 Stem Notehead, staff step=6, duration=1/8 Stem, ID=1 Notehead, staff step=7, duration=1/4

Il formato NIFF Disposizioni Disposizione di default l’unica informazione di impaginazione e’ la sintassi musicale Il programma utilizza i suoi defaults per l’impaginazione Disposizione Logica Fornisce le relazioni tra simboli dipendenti e le loro ancore Disposizione Assoluta Viene indicato per ogni simbolo esattamente dove questo debba essere posizionato

Criteri di scelta tra posizionamenti diversi Il formato NIFF Disposizioni Criteri di scelta tra posizionamenti diversi Sebbene la disposizione per misure assolute possa sembrare la piu’ precisa, ecco alcuni casi che mettono in crisi la sua fedelta’ con l’originale il programma che legge il file NIFF non ha a disposizione gli stessi font del programma che l’ha prodotto.

Criteri di scelta tra posizionamenti diversi Il formato NIFF Disposizioni Criteri di scelta tra posizionamenti diversi Sebbene la disposizione per misure assolute possa sembrare la piu’ precisa, ecco alcuni casi che mettono in crisi la sua fedelta’ con l’originale Se nel programma che legge il file NIFF non e’ implementato il concetto di layout di pagina, il posizionamento assoluto devono essere scartati, e quindi restano sempre validi solo i posizionamenti LOGICI

Criteri di scelta tra posizionamenti diversi Il formato NIFF Disposizioni Criteri di scelta tra posizionamenti diversi Sebbene la disposizione per misure assolute possa sembrare la piu’ precisa, ecco alcuni casi che mettono in crisi la sua fedelta’ con l’originale L’utente puo’ decidere di utilizzare per motivi di funzionalita’ ed efficacia ai suoi scopi le features del programma che utilizza per leggere il file NIFF, tralasciando le indicazioni associate dall’editore del file NIFF originale

Un esempio: Il Bolero di Ravel Il formato NIFF Un esempio: Il Bolero di Ravel <!DOCTYPE niff SYSTEM "intdtd.sgm"> <niff> <setup> <info>6b 1</info> <partsL> <part><id>p0<name>part0</part> <part><id>p1<name>part1</part> <part><id>p2<name>part2</part> <part><id>p3<name>part3</part> <part><id>p4<name>part4</part> <part><id>p5<name>part5</part> <part><id>p6<name>part6</part> <part><id>p7<name>part7</part> <part><id>p8<name>part8</part> <part><id>p9<name>part9</part> <part><id>p10<name>part10</part> <part><id>p11<name>part11</part> <part><id>p12<name>part12</part> <part><id>p13<name>part13</part> <part><id>p14<name>part14</part> <part><id>p15<name>part15</part> </partsL> </setup>

Un esempio: Il Bolero di Ravel Il formato NIFF Un esempio: Il Bolero di Ravel <data> <pageL> <systemL> <staffL> <stafhedC></stafhedC> <ts><tstype>2</tstype><top>0<bottom>4</ts> <clef><type>treble<octave>0</octave></clef> <timesig><top>4</top><bottom>4</bottom></timesig> <rest><duration><top>4<bottom>4<tag><partid>p0</partid></rest> <ts><tstype>2</tstype><top>4<bottom>4</ts> <ts><tstype>1</tstype><top>4<bottom>4</ts> <ts><tstype>1</tstype><top>8<bottom>4</ts> <ts><tstype>1</tstype><top>12<bottom>4</ts> <rest><duration><top>3<bottom>4<tag><partid>p0</partid></rest> <ts><tstype>2</tstype><top>3<bottom>4</ts> <stem></stem> <notehead><stafstep>5<duration><top>1<bottom>4 <tag><partid>p0</partid></notehead> </tie> <ts><tstype>1</tstype><top>16<bottom>4</ts>

Un esempio: Il Bolero di Ravel Il formato NIFF Un esempio: Il Bolero di Ravel <notehead><stafstep>5<duration><top>1<bottom>8<tag><partid>p0</partid></notehead> </tie> <ts><tstype>2</tstype><top>1<bottom>8</ts> <stem></stem> <notehead><stafstep>4<duration><top>1<bottom>16<tag><partid>p0</partid></notehead> <ts><tstype>2</tstype><top>3<bottom>16</ts> <notehead><stafstep>5<duration><top>1<bottom>16<tag><partid>p0</partid></notehead> <ts><tstype>2</tstype><top>1<bottom>4</ts> <notehead><stafstep>6<duration><top>1<bottom>16<tag><partid>p0</partid></notehead> <ts><tstype>2</tstype><top>5<bottom>16</ts> <ts><tstype>2</tstype><top>3<bottom>8</ts> <notehead><stafstep>1<duration><top>1<bottom>16<tag><partid>p0</partid></notehead> <ts><tstype>2</tstype><top>7<bottom>16</ts> <stem></stem> <notehead><stafstep>3<duration><top>1<bottom>16 <tag><partid>p0</partid></notehead> <ts><tstype>2</tstype><top>2<bottom>4</ts> <ts><tstype>2</tstype><top>5<bottom>8</ts>

Un esempio: Il Bolero di Ravel Il formato NIFF Un esempio: Il Bolero di Ravel <notehead><stafstep>5 <duration><top>1<bottom>16<tag><partid>p0</partid></notehead> <ts><tstype>2</tstype><top>11<bottom>16</ts> <stem></stem> <notehead><stafstep>3 <duration><top>1<bottom>16<tag><partid>p0</partid></notehead> <ts><tstype>2</tstype><top>3<bottom>4</ts> <notehead><stafstep>5 <duration><top>1<bottom>4<tag><partid>p0</partid></notehead> </tie> <ts><tstype>2</tstype><top>4<bottom>4</ts> <ts><tstype>1</tstype><top>20<bottom>4</ts> </staffL> <staffL> <stafhedC></stafhedC> <ts><tstype>2</tstype><top>0<bottom>4</ts> <clef><type>treble<octave>0</octave></clef> <timesig><top>4</top><bottom>4</bottom></timesig> <rest> <duration><top>4<bottom>4<tag><partid>p1</partid></rest> <ts><tstype>1</tstype><top>4<bottom>4</ts> <rest><duration><top>4<bottom>4<tag><partid>p1</partid></rest> <ts><tstype>1</tstype><top>8<bottom>4</ts> <ts><tstype>1</tstype><top>12<bottom>4</ts>

Un esempio: Il Bolero di Ravel Il formato NIFF Un esempio: Il Bolero di Ravel <rest><duration><top>4<bottom>4<tag><partid>p1</partid></rest> <ts><tstype>2</tstype><top>4<bottom>4</ts> <ts><tstype>1</tstype><top>16<bottom>4</ts> <ts><tstype>1</tstype><top>20<bottom>4</ts> </staffL> <rest><duration><top>4<bottom>4<tag><partid>p15</partid></rest> </systemL> </pageL> <pageL> <systemL> <staffL> <stafhedC></stafhedC> <ts><tstype>2</tstype><top>0<bottom>4</ts> <clef><type>treble<octave>0</octave></clef> <stem></stem> <notehead><stafstep>5<duration><top>1<bottom>8<tag><partid>p0</partid></notehead> </tie> <ts><tstype>2</tstype><top>1<bottom>8</ts> <notehead><stafstep>4<duration><top>1<bottom>16<tag><partid>p0</partid></notehead> <ts><tstype>2</tstype><top>3<bottom>16</ts>

Un esempio: Il Bolero di Ravel Il formato NIFF Un esempio: Il Bolero di Ravel <notehead><stafstep>5<duration><top>1<bottom>16<tag><partid>p0</partid></notehead> <ts><tstype>2</tstype><top>1<bottom>4</ts> <stem></stem> <notehead><stafstep>3<duration><top>1<bottom>16<tag><partid>p0</partid></notehead> <ts><tstype>2</tstype><top>5<bottom>16</ts> <notehead><stafstep>2<duration><top>1<bottom>16<tag><partid>p0</partid></notehead> <ts><tstype>2</tstype><top>3<bottom>8</ts> <notehead><stafstep>0<duration><top>1<bottom>16<tag><partid>p0</partid></notehead> <ts><tstype>2</tstype><top>7<bottom>16</ts> <notehead><stafstep>1<duration><top>1<bottom>16<tag><partid>p0</partid></notehead> <ts><tstype>2</tstype><top>2<bottom>4</ts> <notehead><stafstep>2<duration><top>1<bottom>2<tag><partid>p0</partid></notehead> </tie> <ts><tstype>2</tstype><top>4<bottom>4</ts> <ts><tstype>1</tstype><top>24<bottom>4</ts> <ts><tstype>2</tstype><top>1<bottom>16</ts> <ts><tstype>2</tstype><top>1<bottom>8</ts>

Un esempio: Il Bolero di Ravel Il formato NIFF Un esempio: Il Bolero di Ravel <notehead><stafstep>0<duration><top>1<bottom>16<tag><partid>p0</partid></notehead> <ts><tstype>2</tstype><top>3<bottom>16</ts> <stem></stem> <notehead><stafstep>-1<duration><top>1<bottom>16<tag><partid>p0</partid></notehead> <ts><tstype>2</tstype><top>1<bottom>4</ts> <ts><tstype>2</tstype><top>5<bottom>16</ts> <notehead><stafstep>1<duration><top>1<bottom>16<tag><partid>p0</partid></notehead> <ts><tstype>2</tstype><top>3<bottom>8</ts> <notehead><stafstep>2<duration><top>1<bottom>16<tag><partid>p0</partid></notehead> <ts><tstype>2</tstype><top>7<bottom>16</ts> <notehead><stafstep>3<duration><top>1<bottom>16<tag><partid>p0</partid></notehead> <ts><tstype>2</tstype><top>2<bottom>4</ts> <notehead><stafstep>2<duration><top>1<bottom>2<tag><partid>p0</partid></notehead> </tie> <ts><tstype>2</tstype><top>4<bottom>4</ts> <ts><tstype>1</tstype><top>28<bottom>4</ts> </staffL>

Un esempio: Il Bolero di Ravel Il formato NIFF Un esempio: Il Bolero di Ravel <pageL> <systemL> <staffL> <stafhedC></stafhedC> <ts><tstype>2</tstype><top>0<bottom>4</ts> <clef><type>treble<octave>0</octave></clef> <stem></stem> <notehead><stafstep>2<duration><top>1<bottom>16<tag><partid>p0</partid></notehead> </tie> <ts><tstype>2</tstype><top>1<bottom>16</ts> <notehead><stafstep>3<duration><top>1<bottom>16<tag><partid>p0</partid></notehead> <ts><tstype>2</tstype><top>1<bottom>8</ts> <notehead><stafstep>4<duration><top>1<bottom>16<tag><partid>p0</partid></notehead> <ts><tstype>2</tstype><top>3<bottom>16</ts> <ts><tstype>2</tstype><top>1<bottom>4</ts> <ts><tstype>2</tstype><top>5<bottom>16</ts> <notehead><stafstep>1<duration><top>1<bottom>16<tag><partid>p0</partid></notehead> <ts><tstype>2</tstype><top>3<bottom>8</ts> <notehead><stafstep>0<duration><top>1<bottom>16<tag><partid>p0</partid></notehead> <ts><tstype>2</tstype><top>7<bottom>16</ts>

Un esempio: Il Bolero di Ravel Il formato NIFF Un esempio: Il Bolero di Ravel <notehead><stafstep>-1<duration><top>1<bottom>16<tag><partid>p0</partid></notehead> <ts><tstype>2</tstype><top>2<bottom>4</ts> <stem></stem> <notehead><stafstep>0<duration><top>1<bottom>16<tag><partid>p0</partid></notehead> <ts><tstype>2</tstype><top>9<bottom>16</ts> <ts><tstype>2</tstype><top>5<bottom>8</ts> <notehead><stafstep>-2<duration><top>1<bottom>4<tag><partid>p0</partid></notehead> <ts><tstype>2</tstype><top>7<bottom>8</ts> <notehead><stafstep>-2<duration><top>1<bottom>16<tag><partid>p0</partid></notehead> <ts><tstype>2</tstype><top>15<bottom>16</ts> <ts><tstype>2</tstype><top>4<bottom>4</ts> <ts><tstype>1</tstype><top>32<bottom>4</ts> <notehead><stafstep>0<duration><top>1<bottom>8<tag><partid>p0</partid></notehead> <ts><tstype>2</tstype><top>1<bottom>8</ts> <notehead><stafstep>1<duration><top>1<bottom>8<tag><partid>p0</partid></notehead> <ts><tstype>2</tstype><top>1<bottom>4</ts> <notehead><stafstep>-1<duration><top>1<bottom>8<tag><partid>p0</partid></notehead>

Un esempio: Il Bolero di Ravel Il formato NIFF Un esempio: Il Bolero di Ravel <notehead><stafstep>2<duration><top>1<bottom>2<tag><partid>p0</partid></notehead> </tie> <ts><tstype>2</tstype><top>4<bottom>4</ts> <ts><tstype>1</tstype><top>36<bottom>4</ts> </staffL> <staffL> <stafhedC></stafhedC> <ts><tstype>2</tstype><top>0<bottom>4</ts> <clef><type>treble<octave>0</octave></clef> <rest><duration><top>4<bottom>4<tag><partid>p1</partid></rest> <ts><tstype>1</tstype><top>32<bottom>4</ts>

Riferimenti Il formato NIFF Definizione: http://niffty.sourceforge.net/NIFF6b/NIFF6b.html Tesi interne: Tonino Mendicino Prototipo software per il trattamento integrato di codici MIDI e NIFF-Modelli formali di strutture musicali Stefano Guagnini (Capitolo 2) Metodi e strumenti per la segmentazione automatica di partiture musicali rappresentate in NIFF