Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/miniTamTam
diff options
context:
space:
mode:
authorOli <olivier.belanger@umontreal.ca>2007-07-19 00:39:46 (GMT)
committer Oli <olivier.belanger@umontreal.ca>2007-07-19 00:39:46 (GMT)
commit36b024ff659878920fe1378bbb81820dc0ab4b13 (patch)
tree84e34cac0cadb6d976fa0f59a09be2470b747773 /miniTamTam
parent2f077d6fe08a46cd583287e1985f79f116329bcc (diff)
parent1f3bff4d4b565bc655bd26f30e3d7df363c97b99 (diff)
Merge branch 'master' of git+ssh://olipet@dev.laptop.org/git/projects/tamtam
Diffstat (limited to 'miniTamTam')
-rw-r--r--miniTamTam/KeyboardStandAlone.py10
-rw-r--r--miniTamTam/miniTamTamMain.py46
2 files changed, 37 insertions, 19 deletions
diff --git a/miniTamTam/KeyboardStandAlone.py b/miniTamTam/KeyboardStandAlone.py
index a5f7c49..fcbca15 100644
--- a/miniTamTam/KeyboardStandAlone.py
+++ b/miniTamTam/KeyboardStandAlone.py
@@ -11,7 +11,7 @@ from Util import Instrument
KEY_MAP_PIANO = Config.KEY_MAP_PIANO
-log = file('/home/olpc/log.tamtam','w')
+#log = file('/home/olpc/log.tamtam','w')
class KeyboardStandAlone:
def __init__( self, recordingFunction, adjustDurationFunction, getCurrentTick, getPlayState, loop ):
@@ -91,12 +91,12 @@ class KeyboardStandAlone:
mode = 'mini'))
instrumentName = self.instrument
- print >>log, 'instrumentName:', instrumentName
+ #print >>log, 'instrumentName:', instrumentName
pitch = KEY_MAP_PIANO[key]
- if instrumentName in Instrument.DRUM :
- print >>log, 'kit_element: ', Config.KIT_ELEMENT[pitch]
- playkey(36,100, Instrument.DRUM[instrumentName][ Config.KIT_ELEMENT[pitch] ] )
+ if instrumentName in Instrument.KIT:
+ #print >>log, 'kit_element: ', Config.KIT_ELEMENT[pitch]
+ playkey(36,100, Instrument.KIT[instrumentName][ Config.KIT_ELEMENT[pitch] ] )
else:
if event.state == gtk.gdk.MOD1_MASK:
diff --git a/miniTamTam/miniTamTamMain.py b/miniTamTam/miniTamTamMain.py
index 056e7e4..0c43ae9 100644
--- a/miniTamTam/miniTamTamMain.py
+++ b/miniTamTam/miniTamTamMain.py
@@ -68,7 +68,7 @@ class miniTamTamMain(SubActivity):
self.loop = Loop(self.beat, sqrt( self.instVolume*0.01 ))
self.csnd.loopSetTempo(self.tempo)
self.noteList = []
- time.sleep(0.001)
+ time.sleep(0.001) # why?
self.trackpad = Trackpad( self )
for i in range(21):
self.csnd.setTrackVolume( 100, i )
@@ -109,6 +109,7 @@ class miniTamTamMain(SubActivity):
self.synthLabWindow = None
+
self.beatPickup = True
#self.regenerate()
@@ -249,17 +250,19 @@ class miniTamTamMain(SubActivity):
beatSliderBox.pack_start(self.beatSliderBoxImgTop, False, padding=10)
beatSliderBox.pack_start(self.beatSlider, True, 20)
self.tooltips.set_tip(self.beatSlider,Tooltips.BEAT)
+
+ self.delayedTempo = 0 # used to store tempo updates while the slider is active
+ self.tempoSliderActive = False
tempoSliderBox = gtk.VBox()
self.tempoSliderBoxImgTop = gtk.Image()
self.tempoSliderBoxImgTop.set_from_file(Config.IMAGE_ROOT + 'tempo5.png')
self.tempoAdjustment = gtk.Adjustment(value=self.tempo, lower=Config.PLAYER_TEMPO_LOWER, upper=Config.PLAYER_TEMPO_UPPER, step_incr=1, page_incr=1, page_size=1)
- #tempoSlider = ImageVScale( Config.IMAGE_ROOT + "sliderbutvert.png", self.tempoAdjustment, 5)
- tempoSlider = gtk.VScale( self.tempoAdjustment)
- #TEMP
+ tempoSlider = ImageVScale( Config.IMAGE_ROOT + "sliderbutvert.png", self.tempoAdjustment, 5)
tempoSlider.set_inverted(True)
tempoSlider.set_size_request(15,320)
self.tempoAdjustmentHandler = self.tempoAdjustment.connect("value_changed" , self.handleTempoSliderChange)
+ tempoSlider.connect("button-press-event", self.handleTempoSliderPress)
tempoSlider.connect("button-release-event", self.handleTempoSliderRelease)
tempoSliderBox.pack_start(self.tempoSliderBoxImgTop, False, padding=10)
tempoSliderBox.pack_start(tempoSlider, True)
@@ -491,21 +494,31 @@ class miniTamTamMain(SubActivity):
self.regenerate()
self.beatPickup = True
+ def handleTempoSliderPress(self, widget, event):
+ self.tempoSliderActive = True
+
def handleTempoSliderRelease(self, widget, event):
- #self.tempo = int(widget.get_adjustment().value)
- #self.csnd.loopSetTempo(self.tempo)
- #self.sequencer.tempo = widget.get_adjustment().value
- #self.drumFillin.setTempo(self.tempo)
- pass
+ self.tempoSliderActive = False
+ if self.network.isPeer() and self.delayedTempo != 0:
+ if self.tempo != self.delayedTempo:
+ print "applying delayed tempo", self.delayedTempo
+ self.tempoAdjustment.handler_block( self.tempoAdjustmentHandler )
+ print "a"
+ self.tempoAdjustment.set_value( self.delayedTempo )
+ print "b"
+ self._updateTempo( self.delayedTempo )
+ self.tempoAdjustment.handler_unblock( self.tempoAdjustmentHandler )
+ self.delayedTempo = 0
+ self.sendSyncQuery()
def handleTempoSliderChange(self,adj):
print "handleTempoSliderChange"
if self.network.isPeer():
self.requestTempoChange(int(adj.value))
else:
- self._updateTempo( int(adj.value), True )
+ self._updateTempo( int(adj.value) )
- def _updateTempo( self, val, propagate = False ):
+ def _updateTempo( self, val ):
if self.network.isHost():
t = time.time()
@@ -767,11 +780,14 @@ class miniTamTamMain(SubActivity):
def processHT_TEMPO_UPDATE( self, sock, message, data ):
print "got tempo update"
self.unpacker.reset(data)
- self.tempoAdjustment.handler_block( self.tempoAdjustmentHandler )
val = self.unpacker.unpack_int()
+ if self.tempoSliderActive:
+ print "delaying update", val
+ self.delayedTempo = val
+ return
+ self.tempoAdjustment.handler_block( self.tempoAdjustmentHandler )
print "a"
self.tempoAdjustment.set_value( val )
- time.sleep(0.01)
print "b"
self._updateTempo( val )
self.tempoAdjustment.handler_unblock( self.tempoAdjustmentHandler )
@@ -791,11 +807,13 @@ class miniTamTamMain(SubActivity):
print "done"
def processPR_REQUEST_TEMPO_CHANGE( self, sock, message, data ):
+ if self.tempoSliderActive:
+ print "got tempo change request, but ignoring"
+ return
self.unpacker.reset(data)
val = self.unpacker.unpack_int()
print "got tempo change", val
self.tempoAdjustment.set_value( val )
- time.sleep(0.01)
print "done"
#-----------------------------------------------------------------------