diff options
Diffstat (limited to 'attic/muse2-oom/muse2/share/scripts/SwingQuantize1')
-rwxr-xr-x | attic/muse2-oom/muse2/share/scripts/SwingQuantize1 | 105 |
1 files changed, 0 insertions, 105 deletions
diff --git a/attic/muse2-oom/muse2/share/scripts/SwingQuantize1 b/attic/muse2-oom/muse2/share/scripts/SwingQuantize1 deleted file mode 100755 index 11fded84..00000000 --- a/attic/muse2-oom/muse2/share/scripts/SwingQuantize1 +++ /dev/null @@ -1,105 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# MusE external midi processing script -# By: Robert Jonsson 2009 -# Quantize - -import sys,time -from PyQt4 import QtGui, QtCore -import random - -class Quantize(QtGui.QWidget): - def __init__(self, parent=None): - QtGui.QWidget.__init__(self, parent) - - self.setWindowTitle('Swing quantize V1') - - - self.beatEdit = QtGui.QComboBox() - self.beatEdit.addItem('1/1',1) - self.beatEdit.addItem('1/2',2) - self.beatEdit.addItem('1/4',4) - self.beatEdit.addItem('1/8',8) - self.beatEdit.addItem('1/16',16) - self.beatEdit.addItem('1/32',32) - self.beatEdit.setCurrentIndex(2) - self.spreadEdit = QtGui.QLineEdit() - self.spreadEdit.setText('10') - - button = QtGui.QPushButton("Execute") - self.connect(button, QtCore.SIGNAL('clicked()'), self.execute) - - grid = QtGui.QGridLayout() - grid.setSpacing(3) - - grid.addWidget(QtGui.QLabel('Beat granularity:'), 1, 0) - grid.addWidget(self.beatEdit, 1, 1) - grid.addWidget(QtGui.QLabel('Spread/Swing(ticks)'), 2, 0) - grid.addWidget(self.spreadEdit, 2, 1) - grid.addWidget(button, 3, 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.beatEdit.itemData(self.beatEdit.currentIndex()).toInt()[0] - minSize=0 # fill in when we get the beat size value - outputEvents=[] - quantLen=0 - - #get beat length to calculate minimum length of event - for line in inputEvents: - if line.startswith('BEATLEN'): - tag,tick = line.split(' ') - beatLen=int(tick) - quantLen=int(tick)/beatDiv*4 - print "quantLen=%d beatDiv=%d"%(quantLen, beatDiv) - print line.strip() - #loop through events and quantize to the given beat - eventList=[] - for line in inputEvents: - if line.startswith('NOTE'): - tag,tick,pitch,length,velocity = line.split(' ') - - # over quantize - lowerBound=(int(tick)/quantLen)*quantLen - upperBound=lowerBound+quantLen - lowDiff=int(tick)-lowerBound - highDiff=upperBound - int(tick) - if( lowDiff < highDiff): - newTick=lowerBound - else: - newTick=upperBound - - # apply swing factor to every other 8 beat - print "float =%f int = %d"%((float(newTick+beatLen)) / beatLen/2,((newTick+beatLen))/beatLen/2) - if ((float(newTick+beatLen)) / beatLen/2 - ((newTick+beatLen))/beatLen/2) < 0.1: - print "adding swing to:",newTick - newTick=int(random.gauss(newTick,self.spreadEdit.text().toInt()[0])) - if (newTick < 0): - newTick=0 - - newLine="NOTE "+ str(newTick)+" " + pitch + " "+ length + " " + velocity - print "newLine:",newLine.strip() - 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 = Quantize() -qb.show() -sys.exit(app.exec_()) |