Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/Edit
diff options
context:
space:
mode:
authorOli <olivier.belanger@umontreal.ca>2007-06-28 17:31:03 (GMT)
committer Oli <olivier.belanger@umontreal.ca>2007-06-28 17:31:03 (GMT)
commit91141480fe401a9abc4cd994a90fd8bc21980e8c (patch)
tree1a068f8094f5bf67a383c9f6e3a484403b9384ab /Edit
parent7ef90d5655514c2c3f1177ba58d90da8451aad36 (diff)
keyboard recording and brush tool changes
Diffstat (limited to 'Edit')
-rw-r--r--Edit/MainWindow.py14
-rw-r--r--Edit/TrackInterface.py22
2 files changed, 30 insertions, 6 deletions
diff --git a/Edit/MainWindow.py b/Edit/MainWindow.py
index b75f3a8..248f9af 100644
--- a/Edit/MainWindow.py
+++ b/Edit/MainWindow.py
@@ -256,7 +256,7 @@ class MainWindow( SubActivity ):
#self.GUI["2XYSliderYAdjustment"] = gtk.Adjustment( 650, 500, 1000, 1, 1, 1 )
#self.GUI["2XYSlider"] = XYSlider( self.GUI["2XYSliderFixed"], self.GUI["2XYSliderButton"], self.GUI["2XYSliderXAdjustment"], self.GUI["2XYSliderYAdjustment"], True, True )
#self.GUI["2rightPanel"].pack_start( self.GUI["2XYSlider"], False, False, 0 )
- self.trackInterface = TrackInterface( self.noteDB, self )
+ self.trackInterface = TrackInterface( self.noteDB, self, self.getScale )
self.noteDB.addListener( self.trackInterface, TrackInterfaceParasite, True )
self.trackInterface.set_size_request( -1, 713 )
self.GUI["2rightPanel"].pack_start( self.trackInterface, False, False, 0 )
@@ -810,6 +810,9 @@ class MainWindow( SubActivity ):
#else:
# recordButton.hide()
+ def getScale(self):
+ return self.generationPanel.scale
+
def handleVolume( self, widget ):
self._data["volume"] = round( widget.get_value() )
self.csnd.setMasterVolume(self._data["volume"])
@@ -1632,7 +1635,8 @@ class MainWindow( SubActivity ):
return
self.noteDB.updateNote( n.page, n.track, n.id, PARAMETER.DURATION, adjustedDuration)
if onsetQuantized >= n.cs.onset and (onsetQuantized+2) <= (n.cs.onset + n.cs.duration):
- return
+ self.noteDB.deleteNote(n.page, n.track, n.id)
+ #return
csnote = CSoundNote(onset = 0,
pitch = pitch,
@@ -1693,7 +1697,8 @@ class MainWindow( SubActivity ):
for n in self.noteDB.getNotesByTrack( csId[0], csId[1] ):
if csId[3] < n.cs.onset and (csId[3] + newDuration) >= n.cs.onset:
- newDuration = n.cs.onset - csId[3]
+ self.noteDB.deleteNote(n.page, n.track, n.id)
+ #newDuration = n.cs.onset - csId[3]
break
self.noteDB.updateNote( csId[0], csId[1], csId[2], PARAMETER.DURATION, newDuration)
@@ -1711,7 +1716,8 @@ class MainWindow( SubActivity ):
for n in self.noteDB.getNotesByTrack( self.csId[0], self.csId[1] ):
if self.csId[3] < n.cs.onset and (self.csId[3] + newDuration) > n.cs.onset:
- newDuration = n.cs.onset - self.csId[3]
+ self.noteDB.deleteNote(n.page, n.track, n.id)
+ #newDuration = n.cs.onset - self.csId[3]
break
self.noteDB.updateNote( self.csId[0], self.csId[1], self.csId[2], PARAMETER.DURATION, newDuration)
diff --git a/Edit/TrackInterface.py b/Edit/TrackInterface.py
index 5475d55..76231a9 100644
--- a/Edit/TrackInterface.py
+++ b/Edit/TrackInterface.py
@@ -12,7 +12,7 @@ from Edit.MainWindow import CONTEXT
from Util.NoteDB import PARAMETER
from Util.CSoundNote import CSoundNote
-
+from Generation.GenerationConstants import GenerationConstants
from Util.Profiler import TP
class SELECTNOTES:
@@ -42,11 +42,12 @@ class TrackInterfaceParasite:
class TrackInterface( gtk.EventBox ):
- def __init__( self, noteDB, owner ):
+ def __init__( self, noteDB, owner, getScaleFunction ):
gtk.EventBox.__init__( self )
self.noteDB = noteDB
self.owner = owner
+ self.getScale = getScaleFunction
self.drawingArea = gtk.DrawingArea()
self.drawingAreaDirty = False # are we waiting to draw?
@@ -390,6 +391,7 @@ class TrackInterface( gtk.EventBox ):
TP.ProfileEnd( "TI::handleButtonPress" )
return
elif self.interfaceMode == INTERFACEMODE.PAINT:
+ self.scale = self.getScale()
self.painting = True
self.paintTrack = i
self.GRID = 3.
@@ -409,6 +411,15 @@ class TrackInterface( gtk.EventBox ):
pitch = 48
else:
pitch = pitch
+
+ minDiff = 100
+ for pit in GenerationConstants.SCALES[self.scale]:
+ diff = abs(pitch-(pit+36))
+ if diff < minDiff:
+ minDiff = diff
+ nearestPit = pit
+ pitch = nearestPit+36
+
onset = self.pixelsToTicksFloor( self.curBeats, self.clickLoc[0] - self.trackRect[i].x )
onset = self.GRID * int(onset / self.GRID + 0.5)
self.pLastPos = onset
@@ -511,6 +522,13 @@ class TrackInterface( gtk.EventBox ):
pitch = 48
else:
pitch = pitch
+ minDiff = 100
+ for pit in GenerationConstants.SCALES[self.scale]:
+ diff = abs(pitch-(pit+36))
+ if diff < minDiff:
+ minDiff = diff
+ nearestPit = pit
+ pitch = nearestPit+36
onset = gridPos
if i != self.drumIndex: