diff --git a/stt.py b/stt.py index 2f7938f..a288bb9 100755 --- a/stt.py +++ b/stt.py @@ -6,6 +6,7 @@ import os import sys import re import json +import urllib.request mydir = os.path.dirname(os.path.realpath(__file__)) @@ -13,14 +14,39 @@ mydir = os.path.dirname(os.path.realpath(__file__)) lookuptable = { 57: ["Cr", "x"], 49: ["Cr", "x"], - "XX": ["Hh", "x"], + 1042: ["Hh", "x"], + 46: ["Hh", "o"], 51: ["Ri", "x"], + 1051: ["Ri", "x"], 3048: ["HT", "o"], + 1048: ["MT", "o"], 3047: ["MT", "o"], + 3045: ["MT", "o"], # LT + 31: ["St", "o"], # Sticks + 2038: ["Sn", "o"], 4038: ["Sn", "o"], + 4040: ["Sn", "o"], + 3041: ["FT", "o"], # LFT + 4041: ["FT", "o"], # LFT + 2043: ["FT", "o"], 3043: ["FT", "o"], + 4043: ["FT", "o"], 5035: ["Bd", "o"], - 44: ["Hf", "x"] + 5036: ["Bd", "o"], + 44: ["Hf", "x"], + 5044: ["Hf", "x"] +} + +instr_index = { + "Cr": "Cr - Crash ", + "Hh": "Hh - HiHat ", + "Ri": "Ri - Ride ", + "HT": "HT - High Tom ", + "MT": "MT - Mid Tom ", + "Sn": "Sn - Snare ", + "FT": "FT - Floor Tom ", + "Bd": "Bd - Kick ", + "Hf": "Hf - Foot pedal " } ### DrumBurp notation Wikipedia notation Wikipedia notation @@ -41,11 +67,13 @@ def commandline(): parser = argparse.ArgumentParser(description="Make ASCII tabs from songsterr tabs.") # option without argument via 'store_true' parser.add_argument("-V", "--version", help="show program version", action="store_true") - # option with argument + parser.add_argument("--dump", "-d", help="dump json and exit", action="store_true") parser.add_argument("--width", "-w", help="set output width in measures (default: 2)") parser.add_argument("--input", "-i", help="set input file") parser.add_argument("--url", "-u", help="set input url") parser.add_argument("--exclude", "-x", help="exclude unused instruments", action="store_true") + parser.add_argument("--compress", "-c", help="compress empty intro", action="store_true") + # read arguments from the command line args = parser.parse_args() @@ -55,12 +83,8 @@ def commandline(): if args.version: print("Version 0.1") # check for --width - if args.width: - print("set output width to %s" % args.width) - else: + if not args.width: args.width = 2 - if args.url: - print("url not handled yet %s" % args.width) if args.input and args.url: print("Give either a url, or an input file, not both.") exit() @@ -70,6 +94,19 @@ def commandline(): return args +def read_content(): + content = "" + if args.input: + with open(args.input, 'r') as content_file: + content = content_file.read() + elif args.url: + fp = urllib.request.urlopen(args.url) + mybytes = fp.read() + + content = mybytes.decode("utf8") + fp.close() + + return content def get_json(html): result = re.search(r'