Difference between revisions of "2007:Score File Format"

From MIREX Wiki
(h)
(column remarks, mx link, subheadings)
Line 13: Line 13:
 
The MIREX text score file format will be also used as alignment reference format, where the clock time is no longer the score time but the aligned time in the performance, and maybe as alignment result file.
 
The MIREX text score file format will be also used as alignment reference format, where the clock time is no longer the score time but the aligned time in the performance, and maybe as alignment result file.
  
Note that we introduced an event ID field, that unambiguously links events across all three types of files.
+
=== Columns ===
  
===Note on higher level formats===
+
Note that we introduced an field ''event ID'', that unambiguously links events across all three types of files.
  
It would of course be great if there was an even better format, maybe XML-based.  From this format, the text-based format could be easily generated, and even MIDI for those participants who couldn't otherwise implement a parser.
+
The last field ''stream-id'' can serve later to separate different channels, voices, or streams of events.
 +
 
 +
The 9th field ''cue'' serves to mark events that are musically important, e.g. because they  synchronise accompaniment with the performance.  This could later be used for a more detailed evaluation.
 +
 
 +
 
 +
=== Note on higher-level formats ===
 +
 
 +
It would of course be great if there was an even better format, maybe XML-based, such as the [http://www.mx.dico.unimi.it MX format] that was mentioned on the list.  From this format, the text-based format could be easily generated, and even MIDI for those participants who couldn't otherwise implement a parser.
 
We'd be glad to hear a concrete proposal.
 
We'd be glad to hear a concrete proposal.
 +
 +
  
 
= Event Types=
 
= Event Types=
Line 24: Line 33:
 
== NOTE EVENTS ==
 
== NOTE EVENTS ==
  
==== Template: ====
+
==== Template ====
  
 
''event-id onset-position onset-ms type pitch interval duration-beat duration-ms cue-num stream-id''
 
''event-id onset-position onset-ms type pitch interval duration-beat duration-ms cue-num stream-id''
  
==== Example: ====  
+
==== Example ====  
 
<pre>
 
<pre>
 
1 1 0 note 72 0 2 4000 1 0
 
1 1 0 note 72 0 2 4000 1 0
Line 36: Line 45:
 
</pre>
 
</pre>
  
==== Columns for note events: ====  
+
==== Columns for note events ====  
  
 
# event ID [int > 1]
 
# event ID [int > 1]
Line 48: Line 57:
 
# cue number [int > 0, 0 = no cue]
 
# cue number [int > 0, 0 = no cue]
 
# stream ID [int]
 
# stream ID [int]
 +
  
 
== TEMPO CHANGES ==
 
== TEMPO CHANGES ==
  
template:
+
==== Template ====
  
 
'''0''' ''onset-position onset-ms'' '''tempo''' ''tempo - - - - stream-id ''
 
'''0''' ''onset-position onset-ms'' '''tempo''' ''tempo - - - - stream-id ''
  
example:
+
==== Example ====
 
<pre>
 
<pre>
 
0 1 0 tempo 120 - - - - 0
 
0 1 0 tempo 120 - - - - 0
 
</pre>
 
</pre>
  
columns for tempo changes:
+
==== Columns for tempo changes ====
  
 
# event ID [constant int = 0]
 
# event ID [constant int = 0]
Line 76: Line 86:
 
== SIGNATURE CHANGES ==
 
== SIGNATURE CHANGES ==
  
template:
+
==== Template ====
  
 
'''0''' ''onset-position onset-ms'' '''signature''' ''numerator denominator - - - stream-id ''
 
'''0''' ''onset-position onset-ms'' '''signature''' ''numerator denominator - - - stream-id ''
  
example:
+
==== Example ====
 
<pre>
 
<pre>
 
0 1 0 signature 4 4 - - - 0
 
0 1 0 signature 4 4 - - - 0
 
</pre>
 
</pre>
  
columns for signature changes:
+
==== Columns for signature changes ====
  
 
# event ID [constant int = 0]
 
# event ID [constant int = 0]
Line 97: Line 107:
 
# unused
 
# unused
 
# stream ID [int]
 
# stream ID [int]
 +
 +
 +
 +
  
 
= Evaluation Metrics =
 
= Evaluation Metrics =

Revision as of 10:31, 26 June 2007

This page describes the proposed score file format for the MIREX 2007 Real-time Audio to Score Alignment (a.k.a Score Following) task.

Description

The proposed MIREX score file format is in ASCII text, with one line per note or other event such as trill, tempo change, or signature change. Lines are separated by newline characters and contain 10 fields, separated by whitespace.

Notes are time-ordered, tempo or signature changes can come at any place. (This could be restrained to "must come at the beginning of the file", if this helps someone.)

The MIREX text score file format will be also used as alignment reference format, where the clock time is no longer the score time but the aligned time in the performance, and maybe as alignment result file.

Columns

Note that we introduced an field event ID, that unambiguously links events across all three types of files.

The last field stream-id can serve later to separate different channels, voices, or streams of events.

The 9th field cue serves to mark events that are musically important, e.g. because they synchronise accompaniment with the performance. This could later be used for a more detailed evaluation.


Note on higher-level formats

It would of course be great if there was an even better format, maybe XML-based, such as the MX format that was mentioned on the list. From this format, the text-based format could be easily generated, and even MIDI for those participants who couldn't otherwise implement a parser. We'd be glad to hear a concrete proposal.


Event Types

NOTE EVENTS

Template

event-id onset-position onset-ms type pitch interval duration-beat duration-ms cue-num stream-id

Example

1 1	 0	note	72	0	2	4000	1	0
2 3+1/4	 4500	note	60	0	0+1/4	500	2	0	
3 3+3/4	 5000	note	58	0	0+1/2	1000	3	0	
4 3+3/4	 5000	note	48	0	0+1/2	1000	0	0	

Columns for note events

  1. event ID [int > 1]
  2. event onset position [measure+rational] (ex. 42+1/4, 28+3/7)
  3. event onset clock time [ms] (must be consistent with the onset position)
  4. event type [symbol: note, trill, tremolo, ...] (for tempo and signature, see below)
  5. event pitch [float MIDI note number]
  6. event interval [float halftones] (0 for non-trill)
  7. event duration [measure+rational]
  8. event duration [ms]
  9. cue number [int > 0, 0 = no cue]
  10. stream ID [int]


TEMPO CHANGES

Template

0 onset-position onset-ms tempo tempo - - - - stream-id

Example

0 1	0	tempo	120	-	-	-	-	0

Columns for tempo changes

  1. event ID [constant int = 0]
  2. event onset position [measure+rational] (ex. 42+1/4, 28+3/7)
  3. event onset clock time [ms] (must be consistent with the onset position)
  4. event type [constant symbol = tempo]
  5. tempo [float bpm]
  6. unused
  7. unused
  8. unused
  9. unused
  10. stream ID [int]


SIGNATURE CHANGES

Template

0 onset-position onset-ms signature numerator denominator - - - stream-id

Example

0 1	0	signature	4	4	-	-	-	0

Columns for signature changes

  1. event ID [constant int = 0]
  2. event onset position [measure+rational] (ex. 42+1/4, 28+3/7)
  3. event onset clock time [ms] (must be consistent with the onset position)
  4. event type [constant symbol = signature]
  5. signature numerator [int]
  6. signature denominator [int]
  7. unused
  8. unused
  9. unused
  10. stream ID [int]



Evaluation Metrics

times:

  • t_a reference alignment time
  • t_r reporting time
  • t_e estimated time

measures:

  • d_l = t_r - t_e system latency (between reporting and estimation)
  • d_o = t_a - t_r offset or lag between reporting time and reference
  • d_e = t_a - t_e error between estimation time and reference