def _create_session(self): self._session = SessionComponent( num_tracks=self._pads.width(), num_scenes=self._pads.height(), name='Session', is_enabled=False, layer=Layer(clip_launch_buttons=self._pads, scene_select_control=self._vertical_scroll_encoder)) self._session.set_enabled(True)
def _setup_session_control(self): self._session = SessionComponent(num_tracks=2, num_scenes=1, name=u'Session', is_enabled=False) # set horizontal scene selector (this is why we import SessionComponent from _Arturia!) self._session.set_scene_select_control(self._center_browse_encoder) # set launch-buttons for scene self._session.selected_scene().clip_slot(0).set_launch_button( self._left_play_button) self._session.selected_scene().clip_slot(1).set_launch_button( self._right_play_button) # hightlite the current selection self.set_highlighting_session_component(self._session) self._session.set_enabled(True) # ----------- add functionality to turn playing-light on-off def update_lights(track, button): playing_clip_idx = track.playing_slot_index if playing_clip_idx >= 0: button.turn_on() else: button.turn_off() def update_playlight_left(): track = self.song().tracks[LEFT_STRIP_ID] update_lights(track, self._left_play_button) def update_playlight_right(): track = self.song().tracks[RIGHT_STRIP_ID] update_lights(track, self._right_play_button) self.song().tracks[LEFT_STRIP_ID].add_playing_slot_index_listener( update_playlight_left) self.song().tracks[RIGHT_STRIP_ID].add_playing_slot_index_listener( update_playlight_right) # override the selected scene change behaviour of the playing light self.song().view.add_selected_scene_listener(update_playlight_left) self.song().view.add_selected_scene_listener(update_playlight_right)