Exemple #1
0
    def _setup_instrument(self):
        self._grid_resolution = GridResolution()

        self._c_instance.playhead.enabled = True
        self._playhead_element = PlayheadElement(self._c_instance.playhead)

        self._drum_group_finder = PercussionInstrumentFinder(
            device_parent=self.song.view.selected_track)

        self._instrument = MinimMonoInstrumentComponent(
            name='InstrumentComponent',
            script=self,
            skin=self._skin,
            drum_group_finder=self._drum_group_finder,
            grid_resolution=self._grid_resolution,
            settings=DEFAULT_INSTRUMENT_SETTINGS,
            device_provider=self._device_provider,
            parent_task_group=self._task_group)
        self._instrument._drumpad._drumgroup._button_coordinates_to_pad_index = lambda first_note, coordinates: coordinates[
            1] + (abs(coordinates[0] - 1) * 4) + first_note
        self._instrument._drumpad._drumgroup.create_translation_entry = lambda button: (
            button.coordinate[1], button.coordinate[
                0] + 2, button.identifier, button.channel)

        self._instrument.layer = Layer(priority=6,
                                       shift_button=self._side_button[3])

        self._instrument.keypad_options_layer = AddLayerMode(
            self._instrument,
            Layer(
                priority=6,
                scale_up_button=self._button[0][3],
                scale_down_button=self._button[0][2],
                offset_up_button=self._button[0][1],
                offset_down_button=self._button[0][0],
            ))
        #vertical_offset_up_button = self._top_button[1],
        #vertical_offset_down_button = self._top_button[0]))
        self._instrument.drumpad_options_layer = AddLayerMode(
            self._instrument,
            Layer(
                priority=6,
                scale_up_button=self._button[0][3],
                scale_down_button=self._button[0][2],
                drum_offset_up_button=self._button[0][1],
                drum_offset_down_button=self._button[0][0],
            ))

        self._instrument._keypad.main_layer = LayerMode(
            self._instrument._keypad,
            Layer(priority=6, keypad_matrix=self._matrix.submatrix[:, 1:3]))
        self._instrument._keypad.select_layer = LayerMode(
            self._instrument._keypad,
            Layer(priority=6,
                  keypad_select_matrix=self._matrix.submatrix[:, 1:3]))

        self._instrument._drumpad.main_layer = LayerMode(
            self._instrument._drumpad,
            Layer(priority=6, drumpad_matrix=self._matrix.submatrix[:, 1:3]))
        self._instrument._drumpad.select_layer = LayerMode(
            self._instrument._drumpad,
            Layer(priority=6,
                  drumpad_select_matrix=self._matrix.submatrix[:, 1:3]))

        self._instrument._main_modes = ModesComponent(name='InstrumentModes')
        self._instrument._main_modes.add_mode('disabled', [])
        self._instrument._main_modes.add_mode('drumpad', [
            self._instrument._drumpad, self._instrument._drumpad.main_layer,
            self._instrument.drumpad_options_layer
        ])
        self._instrument._main_modes.add_mode('drumpad_shifted', [
            self._instrument._drumpad, self._instrument._drumpad.select_layer,
            self._instrument.drumpad_options_layer
        ])
        self._instrument._main_modes.add_mode('keypad', [
            self._instrument._keypad, self._instrument._keypad.main_layer,
            self._instrument.keypad_options_layer
        ])
        self._instrument._main_modes.add_mode('keypad_shifted', [
            self._instrument._keypad, self._instrument._keypad.select_layer,
            self._instrument.keypad_options_layer
        ])
        #self._instrument.register_component(self._instrument._main_modes)

        self._instrument.set_enabled(False)
