850 likes | 1.02k Views
Il formato NIFF. Massimiliano Pancini LIM-Laboratorio di Informatica Musicale. Il formato NIFF. Cos’e’ il NIFF ?. Il formato NIFF. N.I.F.F. (Notation Interchange File Format). MIDI Files: Descrizione simbolica dell’informazione musicale rivolta all’esecuzione. Il formato NIFF.
E N D
Il formatoNIFF Massimiliano Pancini LIM-Laboratorio di Informatica Musicale
Il formatoNIFF Cos’e’ il NIFF ?
Il formatoNIFF N.I.F.F. (Notation Interchange File Format) MIDI Files:Descrizione simbolica dell’informazione musicale rivolta all’esecuzione
Il formatoNIFF POVERO DI INFORMAZIONI: GRAFICHE E MUSICOLOGICHE MIDI Files: Descrizione simbolica dell’informazione musicale rivolta all’esecuzione
Il formatoNIFF Obiettivi: 1) Completezza notazionale (editoria, acquisizione da scanner) 2) Equivalenza con il MIDI (informazione relativa all’esecuzione) 3) Espandibilita’, Flessibilita’ e Compattezza
Segue le regole dettate dalla specifica per il formato RIFF Microsoft (Resource Interchange File Format) Il formatoNIFF Elementi principali: Form “contenitore” List e Chunk Lunghezza variabile Tag Parti opzionali
Segue le regole dettate dalla specifica per il formato RIFF Microsoft (Resource Interchange File Format) Il formatoNIFF 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)
Form RIFF/ RIFX Dimensione dati in Form Tipo di file (NIFF) DATI(list & Chunk) Segue le regole dettate dalla specifica per il formato RIFF Microsoft (Resource Interchange File Format) Il formatoNIFF Chunk LIST … … … LIST… … … Chunk Chunk ……… Chunk
Segue le regole dettate dalla specifica per il formato RIFF Microsoft (Resource Interchange File Format) Il formatoNIFF 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
Nome del chunk 1 POINTER 1 Nome del chunk 3 POINTER 3 Nome del chunk 4 POINTER 4 Nome del chunk 5 POINTER 5 Segue le regole dettate dalla specifica per il formato RIFF Microsoft (Resource Interchange File Format) Il formatoNIFF Form Chunk Length Table Nome del chunk 2 POINTER 2
Segue le regole dettate dalla specifica per il formato RIFF Microsoft (Resource Interchange File Format) Il formatoNIFF Form Chunk Length Table Nome del chunk 2 POINTER CHUNK 1 CHUNK 2 Tag1 Tag2 Tag3 Tag4 …
Segue le regole dettate dalla specifica per il formato RIFF Microsoft (Resource Interchange File Format) Il formatoNIFF 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
Segue le regole dettate dalla specifica per il formato RIFF Microsoft (Resource Interchange File Format) Il formatoNIFF 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
Form DATI(list & Chunk) Segue le regole dettate dalla specifica per il formato RIFF Microsoft (Resource Interchange File Format) Il formatoNIFF List = struttura, contenitore “LIST” LIST… … … Dimensione dati Chunk Tipo dati DATI
Form DATI(list & Chunk) Segue le regole dettate dalla specifica per il formato RIFF Microsoft (Resource Interchange File Format) Il formatoNIFF Chunk =informazione codificata LIST… … … Tipo di Chunk Dimensione dati Chunk DATI
Il formatoNIFF Il TAG =parte opzionale del chunk Tag Tipo di Chunk Tag Dimensione dati Chunk Chunk Tag DATI …
Il formatoNIFF Il TAG =parte opzionale del chunk Tag
Il formatoNIFF Il TAG =parte opzionale del chunk Tag Tipo di Tag Dimensione dati DATI
? Il formatoNIFF 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 formatoNIFF 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 formatoNIFF 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
? Il formatoNIFF 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
Il formatoNIFF Lo spartito… Score E’ presente in ogni file niff, Contiene tutte le informazioni di partitura
Il formatoNIFF Lo spartito… Score Part E’ un flusso di eventi musicali. Il vero e proprio “spartito”, relativo ad uno o ad un gruppo di strumenti suonati dallo stesso strumentista
Il formatoNIFF Lo spartito… Score Part Voice E’ un flusso di eventi musicali ritmicamente indipendenti all’interno di una parte
Il formatoNIFF Lo spartito… Score Part System Voice E’ la struttura della pagina dello spartitoSimboli che rappresentano eventi simultaneisono allineati verticalmente
Il formatoNIFF Lo spartito… Score Part Staff Voice System Rappresenta il singolo pentagramma, su cui vengono visualizzati i simboli musicali
Il formatoNIFF Lo spartito… Score 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 formatoNIFF Lo spartito… Score Part Voice System Staff Time-Slice
Il formatoNIFF La struttura 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.)
system system system (accollatura) Pentagramma Pentagramma …. simboli simboli … simboli simboli simboli (note, pause, indicazioni temporali) Il formatoNIFF La struttura Setup section Data section • Informazione musicale • Contiene la vera e propria • informazione musicale sotto tutti gli aspetti: • Notazionale • Esecutivo • Grafico… Pagina
system system system (accollatura) Pentagramma Pentagramma …. simboli simboli … simboli simboli simboli (note, pause, indicazioni temporali) Il formatoNIFF La struttura SonoListe: Composte da un header chunk e, di seguito, i chunk relativi ai vari simboli Pagina
system system system (accollatura) simboli simboli … simboli simboli simboli (note, pause, indicazioni temporali) Il formatoNIFF La struttura Una LISTA-pentagramma puo’ conteneresimboli musicali appartenenti a piu’ di una PART Pagina Pentagramma Pentagramma ….
Il formatoNIFF La struttura 1 Part per pentagramma Pentagramma (Staff Header Chunk) PART ID = numero della part chunk chunk chunk chunk chunk … simboli
Il formatoNIFF La struttura Part diversi su un pentagramma Pentagramma (Staff Header Chunk) xxxx chunk chunk chunk chunk chunk … …… … PartID = m …… … PartID = p …… … PartID = m …… … PartID = ..
Il formatoNIFF La struttura Dentro al pentagramma Pentagramma (Staff Header Chunk) chunk chunk chunk chunk chunk … Time slice Ch. …… … nota …… … … … … Time slice Ch. …… …
Unita’ di misura e sistema di coordinate Il formatoNIFF 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 formatoNIFF 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 formatoNIFF 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 formatoNIFF La pagina Altezza Unita’ assolute 0 + Larghezza Lo 0 cartesiano e’ nell’angolo in alto a sinistra +
Unita’ di misura e sistema di coordinate Il formatoNIFF 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 formatoNIFF 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)
Rappresentazione temporale Il formatoNIFF 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.
Rappresentazione temporale Il formatoNIFF 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
Rappresentazione temporale Il formatoNIFF 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
Rappresentazione temporale Il formatoNIFF 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.
Rappresentazione temporale Il formatoNIFF 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
Rappresentazione temporale Il formatoNIFF 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
I FONT CUSTOM Il formatoNIFF 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
I FONT CUSTOM Il formatoNIFF 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