Mercurial > dottes
view abcfirstline.py @ 422:0e1c1ea43af4
abc2midi messes up with repeats in sections after a [1..[2 |]
Jane found out that abc2midi output goes rather random sometimes. I've narrowed
this down to sections of music after a [1..[2 |] repeat has happened.
Work around by adding explicit |: for those sections, which doesn't (to my
mind) look so good printed but gets correct behaviour from abc2midi.
author | Jim Hague <jim.hague@acm.org> |
---|---|
date | Wed, 11 Sep 2013 22:30:10 +0100 |
parents | 811151d3ae73 |
children | 1b79867b4f35 |
line wrap: on
line source
#!/usr/bin/env python # # Write out a modified version of a .abc file with just the data # to print the first line of the music only. # import sys def process(inf): continued = False print "X:1" for line in inf: line = line.strip() # If it is empty or starts "%", ignore it. if len(line) == 0 or line[0] == "%": continue # Is it a header line? I.e. does it start LETTER COLON? # If so, output only ones we need. start = line[:2] if len(start) > 1 and start[1] == ":" and start[0].isalpha(): if start[0] in ["M", "K", "L"]: print line # Output line. If it is a continuation, output at most one # continuation. else: print line if continued or line[-1] != "\\": break else: continued = True if len(sys.argv) > 1: for arg in sys.argv[1:]: try: inf = open(arg, "r") process(inf) finally: inf.close() else: process(sys.stdin)