]> git.donarmstrong.com Git - lilypond.git/blobdiff - scripts/musicxml2ly.py
CG: thinko on the argument of @translationof
[lilypond.git] / scripts / musicxml2ly.py
index aa91e9fc6857373799bfb02a63e5a7ccc1a17202..a19c2fc8807eb516094d60a9c292947712cadf20 100644 (file)
@@ -580,10 +580,11 @@ def rational_to_lily_duration (rational_len):
     d_log = {1: 0, 2: 1, 4:2, 8:3, 16:4, 32:5, 64:6, 128:7, 256:8, 512:9}.get (rational_len.denominator (), -1)
 
     # Duration of the form 1/2^n or 3/2^n can be converted to a simple lilypond duration
-    if (d_log >= 0 and rational_len.numerator() in (1,3,5,7) ):
+    dots = {1: 0, 3: 1, 7: 2, 15: 3, 31: 4, 63: 5, 127: 6}.get (rational_len.numerator(), -1)
+    if ( d_log >= dots >= 0 ):
         # account for the dots!
-        d.dots = (rational_len.numerator()-1)/2
-        d.duration_log = d_log - d.dots
+        d.duration_log = d_log - dots
+        d.dots = dots
     elif (d_log >= 0):
         d.duration_log = d_log
         d.factor = Rational (rational_len.numerator ())