diff options
author | Oli <olivier.belanger@umontreal.ca> | 2007-08-15 06:39:59 (GMT) |
---|---|---|
committer | Oli <olivier.belanger@umontreal.ca> | 2007-08-15 06:39:59 (GMT) |
commit | 1b9d2cd2bd9e3135b2aedd16e8cebc59d483c088 (patch) | |
tree | 8f4c22571c68325fb730efa5f45d07046a1e3e2f /Edit/MainWindow.py | |
parent | f5e6fbe03050917940ea5673adb6625971e7eb6d (diff) |
dual instruments on melodic tracks
Diffstat (limited to 'Edit/MainWindow.py')
-rw-r--r-- | Edit/MainWindow.py | 45 |
1 files changed, 24 insertions, 21 deletions
diff --git a/Edit/MainWindow.py b/Edit/MainWindow.py index ad42a25..15d0468 100644 --- a/Edit/MainWindow.py +++ b/Edit/MainWindow.py @@ -52,7 +52,7 @@ class MainWindow( SubActivity ): for i in [6,7,8,9,10]: self.csnd.setTrackVolume(100, i) self.trackCount = 6 - + # Toolbar self.activity.activity_toolbar.keep.show() self._mainToolbar = mainToolbar(self.activity.toolbox, self) @@ -79,6 +79,9 @@ class MainWindow( SubActivity ): if len(self.trackInstrument) != Config.NUMBER_OF_TRACKS: raise 'error' self.drumIndex = Config.NUMBER_OF_TRACKS - 1 + #second instrument for melodic tracks + self.trackInstrument2Default = [ Config.INSTRUMENTS["harmonica"], None, Config.INSTRUMENTS["rhodes"], None] + self.trackInstrument2 = self.trackInstrument2Default[:] self._data['volume'] = Config.DEFAULT_VOLUME self._data['tempo'] = Config.PLAYER_TEMPO @@ -731,9 +734,6 @@ class MainWindow( SubActivity ): Config.INSTRUMENTS[random.choice(keyboardPickup)], Config.INSTRUMENTS[random.choice(drumsPickup)] ] -# for tid in range(Config.NUMBER_OF_TRACKS): -# self.handleInstrumentChanged( ( tid, self.trackInstrument[tid] ) ) - def chooseGenParams(self): choose = random.randint(0,4) density = GenerationConstants.RYTHM_DENSITY_BANK[choose] @@ -914,11 +914,25 @@ class MainWindow( SubActivity ): self.page_onset[pid] = numticks numticks += self.noteDB.getPage(pid).ticks + # check for a second instrument on melodic tracks + stream = [] + for page in self.pages_playing: + for track in trackset: + if track != self.drumIndex: + if self.trackInstrument2[track] != None: + if len(self.noteDB.getNotesByTrack(page, track)): + stream += [ page, track, NoteDB.PARAMETER.INSTRUMENT2, len(self.noteDB.getNotesByTrack(page, track)) ] + for n in self.noteDB.getNotesByTrack(page, track): + stream += [ n.id, self.trackInstrument2[track].instrumentId ] + if len(stream): + self.noteDB.updateNotes( stream + [-1] ) + notes = [] for page in self.pages_playing: for track in trackset: notes += self.noteDB.getNotesByTrack( page, track ) + if (Config.DEBUG > 3): print 'rebuild note loop' print 'pages : ', self.pages_playing @@ -989,7 +1003,7 @@ class MainWindow( SubActivity ): def handleClose(self,widget): self.activity.close() - + def onTimeout(self): self.updateFPS() @@ -1050,17 +1064,6 @@ class MainWindow( SubActivity ): pages = self.tuneInterface.getSelectedIds() self.noteDB.setInstrument( pages, id, instrument.instrumentId ) - #self.noteLooper.setInstrument(id, instrumentName) - - #recordButton = self.instrumentRecordButtons[ id ] - #if instrumentName in Config.RECORDABLE_INSTRUMENTS: - # recordButton.show() - # recordButton.connect( "clicked", - # self.handleMicRecord, - # Config.RECORDABLE_INSTRUMENT_CSOUND_IDS[ instrumentName ] ) - #else: - # recordButton.hide() - def getScale(self): return self.generationPanel.scale @@ -1093,7 +1096,7 @@ class MainWindow( SubActivity ): def handleToolClick( self, widget, mode ): if widget.get_active(): self.trackInterface.setInterfaceMode( mode ) - + def handleToolClick2( self, widget, mode ): self.trackInterface.setInterfaceMode( mode ) @@ -1214,7 +1217,7 @@ class MainWindow( SubActivity ): beatsOfPages[pageId] = self.noteDB.pages[pageId].beats instruments = self.noteDB.getInstruments(newpages) - + #[ i.name for i in self.trackInstrument ], algo( params, @@ -1529,7 +1532,7 @@ class MainWindow( SubActivity ): self.GUI["9generationPopup"].move( balloc.x + winLoc[0], balloc.y - walloc.height + winLoc[1] ) else: self.GUI["9generationPopup"].hide() - + def setPageGenerateMode(self, mode): self.generateMode = mode @@ -2062,12 +2065,12 @@ class MainWindow( SubActivity ): if self.context == CONTEXT.PAGE: self.GUI["2pageBox"].show() elif self.context == CONTEXT.TRACK: self.GUI["2trackBox"].show() else: self.GUI["2noteBox"].show() - + if self.context == CONTEXT.NOTE: self._mainToolbar.generationButton.set_sensitive(False) else: self._mainToolbar.generationButton.set_sensitive(True) - + def getContext(self): return self.context |