<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://music-ir.org/mirex/w/index.php?action=history&amp;feed=atom&amp;title=2010%3AScore_File_Format</id>
	<title>2010:Score File Format - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://music-ir.org/mirex/w/index.php?action=history&amp;feed=atom&amp;title=2010%3AScore_File_Format"/>
	<link rel="alternate" type="text/html" href="https://music-ir.org/mirex/w/index.php?title=2010:Score_File_Format&amp;action=history"/>
	<updated>2026-05-11T23:48:21Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>https://music-ir.org/mirex/w/index.php?title=2010:Score_File_Format&amp;diff=7177&amp;oldid=prev</id>
		<title>Kriswest: Created page with 'This page describes the score file format proposed for the MIREX 2007 2007:Real-time Audio to Score Alignment (a.k.a Score Following) task and likely to be used for the MIREX…'</title>
		<link rel="alternate" type="text/html" href="https://music-ir.org/mirex/w/index.php?title=2010:Score_File_Format&amp;diff=7177&amp;oldid=prev"/>
		<updated>2010-06-09T21:17:53Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;#039;This page describes the score file format proposed for the MIREX 2007 &lt;a href=&quot;/mirex/wiki/2007:Real-time_Audio_to_Score_Alignment_(a.k.a_Score_Following)&quot; title=&quot;2007:Real-time Audio to Score Alignment (a.k.a Score Following)&quot;&gt;2007:Real-time Audio to Score Alignment (a.k.a Score Following)&lt;/a&gt; task and likely to be used for the MIREX…&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;This page describes the score file format proposed for the MIREX 2007 [[2007:Real-time Audio to Score Alignment (a.k.a Score Following)]] task and likely to be used for the MIREX 2010 [[2010:Real-time_Audio_to_Score_Alignment_(a.k.a_Score_Following)]] task.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Description =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