Exemple #2
0
	def _setup_instrument(self):
		self._grid_resolution = GridResolution()

		self._c_instance.playhead.enabled = True
		self._playhead_element = PlayheadElement(self._c_instance.playhead)
		#self._playhead_element.reset()

		#quantgrid = ButtonMatrixElement([self._base_grid._orig_buttons[2][4:8], self._base_grid._orig_buttons[3][4:7]])

		self._drum_group_finder = PercussionInstrumentFinder(device_parent=self.song.view.selected_track)

		self._instrument = OhmMonoInstrumentComponent(name = 'InstrumentModes', script = self, skin = self._skin, drum_group_finder = self._drum_group_finder, grid_resolution = self._grid_resolution, settings = DEFAULT_INSTRUMENT_SETTINGS, device_provider = self._device_provider, parent_task_group = self._task_group)
		self._instrument.layer = Layer(priority = 5, shift_button = self._livid)
		self._instrument.audioloop_layer = LayerMode(self._instrument, Layer(priority = 5, loop_selector_matrix = self._matrix))

		self._instrument.keypad_options_layer = AddLayerMode(self._instrument, Layer(priority = 5,
									scale_up_button = self._menu[0],
									scale_down_button = self._menu[3],
									offset_up_button = self._menu[1],
									offset_down_button = self._menu[4],
									vertical_offset_up_button = self._menu[2],
									vertical_offset_down_button = self._menu[5],))
		self._instrument.drumpad_options_layer = AddLayerMode(self._instrument, Layer(priority = 5,
									scale_up_button = self._menu[0],
									scale_down_button = self._menu[3],
									drum_offset_up_button = self._menu[1],
									drum_offset_down_button = self._menu[4],
									drumpad_mute_button = self._menu[2],
									drumpad_solo_button = self._menu[5],))

		self._instrument._keypad.octave_toggle_layer = AddLayerMode(self._instrument._keypad, Layer(priority = 5)) #, offset_shift_toggle = self._livid))
		self._instrument._drumpad.octave_toggle_layer = AddLayerMode(self._instrument._drumpad, Layer(priority = 5)) #, offset_shift_toggle = self._livid))

		self._instrument._keypad.main_layer = LayerMode(self._instrument._keypad, Layer(priority = 5, keypad_matrix = self._matrix.submatrix[:,:]))
		self._instrument._keypad.select_layer = LayerMode(self._instrument._keypad, Layer(priority = 5, keypad_select_matrix = self._matrix.submatrix[:, :]))
		self._instrument._keypad.split_layer = LayerMode(self._instrument._keypad, Layer(priority = 5, keypad_matrix = self._matrix.submatrix[:, 2:4]))
		self._instrument._keypad.split_select_layer = LayerMode(self._instrument._keypad, Layer(priority = 5, keypad_select_matrix = self._matrix.submatrix[:, 2:4]))

		self._instrument._keypad.sequencer_layer = AddLayerMode(self._instrument._keypad, Layer(priority = 5, playhead = self._playhead_element, sequencer_matrix = self._matrix.submatrix[:, :4]))
		self._instrument._keypad.sequencer_shift_layer = AddLayerMode(self._instrument._keypad, Layer(priority = 5, loop_selector_matrix = self._matrix.submatrix[:, :4], quantization_buttons = self._matrix.submatrix[:8, 1:2],)) #follow_button = self._pad[15]))

		self._instrument._drumpad.main_layer = LayerMode(self._instrument._drumpad, Layer(priority = 5, drumpad_matrix = self._matrix.submatrix[:,4:], sequencer_matrix = self._matrix.submatrix[:, :2], loop_selector_matrix = self._matrix.submatrix[:, 3:4], playhead = self._playhead_element, quantization_buttons = self._matrix.submatrix[:, 2:3]))
		self._instrument._drumpad.select_layer = LayerMode(self._instrument._drumpad, Layer(priority = 5, drumpad_select_matrix = self._matrix.submatrix[:,4:],  sequencer_matrix = self._matrix.submatrix[:, :2], loop_selector_matrix = self._matrix.submatrix[:, 3:4], playhead = self._playhead_element, quantization_buttons = self._matrix.submatrix[:, 2:3]))
		self._instrument._drumpad.split_layer = LayerMode(self._instrument._drumpad, Layer(priority = 5, drumpad_matrix = self._matrix.submatrix[:4, 4:],))
		self._instrument._drumpad.split_select_layer = LayerMode(self._instrument._drumpad, Layer(priority = 5, drumpad_select_matrix = self._matrix.submatrix[:4,4:]))

		self._instrument._drumpad.sequencer_layer = AddLayerMode(self._instrument._drumpad, Layer(priority = 5, playhead = self._playhead_element, sequencer_matrix = self._matrix.submatrix[:, :4]))
		self._instrument._drumpad.sequencer_shift_layer = AddLayerMode(self._instrument._drumpad, Layer(priority = 5, loop_selector_matrix = self._matrix.submatrix[4:8, :2], quantization_buttons = self._matrix.submatrix[4:8, 2:],)) #follow_button = self._pad[31]))

		self._instrument._selected_session._keys_layer = LayerMode(self._instrument._selected_session, Layer(priority = 5, clip_launch_buttons = self._matrix.submatrix[:, :2]))
		self._instrument._selected_session._drum_layer = LayerMode(self._instrument._selected_session, Layer(priority = 5, clip_launch_buttons = self._matrix.submatrix[4:8, :]))

		self._instrument._main_modes = ModesComponent(parent = self._instrument, name = 'InstrumentModes')
		self._instrument._main_modes.add_mode('disabled', [])
		self._instrument._main_modes.add_mode('drumpad', [self._instrument._drumpad, self._instrument._drumpad.main_layer, self._instrument.drumpad_options_layer])
		self._instrument._main_modes.add_mode('drumpad_split', [self._instrument._drumpad, self._instrument._drumpad.split_layer, self._instrument._selected_session, self._instrument._selected_session._drum_layer])
		self._instrument._main_modes.add_mode('drumpad_sequencer', [self._instrument._drumpad, self._instrument._drumpad.sequencer_layer, self._instrument._drumpad.split_layer])
		self._instrument._main_modes.add_mode('drumpad_shifted', [self._instrument._drumpad, self._instrument._drumpad.select_layer, self._instrument.drumpad_options_layer, self._instrument._drumpad.octave_toggle_layer])
		self._instrument._main_modes.add_mode('drumpad_split_shifted', [ self._instrument._drumpad, self._instrument._drumpad.split_select_layer, self._instrument.drumpad_options_layer, self._instrument._drumpad.octave_toggle_layer, self._instrument._selected_session, self._instrument._selected_session._drum_layer])
		self._instrument._main_modes.add_mode('drumpad_sequencer_shifted', [self._instrument._drumpad, self._instrument._drumpad.split_select_layer, self._instrument._drumpad.sequencer_shift_layer, self._instrument.drumpad_options_layer, self._instrument._drumpad.octave_toggle_layer])
		self._instrument._main_modes.add_mode('keypad', [self._instrument._keypad, self._instrument._keypad.main_layer, self._instrument.keypad_options_layer])
		self._instrument._main_modes.add_mode('keypad_split', [self._instrument._keypad, self._instrument._keypad.split_layer, self._instrument._selected_session, self._instrument._selected_session._keys_layer])
		self._instrument._main_modes.add_mode('keypad_sequencer', [self._instrument._keypad, self._instrument._keypad.sequencer_layer, self._instrument._keypad.split_layer], )
		self._instrument._main_modes.add_mode('keypad_shifted', [self._instrument._keypad, self._instrument._keypad.select_layer, self._instrument.keypad_options_layer, self._instrument._keypad.octave_toggle_layer])
		self._instrument._main_modes.add_mode('keypad_split_shifted', [self._instrument._keypad, self._instrument._keypad.split_select_layer, self._instrument.keypad_options_layer, self._instrument._keypad.octave_toggle_layer, self._instrument._selected_session, self._instrument._selected_session._keys_layer])
		self._instrument._main_modes.add_mode('keypad_sequencer_shifted', [self._instrument._keypad, self._instrument._keypad.split_select_layer, self._instrument._keypad.sequencer_shift_layer, self._instrument.keypad_options_layer, self._instrument._keypad.octave_toggle_layer])
		self._instrument._main_modes.add_mode('audioloop', [self._instrument.audioloop_layer])
		#self._instrument.register_component(self._instrument._main_modes)
		self._instrument.set_enabled(False)
Exemple #3
0
    def __init__(self,
                 deleter=None,
                 undo_handler=None,
                 pad_sensitivity_update=None,
                 playhead=None,
                 velocity_levels=None,
                 continuous_mapping_sensitivity=None,
                 fine_grained_continuous_mapping_sensitivity=None,
                 full_velocity=None,
                 *a,
                 **k):
        (super(Elements, self).__init__)(*a, **k)
        self.foot_pedal_button = DoublePressElement(
            create_button(69, 'Foot_Pedal', is_rgb=True))
        self.nav_up_button = create_button(46, 'Up_Arrow')
        self.nav_down_button = create_button(47, 'Down_Arrow')
        self.nav_left_button = create_button(44, 'Left_Arrow')
        self.nav_right_button = create_button(45, 'Right_Arrow')
        self.shift_button = create_modifier_button(49, 'Shift_Button')
        self.select_button = create_modifier_button(48, 'Select_Button')
        self.delete_button = create_modifier_button(
            118, 'Delete_Button', undo_step_handler=undo_handler)
        self.duplicate_button = create_modifier_button(
            88, 'Duplicate_Button', undo_step_handler=undo_handler)
        self.quantize_button = create_modifier_button(
            116, 'Quantization_Button', undo_step_handler=undo_handler)
        self.accent_button = create_modifier_button(57, 'Accent_Button')
        self.in_button = create_button(62, 'In_Button')
        self.out_button = create_button(63, 'Out_Button')
        self.master_select_button = create_button(28, 'Master_Select_Button')
        self.octave_down_button = create_button(54, 'Octave_Down_Button')
        self.octave_up_button = create_button(55, 'Octave_Up_Button')
        self.repeat_button = create_button(56, 'Repeat_Button')
        self.global_mute_button = create_modifier_button(
            60, 'Global_Mute_Button')
        self.global_solo_button = create_modifier_button(
            61, 'Global_Solo_Button')
        self.global_track_stop_button = create_modifier_button(
            29, 'Track_Stop_Button')
        self.scale_presets_button = create_button(58, 'Scale_Presets_Button')
        self.vol_mix_mode_button = create_button(114, 'Vol_Mix_Mode_Button')
        self.device_mode_button = create_button(110, 'Device_Mode_Button')
        self.clip_mode_button = create_button(113, 'Clip_Mode_Button')
        self.browse_mode_button = create_button(111, 'Browse_Mode_Button')
        self.single_track_mix_mode_button = create_button(
            112, 'Single_Track_Mode_Button')
        self.pan_send_mix_mode_button = create_button(
            115, 'Pan_Send_Mode_Button', resource_type=PrioritizedResource)
        self.note_mode_button = create_modifier_button(50, 'Note_Mode_Button')
        self.session_mode_button = create_button(51, 'Session_Mode_Button')
        self.play_button = create_button(85, 'Play_Button')
        self.new_button = create_button(87, 'New_Button')
        self.automation_button = create_button(89, 'Automation_Button')
        self.tap_tempo_button = create_button(3, 'Tap_Tempo_Button')
        self.metronome_button = create_button(9, 'Metronome_Button')
        self.fixed_length_button = create_button(90, 'Fixed_Length_Button')
        self.record_button = create_modifier_button(86, 'Record_Button')
        self.undo_button = create_button(119, 'Undo_Button')
        self.create_device_button = create_button(
            52, 'Create_Device_Button', undo_step_handler=undo_handler)
        self.create_track_button = create_button(
            53, 'Create_Track_Button', undo_step_handler=undo_handler)
        self.double_button = create_button(117,
                                           'Double_Button',
                                           undo_step_handler=undo_handler)
        self.user_button = create_button(59,
                                         'User_Button',
                                         undo_step_handler=undo_handler)
        self.select_buttons_raw = [
            create_button(20 + idx, 'Track_Select_Button' + str(idx))
            for idx in range(8)
        ]
        self.select_buttons = ButtonMatrixElement(
            name='Track_Select_Buttons', rows=[self.select_buttons_raw])
        self.track_state_buttons_raw = [
            create_button((102 + idx), ('Track_State_Button' + str(idx)),
                          is_rgb=True) for idx in range(8)
        ]
        self.track_state_buttons = ButtonMatrixElement(
            name='Track_State_Buttons', rows=[self.track_state_buttons_raw])
        self.side_buttons_raw = [
            create_button(36 + idx, 'Scene_Launch_Button' + str(idx))
            for idx in reversed(range(8))
        ]
        self.side_buttons = ButtonMatrixElement(name='Scene_Launch_Buttons',
                                                rows=[self.side_buttons_raw])

        @depends(skin=None)
        def create_pad_button(pad_id, name, skin=None, **k):
            return PadButtonElement(pad_id,
                                    pad_sensitivity_update,
                                    True,
                                    MIDI_NOTE_TYPE,
                                    0,
                                    36 + pad_id,
                                    skin=skin,
                                    name=name,
                                    **k)

        self.matrix_rows_raw = [[
            create_pad_button(((7 - row) * 8 + column),
                              (str(column) + '_Clip_' + str(row) + '_Button'),
                              is_rgb=True) for column in range(8)
        ] for row in range(8)]
        double_press_rows = recursive_map(DoublePressElement,
                                          self.matrix_rows_raw)
        self.matrix = ButtonMatrixElement(name='Button_Matrix',
                                          rows=(self.matrix_rows_raw))
        self.double_press_matrix = ButtonMatrixElement(
            name='Double_Press_Matrix', rows=double_press_rows)
        self.single_press_event_matrix = ButtonMatrixElement(
            name='Single_Press_Event_Matrix',
            rows=(recursive_map(lambda x: x.single_press, double_press_rows)))
        self.double_press_event_matrix = ButtonMatrixElement(
            name='Double_Press_Event_Matrix',
            rows=(recursive_map(lambda x: x.double_press, double_press_rows)))
        self.tempo_control_tap = create_note_button(10, 'Tempo_Control_Tap')
        self.tempo_control = TouchEncoderElement(
            channel=0,
            identifier=14,
            map_mode=(consts.GLOBAL_MAP_MODE),
            name='Tempo_Control',
            undo_step_handler=undo_handler,
            delete_handler=deleter,
            encoder_sensitivity=BASE_ENCODER_SENSITIVITY,
            touch_element=(self.tempo_control_tap))
        self.swing_control_tap = create_note_button(9, 'Swing_Control_Tap')
        self.swing_control = TouchEncoderElement(
            channel=0,
            identifier=15,
            map_mode=(consts.GLOBAL_MAP_MODE),
            name='Swing_Control',
            undo_step_handler=undo_handler,
            delete_handler=deleter,
            encoder_sensitivity=BASE_ENCODER_SENSITIVITY,
            touch_element=(self.swing_control_tap))
        self.master_volume_control_tap = create_note_button(
            8, 'Master_Volume_Tap')
        self.master_volume_control = TouchEncoderElement(
            channel=0,
            identifier=79,
            map_mode=(consts.GLOBAL_MAP_MODE),
            undo_step_handler=undo_handler,
            delete_handler=deleter,
            name='Master_Volume_Control',
            encoder_sensitivity=BASE_ENCODER_SENSITIVITY,
            touch_element=(self.master_volume_control_tap))
        self.master_volume_control.mapping_sensitivity = continuous_mapping_sensitivity
        self.global_param_touch_buttons_raw = [
            create_note_button(index, ('Track_Control_Touch_' + str(index)),
                               resource_type=PrioritizedResource)
            for index in range(8)
        ]
        self.global_param_touch_buttons = ButtonMatrixElement(
            name='Track_Control_Touches',
            rows=[self.global_param_touch_buttons_raw])
        self.parameter_controls_raw = [
            TouchEncoderElement(
                channel=0,
                identifier=(71 + index),
                map_mode=(consts.GLOBAL_MAP_MODE),
                undo_step_handler=undo_handler,
                delete_handler=deleter,
                encoder_sensitivity=BASE_ENCODER_SENSITIVITY,
                name=('Track_Control_' + str(index)),
                touch_element=(self.global_param_touch_buttons_raw[index]))
            for index in range(8)
        ]
        self.global_param_controls = ButtonMatrixElement(
            name='Track_Controls', rows=[self.parameter_controls_raw])
        self.fine_grain_param_controls_raw = [
            FineGrainWithModifierEncoderElement(
                encoder, self.shift_button,
                fine_grained_continuous_mapping_sensitivity,
                continuous_mapping_sensitivity)
            for encoder in self.parameter_controls_raw
        ]
        self.fine_grain_param_controls = ButtonMatrixElement(
            rows=[self.fine_grain_param_controls_raw])
        self.any_touch_button = MultiElement(
            *self.global_param_touch_buttons.nested_control_elements())
        self.playhead_element = PlayheadElement(playhead)
        self.velocity_levels_element = VelocityLevelsElement(velocity_levels)
        self.full_velocity_element = FullVelocityElement(full_velocity)
Exemple #4
0
    def _setup_instrument(self):
        self._grid_resolution = self.register_disconnectable(GridResolution())
        #self._c_instance.playhead.enabled = True
        self._playhead_element = PlayheadElement(self._c_instance.playhead)

        self._drum_group_finder = PercussionInstrumentFinder(
            device_parent=self.song.view.selected_track)

        self._instrument = CntrlrMonoInstrumentComponent(
            name='InstrumentComponent',
            is_enabled=True,
            script=self,
            skin=self._skin,
            grid_resolution=self._grid_resolution,
            drum_group_finder=self._drum_group_finder,
            parent_task_group=self._task_group,
            settings=DEFAULT_INSTRUMENT_SETTINGS,
            device_provider=self._device_provider)
        self._instrument.shift_button_layer = AddLayerMode(
            self._instrument, Layer(priority=5, ))
        self._instrument.audioloop_layer = AddLayerMode(
            self._instrument,
            Layer(
                priority=5,
                loop_selector_matrix=self._key_matrix.submatrix[:, 0],
            ))

        self._instrument.keypad_shift_layer = AddLayerMode(
            self._instrument,
            Layer(priority=5,
                  scale_up_button=self._button[13],
                  scale_down_button=self._button[12],
                  offset_up_button=self._button[11],
                  offset_down_button=self._button[10],
                  vertical_offset_up_button=self._button[9],
                  vertical_offset_down_button=self._button[8],
                  split_button=self._button[14],
                  sequencer_button=self._button[15]))

        self._instrument.drumpad_shift_layer = AddLayerMode(
            self._instrument,
            Layer(priority=5,
                  scale_up_button=self._button[13],
                  scale_down_button=self._button[12],
                  drum_offset_up_button=self._button[11],
                  drum_offset_down_button=self._button[10],
                  drumpad_mute_button=self._button[9],
                  drumpad_solo_button=self._button[8],
                  split_button=self._button[14],
                  sequencer_button=self._button[15]))

        self._instrument._keypad.sequencer_layer = LayerMode(
            self._instrument._keypad,
            Layer(
                priority=5,
                playhead=self._playhead_element,
                keypad_matrix=self._matrix.submatrix[:, :],
                sequencer_matrix=self._key_matrix.submatrix[:, 0],
            ))
        self._instrument._keypad.split_layer = LayerMode(
            self._instrument._keypad,
            Layer(priority=5,
                  keypad_matrix=self._matrix.submatrix[:, :],
                  split_matrix=self._key_matrix.submatrix[:14, 0]))
        self._instrument._keypad.sequencer_shift_layer = LayerMode(
            self._instrument._keypad,
            Layer(
                priority=5,
                keypad_select_matrix=self._matrix.submatrix[:, :],
                loop_selector_matrix=self._key_matrix.submatrix[:8, 0],
                quantization_buttons=self._key_matrix.submatrix[:8, 1],
            ))
        #follow_button = self._button[23]))
        self._instrument._keypad.sequencer_session_layer = LayerMode(
            self._instrument._keypad,
            Layer(priority=5,
                  playhead=self._playhead_element,
                  sequencer_matrix=self._key_matrix.submatrix[:, :1]))
        self._instrument._keypad.split_session_layer = LayerMode(
            self._instrument._keypad,
            Layer(priority=5,
                  split_matrix=self._key_matrix.submatrix[:16, :1]))
        self._instrument._keypad.sequencer_session_shift_layer = LayerMode(
            self._instrument._keypad,
            Layer(
                priority=5,
                loop_selector_matrix=self._key_matrix.submatrix[:8, :1],
                quantization_buttons=self._key_matrix.submatrix[:7, 1:],
            ))
        #follow_button = self._button[23]))

        self._instrument._drumpad.sequencer_layer = LayerMode(
            self._instrument._drumpad,
            Layer(
                priority=5,
                playhead=self._playhead_element,
                drumpad_matrix=self._matrix.submatrix[:, :],
                sequencer_matrix=self._key_matrix.submatrix[:, 0],
            ))
        self._instrument._drumpad.split_layer = LayerMode(
            self._instrument._drumpad,
            Layer(priority=5,
                  drumpad_matrix=self._matrix.submatrix[:, :],
                  split_matrix=self._key_matrix.submatrix[:16, :1]))
        self._instrument._drumpad.sequencer_shift_layer = LayerMode(
            self._instrument._drumpad,
            Layer(
                priority=5,
                drumpad_select_matrix=self._matrix.submatrix[:, :],
                loop_selector_matrix=self._key_matrix.submatrix[:8, :1],
                quantization_buttons=self._key_matrix.submatrix[:7, 1:],
            ))
        #follow_button = self._button[23]))
        self._instrument._drumpad.sequencer_session_layer = LayerMode(
            self._instrument._drumpad,
            Layer(priority=5,
                  sequencer_matrix=self._key_matrix.submatrix[:, :1]))
        self._instrument._drumpad.split_session_layer = LayerMode(
            self._instrument._drumpad,
            Layer(priority=5,
                  split_matrix=self._key_matrix.submatrix[:16, :1]))
        self._instrument._drumpad.sequencer_session_shift_layer = LayerMode(
            self._instrument._drumpad,
            Layer(
                priority=5,
                loop_selector_matrix=self._key_matrix.submatrix[:8, :1],
                quantization_buttons=self._key_matrix.submatrix[:8, 1:],
            ))  #follow_button = self._button[23]))