2007:Score File Format
Contents
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.
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.
Note that we introduced an event ID field, that unambiguously links events across all three types of files.
Note on higher level formats
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. 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:
- event ID [int > 1]
- event onset position [measure+rational] (ex. 42+1/4, 28+3/7)
- event onset clock time [ms] (must be consistent with the onset position)
- event type [symbol: note, trill, tremolo, ...] (for tempo and signature, see below)
- event pitch [float MIDI note number]
- event interval [float halftones] (0 for non-trill)
- event duration [measure+rational]
- event duration [ms]
- cue number [int > 0, 0 = no cue]
- 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:
- event ID [constant int = 0]
- event onset position [measure+rational] (ex. 42+1/4, 28+3/7)
- event onset clock time [ms] (must be consistent with the onset position)
- event type [constant symbol = tempo]
- tempo [float bpm]
- unused
- unused
- unused
- unused
- 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:
- event ID [constant int = 0]
- event onset position [measure+rational] (ex. 42+1/4, 28+3/7)
- event onset clock time [ms] (must be consistent with the onset position)
- event type [constant symbol = signature]
- signature numerator [int]
- signature denominator [int]
- unused
- unused
- unused
- 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