X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scripts%2Fetf2ly.py;h=2d0ea2dcba40bab996a08bb4abb2097d264e3254;hb=d4e1cf3b24ad546d05a490ad1b07be45ea230e44;hp=8e2397b4fd059612163f7c224b59c87881ae4350;hpb=c6d314f038629a7054e72b6212bd5b8b7bba2d2c;p=lilypond.git diff --git a/scripts/etf2ly.py b/scripts/etf2ly.py index 8e2397b4fd..2d0ea2dcba 100644 --- a/scripts/etf2ly.py +++ b/scripts/etf2ly.py @@ -109,9 +109,9 @@ have the correct number of accidentals # should cache this. def find_scale (keysig): cscale = map (lambda x: (x,0), range (0,7)) - print "cscale: ", cscale +# print "cscale: ", cscale ascale = map (lambda x: (x,0), range (-2,5)) - print "ascale: ", ascale +# print "ascale: ", ascale transposition = keysig.pitch if keysig.sig_type == 1: transposition = transpose(transposition, (2, -1)) @@ -119,7 +119,7 @@ def find_scale (keysig): trscale = map(lambda x, k=transposition: transpose(x, k), ascale) else: trscale = map(lambda x, k=transposition: transpose(x, k), cscale) - print "trscale: ", trscale +# print "trscale: ", trscale return trscale def EDU_to_duration (edu): @@ -137,7 +137,7 @@ def EDU_to_duration (edu): dots = 2 return (log, dots) -def rat_to_lily_duration (rat): +def rational_to_lily_skip (rat): (n,d) = rat basedur = 1 @@ -395,7 +395,7 @@ class Verse: str = str + ' ' * 4 + line + '\n' line = '' - str = """\nverse%s = \\lyrics {\n %s}\n""" % (encodeint (self.number - 1) ,str) + str = """\nverse%s = \\lyricmode {\n %s }\n""" % (encodeint (self.number - 1) ,str) return str class KeySignature: @@ -463,14 +463,19 @@ class Frame: # do grace notes. lastch = None + in_grace = 0 for c in self.chords: if c.grace and (lastch == None or (not lastch.grace)): c.chord_prefix = r'\grace {' + c.chord_prefix + in_grace = 1 elif not c.grace and lastch and lastch.grace: lastch.chord_suffix = lastch.chord_suffix + ' } ' - + in_grace = 0 + lastch = c - + + if lastch and in_grace: + lastch.chord_suffix += '}' def dump (self): @@ -493,7 +498,7 @@ class Frame: sys.stderr.write ("""\nHuh? Going backwards in frame no %d, start/end (%d,%d)""" % (self.number, self.start, self.end)) left = (0,1) if left[0]: - str = str + rat_to_lily_duration (left) + str = str + rational_to_lily_skip (left) str = str + ' | \n' return str @@ -570,7 +575,7 @@ class Staff: last_clef = m.clef if e: if gap <> (0,1): - k = k +' ' + rat_to_lily_duration (gap) + '\n' + k = k +' ' + rational_to_lily_skip (gap) + '\n' gap = (0,1) k = k + e @@ -579,7 +584,7 @@ class Staff: if 'stop' in g.repeats: k = k + ' \\bar ":|" ' - k = '%sglobal = \\notes { %s }\n\n ' % (self.staffid (), k) + k = '%sglobal = { %s }\n\n ' % (self.staffid (), k) return k def dump (self): @@ -606,7 +611,7 @@ class Staff: if fr: first_frame = fr if gap <> (0,1): - laystr = laystr +'} %s {\n ' % rat_to_lily_duration (gap) + laystr = laystr +'} %s {\n ' % rational_to_lily_skip (gap) gap = (0,1) laystr = laystr + fr.dump () else: @@ -618,7 +623,7 @@ class Staff: % (self.number, m.number)) if first_frame: l = self.layerid (x) - laystr = '%s = \\notes { { %s } }\n\n' % (l, laystr) + laystr = '%s = { { %s } }\n\n' % (l, laystr) str = str + laystr layerids.append (l) @@ -1126,7 +1131,8 @@ class Etf_file: sys.stderr.write ("\nLyrics found; edit to use \\addlyrics to couple to a staff\n") if staffs: - str = str + '\\score { << %s >> } ' % string.join (staffs) + str += '\\version "2.3.25"\n' + str = str + '<<\n %s\n>> } ' % string.join (staffs) return str