Lines are separated by newline characters and contain 10 fields, separated by whitespace.&lt;br /&gt;
&lt;br /&gt;
Notes are time-ordered, tempo or signature changes can come at any place.&lt;br /&gt;
(This could be restrained to &amp;quot;must come at the beginning of the file&amp;quot;, if this helps someone.)&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Columns ==&lt;br /&gt;
&lt;br /&gt;
Note that we introduced an field ''event ID'', that unambiguously links events across all three types of files.&lt;br /&gt;
&lt;br /&gt;
The last field ''stream-id'' can serve later to separate different channels, voices, or streams of events.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example Score Files ==&lt;br /&gt;
&lt;br /&gt;
Here is a zip with a few examples. Please have a look at them and use them to test your parsers.  The corresponding midi files are in there, also, except for Anthemes 2, but that one has a trill...&lt;br /&gt;
&lt;br /&gt;
The metric positions are not very pretty, but it's the best a simple algorithm can do.  The absolute time positions are good, anyway.&lt;br /&gt;
&lt;br /&gt;
[[Image:2007_mirex2007-score-examples.zip]]&lt;br /&gt;
&lt;br /&gt;
== Note on higher-level formats ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
We'd be glad to hear a concrete proposal.&lt;br /&gt;
&lt;br /&gt;
= Event Types=&lt;br /&gt;
&lt;br /&gt;
== NOTE EVENTS ==&lt;br /&gt;
&lt;br /&gt;
=== Template ===&lt;br /&gt;
&lt;br /&gt;
''event-id onset-position onset-ms type pitch interval duration-beat duration-ms cue-num stream-id''&lt;br /&gt;
&lt;br /&gt;
=== Example === &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1 1	 0	note	72	0	2	4000	1	0&lt;br /&gt;
2 3+1/4	 4500	note	60	0	0+1/4	500	2	0	&lt;br /&gt;
3 3+3/4	 5000	note	58	0	0+1/2	1000	3	0	&lt;br /&gt;
4 3+3/4	 5000	note	48	0	0+1/2	1000	0	0	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Columns for note events === &lt;br /&gt;
&lt;br /&gt;
# event ID [int &amp;gt; 1]&lt;br /&gt;
# event onset position [measure+rational] (ex. 42+1/4, 28+3/7)&lt;br /&gt;
# event onset clock time [ms] (must be consistent with the onset position)&lt;br /&gt;
# event type  [symbol: note, trill, tremolo, ...] (for tempo and signature, see below)&lt;br /&gt;
# event pitch [float MIDI note number]&lt;br /&gt;
# event interval [float halftones] (0 for non-trill)&lt;br /&gt;
# event duration [measure+rational]&lt;br /&gt;
# event duration [ms]&lt;br /&gt;
# cue number [int &amp;gt; 0, 0 = no cue]&lt;br /&gt;
# stream ID [int]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TEMPO CHANGES ==&lt;br /&gt;
&lt;br /&gt;
=== Template ===&lt;br /&gt;
&lt;br /&gt;
'''0''' ''onset-position onset-ms'' '''tempo''' ''tempo-bpm - - - - stream-id ''&lt;br /&gt;
&lt;br /&gt;
=== Example === &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0 1	0	tempo	120	-	-	-	-	0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This signifies a tempo of 120 beats per minute.&lt;br /&gt;
&lt;br /&gt;
=== Columns for tempo changes === &lt;br /&gt;
&lt;br /&gt;
# event ID [constant int = 0]&lt;br /&gt;
# event onset position [measure+rational] (ex. 42+1/4, 28+3/7)&lt;br /&gt;
# event onset clock time [ms] (must be consistent with the onset position)&lt;br /&gt;
# event type [constant symbol = '''tempo''']&lt;br /&gt;
# tempo [float bpm]&lt;br /&gt;
# unused&lt;br /&gt;
# unused&lt;br /&gt;
# unused&lt;br /&gt;
# unused&lt;br /&gt;
# stream ID [int]&lt;br /&gt;
&lt;br /&gt;
== METER CHANGES ==&lt;br /&gt;
&lt;br /&gt;
=== Template ===&lt;br /&gt;
&lt;br /&gt;
'''0''' ''onset-position onset-ms'' '''meter''' ''numerator denominator - - - stream-id ''&lt;br /&gt;
&lt;br /&gt;
=== Example === &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0 1	0	meter	4	4	-	-	-	0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This signifies a rhythmic signature of 4/4.&lt;br /&gt;
&lt;br /&gt;
=== Columns for signature changes === &lt;br /&gt;
&lt;br /&gt;
# event ID [constant int = 0]&lt;br /&gt;
# event onset position [measure+rational] (ex. 42+1/4, 28+3/7)&lt;br /&gt;
# event onset clock time [ms] (must be consistent with the onset position)&lt;br /&gt;
# event type [constant symbol = '''meter''']&lt;br /&gt;
# meter numerator [int]&lt;br /&gt;
# meter denominator [int]&lt;br /&gt;
# unused&lt;br /&gt;
# unused&lt;br /&gt;
# unused&lt;br /&gt;
# stream ID [int]&lt;br /&gt;
&lt;br /&gt;
= Evaluation Metrics =&lt;br /&gt;
&lt;br /&gt;
times:&lt;br /&gt;
&lt;br /&gt;
* t_a reference alignment time&lt;br /&gt;
* t_r reporting time&lt;br /&gt;
* t_e estimated time&lt;br /&gt;
&lt;br /&gt;
measures:&lt;br /&gt;
&lt;br /&gt;
* d_l = t_r - t_e	system latency (between reporting and estimation)&lt;br /&gt;
* d_o = t_a - t_r	offset or lag between reporting time and reference&lt;br /&gt;
* d_e = t_a - t_e	error between estimation time and reference&lt;/div&gt;</summary>
		<author><name>Kriswest</name></author>
		
	</entry>
</feed>