def preProcess(filename): # listfname = './list.txt'; # with open(listfname, 'r') as listf: # for filename in listf: # for filename in os.listdir(path): # filename = filename.strip('\n'); # if not fnmatch.fnmatch(filename, '*.txt'): continue; # filename = path + filename; recName = settings.getRecName(filename) if DEBUG: print(recName) with open(recName, "r") as tapFile: # recName_noext = os.path.splitext(recName)[0]; # outFilename = filename + '.processed.csv' outFilename = settings.getProcessedName(filename) with open(outFilename, "w") as outFile: for line in tapFile: if DEBUG: print(line.split()) if len(line.split()) == 17: (time, x, y, z, f, w, l, r, u, d, m, multi, gl, gm, gr, gdx, gdy) = line.split() elif len(line.split()) == 12: (time, x, y, z, f, w, l, r, u, d, m, multi) = line.split() else: print("unknown line format") continue if time == "time": continue else: outFile.write(time + "," + z + "," + f + "\n")
def getRecLength(filename): recFile = settings.getProcessedName(filename) with open(recFile, "r") as rec: # noteQueue = Queue.Queue(); noteStack = [] length = 0 prevMulti = 0 for line in rec: if settings.DEBUG: print(line.strip().split(",")) (time, z, multiStr) = line.strip().split(",") multi = int(multiStr) if multi - prevMulti > 0: noteStack.append(time) if settings.DEBUG: print(len(noteStack)) elif multi - prevMulti < 0: noteStack.pop() if settings.DEBUG: print(len(noteStack)) length += 1 prevMulti = multi return length
#!/usr/bin/python import process import settings def exist(filename): try: with open(filename) as f: pass; except IOError as e: assert True, e; filename = 'test.mid' process.preProcess(filename); exist(settings.getProcessedName(filename)); recLen = process.getRecLength(filename) print(recLen) assert(27 == recLen) process.makeMidi(filename); exist(settings.getMidiName(filename));