From ba9e4878d210b46deca1a70dd961afbf903602b0 Mon Sep 17 00:00:00 2001 From: Phil Holmes Date: Tue, 18 Sep 2012 15:06:10 +0100 Subject: [PATCH] Fix numeric tempi and detached lyrics in abc2ly --- scripts/abc2ly.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/scripts/abc2ly.py b/scripts/abc2ly.py index 60900ca831..15161032f2 100644 --- a/scripts/abc2ly.py +++ b/scripts/abc2ly.py @@ -222,11 +222,11 @@ def dump_header (outf,hdr): def dump_lyrics (outf): if (len(lyrics)): - outf.write("\n\\score\n{\n \\lyrics\n <<\n") + outf.write("\n\\markup \\column {\n") for i in range (len (lyrics)): - outf.write ( lyrics [i]) + outf.write (lyrics [i]) outf.write ("\n") - outf.write(" >>\n \\layout{}\n}\n") + outf.write("}\n") def dump_default_bar (outf): """ @@ -284,7 +284,15 @@ def try_parse_q(a): dur = duration_to_lilypond_duration ((numerator,denominator), 1, 0) voices_append ("\\tempo " + descr + " " + dur + "=" + tempo + "\n") else: - sys.stderr.write("abc2ly: Warning, unable to parse Q specification: %s\n" % a) + # Parsing of numeric tempi, as these are fairly + # common. The spec says the number is a "beat" so using + # a quarter note as the standard time + numericQ = re.compile ('[0-9]+') + m = numericQ.match (a) + if m: + voices_append ("\\tempo 4=" + m.group(0)) + else: + sys.stderr.write("abc2ly: Warning, unable to parse Q specification: %s\n" % a) def dump_score (outf): outf.write (r""" @@ -617,7 +625,7 @@ def repeat_prepend(): def lyrics_append(a): a = re.sub ('#', '\\#', a) # latex does not like naked #'s a = re.sub ('"', '\\"', a) # latex does not like naked "'s - a = '\t{ "' + a + '" }\n' + a = ' \\line { "' + a + '" }\n' stuff_append (lyrics, current_lyric_idx, a) # break lyrics to words and put "'s around words containing numbers and '"'s -- 2.39.2