def __init__(self, clip_creator = None, parameter_provider = None, grid_resolution = None, note_editor_settings = None, skin = None, instrument_play_layer = None, instrument_sequence_layer = None, layer = None, *a, **k): super(MelodicComponent, self).__init__(*a, **k) self._matrices = None self._grid_resolution = grid_resolution self._instrument = self.register_component(InstrumentComponent()) self._note_editors = self.register_components(*[ NoteEditorComponent(settings_mode=note_editor_settings, clip_creator=clip_creator, grid_resolution=self._grid_resolution, is_enabled=False) for _ in xrange(NUM_NOTE_EDITORS) ]) self._paginator = NoteEditorPaginator(self._note_editors) self._loop_selector = self.register_component(LoopSelectorComponent(clip_creator=clip_creator, paginator=self._paginator, is_enabled=False)) self._playhead = None self._playhead_component = self.register_component(PlayheadComponent(grid_resolution=grid_resolution, paginator=self._paginator, follower=self._loop_selector, is_enabled=False)) self.add_mode('play', LayerMode(self._instrument, instrument_play_layer)) self.add_mode('sequence', [LayerMode(self._instrument, instrument_sequence_layer), self._loop_selector, note_editor_settings, LayerMode(self, layer), self._playhead_component] + self._note_editors) self.selected_mode = 'play' scales = self._instrument.scales self._on_detail_clip_changed.subject = self.song().view self._on_scales_changed.subject = scales self._on_scales_preset_changed.subject = scales._presets self._on_notes_changed.subject = self._instrument self._on_selected_mode_changed.subject = self self._on_detail_clip_changed() self._update_note_editors() self._skin = skin self._playhead_color = 'Melodic.Playhead' self._update_playhead_color()
def _create_encoder_modes(self): self._encoder_modes = DisablingModesComponent() self._encoder_modes.default_behaviour = mixin(SkinableBehaviourMixin, ImmediateBehaviour)() device_mode = LayerMode( self._device, Layer(parameter_controls=self._encoders, bank_buttons=self._top_pad_row)) pan_mode = AddLayerMode(self._mixer, Layer(pan_controls=self._encoders)) sends_mode = AddLayerMode(self._mixer, Layer(send_controls=self._encoders)) background_mode = LayerMode(self._background, Layer(bank_buttons=self._top_pad_row)) self._encoder_modes.add_mode('device_mode', device_mode, is_enabled=True) self._encoder_modes.add_mode('pan_mode', [pan_mode, background_mode], is_enabled=True) for index in xrange(6): self._encoder_modes.add_mode('send_%d_mode' % (index, ), [ sends_mode, partial(self._set_send_index, index), background_mode ], is_enabled=False) self._encoder_modes.selected_mode = 'device_mode' self._encoder_modes.set_enabled(True)
def _setup_main_mode(self): strip_layer = Layer( volume_control = self._knobs.get_button(3, 0), arm_button = self._buttons.get_button(3, 0), send_controls = self._knobs.submatrix[:, 1]) mixer_layer = Layer( prehear_volume_control = self._knobs.get_button(0, 0), return_track_select_buttons = self._buttons.submatrix[:, 1]) device_layer = Layer( on_off_button = self._buttons.get_button(3, 3), parameter_controls = self._knobs.submatrix[:, 2:], lock_button = self._buttons.get_button(2, 3)) metronome_layer = Layer( lights = self._buttons.submatrix[:, 2]) device_bg = BackgroundComponent(color = 'Device.Background') device_bg_layer = Layer(priority = -10, lights = self._buttons.submatrix[:, 2:]) self._modes.add_mode('main_mode', [ lambda: self.show_message('Switched to main mode'), LayerMode(self._strip, strip_layer), LayerMode(self._mixer, mixer_layer), LayerMode(self._metronome, metronome_layer), LayerMode(device_bg, device_bg_layer), LayerMode(self._device, device_layer) ])
def _create_device_mode(self): device_mode_scene_launch_translation = self._create_translation( 'Device_Mode_Scene_Launch_Translation', consts.DEVICE_MAP_CHANNEL, Layer(scene_launch_buttons=self. _midimap['Scene_Launch_Button_Matrix'])) device_layer_mode = LayerMode( self._device, layer=Layer( parameter_controls=self._midimap['Slider_Button_Matrix'])) device_nav_layer_mode = LayerMode( self._device_navigation, layer=Layer( device_nav_left_button=self._midimap['Arrow_Left_Button'], device_nav_right_button=self._midimap['Arrow_Right_Button'])) device_background_layer_mode = LayerMode( self._device_background, layer=Layer(arrow_up_button=self._midimap['Arrow_Up_Button'], arrow_down_button=self._midimap['Arrow_Down_Button'])) self._modes.add_mode('device_mode', [ partial(self._layout_setup, consts.FADER_LAYOUT_SYSEX_BYTE), self._device, device_layer_mode, device_nav_layer_mode, device_background_layer_mode, self._clip_actions_component, self._clip_delete_layer_mode, device_mode_scene_launch_translation, self._show_playing_clip, self._set_clip_actions_type ], behaviour=ReenterBehaviour( self.toggle_detail_view))
def _create_mixer(self): self._mixer = MixerComponent(is_enabled=False, num_tracks=consts.SESSION_WIDTH, invert_mute_feedback=True, enable_skinning=True, name='Mixer', is_root=True) self._session.set_mixer(self._mixer) self._mixer_home_page_layer = LayerMode( self._mixer, Layer(volume_reset_buttons=self._volume_reset_buttons, pan_reset_buttons=self._pan_reset_buttons, send_a_reset_buttons=self._send_a_reset_buttons, send_b_reset_buttons=self._send_b_reset_buttons, mute_buttons=self._mute_buttons, solo_buttons=self._solo_buttons, arm_buttons=self._arm_buttons, unmute_all_button=self._mute_button, unsolo_all_button=self._solo_button, unarm_all_button=self._record_arm_button)) self._mixer_volume_layer = LayerMode( self._mixer, Layer(volume_controls=self._sliders)) self._mixer_pan_layer = LayerMode(self._mixer, Layer(pan_controls=self._sliders)) self._mixer_sends_layer = LayerMode(self._mixer, Layer(send_controls=self._sliders))
def __init__(self, num_tracks, mode_layer = None, pan_volume_layer = None, sends_layer = None, *a, **k): super(SpecialMixerComponent, self).__init__(num_tracks, *a, **k) self.set_enabled(False) self._send_controls = None self._selected_send_index = 0 self._modes = self.register_component(ModesComponent()) self._modes.add_mode('pan_volume', [LayerMode(self, pan_volume_layer)]) self._modes.add_mode('sends', [LayerMode(self, sends_layer)], behaviour=SendSelectButtonBehaviour(self)) self._modes.selected_mode = 'pan_volume' self._modes.layer = mode_layer self._on_visible_tracks.subject = self.song() self._on_selected_mixer_mode.subject = self._modes
def _create_arrangement_mode(self): self._arrangement_mixer = SpecialMixerComponent( NUM_TRACKS, auto_name=True, is_enabled=True, invert_mute_feedback=True) self._arrangement_mixer.name = 'Arrangement_Mixer_Control' self._arrangement.set_mixer(self._arrangement_mixer) arrangement_mixer_layer_mode = LayerMode( self._arrangement_mixer, layer=Layer( track_select_buttons=self._midimap['Main_Button_Matrix']. submatrix[4, :], arm_buttons=self._midimap['Main_Button_Matrix'].submatrix[ 7, :], solo_buttons=self._midimap['Main_Button_Matrix'].submatrix[ 6, :], mute_buttons=self._midimap['Main_Button_Matrix'].submatrix[ 5, :])) # LHS_layer_mode = LayerMode( quantize_button=self._midimap['Quantize_Button'] ) self._modes.add_mode('arrangement_mode', [ partial(self._layout_setup, consts.SESSION_LAYOUT_SYSEX_BYTE), arrangement_mixer_layer_mode, self._arrangement.update_navigation_buttons ], behaviour=ReenterBehaviour( self.toggle_detail_view))
def _create_note_modes(self): note_mode_matrix_translation = self._create_translation('Note_Mode_Matrix_Translation', consts.CHROM_MAP_CHANNEL, Layer(button_matrix=self._midimap['Main_Button_Matrix'], note_button_matrix=self._midimap['Note_Button_Matrix'], drum_matrix=self._midimap['Drum_Button_Matrix'], mixer_button_matrix=self._midimap['Mixer_Button_Matrix']), should_enable=False) note_mode_scene_launch_translation = self._create_translation('Note_Mode_Scene_Launch_Translation', consts.CHROM_MAP_CHANNEL, Layer(scene_launch_buttons=self._midimap['Scene_Launch_Button_Matrix'])) scale_setup_mode_button_lighting = LedLightingComponent(name='LED_Lighting_Component', is_enabled=False, layer=Layer(button=self._midimap.with_shift('Note_Mode_Button'))) drum_mode_note_matrix_translation = self._create_translation('Drum_Mode_Note_Button_Translation', 0, Layer(note_button_matrix=self._midimap['Note_Button_Matrix']), should_enable=False, should_reset=False) drum_group_layer_mode = LayerMode(self._drum_group, layer=Layer(scroll_up_button=self._midimap['Arrow_Left_Button'], scroll_down_button=self._midimap['Arrow_Right_Button'], scroll_page_up_button=self._midimap['Arrow_Up_Button'], scroll_page_down_button=self._midimap['Arrow_Down_Button'], drum_matrix=self._midimap['Drum_Button_Matrix'], select_button=self._midimap['Shift_Button'], delete_button=self._midimap['Delete_Button'])) self._note_modes = SpecialModesComponent(name='Note_Modes') self._note_modes.add_mode('chromatic_mode', [ partial(self._layout_setup, consts.NOTE_LAYOUT_SYSEX_BYTE), self._clip_delete_layer_mode, note_mode_matrix_translation, scale_setup_mode_button_lighting]) self._note_modes.add_mode('drum_mode', [ partial(self._layout_setup, consts.DRUM_LAYOUT_SYSEX_BYTE), self._setup_drum_group, drum_group_layer_mode, drum_mode_note_matrix_translation]) self._note_modes.add_mode('audio_mode', [ partial(self._layout_setup, consts.AUDIO_LAYOUT_SYSEX_BYTE), self._clip_delete_layer_mode]) self._note_modes.set_enabled(False) self._modes.add_mode('note_mode', [ note_mode_scene_launch_translation, self._note_modes, self._select_note_mode, self._select_target_track, self._clip_actions_component, self._show_playing_clip, self._set_clip_actions_type], behaviour=ReenterBehaviour(self.toggle_detail_view)) self._session_record.set_modes_component(self._modes) self._session_record.set_note_mode_name('note_mode')
def _init_modes(self): self._modes = ModesComponent() self._modes.add_mode('mixer', [partial(self._session.set_mixer, self._mixer), LayerMode(self._session, self._mixer_track_nav_layer), self._mixer, self._session, self._show_controlled_tracks_message]) self._modes.add_mode('session', [partial(self._session.set_mixer, self._session_mixer), LayerMode(self._session, self._session_layer), self._session_mixer, self._session, self._show_controlled_tracks_message]) self._modes.add_mode('device', [self._device, self._device_navigation, self._view_control]) self._modes.add_mode('user', None) self._modes.selected_mode = 'mixer' self._modes.layer = Layer(mixer_button=ButtonSysexControl(Sysex.MIXER_MODE), session_button=ButtonSysexControl(Sysex.SESSION_MODE), device_button=ButtonSysexControl(Sysex.DEVICE_MODE))
def _create_encoder_modes(self): knob_modes = ModesComponent(name='Knob Modes', is_enabled=False) parameter_knobs_matrix = self.wrap_matrix(self._parameter_knobs) knob_modes.add_mode( 'volume', AddLayerMode(self._mixer, Layer(volume_controls=parameter_knobs_matrix))) knob_modes.add_mode( 'pan', AddLayerMode(self._mixer, Layer(pan_controls=parameter_knobs_matrix))) knob_modes.add_mode('send', [ AddLayerMode(self._mixer, Layer(send_controls=parameter_knobs_matrix)), DelayMode(LayerMode( SendToggleComponent( self._mixer, name='Toggle Send', is_enabled=False), Layer(priority=MODE_PRIORITY, toggle_button=self._send_button)), delay=TIMER_DELAY) ]) knob_modes.add_mode( 'device', AddLayerMode(self._device, Layer(parameter_controls=parameter_knobs_matrix))) knob_modes.selected_mode = 'volume' knob_modes.layer = Layer(volume_button=self._volume_button, pan_button=self._pan_button, send_button=self._send_button, device_button=self._device_button) knob_modes.layer.priority = MODE_PRIORITY
def _create_solo_mode(self): solo_layer_mode = LayerMode(self._mixer, layer=Layer(solo_buttons=self._midimap['Mixer_Button_Matrix'])) self._modes.add_mode('solo_mode', [partial(self._layout_setup, consts.SESSION_LAYOUT_SYSEX_BYTE), self._session_layer_mode, solo_layer_mode, self._session_zooming_manager, self._prioritized_session_zooming_button_layer_mode, self._session.update_navigation_buttons], behaviour=SpecialReenterBehaviour('session_mode'))
def _create_sends_mode(self): send_layer_mode = LayerMode(self._mixer, layer=Layer(send_controls=self._midimap['Slider_Button_Matrix'], send_select_buttons=self._midimap['Scene_Launch_Button_Matrix'])) self._modes.add_mode('sends_mode', [partial(self._layout_setup, consts.FADER_LAYOUT_SYSEX_BYTE), send_layer_mode, self._action_button_background_layer_mode, self._session_zooming_manager, self._prioritized_session_zooming_button_layer_mode, self._session.update_navigation_buttons], behaviour=SpecialReenterBehaviour('session_mode'))
def _create_mode_selector(self): self._mode_selector = ModesComponent() mode_selection = LayerMode(self._encoder_modes, Layer(device_mode_button=self._device_mode_button, pan_mode_button=self._pan_mode_button, **self._send_mode_buttons)) device_navigation = AddLayerMode(self._device, Layer(device_nav_left_button=self._track_left_button, device_nav_right_button=self._track_right_button)) self._mode_selector.add_mode(u'mode_selection', [partial(self._toggle_in_control, True), mode_selection, device_navigation], behaviour=MomentaryBehaviour()) session_control = AddLayerMode(self._session, Layer(clip_launch_buttons=self._top_pad_row)) self._mode_selector.add_mode(u'session_mode', [partial(self._toggle_in_control, False), session_control]) self._mode_selector.layer = Layer(mode_selection_button=self._encoder_incontrol_button2)
def _create_session_zooming_modes(self): session_zoom_layer = Layer(button_matrix=self._midimap['Main_Button_Matrix'], nav_left_button=self._midimap['Arrow_Left_Button'], nav_right_button=self._midimap['Arrow_Right_Button'], nav_up_button=self._midimap['Arrow_Up_Button'], nav_down_button=self._midimap['Arrow_Down_Button']) session_zooming_layer_mode = LayerMode(self._session_zoom, session_zoom_layer) self._session_zooming_manager = SessionZoomingManagerComponent(self._modes, is_enabled=False) session_zooming_button_layer_mode = LayerMode(self._session_zooming_manager, Layer(session_zooming_button=self._midimap['Session_Mode_Button'])) self._prioritized_session_zooming_button_layer_mode = LayerMode(self._session_zooming_manager, Layer(session_zooming_button=self._midimap['Session_Mode_Button'], priority=1)) self._session_zooming_background = BackgroundComponent(name='Session_Zooming_Background') session_zooming_background_layer_mode = LayerMode(self._session_zooming_background, Layer(scene_launch_buttons=self._midimap['Scene_Launch_Button_Matrix'], delete_button=self._midimap['Delete_Button'], quantize_button=self._midimap['Quantize_Button'], duplicate_button=self._midimap['Duplicate_Button'], double_loop_button=self._midimap['Double_Loop_Button'])) self._modes.add_mode('session_zooming_mode', [self._session_zooming_manager, session_zooming_button_layer_mode, session_zooming_layer_mode, session_zooming_background_layer_mode]) self._modes.add_mode('prioritized_session_zooming_mode', [partial(self._layout_switch, consts.SESSION_LAYOUT_SYSEX_BYTE), self._session_zooming_manager, self._prioritized_session_zooming_button_layer_mode, session_zooming_layer_mode, session_zooming_background_layer_mode, self.update])
def _setup_adhoc_mode(self): device_layers = [ Layer( lock_button = self._buttons.get_button(n, 3), on_off_button = self._buttons.get_button(n, 2), param_offset_button = self._buttons.get_button(n, 1), parameter_controls = self._knobs.submatrix[n, 3::-1]) for n in range(4) ] self._modes.add_mode('adhoc_mode', [ lambda: self.show_message('Switched to ad-hoc device mode') ] + [ LayerMode(self._adhoc_devices[n], device_layers[n]) for n in range(4) ])
def _create_pan_mode(self): pan_mode_scene_launch_translation = self._create_translation('Pan_Mode_Scene_Launch_Translation', consts.PAN_MAP_CHANNEL, Layer(scene_launch_buttons=self._midimap['Scene_Launch_Button_Matrix'])) pan_layer_mode = LayerMode(self._mixer, layer=Layer(pan_controls=self._midimap['Slider_Button_Matrix'])) self._modes.add_mode('pan_mode', [partial(self._layout_setup, consts.FADER_LAYOUT_SYSEX_BYTE), pan_layer_mode, self._action_button_background_layer_mode, self._session_zooming_manager, self._prioritized_session_zooming_button_layer_mode, pan_mode_scene_launch_translation, self._session.update_navigation_buttons], behaviour=SpecialReenterBehaviour('session_mode'))
def _create_modes(self): self._encoder_modes = ModesComponent() device_layer_mode = LayerMode(self._device, Layer(parameter_controls=self._encoders)) device_navigation_layer_mode = LayerMode( self._device_navigation, Layer(device_nav_right_button=self._forward_button, device_nav_left_button=self._backward_button)) self._encoder_modes.add_mode( b'device_mode', [device_layer_mode, device_navigation_layer_mode]) self._encoder_modes.add_mode( b'pan_mode', AddLayerMode( self._mixer, Layer(pan_controls=self._encoders, bank_up_button=self._forward_button, bank_down_button=self._backward_button, track_up_button=self._ff_button, track_down_button=self._rw_button))) send_layer_mode = AddLayerMode( self._mixer, Layer(send_controls=self._encoders, bank_up_button=self._forward_button, bank_down_button=self._backward_button, track_up_button=self._ff_button, track_down_button=self._rw_button)) self._encoder_modes.add_mode( b'send_a_mode', [send_layer_mode, partial(self._set_send_index, 0)]) self._encoder_modes.add_mode( b'send_b_mode', [send_layer_mode, partial(self._set_send_index, 1)]) self._encoder_modes.layer = Layer( device_mode_button=self._device_mode_button, pan_mode_button=self._pan_mode_button, send_a_mode_button=self._send_a_mode_button, send_b_mode_button=self._send_b_mode_button) self._encoder_modes.selected_mode = b'device_mode' self._encoder_modes.set_enabled(True)
def _create_modes(self): self._modes = ModesComponent(name='Launchpad_Modes', is_enabled=False) self._session_layer_mode = AddLayerMode( self._session, Layer(scene_launch_buttons=self. _midimap['Scene_Launch_Button_Matrix'], clip_launch_buttons=self._midimap['Main_Button_Matrix'], delete_button=self._midimap['Delete_Button'], duplicate_button=self._midimap['Duplicate_Button'], double_button=self._midimap['Double_Loop_Button'], quantize_button=self._midimap['Quantize_Button'])) # self._arrangement_layer_mode = AddLayerMode(self._arrangement, Layer(transport_buttons=self._midimap['Scene_Launch_Button_Matrix'], track_buttons=self._midimap['Main_Button_Matrix'], quantize_button=self._midimap['Quantize_Button'])) action_button_background = BackgroundComponent(name='No_Op_Buttons') self._action_button_background_layer_mode = LayerMode( action_button_background, Layer(delete_button=self._midimap['Delete_Button'], quantize_button=self._midimap['Quantize_Button'], duplicate_button=self._midimap['Duplicate_Button'], double_button=self._midimap['Double_Loop_Button'])) self._clip_delete_layer_mode = AddLayerMode( self._clip_actions_component, layer=Layer(delete_button=self._midimap['Delete_Button'])) self._create_session_zooming_modes() self._create_session_mode() self._create_note_modes() self._create_device_mode() # self._create_user_mode() self._create_arrangement_mode() self._create_record_arm_mode() self._create_track_select_mode() self._create_mute_mode() self._create_solo_mode() self._create_volume_mode() self._create_pan_mode() self._create_sends_mode() self._create_stop_clips_mode() self._modes.layer = Layer( session_mode_button=self._midimap['Session_Mode_Button'], note_mode_button=self._midimap['Note_Mode_Button'], device_mode_button=self._midimap['Device_Mode_Button'], arrangement_mode_button=self._midimap['User_Mode_Button'], record_arm_mode_button=self._midimap['Record_Arm_Mode_Button'], track_select_mode_button=self._midimap['Track_Select_Mode_Button'], mute_mode_button=self._midimap['Mute_Mode_Button'], solo_mode_button=self._midimap['Solo_Mode_Button'], volume_mode_button=self._midimap['Volume_Mode_Button'], pan_mode_button=self._midimap['Pan_Mode_Button'], sends_mode_button=self._midimap['Sends_Mode_Button'], stop_clip_mode_button=self._midimap['Stop_Clip_Mode_Button']) self._modes.selected_mode = 'session_mode' self._on_layout_changed.subject = self._modes self._create_view_control_component()
def _create_page(self, index): page_num = index + 1 mode_name = "page{}_mode".format(page_num) msg = lambda: self.show_message("Switched to page {}".format(page_num)) devices = [ DeviceComponentEx(schedule_message=self.schedule_message, top_buttons=self._buttons.submatrix[:, 0], log=self.log_message) for n in range(3) ] layers = [ Layer(knobs=self._knobs.submatrix[:, n + 1], buttons=self._buttons.submatrix[:, n + 1]) for n in range(3) ] modes = [LayerMode(devices[n], layers[n]) for n in range(3)] self._modes.add_mode(mode_name, modes + [msg])
def set_layers(self, midimap): common_layer_mode = LayerMode( self._common_component, layer=Layer( arrow_left_button=midimap['Arrow_Left_Button'], arrow_right_button=midimap['Arrow_Right_Button'], arrow_up_button=midimap['Arrow_Up_Button'], arrow_down_button=midimap['Arrow_Down_Button'], scale_button=midimap['Scene_Launch_Button_Matrix_Raw'][0][0], scale_up_button=midimap['Scene_Launch_Button_Matrix_Raw'][0] [1], scale_down_button=midimap['Scene_Launch_Button_Matrix_Raw'][0] [2], dummy_button=midimap['Scene_Launch_Button_Matrix_Raw'][0][3], play_button=midimap['Scene_Launch_Button_Matrix_Raw'][0][6], stop_button=midimap['Scene_Launch_Button_Matrix_Raw'][0][7])) drum_group_layer_mode = LayerMode( self._control_surface._drum_group, layer=Layer( #scroll_up_button = midimap['Scene_Launch_Button_Matrix_Raw'][0][1], #scroll_down_button = midimap['Scene_Launch_Button_Matrix_Raw'][0][2], mute_button=midimap['Scene_Launch_Button_Matrix_Raw'][0][4], solo_button=midimap['Scene_Launch_Button_Matrix_Raw'][0][5], #scroll_up_button=midimap['Arrow_Left_Button'], #scroll_down_button=midimap['Arrow_Right_Button'], #scroll_page_up_button=midimap['Arrow_Up_Button'], #scroll_page_down_button=midimap['Arrow_Down_Button'], #drum_matrix = midimap['Drum_Button_Matrix']#, drum_matrix=midimap['Main_Button_Matrix'] #select_button = midimap['Shift_Button'], #delete_button = midimap['Delete_Button'] )) self._modes.add_mode( 'drum_mode', [ partial(self._control_surface._layout_setup, consts.SESSION_LAYOUT_SYSEX_BYTE), partial(self._control_surface._layout_setup, consts.USER_LAYOUT_SYSEX_BYTE, consts.SYSEX_PARAM_BYTE_STANDALONE_LAYOUT), #partial(self._control_surface._layout_setup, consts.DRUM_LAYOUT_SYSEX_BYTE), self._control_surface._setup_drum_group(), drum_group_layer_mode, common_layer_mode #, #drum_mode_note_matrix_translation ]) scale_layer_mode = LayerMode( self._scale_component, layer=Layer(matrix=midimap['Main_Button_Matrix'])) self._modes.add_mode( 'scale_mode', [ partial(self._control_surface._layout_setup, consts.SESSION_LAYOUT_SYSEX_BYTE), partial(self._control_surface._layout_setup, consts.USER_LAYOUT_SYSEX_BYTE, consts.SYSEX_PARAM_BYTE_STANDALONE_LAYOUT), scale_layer_mode, common_layer_mode #, #drum_mode_note_matrix_translation ]) note_layer_mode = LayerMode( self._note_component, layer=Layer( matrix=midimap['Main_Button_Matrix'] #select_button = midimap['Shift_Button'], #delete_button = midimap['Delete_Button'] )) self._modes.add_mode( 'note_mode', [ partial(self._control_surface._layout_setup, consts.SESSION_LAYOUT_SYSEX_BYTE), partial(self._control_surface._layout_setup, consts.USER_LAYOUT_SYSEX_BYTE, consts.SYSEX_PARAM_BYTE_STANDALONE_LAYOUT), note_layer_mode, common_layer_mode #, #drum_mode_note_matrix_translation ]) #Audio mode audio_layer_mode = LayerMode( AudioModeComponent(), layer=Layer(matrix=midimap['Main_Button_Matrix'])) self._modes.add_mode( 'audio_mode', [ partial(self._control_surface._layout_setup, consts.SESSION_LAYOUT_SYSEX_BYTE), partial(self._control_surface._layout_setup, consts.DRUM_LAYOUT_SYSEX_BYTE, consts.SYSEX_PARAM_BYTE_STANDALONE_LAYOUT), #partial(self._control_surface._layout_setup, consts.DRUM_LAYOUT_SYSEX_BYTE),#consts.AUDIO_LAYOUT_SYSEX_BYTE), self._control_surface._clip_delete_layer_mode, common_layer_mode, audio_layer_mode ])