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)
Il formato
NIFF
MIDI Files:
Descrizione simbolica
dell’informazione musicale
rivolta all’esecuzione
POVERO DI INFORMAZIONI:
GRAFICHE E MUSICOLOGICHE
Il formato
NIFF
Obiettivi:
1) Completezza notazionale
(editoria, acquisizione da scanner)
2) Equivalenza con il MIDI
(informazione relativa all’esecuzione)
3) Espandibilita’, Flessibilita’ e Compattezza
Il formato
NIFF
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
Segue le regole dettate dalla specifica
per il formato RIFF Microsoft
(Resource Interchange File Format)
“contenitore principale”
All’inizio del file,
contiene tutti gli altri list e chunk
RIFF/ Dimensione Tipo di file DATI
RIFX dati in Form (NIFF)
(list & Chunk)
Il formato
NIFF
Segue le regole dettate dalla specifica
per il formato RIFF Microsoft
(Resource Interchange File Format)
Form
RIFF/ Dimensione Tipo di file DATI
RIFX dati in Form (NIFF)
(list & Chunk)
Chunk
Chunk
Chunk
………
LIST
…
…
…
Chunk
LIST
…
…
…
Il formato
NIFF
Segue le regole dettate dalla specifica
per il formato RIFF Microsoft
(Resource Interchange File Format)
Form
RIFF/ Dimensione Tipo di file DATI
RIFX dati in Form (NIFF)
(list & Chunk)
Nome del chunk(4 byte ) POINTER
Chunk Length Table
(4 byte )
Il formato
NIFF
Form
Segue le regole dettate dalla specifica
per il formato RIFF Microsoft
(Resource Interchange File Format)
Chunk Length Table
Nome del chunk 1
POINTER 1
Nome del chunk 2
POINTER 2
Nome del chunk 3
POINTER 3
Nome del chunk 4
POINTER 4
Nome del chunk 5
POINTER 5
Il formato
NIFF
Form
Segue le regole dettate dalla specifica
per il formato RIFF Microsoft
(Resource Interchange File Format)
Chunk Length Table
Nome del chunk 2
CHUNK 1
CHUNK 2
POINTER
Tag1 Tag2 Tag3 Tag4 …
Il formato
NIFF
Segue le regole dettate dalla specifica
per il formato RIFF Microsoft
(Resource Interchange File Format)
Form
RIFF/ Dimensione Tipo di file DATI
RIFX dati in Form (NIFF)
(list & Chunk)
nome del chunk (4 byte ) POINTER
Part Part
Part
Max. num. di
ID Name Abbreviation Pentagrammi
(4 byte )
MIDI Ch. &
Cable number
Part Description Chunk
Trans
pose
Il formato
NIFF
Segue le regole dettate dalla specifica
per il formato RIFF Microsoft
(Resource Interchange File Format)
Form
Part Part
Part
Max. num. di
ID Name Abbreviation Pentagrammi
MIDI Ch. &
Cable number
Trans
pose
Part Part
Part
Max. num. di
ID Name Abbreviation Pentagrammi
MIDI Ch. &
Cable number
Trans
pose
Part Part
Part
Max. num. di
ID Name Abbreviation Pentagrammi
MIDI Ch. &
Cable number
Trans
pose
Part List
Il formato
NIFF
Segue le regole dettate dalla specifica
per il formato RIFF Microsoft
(Resource Interchange File Format)
Form
List = struttura, contenitore
Chunk
“LIST”
Dimensione dati
Tipo dati
DATI
DATI
(list & Chunk)
LIST
…
…
…
Il formato
NIFF
Segue le regole dettate dalla specifica
per il formato RIFF Microsoft
(Resource Interchange File Format)
Form
DATI
Chunk =informazione codificata (list & Chunk)
Chunk
Tipo di Chunk
Dimensione dati
DATI
LIST
…
…
…
Il formato
NIFF
Il TAG =parte opzionale del chunk
Chunk
Tipo di Chunk
Dimensione dati
DATI
Tag
Tag
Tag
…
Il formato
NIFF
Il TAG =parte opzionale del chunk
Tag
Il formato
NIFF
Il TAG =parte opzionale del chunk
Tipo di Tag
Dimensione dati
DATI
Tag
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
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
Il formato
NIFF
Lo spartito…
Score
E’ presente in ogni file niff,
Contiene tutte le informazioni di partitura
Il formato
Lo spartito…
NIFF
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 formato
NIFF
Score
Part
Lo spartito…
Voice
E’ un flusso di eventi musicali ritmicamente
indipendenti all’interno di una parte
Il formato
NIFF
Score
Part
Voice
Lo spartito…
System
E’ la struttura della pagina dello spartito
Simboli che rappresentano eventi simultanei
sono allineati verticalmente
Il formato
NIFF
Score
Part
Voice
System
Lo spartito…
Staff
Rappresenta il singolo pentagramma, su cui
vengono visualizzati i simboli musicali
Il formato
NIFF
Lo spartito…
Score E’ il meccanismo per temporizzare
gli
eventi
all’interno
della
partitura
Part
Voice
Inizio Misura:
System tempo dall’inizio dello spartito
Staff
Inizio Evento:
Time-slice
tempo dall’inizio della misura
Il formato
NIFF
Score
Part
Voice
System
Staff
Time-Slice
Lo spartito…
Il formato
NIFF
Setup section
La struttura
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.)
Il formato
NIFF
Setup section
La struttura
Data section
Informazione musicale
Pagina
Contiene la vera e propria
system
informazione musicale
sotto tutti gli aspetti:
Pentagramma
•Notazionale
•Esecutivo
simboli simboli simboli
•Grafico…
system
system
(accollatura)
Pentagramma
simboli
simboli
(note, pause, indicazioni temporali)
….
…
Il formato
NIFF
La struttura
Sono Liste:
Composte da un
header chunk e,
di seguito, i chunk
relativi ai vari
simboli
Pagina
system
system
(accollatura)
Pentagramma
simboli
system
simboli
simboli
Pentagramma
simboli
simboli
(note, pause, indicazioni temporali)
….
…
Il formato
NIFF
La struttura
Una LISTA-pentagramma
puo’ contenere
simboli musicali appartenenti
a piu’ di una PART
Pagina
system
system
system
(accollatura)
Pentagramma
simboli
simboli
simboli
Pentagramma
simboli
simboli
(note, pause, indicazioni temporali)
….
…
Il formato
NIFF
La struttura
1 Part per pentagramma
Pentagramma (Staff Header Chunk)
PART ID = numero della part
chunk
simboli
chunk
chunk
chunk
chunk
…
Il formato
NIFF
La struttura
Pentagramma (Staff Header Chunk)
Part diversi su un
pentagramma
xxxx
chunk
chunk
……
…
PartID = m
chunk
……
…
PartID = p
chunk
……
…
PartID = m
chunk
…
……
…
PartID = ..
Il formato
NIFF
La struttura
Dentro al
pentagramma
Pentagramma (Staff Header Chunk)
chunk
chunk
Time slice Ch.
……
…
nota
……
…
chunk
chunk
…
…
…
chunk
…
Time slice Ch.
……
…
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
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
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
Il formato
NIFF
Unita’ di misura e
sistema di coordinate
La pagina
Altezza
Unita’ assolute
0
+
Larghezza
Lo 0 cartesiano e’
nell’angolo in alto a sinistra
+
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”
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
Start time
Rappresentazione
temporale
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
Start time
Rappresentazione
temporale
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
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.
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
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
I FONT CUSTOM
NIFF
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)
E’ un puntatore ad un font Post Script,
nella Custom Graphic List
Posizione nel file
(Se presente)
Il formato
I FONT CUSTOM
NIFF
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
Il formato
Integrazione MIDI
NIFF
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
Integrazione MIDI
NIFF
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
Integrazione MIDI
NIFF
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
Il formato
Integrazione MIDI
NIFF
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
Il formato
Integrazione MIDI
NIFF
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
Il formato
Integrazione MIDI
NIFF
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
Integrazione MIDI
NIFF
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
Il formato
Integrazione MIDI
NIFF
Setup section
Data section
Nessuna correlazione
NIFF
MIDI
Informazione rappresentabile
in entrambi i formati
Il formato
Integrazione MIDI
NIFF
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
Altre possibilita’
NIFF
______________________________________
1.
2.
3.
4.
5.
T______________________________________
______________________________________
A______________________________________
______________________________________
B______________________________________
Intavolatura per chitarra
Simboli per chitarra
Trombe{
Nomi di spartiti e pentagrammi
Numerazione delle battute e segni di richiamo
Ritornelli e code
1
2
3. In la
Il formato
Altre possibilita’
NIFF
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.
Il formato
Altre possibilita’
NIFF
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
Il formato
Ancoraggio
NIFF
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.
Il formato
Ancoraggio
NIFF
Simboli dipendenti e loro ancore
1. Il simbolo dipendente appare fisicamente nel
file prima possibile dopo la sua ancora.
2. Quando ci sono piu’ tipi di simboli dipendenti
dalla stessa ancora essi compaiono in ordine di
prossimita’ grafica, dal piu’ vicino al piu’
lontano
Il formato
Ancoraggio
NIFF
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.
Il formato
Ancoraggio
NIFF
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
Fig.2b
NIFF
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
Stem
Note, staff step=5, duration=1/4
Articulation, shape=staccato
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
Stem
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
Time-slice. type=event, start-time=1/8
Stem
Notehead, staff step=6, duration=1/8
Time-slice. type=event, start-time=2/8
Stem, ID=1
Notehead, staff step=7, duration=1/4
Il formato
Disposizioni
NIFF
•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
Il formato
Disposizioni
NIFF
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.
Il formato
Disposizioni
NIFF
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
Il formato
Disposizioni
NIFF
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
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>
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>
<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>8<bottom>4</ts>
<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>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>2</tstype><top>4<bottom>4</ts>
<ts><tstype>1</tstype><top>16<bottom>4</ts>
<stem></stem>
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>
<stem></stem>
<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>6<duration><top>1<bottom>16<tag><partid>p0</partid></notehead>
<ts><tstype>2</tstype><top>5<bottom>16</ts>
<stem></stem>
<notehead><stafstep>5<duration><top>1<bottom>16<tag><partid>p0</partid></notehead>
<ts><tstype>2</tstype><top>3<bottom>8</ts>
<stem></stem>
<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>
<stem></stem>
<notehead><stafstep>5<duration><top>1<bottom>8<tag><partid>p0</partid></notehead>
<ts><tstype>2</tstype><top>5<bottom>8</ts>
<stem></stem>
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>
<stem></stem>
<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>2</tstype><top>4<bottom>4</ts>
<ts><tstype>1</tstype><top>4<bottom>4</ts>
<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>8<bottom>4</ts>
<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>12<bottom>4</ts>
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>
<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>20<bottom>4</ts>
</staffL>
<rest><duration><top>4<bottom>4<tag><partid>p15</partid></rest>
<ts><tstype>2</tstype><top>4<bottom>4</ts>
<ts><tstype>1</tstype><top>20<bottom>4</ts>
</staffL>
</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>
<stem></stem>
<notehead><stafstep>4<duration><top>1<bottom>16<tag><partid>p0</partid></notehead>
<ts><tstype>2</tstype><top>3<bottom>16</ts>
<stem></stem>
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>
<stem></stem>
<notehead><stafstep>2<duration><top>1<bottom>16<tag><partid>p0</partid></notehead>
<ts><tstype>2</tstype><top>3<bottom>8</ts>
<stem></stem>
<notehead><stafstep>0<duration><top>1<bottom>16<tag><partid>p0</partid></notehead>
<ts><tstype>2</tstype><top>7<bottom>16</ts>
<stem></stem>
<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>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>
<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>
<stem></stem>
<notehead><stafstep>1<duration><top>1<bottom>16<tag><partid>p0</partid></notehead>
<ts><tstype>2</tstype><top>1<bottom>8</ts>
<stem></stem>
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>
<stem></stem>
<notehead><stafstep>0<duration><top>1<bottom>16<tag><partid>p0</partid></notehead>
<ts><tstype>2</tstype><top>5<bottom>16</ts>
<stem></stem>
<notehead><stafstep>1<duration><top>1<bottom>16<tag><partid>p0</partid></notehead>
<ts><tstype>2</tstype><top>3<bottom>8</ts>
<stem></stem>
<notehead><stafstep>2<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>
<stem></stem>
<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>
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>
<stem></stem>
<notehead><stafstep>3<duration><top>1<bottom>16<tag><partid>p0</partid></notehead>
<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>
<stem></stem>
<notehead><stafstep>3<duration><top>1<bottom>16<tag><partid>p0</partid></notehead>
<ts><tstype>2</tstype><top>1<bottom>4</ts>
<stem></stem>
<notehead><stafstep>2<duration><top>1<bottom>16<tag><partid>p0</partid></notehead>
<ts><tstype>2</tstype><top>5<bottom>16</ts>
<stem></stem>
<notehead><stafstep>1<duration><top>1<bottom>16<tag><partid>p0</partid></notehead>
<ts><tstype>2</tstype><top>3<bottom>8</ts>
<stem></stem>
<notehead><stafstep>0<duration><top>1<bottom>16<tag><partid>p0</partid></notehead>
<ts><tstype>2</tstype><top>7<bottom>16</ts>
<stem></stem>
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>
<stem></stem>
<notehead><stafstep>-1<duration><top>1<bottom>16<tag><partid>p0</partid></notehead>
<ts><tstype>2</tstype><top>5<bottom>8</ts>
<stem></stem>
<notehead><stafstep>-2<duration><top>1<bottom>4<tag><partid>p0</partid></notehead>
<ts><tstype>2</tstype><top>7<bottom>8</ts>
<stem></stem>
<notehead><stafstep>-2<duration><top>1<bottom>16<tag><partid>p0</partid></notehead>
<ts><tstype>2</tstype><top>15<bottom>16</ts>
<stem></stem>
<notehead><stafstep>-1<duration><top>1<bottom>16<tag><partid>p0</partid></notehead>
<ts><tstype>2</tstype><top>4<bottom>4</ts>
<ts><tstype>1</tstype><top>32<bottom>4</ts>
<stem></stem>
<notehead><stafstep>0<duration><top>1<bottom>8<tag><partid>p0</partid></notehead>
<ts><tstype>2</tstype><top>1<bottom>8</ts>
<stem></stem>
<notehead><stafstep>1<duration><top>1<bottom>8<tag><partid>p0</partid></notehead>
<ts><tstype>2</tstype><top>1<bottom>4</ts>
<stem></stem>
<notehead><stafstep>-1<duration><top>1<bottom>8<tag><partid>p0</partid></notehead>
<ts><tstype>2</tstype><top>2<bottom>4</ts>
<stem></stem>
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>2</tstype><top>4<bottom>4</ts>
<ts><tstype>1</tstype><top>32<bottom>4</ts>
<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>36<bottom>4</ts>
</staffL>
Il formato
NIFF
Riferimenti
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
Scarica

niff - LIM | Laboratorio di Informatica Musicale