Mercurial > dottes
view abcfirstline.py @ 351:6bcafbfac674 build-default-156
Now fix logic error in makeHornInF.sh.
And we get some playable tunes. We might be able to improve the transposition
further by taking the Cello approach of calculating the minimum distance outside
the comfortable range. One for the future.
author | Jim Hague <jim.hague@acm.org> |
---|---|
date | Tue, 13 Aug 2013 01:48:21 +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)