view abcfirstline.py @ 510:0a75c953c3c8 build-default-216

Add the Pugwash theme, aka the Trumpet Hornpipe. I've checked this against YouTube and the first episode, and corrected an obvious wrong note in Paul Hardy's version. But I've kept his descending triplets in the last line of the B tune - the original has the same note, with descending chords, but changing the triplets to remain on G doesn't sound right.
author Jim Hague <jim.hague@acm.org>
date Fri, 01 Aug 2014 23:41:42 +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)