CPJKU / partitura

A python package for handling modern staff notation of music
https://partitura.readthedocs.io
Apache License 2.0
227 stars 15 forks source link

doc_order requirement in export_match #326

Closed sildater closed 10 months ago

sildater commented 11 months ago

The current matchfile_from_alignment from alignment uses the document order of notes in line 361 (exportmatch,py)

snote_sort_info[snote.id] = (onset_beats, snote.doc_order)

to later on sort by this value in line 460 ff

sort_stime = np.array(sort_stime)
sort_stime_idx = np.lexsort((sort_stime[:, 1], sort_stime[:, 0]))
note_lines = np.array(note_lines)[sort_stime_idx]

doc_order is a standard note property but it's only used for musicxml files so far. Scores/parts imported from match/mei/kern/midi do not have this property and the sorting breaks. A doc_order property shouldn't be a hard requirement though.