-
Notifications
You must be signed in to change notification settings - Fork 403
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Non-power of 2 tuplet isn't the best choice for durations like 5/6 QL #572
Comments
Lemme think through this a tiny bit more -- You're probably right. Do Finale/Sibelius/etc. also have a problem if the rest of the tuplet is present? The other 1/6 note? |
Thanks! You've definitely demonstrated that this is a bug -- and a regression from v. 5 -- so we'll try to not dynamically create tuplets that don't have denominators that are either 3 or a power of two. That will fix this problem. |
See more discussion at #1237 |
Found while running
stripTies
on Schoenberg op19/6, measure 8, but minimal example here:Math checks out, but neither a musicxml export nor a roundtrip back using
makeTies
will do anything with the 6-in-the-space-of-5 32nds tuplet, which makes for difficult to read output (or lost information if the musicxml importer decides to drop the tuplet bracket on the note altogether).I'm suggesting
quarterConversion
could try harder to come up with a complex type. In this instance it would involve storing five components of 16th notes, then a 3/2/16th tuplet applied to the whole thing.m21ToXml
splits on components when exporting, so I would expect a clean export if we had a complex type.makeTies
could also do something similar to ensure a roundtrip afterstripTies
came back the same.I looked at how the duration algorithm works now, and for an input of 5/6 QL it finds 1/2 QL first, then looks at the remainder (1/3 QL) to see if it could be added as a second component, but by design does not allow tuplets. But we could find the LCM and make sure's it under an acceptable ceiling.
The text was updated successfully, but these errors were encountered: