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

Post on 02-May-2015

228 views 0 download

Transcript of NIFF Il formato NIFF Massimiliano Pancini LIM-Laboratorio di Informatica Musicale.

Il formato

NIFFNIFFMassimiliano Pancini

LIM-Laboratorio di Informatica Musicale

Il formato

NIFFNIFF

Cos’e’ il NIFF ?

Il formato

NIFFNIFF

N.I.F.F. (Notation Interchange File Format)

MIDI Files:Descrizione simbolica dell’informazione musicale rivolta all’esecuzione

Il formato

NIFFNIFFMIDI Files:

Descrizione simbolica dell’informazione musicale rivolta all’esecuzione

POVERO DI INFORMAZIONI:GRAFICHE E MUSICOLOGICHE

Il formato

NIFFNIFF Obiettivi:

1) Completezza notazionale

(editoria, acquisizione da scanner)

2) Equivalenza con il MIDI (informazione relativa all’esecuzione)

3) Espandibilita’, Flessibilita’ e Compattezza

Il formato

NIFFNIFFSegue le regole dettate dalla specifica

per il formato RIFF Microsoft

(Resource Interchange File Format)

List e Chunk Lunghezza variabile

Elementi principali:

Form

Tag

“contenitore”

Parti opzionali

Il formato

NIFFNIFFSegue 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

NIFFNIFFSegue 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

LIST………

LIST………

Chunk

Chunk

………Chunk

Chunk

Il formato

NIFFNIFFSegue 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

POINTER (4 byte )Nome del chunk(4 byte )

Chunk Length Table

Il formato

NIFFNIFFSegue le regole dettate dalla specifica

per il formato RIFF Microsoft

(Resource Interchange File Format)Form

POINTER 4Nome del chunk 4

POINTER 1Nome del chunk 1

POINTER 5Nome del chunk 5

POINTER 2Nome del chunk 2

POINTER 3Nome del chunk 3

Chunk Length Table

Il formato

NIFFNIFFSegue le regole dettate dalla specifica

per il formato RIFF Microsoft

(Resource Interchange File Format)Form

POINTERNome del chunk 2

Chunk Length Table

CHUNK 2 Tag1 Tag2 Tag3 Tag4 …

CHUNK 1

Il formato

NIFFNIFFSegue 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

POINTER (4 byte )nome del chunk (4 byte )

Part ID

Part Name

Part Abbreviation

Max. num. di Pentagrammi

Part Description Chunk

MIDI Ch. &Cable number

Transpose

Il formato

NIFFNIFFSegue 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

Part List

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

Il formato

NIFFNIFFSegue le regole dettate dalla specifica

per il formato RIFF Microsoft

(Resource Interchange File Format)

LIST………

Chunk

DATI(list & Chunk)

Form

List = struttura, contenitore

“LIST”

Dimensione dati

Tipo dati

DATI

Il formato

NIFFNIFFSegue le regole dettate dalla specifica

per il formato RIFF Microsoft

(Resource Interchange File Format)

LIST………

Chunk

DATI(list & Chunk)

Form

Chunk

Tipo di Chunk

Dimensione dati

DATI

=informazione codificata

Il formato

NIFFNIFF

Chunk

Il TAG

Tipo di Chunk

Dimensione dati

DATI

=parte opzionale del chunk

TagChunk

Tag

Tag

Il formato

NIFFNIFF

Tag

Il TAG=parte opzionale del chunk

Il formato

NIFFNIFF

Tag

Il TAG

Tipo di Tag

Dimensione dati

DATI

=parte opzionale del chunk

Il formato

NIFFNIFF

Nei tipi di dati dove e’ definita la parte variabile troviamo sempre indicata la dimensione dell’area riservata ai dati

??Un “ perché ” importante

Questo permette al linguaggio di soddisfare il requisito di flessibilita’

Il formato

NIFFNIFF

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 Questo implica la possibilita’ di definire nuovi tipi di dati da aggiungere al formato, salaguardando la di dati da aggiungere al formato, salaguardando la compatibilita’ delle versioni precedenti.compatibilita’ delle versioni precedenti.

Il formato

NIFFNIFF

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

NIFFNIFF

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

NIFFNIFF Lo spartito…

E’ presente in ogni file niff,Contiene tutte le informazioni di partitura

Score

Il formato

NIFFNIFF Lo spartito…

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

Part

Il formato

NIFFNIFF Lo spartito…

ScorePart

E’ un flusso di eventi musicali ritmicamente indipendenti all’interno di una parte

Voice

Il formato

NIFFNIFF Lo spartito…

Score

Voice

Part

E’ la struttura della pagina dello spartitoSimboli che rappresentano eventi simultaneisono allineati verticalmente

