summaryrefslogtreecommitdiff
path: root/attic/muse2-oom/muse2/share/scripts/SwingQuantize1
diff options
context:
space:
mode:
Diffstat (limited to 'attic/muse2-oom/muse2/share/scripts/SwingQuantize1')
-rwxr-xr-xattic/muse2-oom/muse2/share/scripts/SwingQuantize1105
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_())