diff options
Diffstat (limited to 'muse2/share/scripts/ConstantLength')
-rwxr-xr-x | muse2/share/scripts/ConstantLength | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/muse2/share/scripts/ConstantLength b/muse2/share/scripts/ConstantLength new file mode 100755 index 00000000..f03addcd --- /dev/null +++ b/muse2/share/scripts/ConstantLength @@ -0,0 +1,77 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +import sys,time +from PyQt4 import QtGui, QtCore + +class ScriptClass(QtGui.QWidget): + def __init__(self, parent=None): + QtGui.QWidget.__init__(self, parent) + + self.setWindowTitle('Constant length') + title = QtGui.QLabel('Make all events of length:') + self.titleEdit = QtGui.QComboBox() + self.titleEdit.addItem('1/1',1) + self.titleEdit.addItem('1/2',2) + self.titleEdit.addItem('1/4',4) + self.titleEdit.addItem('1/8',8) + self.titleEdit.addItem('1/16',16) + self.titleEdit.addItem('1/32',32) + self.titleEdit.addItem('1/64',64) + self.titleEdit.setCurrentIndex(4) + + button = QtGui.QPushButton("Execute") + self.connect(button, QtCore.SIGNAL('clicked()'), self.execute) + grid = QtGui.QGridLayout() + grid.setSpacing(3) + + grid.addWidget(title, 1, 0) + grid.addWidget(self.titleEdit, 1, 1) + + grid.addWidget(button, 2, 1) + + self.setLayout(grid) + self.resize(200, 100) + button.setFocus() + + def execute(self): + testFile = file(sys.argv[1],"r") + inputEvents = testFile.readlines() + testFile.close() + + beatDiv = self.titleEdit.itemData(self.titleEdit.currentIndex()).toInt()[0] + print "beatDiv=",beatDiv + eventLen=0 + #get beat length to calculate minimum length of event + for line in inputEvents: + if line.startswith('BEATLEN'): + tag,tick = line.split(' ') + eventLen=int(tick)/beatDiv*4 + break + + outputEvents=[] + #loop through events + for line in inputEvents: + + if line.startswith('NOTE'): + tag,tick,note,length,velocity = line.split(' ') + + length=eventLen + newLine=tag+" "+tick+" "+note+" "+str(length)+" "+velocity + outputEvents.append(newLine) + + else: + outputEvents.append(line) + + testFile = file(sys.argv[1],"w") + testFile.writelines(outputEvents) + testFile.close() + + quit() + + + +app = QtGui.QApplication(sys.argv) +qb = ScriptClass() +qb.show() +sys.exit(app.exec_()) |