System

Il formato

NIFFNIFF Lo spartito…

Score

Voice

Part

System

Rappresenta il singolo pentagramma, su cui vengono visualizzati i simboli musicali

Staff

Il formato

NIFFNIFF Lo spartito…

Score

Voice

Part

System

Staff

E’ il meccanismo per temporizzare gli eventi all’interno della partitura

Time-sliceInizio Misura: tempo dall’inizio dello spartito

Inizio Evento:tempo dall’inizio della misura

Il formato

NIFFNIFF Lo spartito…

Score

Voice

Part

System

StaffTime-Slice

Il formato

NIFFNIFF La struttura

Setup section•NIFF Information chunk(versione NIFF, provenienza, unita’ di misura, bpm)

Data section

•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

NIFFNIFF La struttura

Setup section Data section

Informazione musicale

Contiene la vera e propria informazione musicale sotto tutti gli aspetti:•Notazionale •Esecutivo•Grafico…

Pagina

Pentagramma Pentagramma ….

simboli simboli simbolisimboli …simboli(note, pause, indicazioni temporali)

(accollatura)system system system

Il formato

NIFFNIFF La struttura

Pagina

Pentagramma Pentagramma ….

simboli simboli simbolisimboli …simboli(note, pause, indicazioni temporali)

(accollatura)system system system

Sono Liste:Composte da un header chunk e,

di seguito, i chunk relativi ai vari

simboli

Il formato

NIFFNIFF La struttura

Pagina

Pentagramma Pentagramma ….

simboli simboli simbolisimboli …simboli(note, pause, indicazioni temporali)

(accollatura)system system system

Una LISTA-pentagramma puo’ contenere

simboli musicali appartenenti a piu’ di una PART

Il formato

NIFFNIFF La struttura1 Part per pentagramma

Pentagramma (Staff Header Chunk)

chunk chunk chunkchunk …chunk

PART ID = numero della part

simboli

Il formato

NIFFNIFF La strutturaPart diversi su un pentagrammaPentagramma (Staff Header Chunk)

chunk chunk chunkchunk …chunk

xxxx

………PartID = m

………PartID = p

………PartID = m

………PartID = ..

Il formato

NIFFNIFF La strutturaDentro al pentagrammaPentagramma (Staff Header Chunk)

chunk chunk chunkchunk …chunk

Time slice Ch.………

nota………

………

Time slice Ch.………

Il formato

NIFFNIFF

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

NIFFNIFF

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

NIFFNIFF

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

NIFFNIFF

La pagina

Altezza

Lo 0 cartesiano e’ nell’angolo in alto a sinistra

LarghezzaUnita’ assolute +

+

0

Unita’ di misura e sistema di coordinate

Il formato

NIFFNIFF

Dimensione dei font di testo :

E’ espressa in twips (1/20 di punto)

Unita’ di misura e sistema di coordinate

Permette, nei programmi in cui e’ previsto, di proporzionare il testo in modo fine rispetto alla dimensione “punto”

Il formato

NIFFNIFF

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)

Unita’ di misura e sistema di coordinate

Dimensione dei font musicali :

Il formato

NIFFNIFF

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

Obiettivi :

Il formato

NIFFNIFF

Rappresenta il punto di inizio della nota.A livello simbolico si rappresenta con una frazione, che indica la distanza temporale dall’inizio della battutaA 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

Start time Durata

(Istante di inizio)

DurataStart time

Il formato

NIFFNIFF

A livello simbolico si rappresenta con una frazione, pari alla durata della figura della notaI 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 formato

NIFFNIFF

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

Caratteristiche grafiche

Il formato

NIFFNIFF

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

Caratteristiche grafiche

Il formato

NIFFNIFFRappresentazione temporale

Caratteristiche graficheCambio 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

NIFFNIFFI FONT CUSTOM

in un file NIFF si possono definire tipi di Font specialiNella 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

NIFFNIFFI 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

Il formato

NIFFNIFFIntegrazione MIDI

Un file MIDI puo’ essere integrato in un file NIFFNella 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

NIFFNIFFIntegrazione MIDI

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

Setup section Data section

Il formato

NIFFNIFFIntegrazione MIDI

Nella sezione data, sono utilizzati i MIDI Data Stream chunk e iMIDI Performance tag.

Setup section Data section

A seconda della notazione ci sono 4 possibili relazioni tra i simboli musicali e I dati MIDI

Il formato

NIFFNIFFIntegrazione MIDI

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

Setup section Data section

Il formato

NIFFNIFFIntegrazione MIDI

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

Setup section Data section

Il formato

NIFFNIFFIntegrazione MIDI

Correlazione molti a molti:e’ l’esempio di un portamento , cioe’ una combinazione di simboli grafici che genera un traffico di segnali MIDI.

