diff options
author | Nat <natcl@hotmail.com> | 2007-06-25 19:10:33 (GMT) |
---|---|---|
committer | Nat <natcl@hotmail.com> | 2007-06-25 19:10:33 (GMT) |
commit | 293bca0d2086a7fe04a8517acb618817d3858f5f (patch) | |
tree | 2e68536016fa7ed5cc63c08c063b668c65d10e8a /Edit | |
parent | 28185285179f3e3579514e1122d80fa5288f8927 (diff) |
Active buttons for mute/solo
Diffstat (limited to 'Edit')
-rw-r--r-- | Edit/MainWindow.py | 100 |
1 files changed, 78 insertions, 22 deletions
diff --git a/Edit/MainWindow.py b/Edit/MainWindow.py index aceab85..56b9bb5 100644 --- a/Edit/MainWindow.py +++ b/Edit/MainWindow.py @@ -69,6 +69,7 @@ class MainWindow( SubActivity ): self.playScope = "Selection" self.displayedPage = -1 self.trackSelected = [ 0 for i in range(Config.NUMBER_OF_TRACKS) ] + self.trackActive = [ 1 for i in range(Config.NUMBER_OF_TRACKS) ] self.pages_playing = [] @@ -108,13 +109,20 @@ class MainWindow( SubActivity ): # + + instrument 1 box self.GUI["2instrument1Box"] = formatRoundBox( RoundHBox(), Config.BG_COLOR ) self.GUI["2instrument1Box"].set_size_request( -1, 137 ) + self.GUI["2instrument1volBox"] = gtk.VBox() self.GUI["2instrument1volumeAdjustment"] = gtk.Adjustment( self._data["track_volume"][1], 0, 100, 1, 1, 0 ) #self.GUI["2instrument1volumeAdjustment"].connect( "value_changed", self.onTrackVolumeChanged, 0 ) self.GUI["2instrument1volumeSlider"] = ImageVScale( Config.IMAGE_ROOT+"sliderInst1.png", self.GUI["2instrument1volumeAdjustment"], 6 ) self.GUI["2instrument1volumeSlider"].set_inverted(True) self.GUI["2instrument1volumeSlider"].set_size_request( 30, -1 ) self.GUI["2instrument1volumeAdjustment"].connect( "value-changed", self.handleTrackVolume, 0 ) - self.GUI["2instrument1Box"].pack_start( self.GUI["2instrument1volumeSlider"], False, False, 0 ) + self.GUI["2instrument1muteButton"] = gtk.CheckButton(label = None) + self.GUI["2instrument1muteButton"].connect("toggled",self.handlemuteButton,0) + self.GUI["2instrument1muteButton"].connect("button-press-event",self.handlemuteButtonRightClick,0) + self.GUI["2instrument1muteButton"].set_active(True) + self.GUI["2instrument1volBox"].pack_start( self.GUI["2instrument1volumeSlider"], True, True, 0 ) + self.GUI["2instrument1volBox"].pack_start( self.GUI["2instrument1muteButton"], False, False, 0 ) + self.GUI["2instrument1Box"].pack_start( self.GUI["2instrument1volBox"], False, False, 0 ) self.GUI["2instrument1Button"] = ImageToggleButton(Config.IMAGE_ROOT + self.trackInstrument[0].name + '.png', Config.IMAGE_ROOT + self.trackInstrument[0].name + '.png') self.GUI["2instrument1Button"].connect("toggled", self.pickInstrument, 0 ) self.GUI["2instrument1Box"].pack_start( self.GUI["2instrument1Button"] ) @@ -122,13 +130,20 @@ class MainWindow( SubActivity ): # + + instrument 2 box self.GUI["2instrument2Box"] = formatRoundBox( RoundHBox(), Config.BG_COLOR ) self.GUI["2instrument2Box"].set_size_request( -1, 137 ) + self.GUI["2instrument2volBox"] = gtk.VBox() self.GUI["2instrument2volumeAdjustment"] = gtk.Adjustment( self._data["track_volume"][1], 0, 100, 1, 1, 0 ) #self.GUI["2instrument2volumeAdjustment"].connect( "value_changed", self.onTrackVolumeChanged, 1 ) self.GUI["2instrument2volumeSlider"] = ImageVScale( Config.IMAGE_ROOT+"sliderInst2.png", self.GUI["2instrument2volumeAdjustment"], 6 ) self.GUI["2instrument2volumeSlider"].set_inverted(True) self.GUI["2instrument2volumeSlider"].set_size_request( 30, -1 ) self.GUI["2instrument2volumeAdjustment"].connect( "value-changed", self.handleTrackVolume, 1 ) - self.GUI["2instrument2Box"].pack_start( self.GUI["2instrument2volumeSlider"], False, False, 0 ) + self.GUI["2instrument2muteButton"] = gtk.CheckButton(label = None) + self.GUI["2instrument2muteButton"].connect("toggled",self.handlemuteButton,1) + self.GUI["2instrument2muteButton"].connect("button-press-event",self.handlemuteButtonRightClick,1) + self.GUI["2instrument2muteButton"].set_active(True) + self.GUI["2instrument2volBox"].pack_start( self.GUI["2instrument2volumeSlider"], True, True, 0 ) + self.GUI["2instrument2volBox"].pack_start( self.GUI["2instrument2muteButton"], False, False, 0 ) + self.GUI["2instrument2Box"].pack_start( self.GUI["2instrument2volBox"], False, False, 0 ) self.GUI["2instrument2Button"] = ImageToggleButton(Config.IMAGE_ROOT + self.trackInstrument[1].name + '.png', Config.IMAGE_ROOT + self.trackInstrument[1].name + '.png') self.GUI["2instrument2Button"].connect("toggled", self.pickInstrument, 1 ) self.GUI["2instrument2Box"].pack_start( self.GUI["2instrument2Button"] ) @@ -136,13 +151,20 @@ class MainWindow( SubActivity ): # + + instrument 3 box self.GUI["2instrument3Box"] = formatRoundBox( RoundHBox(), Config.BG_COLOR ) self.GUI["2instrument3Box"].set_size_request( -1, 137 ) + self.GUI["2instrument3volBox"] = gtk.VBox() self.GUI["2instrument3volumeAdjustment"] = gtk.Adjustment( self._data["track_volume"][2], 0, 100, 1, 1, 0 ) #self.GUI["2instrument3volumeAdjustment"].connect( "value_changed", self.onTrackVolumeChanged, 2 ) self.GUI["2instrument3volumeSlider"] = ImageVScale( Config.IMAGE_ROOT+"sliderInst3.png", self.GUI["2instrument3volumeAdjustment"], 6 ) self.GUI["2instrument3volumeSlider"].set_inverted(True) self.GUI["2instrument3volumeSlider"].set_size_request( 30, -1 ) self.GUI["2instrument3volumeAdjustment"].connect( "value-changed", self.handleTrackVolume, 2 ) - self.GUI["2instrument3Box"].pack_start( self.GUI["2instrument3volumeSlider"], False, False, 0 ) + self.GUI["2instrument3muteButton"] = gtk.CheckButton(label = None) + self.GUI["2instrument3muteButton"].connect("toggled",self.handlemuteButton,2) + self.GUI["2instrument3muteButton"].connect("button-press-event",self.handlemuteButtonRightClick,2) + self.GUI["2instrument3muteButton"].set_active(True) + self.GUI["2instrument3volBox"].pack_start( self.GUI["2instrument3volumeSlider"], True, True, 0 ) + self.GUI["2instrument3volBox"].pack_start( self.GUI["2instrument3muteButton"], False, False, 0 ) + self.GUI["2instrument3Box"].pack_start( self.GUI["2instrument3volBox"], False, False, 0 ) self.GUI["2instrument3Button"] = ImageToggleButton(Config.IMAGE_ROOT + self.trackInstrument[2].name + '.png', Config.IMAGE_ROOT + self.trackInstrument[2].name + '.png') self.GUI["2instrument3Button"].connect("toggled", self.pickInstrument, 2 ) self.GUI["2instrument3Box"].pack_start( self.GUI["2instrument3Button"] ) @@ -150,13 +172,20 @@ class MainWindow( SubActivity ): # + + instrument 4 box self.GUI["2instrument4Box"] = formatRoundBox( RoundHBox(), Config.BG_COLOR ) self.GUI["2instrument4Box"].set_size_request( -1, 137 ) + self.GUI["2instrument4volBox"] = gtk.VBox() self.GUI["2instrument4volumeAdjustment"] = gtk.Adjustment( self._data["track_volume"][3], 0, 100, 1, 1, 0 ) #self.GUI["2instrument4volumeAdjustment"].connect( "value_changed", self.onTrackVolumeChanged, 3 ) self.GUI["2instrument4volumeSlider"] = ImageVScale( Config.IMAGE_ROOT+"sliderInst4.png", self.GUI["2instrument4volumeAdjustment"], 6 ) self.GUI["2instrument4volumeSlider"].set_inverted(True) self.GUI["2instrument4volumeSlider"].set_size_request( 30, -1 ) self.GUI["2instrument4volumeAdjustment"].connect( "value-changed", self.handleTrackVolume, 3 ) - self.GUI["2instrument4Box"].pack_start( self.GUI["2instrument4volumeSlider"], False, False, 0 ) + self.GUI["2instrument4muteButton"] = gtk.CheckButton(label = None) + self.GUI["2instrument4muteButton"].connect("toggled",self.handlemuteButton,3) + self.GUI["2instrument4muteButton"].connect("button-press-event",self.handlemuteButtonRightClick,3) + self.GUI["2instrument4muteButton"].set_active(True) + self.GUI["2instrument4volBox"].pack_start( self.GUI["2instrument4volumeSlider"], True, True, 0 ) + self.GUI["2instrument4volBox"].pack_start( self.GUI["2instrument4muteButton"], False, False, 0 ) + self.GUI["2instrument4Box"].pack_start( self.GUI["2instrument4volBox"], False, False, 0 ) self.GUI["2instrument4Button"] = ImageToggleButton(Config.IMAGE_ROOT + self.trackInstrument[3].name + '.png', Config.IMAGE_ROOT + self.trackInstrument[3].name + '.png') self.GUI["2instrument4Button"].connect("toggled", self.pickInstrument, 3 ) self.GUI["2instrument4Box"].pack_start( self.GUI["2instrument4Button"] ) @@ -164,13 +193,20 @@ class MainWindow( SubActivity ): # + + drum box self.GUI["2drumBox"] = formatRoundBox( RoundHBox(), Config.BG_COLOR ) self.GUI["2drumBox"].set_size_request( -1, 165 ) + self.GUI["2drumVolBox"] = gtk.VBox() self.GUI["2drumvolumeAdjustment"] = gtk.Adjustment( self._data["track_volume"][4], 0, 100, 1, 1, 0 ) #self.GUI["2drumvolumeAdjustment"].connect( "value_changed", self.onTrackVolumeChanged, 4 ) self.GUI["2drumvolumeSlider"] = ImageVScale( Config.IMAGE_ROOT+"sliderDrum.png", self.GUI["2drumvolumeAdjustment"], 6 ) self.GUI["2drumvolumeSlider"].set_inverted(True) self.GUI["2drumvolumeSlider"].set_size_request( 30, -1 ) self.GUI["2drumvolumeAdjustment"].connect( "value-changed", self.handleTrackVolume, 4 ) - self.GUI["2drumBox"].pack_start( self.GUI["2drumvolumeSlider"], False, False, 0 ) + self.GUI["2drumMuteButton"] = gtk.CheckButton(label = None) + self.GUI["2drumMuteButton"].connect("toggled",self.handlemuteButton,4) + self.GUI["2drumMuteButton"].connect("button-press-event",self.handlemuteButtonRightClick,4) + self.GUI["2drumMuteButton"].set_active(True) + self.GUI["2drumVolBox"].pack_start( self.GUI["2drumvolumeSlider"], True, True, 0 ) + self.GUI["2drumVolBox"].pack_start( self.GUI["2drumMuteButton"], False, False, 0 ) + self.GUI["2drumBox"].pack_start( self.GUI["2drumVolBox"], False, False, 0 ) self.GUI["2drumButton"] = ImageToggleButton(Config.IMAGE_ROOT + self.trackInstrument[4].name + '.png', Config.IMAGE_ROOT + self.trackInstrument[4].name + '.png') self.GUI["2drumButton"].connect("toggled", self.pickDrum) self.GUI["2drumBox"].pack_start( self.GUI["2drumButton"] ) @@ -561,16 +597,13 @@ class MainWindow( SubActivity ): self.csnd.loopDeactivate() - trackset = set( [ i for i in range(Config.NUMBER_OF_TRACKS) if self.trackSelected[i] ] ) + trackset = set( [ i for i in range(Config.NUMBER_OF_TRACKS) if self.trackActive[i] ] ) notes = [] - if len(trackset) == 0 or len(trackset) == Config.NUMBER_OF_TRACKS: - for page in self.pages_playing: - notes += self.noteDB.getNotesByPage( page ) - else: - for page in self.pages_playing: - for track in trackset: - notes += self.noteDB.getNotesByTrack( page, track ) + + for page in self.pages_playing: + for track in trackset: + notes += self.noteDB.getNotesByTrack( page, track ) #print self.pages_playing for n in notes: @@ -617,7 +650,7 @@ class MainWindow( SubActivity ): if True : #self.pages_playing != toPlay: # rebuild note loop self.pages_playing = toPlay[:] - trackset = set( [ i for i in range(Config.NUMBER_OF_TRACKS) if self.trackSelected[i] ] ) + trackset = set( [ i for i in range(Config.NUMBER_OF_TRACKS) if self.trackActive[i] ] ) numticks = 0 self.page_onset = {} @@ -626,13 +659,9 @@ class MainWindow( SubActivity ): numticks += self.noteDB.getPage(pid).ticks notes = [] - if len(trackset) == 0 or len(trackset) == Config.NUMBER_OF_TRACKS: - for page in self.pages_playing: - notes += self.noteDB.getNotesByPage( page ) - else: - for page in self.pages_playing: - for track in trackset: - notes += self.noteDB.getNotesByTrack( page, track ) + for page in self.pages_playing: + for track in trackset: + notes += self.noteDB.getNotesByTrack( page, track ) if (Config.DEBUG > 3): print 'rebuild note loop' @@ -862,7 +891,34 @@ class MainWindow( SubActivity ): instrumentId = Config.INSTRUMENTS[instrumentName].instrumentId, reverbSend = 0), secs_per_tick) - + + def handlemuteButton(self,widget,track): + if widget.get_active(): + self.trackActive[track] = True + else: + self.trackActive[track] = False + self.updatePagesPlaying() + + def handlemuteButtonRightClick(self,widget,event,track): + if event.button == 3: + widget.set_active(True) + #if the other tracks are inactive + if self.trackActive.count(False) == Config.NUMBER_OF_TRACKS - 1: + for i in range(Config.NUMBER_OF_TRACKS): + if i == 4: + self.GUI["2drumMuteButton"].set_active(True) + else: + self.GUI["2instrument" + str(i+1) + "muteButton"].set_active(True) + self.updatePagesPlaying() + else: + for i in range(Config.NUMBER_OF_TRACKS): + if i != track: + if i == 4: + self.GUI["2drumMuteButton"].set_active(False) + else: + self.GUI["2instrument" + str(i+1) + "muteButton"].set_active(False) + self.updatePagesPlaying() + #----------------------------------- # generation functions #----------------------------------- |