Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/SynthLab
diff options
context:
space:
mode:
authorOli <olpc@localhost.localdomain>2007-02-06 00:29:04 (GMT)
committer Oli <olpc@localhost.localdomain>2007-02-06 00:29:04 (GMT)
commitdbf0e2d924840be32f60611ae7ae8e09111a8740 (patch)
treedf2891724d878845dfec00e7eadcaf79abaa39d7 /SynthLab
parentbb6ba47652bbf684192d2ba0b104928abf8dcf92 (diff)
synthlab allow polyphonic recording
Diffstat (limited to 'SynthLab')
-rw-r--r--SynthLab/SynthLabParametersWindow.py6
-rw-r--r--SynthLab/SynthLabWindow.py19
2 files changed, 15 insertions, 10 deletions
diff --git a/SynthLab/SynthLabParametersWindow.py b/SynthLab/SynthLabParametersWindow.py
index 0b1382b..a6a1cf7 100644
--- a/SynthLab/SynthLabParametersWindow.py
+++ b/SynthLab/SynthLabParametersWindow.py
@@ -108,7 +108,7 @@ class SynthLabParametersWindow( gtk.Window ):
self.slider3.set_size_request(50, 150)
self.sliderBox.pack_start(self.slider3, True, False)
- self.p4Adjust = gtk.Adjustment(slider4Init, 0, 1, .01, .01, 0)
+ self.p4Adjust = gtk.Adjustment(slider4Init, 0, 2, .01, .01, 0)
self.p4Adjust.connect("value-changed", self.sendTables, 4)
self.slider4 = ImageVScale(Config.TAM_TAM_ROOT + '/Resources/Images/sliderbutred.png', self.p4Adjust, 7)
self.slider4.connect("button-press-event", self.showParameter, 4)
@@ -141,7 +141,7 @@ class SynthLabParametersWindow( gtk.Window ):
midiPitch = Config.KEY_MAP[key]
if midiPitch not in self.playingPitch:
self.playingPitch.append( midiPitch )
- self.playNoteFunction( midiPitch )
+ self.playNoteFunction( midiPitch, 0 )
def onKeyRelease( self, widget, event ):
key = event.hardware_keycode
@@ -180,7 +180,7 @@ class SynthLabParametersWindow( gtk.Window ):
self.p1Adjust.set_all(slider1Init, slider1Min, slider1Max, slider1Step, slider1Step, 0)
self.p2Adjust.set_all(slider2Init, slider2Min, slider2Max, slider2Step, slider2Step, 0)
self.p3Adjust.set_all(slider3Init, slider3Min, slider3Max, slider3Step, slider3Step, 0)
- self.p4Adjust.set_all(slider4Init, 0, 1, 0.01, 0.01, 0)
+ self.p4Adjust.set_all(slider4Init, 0, 2, 0.01, 0.01, 0)
self.tooltipsUpdate()
diff --git a/SynthLab/SynthLabWindow.py b/SynthLab/SynthLabWindow.py
index 7ce1dc6..3e9085a 100644
--- a/SynthLab/SynthLabWindow.py
+++ b/SynthLab/SynthLabWindow.py
@@ -41,6 +41,7 @@ class SynthLabWindow( gtk.Window ):
self.updateBounds(i)
self.instanceOpen = 0
self.recordWait = 0
+ self.recCount = 0
self.duration = 1.5
self.durString = '%.2f' % self.duration
self.playingPitch = []
@@ -189,13 +190,13 @@ class SynthLabWindow( gtk.Window ):
if midiPitch not in self.playingPitch:
if self.recordWait == 0:
self.playingPitch.append( midiPitch )
- self.playNote( midiPitch )
+ self.playNote( midiPitch, 0 )
else:
- self.csnd.inputMessage("i5204 0.02 4 " + str(self.table) )
+ #self.csnd.inputMessage("i5204 0.02 4 " + str(self.table) )
self.recordWait = 0
- time.sleep(0.02)
+ #time.sleep(0.02)
self.playingPitch.append( midiPitch )
- self.playNote( midiPitch )
+ self.playNote( midiPitch, self.table )
self.waitRecording()
def resetRecord( self ):
@@ -204,7 +205,7 @@ class SynthLabWindow( gtk.Window ):
return True
def waitRecording(self):
- self.wait = gobject.timeout_add((int(self.duration*1000)) , self.resetRecord )
+ self.wait = gobject.timeout_add(4000 , self.resetRecord )
def onKeyRelease( self, widget, event ):
key = event.hardware_keycode
@@ -220,6 +221,7 @@ class SynthLabWindow( gtk.Window ):
img = int((self.duration - .5) * 1.425 + 1)
self.durLabel.set_from_file(Config.IMAGE_ROOT + 'dur' + str(img) + '.png')
self.parameterUpdate(self.durString)
+ self.tooltips.set_tip(self.durationSlider, Tooltips.SOUNDDUR + ': ' + self.durString)
def showParameter( self, widget, data=None ):
if not self.parameterOpen:
@@ -244,10 +246,12 @@ class SynthLabWindow( gtk.Window ):
if self.parameterOpen:
self.parameter.update(durString)
- def playNote( self, midiPitch ):
+ def playNote( self, midiPitch, table ):
cpsPitch = 261.626*pow(1.0594633, midiPitch-36)
- mess = "i5203 0 " + str(self.duration) + " " + str(cpsPitch) + " " + " " .join([str(n) for n in self.synthObjectsParameters.getOutputParameters()])
+ self.recCount += 1
+ mess = "i5203." + str(self.recCount) + " 0 " + str(self.duration) + " " + str(cpsPitch) + " " + str(table) + " " + " " .join([str(n) for n in self.synthObjectsParameters.getOutputParameters()])
self.csnd.inputMessage( mess )
+ if self.recCount >= 9: self.recCount = 0
def handleClose( self, widget, data ):
if self.instanceOpen:
@@ -372,6 +376,7 @@ class SynthLabWindow( gtk.Window ):
for i in range(self.objectCount):
if self.locations[i] == SynthLabConstants.INIT_LOCATIONS[i] \
and i != self.objectCount-1: continue
+
if self.bounds[i][0] < event.x < self.bounds[i][2] and self.bounds[i][1] < event.y < self.bounds[i][3]:
gate = self.testGates( i, event.x-self.locations[i][0], event.y-self.locations[i][1] )
if gate: