One class of issue remains, and it's a biggie. The sequence:
[DRUM-SNAREDRUM1:1] Remaining gap of 1 left before note at 3.
[DRUM-SNAREDRUM1:1] Remaining gap of 1 left before note at 3.3333333333333335.
[DRUM-SNAREDRUM1:1] Remaining gap of 1 left before note at 3.6666666666666665.
indicates that the quantization algorithm eagerly converts the first note to a binary-timed note instead of a ternary-timed one, and thus misses the subsequent tuplet altogether. The outcome is something like:
where the 2nd measure is a nonsensical assembly of fractional binary-time notes instead of the original intent of a triplet. The first measure was converted correctly because the first note happened to be have onset/duration attributes that drove the quantizer to recognize it as a ternary-timed note.
Attached is the latest musicxml-grooves.log
One class of issue remains, and it's a biggie. The sequence:
indicates that the quantization algorithm eagerly converts the first note to a binary-timed note instead of a ternary-timed one, and thus misses the subsequent tuplet altogether. The outcome is something like:
where the 2nd measure is a nonsensical assembly of fractional binary-time notes instead of the original intent of a triplet. The first measure was converted correctly because the first note happened to be have onset/duration attributes that drove the quantizer to recognize it as a ternary-timed note.