Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/TamTamJam.activity/Jam/Popup.py
diff options
context:
space:
mode:
authoramartin <olpc@xo-05-28-21.localdomain>2007-09-22 09:58:06 (GMT)
committer amartin <olpc@xo-05-28-21.localdomain>2007-09-22 09:58:06 (GMT)
commit4754a96b660213b785a09023b4c305fbb24a590d (patch)
treed224c7f66595a3bd66037c6284abc9459f1fa7d9 /TamTamJam.activity/Jam/Popup.py
parent500db320e639d38e1ea0cd851df4f97a7cc3f254 (diff)
Jam keyboard recording
Diffstat (limited to 'TamTamJam.activity/Jam/Popup.py')
-rw-r--r--TamTamJam.activity/Jam/Popup.py12
1 files changed, 8 insertions, 4 deletions
diff --git a/TamTamJam.activity/Jam/Popup.py b/TamTamJam.activity/Jam/Popup.py
index ce0204e..7ca17d0 100644
--- a/TamTamJam.activity/Jam/Popup.py
+++ b/TamTamJam.activity/Jam/Popup.py
@@ -810,7 +810,7 @@ class Loop( Popup ):
self.owner.pushInstrument( self.instrument )
self.owner.setKeyboardListener( self )
- self.owner.playMetronome( self.grid )
+ self.owner.addMetronome( self.curPage, self.grid )
self.recordLoop = self.owner._playLoop( self.instrument["id"], self.instrument["amplitude"], self.instrument["reverb"], [ self.curPage ], force = True, sync = False )
self.updatePlayhead()
self.recordTimeout = gobject.timeout_add( 20, self._record_timeout )
@@ -826,7 +826,7 @@ class Loop( Popup ):
if self.recordingNote:
self.finishNote()
- self.owner.stopMetronome()
+ self.owner.removeMetronome( self.curPage )
self.owner._stopLoop( self.recordLoop )
self.recordLoop = None
self.clearPlayhead()
@@ -843,6 +843,7 @@ class Loop( Popup ):
onset = self.grid * int( onset/self.grid + 0.5 )
if onset < 0: onset += ticks
elif onset >= ticks: onset -= ticks
+ self.recordingNotePassed = False
cs = CSoundNote( onset,
pitch,
@@ -865,7 +866,7 @@ class Loop( Popup ):
self.recordingNote = self.noteDB.addNote( -1, self.curPage, 0, cs )
- self.recordLoop = self.owner._playLoop( self.instrument["id"], self.instrument["amplitude"], self.instrument["reverb"], [ self.curPage ], self.recordLoop, force = True )
+ self.recordLoop = self.owner._playLoop( self.instrument["id"], self.instrument["amplitude"], self.instrument["reverb"], [ self.curPage ], self.recordLoop, force = True, sync = False )
def finishNote( self ):
self.recordingNote = None
@@ -886,7 +887,10 @@ class Loop( Popup ):
note = self.noteDB.getNote( self.curPage, 0, self.recordingNote )
- if tick < note.cs.onset:
+ if tick > note.cs.onset:
+ self.recordingNotePassed = True
+
+ if self.recordingNotePassed and tick < note.cs.onset:
tick = self.noteDB.getPage( self.curPage ).ticks
self.noteDB.updateNote( note.page, note.track, note.id, PARAMETER.DURATION, tick - note.cs.onset )
for n in self.noteDB.getNotesByTrack( self.curPage, 0 ):