Setup section Data section

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

NIFFNIFFIntegrazione MIDI

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

Setup section Data section

Il formato

NIFFNIFFIntegrazione MIDI

Nessuna correlazione

Setup section Data section

MIDINIFF

Informazione rappresentabile in entrambi i formati

Il formato

NIFFNIFFIntegrazione 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

NIFFNIFF

1. Intavolatura per chitarra2. Simboli per chitarra3. Nomi di spartiti e pentagrammi4. Numerazione delle battute e segni di richiamo5. Ritornelli e code

Altre possibilita’

Trombe{

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________

TAB

123. In la

Il formato

NIFFNIFFAltre possibilita’

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

NIFFNIFFAltre possibilita’

Questa possibilita’ puo’ essere anche impiegataselettivamente, solo sui simboli relativi ad unavoce o ad una parteQuesto e’ possibile in quanto i simboli sonorappresentati tramite chunk, e al loro interno sipuo’ scegliere quelli che abbiano un determinato

Voice ID o Part ID

Attivazione e disattivazione di un Tag

Il formato

NIFFNIFFAncoraggio

In NIFF, un simbolo dal cui posizionamentodipenda quello di uno o piu’ simboli e’ chiamatoancora.

Per ogni tipo di chunk che porta un simbolo e’definito un chunk ancora.

Simboli dipendenti e loro ancore

Il formato

NIFFNIFFAncoraggio

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

Simboli dipendenti e loro ancore

Il formato

NIFFNIFFAncoraggio

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 posizionatal’asta della nota, c’e’ anche la testa.

Simboli dipendenti e loro ancore

Il formato

NIFFNIFFAncoraggio

Qualora sia un accordo con seconde, il chunkdipendente (notehead) puo’ adattare il posizionamento del simbolo grazie al valore di“offset” che muove il posizionamento delcarattere dal punto “caldo” (coordinata del carattere).

Simboli dipendenti e loro ancore

Il formato

NIFFNIFF

StemNotehead, staff step=3, duration=1/4Fingering, shape=1 Notehead, staff step=7, duration=1/4Ornament, shape=short trill Accidental, shape=sharp, Small Size, Anchor Override=Ornament, Logical Placement=above

Fig. 2a

Il formato

NIFFNIFFFig.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/4Articulation, 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

NIFFNIFFFig.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=1Notehead, 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

NIFFNIFFFig.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

NIFFNIFFDisposizioni

•Disposizione di defaultl’unica informazione di impaginazione e’ la sintassi musicaleIl programma utilizza i suoi defaults per l’impaginazione

•Disposizione LogicaFornisce le relazioni tra simboli dipendenti e le loro ancore

•Disposizione AssolutaViene indicato per ogni simbolo esattamente dove questo debba essere posizionato

Il formato

NIFFNIFF

Sebbene la disposizione per misure assolute possa sembrare la piu’precisa, ecco alcuni casi che mettono in crisi la sua fedelta’ conl’originale

Criteri di scelta tra posizionamenti diversi

Disposizioni

il programma che legge il file NIFF non ha a disposizione gli stessi font del programma che l’haprodotto.

Il formato

NIFFNIFF

Sebbene la disposizione per misure assolute possa sembrare la piu’precisa, ecco alcuni casi che mettono in crisi la sua fedelta’ conl’originale

Criteri di scelta tra posizionamenti diversi

Disposizioni

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 posizionamentiLOGICI

Il formato

NIFFNIFF

Sebbene la disposizione per misure assolute possa sembrare la piu’precisa, ecco alcuni casi che mettono in crisi la sua fedelta’ conl’originale

Criteri di scelta tra posizionamenti diversi

Disposizioni

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

NIFFNIFF<!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 BoleroBolero di Ravel

Il formato

NIFFNIFF<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>

Un esempio: Il BoleroBolero di Ravel

Il formato

NIFFNIFF<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>

Un esempio: Il BoleroBolero di Ravel

Il formato

NIFFNIFF<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>

Un esempio: Il BoleroBolero di Ravel

Il formato

NIFFNIFF<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>

Un esempio: Il BoleroBolero di Ravel

Il formato

NIFFNIFF<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>

Un esempio: Il BoleroBolero di Ravel

Il formato

NIFFNIFF<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>

Un esempio: Il BoleroBolero di Ravel

Il formato

NIFFNIFF<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>

Un esempio: Il BoleroBolero di Ravel

Il formato

NIFFNIFF<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>

Un esempio: Il BoleroBolero di Ravel

Il formato

NIFFNIFF<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>

Un esempio: Il BoleroBolero di Ravel

Il formato

NIFFNIFF 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