def recordAll(score, args, splitRecord = [], counter = 1): #score needs to be flat #splitRecord is used to split the original score into pieces #because it is possible that the splitRecord is generated by structural #analysis in the future, so we seperate the score splitting code after all #recording are finished #record perfs and generate split file if len(score) == 0: #splitRecFilename= args.outputDir #splitRecFilename+= settings.getScoreName(args.scoreFilename)+'.split.json' splitRecFilename = settings.getSplitRecFilename(args.scoreFilename, args.outputDir) with open(splitRecFilename, 'w') as f: simplejson.dump(splitRecord, f, indent = 3) print('[INFO] splitting record saved to ' + splitRecFilename) return else: try: print("[INFO] Now playing score."), print("You can start to record anytime by pressing Ctrl+c") record.playStream(score); #provide stop button except KeyboardInterrupt: pass print("[INFO] =====Now recording phrase no." + str(counter) + "=====") #recLogFilename = settings.getRecLogFilename(args.scoreFilename +'.'+ str(counter)) #recLogFilename = args.outputDir + settings.getScoreName(args.scoreFilename) #recLogFilename += '.'+ str(counter) + '.log' recLogFilename = settings.getRecLogFilename(counter, args.scoreFilename, args.outputDir) settings.printDebug(recLogFilename) record.record(score, recLogFilename) perf = musicGenerator.generatePerf(score, recLogFilename) #outFilename= args.outputDir + settings.getScoreName(args.scoreFilename) #outFilename+= '.'+ str(counter) + '.perf' + settings.defaultOutputFormat outFilename = settings.getOutFilename(counter, args.scoreFilename, args.outputDir) musicGenerator.savePerf2File(perf, outFilename) scoreHead= score[:len(perf)] #if settings.DEBUG: # settings.printDebug('') # scoreHead.show('text') scoreTail= score[len(perf):] #if settings.DEBUG: #settings.printDebug('') #scoreTail.show('text') scoreHeadOffsets = [n.offset for n in scoreHead] splitRecord.append(scoreHeadOffsets) settings.printDebug(splitRecord) #splitRecord.extend(scoreHead) #capture mouse #pos = pygame.mouse.get_pos() #print("mouse position: "+pos) recordAll(scoreTail, args, splitRecord, counter+1)
def recordAll(score, args, counter=1): # score needs to be flat if len(score) == 0: return else: print("[INFO] Now recording phrase no." + str(counter)) record.playStream(score) # provide stop button recLogFilename = settings.getRecLogFilename(args.scoreFilename + str(counter)) record.record(recLogFilename) perf = musicGenerator.generatePerf(score, recLogFilename) musicGenerator.savePerf2File(perf, arg.outputFilename + str(counter)) scoreTail = score[len(perf) :] recordAll(scoreTail, args, counter + 1)
def recordAll(score, args, counter = 1): #score needs to be flat if len(score) == 0: return else: try: print("[INFO] Now playing score. You can start to record anytime by pressing Ctrl+c") record.playStream(score); #provide stop button except KeyboardInterrupt: pass print("[INFO] =====Now recording phrase no." + str(counter) + "=====") #recLogFilename = settings.getRecLogFilename(args.scoreFilename +'.'+ str(counter)) recLogFilename = args.outputDir + settings.getScoreName(args.scoreFilename) recLogFilename += '.'+ str(counter) + '.log' record.record(score, recLogFilename); perf = musicGenerator.generatePerf(score, recLogFilename) outFilename= args.outputDir + settings.getScoreName(args.scoreFilename) outFilename+= '.'+ str(counter) + '.perf' + settings.defaultOutputFormat musicGenerator.savePerf2File(perf, outFilename) scoreTail= score[len(perf):] recordAll(scoreTail, args, counter+1)