The phrase traversals are used for traversing the phrases (i.e. groups consecutive "not-separated-by-rest" notes in a single part) in each score. This causes a non-recoverable quantization error if the score containing overlapping notes (in a single part). We need to statically forbind overlapping notes, or dynamically avoid them in the phrase traversals.
The traversal can be made safe by sticking in the simult lens before phrases, however i am not sure whether this should be part of the general Score instance.
Possible solutions
Restrict the HasPhrases (Score a) ... instance to include simult (how?)
Add a prism to scores with overlapping notes and include that (i.e. dynamically skip phrase traversal if notes overlap)
The problem will mostly disappear when #278 is fixed, as we can then remove or rectify (as per the simplest of the above solutions) phrase traversals for the old score type (soon to be Track)
The phrase traversals are used for traversing the phrases (i.e. groups consecutive "not-separated-by-rest" notes in a single part) in each score. This causes a non-recoverable quantization error if the score containing overlapping notes (in a single part). We need to statically forbind overlapping notes, or dynamically avoid them in the phrase traversals.
The traversal can be made safe by sticking in the
simult
lens before phrases, however i am not sure whether this should be part of the generalScore
instance.Possible solutions
HasPhrases (Score a) ...
instance to include simult (how?)The problem will mostly disappear when #278 is fixed, as we can then remove or rectify (as per the simplest of the above solutions) phrase traversals for the old score type (soon to be Track)