def _create_pad_modes(self): self._pad_modes = ModesComponent( name='Pad_Modes', is_enabled=False, layer=Layer(session_button='full_level_button', note_button='note_repeat_button', channel_button='select_button', encoder_modes_button='setup_button')) self._pad_modes.add_mode( 'session', (AddLayerMode(self._background, Layer(unused_pads='pads_with_shift')), AddLayerMode( self._session, Layer(clip_launch_buttons='pads', scene_launch_buttons=( self._elements.pads_with_shift.submatrix[3:, :]))), self._session_overview, self._session_navigation_modes)) self._pad_modes.add_mode('note', self._note_modes) self._pad_modes.add_mode( 'channel', (self._elements.pads.reset, AddLayerMode( self._mixer, Layer(arm_buttons=(self._elements.pads.submatrix[:, :1]), solo_buttons=(self._elements.pads.submatrix[:, 1:2]), track_select_buttons=( self._elements.pads.submatrix[:, 2:3]))), AddLayerMode( self._session, Layer(stop_track_clip_buttons=( self._elements.pads.submatrix[:, 3:]))), self._session_navigation_modes)) self._pad_modes.add_mode( 'encoder_modes', (LayerMode( self._encoder_modes, Layer(volume_button=(self._elements.pads_raw[0][0]), pan_button=(self._elements.pads_raw[0][1]), send_a_button=(self._elements.pads_raw[0][2]), send_b_button=(self._elements.pads_raw[0][3]))), AddLayerMode( self._background, Layer(unused_pads=(self._elements.pads.submatrix[:, 1:])))), behaviour=(MomentaryBehaviour())) self._pad_modes.selected_mode = 'session' self._pad_modes.set_enabled(True)
def _create_pad_modes(self): self._pad_modes = ModesComponent( name='Pad_Modes', is_enabled=False, layer=Layer(mode_selection_control='pad_layout_switch')) bg_mode = AddLayerMode( (self._background), layer=Layer(scene_launch_buttons='scene_launch_buttons')) self._pad_modes.add_mode('custom', bg_mode) self._pad_modes.add_mode('drum', (bg_mode, self._drum_group)) self._pad_modes.add_mode( 'session', LayerMode((self._stop_solo_mute_modes), layer=Layer(cycle_mode_button=( self._elements.scene_launch_buttons_raw[1])))) self._pad_modes.selected_mode = 'session' self._pad_modes.set_enabled(True) self._Launchkey_Mini_MK3__on_pad_mode_changed.subject = self._pad_modes self._Launchkey_Mini_MK3__on_pad_mode_byte_changed.subject = self._pad_modes
def _create_pad_modes(self): self._pad_modes = ModesComponent(name=b'Pad_Modes', is_enabled=False, layer=Layer(mode_selection_control=b'pad_layout_switch')) suppress_scene_launch_buttons = AddLayerMode(self._background, layer=Layer(scene_launch_buttons=b'scene_launch_buttons')) suppress_all_buttons_around_pads = AddLayerMode(self._background, layer=Layer(scene_launch_buttons=b'scene_launch_buttons', up_button=b'up_button', down_button=b'down_button')) self._pad_modes.add_mode(b'dummy', suppress_all_buttons_around_pads) self._pad_modes.add_mode(b'drum', (suppress_scene_launch_buttons, self._drum_group)) self._pad_modes.add_mode(b'session', LayerMode(self._stop_solo_mute_modes, layer=Layer(cycle_mode_button=self._elements.scene_launch_buttons_raw[1]))) for i in range(6): self._pad_modes.add_mode((b'custom{}').format(i), suppress_all_buttons_around_pads) upper_matrix_row = self._elements.device_select_matrix.submatrix[:, :1] self._pad_modes.add_mode(b'device_select', ( suppress_scene_launch_buttons, self._device.show_device_name_and_bank, AddLayerMode(self._device, layer=Layer(bank_select_buttons=upper_matrix_row, prev_button=b'up_button', next_button=b'down_button')))) self._pad_modes.selected_mode = b'session' self._pad_modes.set_enabled(True) self.__on_pad_mode_changed.subject = self._pad_modes self.__on_pad_mode_byte_changed.subject = self._pad_modes
def __init__(self, clip_creator=None, parameter_provider=None, grid_resolution=None, note_layout=None, note_editor_settings=None, note_editor_class=NoteEditorComponent, velocity_range_thresholds=None, skin=None, instrument_play_layer=None, instrument_sequence_layer=None, pitch_mod_touch_strip_mode=None, play_loop_instrument_layer=None, layer=None, sequence_layer_with_loop=None, *a, **k): super(MelodicComponent, self).__init__(*a, **k) self._matrices = None self._grid_resolution = grid_resolution self.instrument, self._step_duplicator, self._accent_component = self.register_components( InstrumentComponent(note_layout=note_layout), StepDuplicatorComponent(), AccentComponent()) self._note_editors = self.register_components(*[ note_editor_class( clip_creator=clip_creator, grid_resolution=self._grid_resolution, velocity_range_thresholds=velocity_range_thresholds, is_enabled=False) for _ in xrange(NUM_NOTE_EDITORS) ]) for editor in self._note_editors: note_editor_settings.add_editor(editor) editor.set_step_duplicator(self._step_duplicator) self.paginator = self.register_component( NoteEditorPaginator(self._note_editors)) self._loop_selector = self.register_component( LoopSelectorComponent(clip_creator=clip_creator, paginator=self.paginator, is_enabled=False, default_size=8)) self._playhead = None self._playhead_component = self.register_component( PlayheadComponent(grid_resolution=grid_resolution, paginator=self.paginator, follower=self._loop_selector, feedback_channels=PLAYHEAD_FEEDBACK_CHANNELS, is_enabled=False)) self._play_modes = self.register_component( MessengerModesComponent(muted=True, is_enabled=False)) self._play_modes.add_mode('play', [ LayerMode(self.instrument, instrument_play_layer), pitch_mod_touch_strip_mode ], default_mode='play', alternative_mode='play_loop') self._play_modes.add_mode( 'play_loop', [ LayerMode(self.instrument, instrument_play_layer), self._loop_selector, LayerMode(self, play_loop_instrument_layer), self._playhead_component, self.paginator, pitch_mod_touch_strip_mode ], message=consts.MessageBoxText.ALTERNATE_PLAY_LOOP, default_mode='play', alternative_mode='play_loop') self._play_modes.selected_mode = 'play' self.add_mode('play', self._play_modes, message=MessageBoxText.LAYOUT_MELODIC_PLAYING) self._sequence_modes = self.register_component( MessengerModesComponent(muted=True, is_enabled=False)) self._sequence_modes.add_mode( 'sequence', [ LayerMode(self.instrument, instrument_sequence_layer), note_editor_settings, self._loop_selector, LayerMode(self, layer), self._playhead_component, self._update_note_editors, self.paginator, self._accent_component ] + self._note_editors, message=MessageBoxText.LAYOUT_MELODIC_SEQUENCER, default_mode='sequence', alternative_mode='sequence_loop') self._sequence_modes.add_mode( 'sequence_loop', [ LayerMode(self.instrument, instrument_sequence_layer), note_editor_settings, self._loop_selector, LayerMode(self, sequence_layer_with_loop), self._playhead_component, self._update_note_editors, self.paginator, self._accent_component ] + self._note_editors, message=MessageBoxText.ALTERNATE_SEQUENCE_LOOP, default_mode='sequence', alternative_mode='sequence_loop') self._sequence_modes.selected_mode = 'sequence' self.add_mode('sequence', self._sequence_modes, message=MessageBoxText.LAYOUT_MELODIC_SEQUENCER) self.selected_mode = 'play' self._on_detail_clip_changed.subject = self.song.view self._on_pattern_changed.subject = self.instrument self._on_notes_changed.subject = self.instrument self.__on_grid_resolution_changed.subject = self._grid_resolution self._on_page_index_changed.subject = self.paginator self._on_page_length_changed.subject = self.paginator self._on_active_steps_changed.replace_subjects(self._note_editors) self._on_modify_all_notes_changed.replace_subjects(self._note_editors) self.__on_accent_activated_changed.subject = self._accent_component self._on_detail_clip_changed() self._update_note_editors() self._skin = skin self._playhead_color = 'Melodic.Playhead' self._update_playhead_color() self._loop_selector.set_step_duplicator(self._step_duplicator) self._show_notifications = True return
def _create_modes(self): self._encoder_modes = DisplayingSkinableModesComponent( name=u'Encoder_Modes') self._encoder_modes.add_mode(u'devices', [ partial(self._switch_display_layout, sysex.BOX_SCREEN_LAYOUT_BYTE), AddLayerMode( self._encoder_modes, Layer(mode_display=self._elements.text_display_line_5, mode_color_fields=self._elements.color_field_line_2, mode_selection_fields=self._elements. selection_field_line_2)), LayerMode( self._device_navigation, Layer(select_buttons=u'pads_flattened', device_color_fields=u'color_field_lines_0_1_flattened', device_name_display_1=u'text_display_line_0', device_name_display_2=u'text_display_line_2', device_bank_name_display_1=u'text_display_line_1', device_bank_name_display_2=u'text_display_line_3', device_selection_fields= u'selection_field_lines_0_1_flattened', selected_device_name_display=u'center_display_1')), SetAttributeMode(self._device_navigation, u'scroll_left_layer', Layer(button=u'up_button')), SetAttributeMode(self._device_navigation, u'scroll_right_layer', Layer(button=u'down_button')), LayerMode( self._device, Layer(prev_bank_button=u'display_up_button', next_bank_button=u'display_down_button')), AddLayerMode( self._mixer, Layer(selected_track_color_field=u'center_color_field', selected_track_name_display=u'center_display_1')), AddLayerMode( self._background, Layer(center_display_2=u'center_display_2', scene_launch_buttons=u'scene_launch_buttons', encoders=u'encoders')), AddLayerMode( self._actions, Layer(actions_display=u'text_display_line_5_with_shift', actions_selection_fields= u'selection_field_line_2_with_shift')) ]) self._encoder_modes.add_mode(u'pan', [ partial(self._switch_display_layout, sysex.KNOB_SCREEN_LAYOUT_BYTE), AddLayerMode( self._encoder_modes, Layer(mode_display=self._elements.text_display_line_3, mode_color_fields=self._elements.color_field_line_2, mode_selection_fields=self._elements. selection_field_line_1, selected_mode_color_field=u'center_color_field')), AddLayerMode( self._mixer, Layer(pan_controls=u'encoders', track_names_display=u'text_display_line_0', pan_value_display=u'text_display_line_1', pan_encoder_color_fields=u'encoder_color_fields', track_color_fields=u'color_field_line_0', mixer_display=u'center_display_1', pan_display=u'center_display_2')), AddLayerMode( self._background, Layer(display_up_button=u'display_up_button', display_down_button=u'display_down_button')), AddLayerMode( self._actions, Layer(actions_display=u'text_display_line_3_with_shift', actions_selection_fields= u'selection_field_line_1_with_shift')) ]) self._encoder_modes.add_mode(u'sends', [ partial(self._switch_display_layout, sysex.KNOB_SCREEN_LAYOUT_BYTE), AddLayerMode( self._encoder_modes, Layer(mode_display=self._elements.text_display_line_3, mode_color_fields=self._elements.color_field_line_2, mode_selection_fields=self._elements. selection_field_line_1, selected_mode_color_field=u'center_color_field')), AddLayerMode( self._mixer, Layer(send_controls=u'encoders', send_up_button=u'display_up_button', send_down_button=u'display_down_button', track_names_display=u'text_display_line_0', track_color_fields=u'color_field_line_0', mixer_display=u'center_display_1', send_index_display=u'center_display_2', send_value_display=u'text_display_line_1', send_encoder_color_fields=u'encoder_color_fields')), AddLayerMode( self._actions, Layer(actions_display=u'text_display_line_3_with_shift', actions_selection_fields= u'selection_field_line_1_with_shift')) ]) self._pad_modes = ModesComponent(name=u'Pad_Modes') self._pad_modes.add_mode( u'drum', LayerMode( self._drum_group, Layer(matrix=u'pads_quadratic', scroll_up_button=u'up_button', scroll_down_button=u'down_button'))) self._pad_modes.add_mode( u'disabled', AddLayerMode( self._background, Layer(matrix=u'pads_quadratic', scroll_up_button=u'up_button', scroll_down_button=u'down_button'))) self._main_modes = ModesComponent(name=u'Encoder_Modes') set_main_mode = partial(setattr, self._main_modes, u'selected_mode') self._main_modes.add_mode(u'device_control', [ partial(self._switch_display_layout, sysex.KNOB_SCREEN_LAYOUT_BYTE), AddLayerMode( self._mixer, Layer(track_select_buttons=u'select_buttons', track_names_display=u'text_display_line_3', track_color_fields=u'color_field_line_2', track_selection_fields=u'selection_field_line_1', selected_track_color_field=u'center_color_field')), LayerMode( self._device_parameters, Layer(parameter_controls=u'encoders', name_display_line=u'text_display_line_0', value_display_line=u'text_display_line_1', parameter_color_fields=u'color_field_line_0', encoder_color_fields=u'encoder_color_fields')), LayerMode( self._session_navigation, Layer(up_button=u'up_button', down_button=u'down_button')), LayerMode( self._device, Layer(prev_bank_button=u'display_up_button', next_bank_button=u'display_down_button')), LayerMode( self._device_navigation, Layer(selected_device_name_display=u'center_display_1', selected_device_bank_name_display=u'center_display_2')), AddLayerMode( self._actions, Layer(actions_display=u'text_display_line_3_with_shift', actions_selection_fields= u'selection_field_line_1_with_shift')) ]) self._main_modes.add_mode( u'options', [ self._encoder_modes, LayerMode( self._encoder_modes, Layer(devices_button=u'select_buttons_raw[0]', pan_button=u'select_buttons_raw[1]', sends_button=u'select_buttons_raw[2]')), SetAttributeMode(self._encoder_modes, u'selected_mode', u'devices'), AddLayerMode( self._background, Layer(select_button_3=u'select_buttons_raw[3]', select_button_4=u'select_buttons_raw[4]', select_button_5=u'select_buttons_raw[5]', select_button_6=u'select_buttons_raw[6]', select_button_7=u'select_buttons_raw[7]')) ], behaviour=ReenterBehaviour( on_reenter=partial(set_main_mode, u'device_control'))) self._main_modes.add_mode(u'grid', [ partial(self._switch_display_layout, sysex.KNOB_SCREEN_LAYOUT_BYTE), self._pad_modes, AddLayerMode( self._mixer, Layer(track_select_buttons=u'select_buttons', track_names_display=u'text_display_line_3', track_color_fields=u'color_field_line_2', track_selection_fields=u'selection_field_line_1', selected_track_color_field=u'center_color_field')), self._select_grid_mode, LayerMode( self._device_parameters, Layer(parameter_controls=u'encoders', name_display_line=u'text_display_line_0', value_display_line=u'text_display_line_1', parameter_color_fields=u'color_field_line_0', encoder_color_fields=u'encoder_color_fields')), LayerMode( self._device, Layer(prev_bank_button=u'display_up_button', next_bank_button=u'display_down_button')), LayerMode( self._device_navigation, Layer(selected_device_name_display=u'center_display_1', selected_device_bank_name_display=u'center_display_2')), AddLayerMode(self._background, Layer(scene_launch_buttons=u'scene_launch_buttons')), AddLayerMode( self._actions, Layer(actions_display=u'text_display_line_3_with_shift', actions_selection_fields= u'selection_field_line_1_with_shift')) ], behaviour=ReenterBehaviour( on_reenter=partial( set_main_mode, u'device_control'))) self._main_modes.layer = Layer(options_button=u'options_button', grid_button=u'grid_button') self._main_modes.selected_mode = u'device_control'
def _create_track_assign_button_modes(self): self._background = BackgroundComponent(name=b'Background') self._modes = ModesComponent(name=b'Track_Assign_Button_Modes', is_enabled=False) self._modes.add_mode(b'mute', [ ExtendComboElementMode( combo_pairs=zip(self._elements.mute_buttons_raw, self._elements.track_assign_buttons_raw)), AddLayerMode( self._mixer, Layer(mute_color_controls=b'track_assign_color_controls')) ]) self._modes.add_mode(b'solo', [ ExtendComboElementMode( combo_pairs=zip(self._elements.solo_buttons_raw, self._elements.track_assign_buttons_raw)), AddLayerMode( self._mixer, Layer(solo_color_controls=b'track_assign_color_controls')) ]) self._modes.add_mode(b'rec_arm', [ ExtendComboElementMode( combo_pairs=zip(self._elements.arm_buttons_raw, self._elements.track_assign_buttons_raw)), AddLayerMode( self._mixer, Layer(arm_color_controls=b'track_assign_color_controls')) ]) self._modes.add_mode(b'clip_stop', [ ExtendComboElementMode( combo_pairs=zip(self._elements.clip_stop_buttons_raw, self._elements.track_assign_buttons_raw)), AddLayerMode( self._session, Layer(stop_clip_color_controls=b'track_assign_color_controls')) ]) self._modes.add_mode(b'shift', [ AddLayerMode( self._transport, Layer(metronome_color_control= b'track_assign_color_controls_raw[4]', clip_trigger_quantization_color_controls= b'physical_track_color_controls')), AddLayerMode( self._clip_actions, Layer( quantize_color_control=b'track_assign_color_controls_raw[0]' )), LayerMode( self._background, Layer(button1=b'track_assign_color_controls_raw[1]', button2=b'track_assign_color_controls_raw[2]', button3=b'track_assign_color_controls_raw[3]', button5=b'track_assign_color_controls_raw[5]', button6=b'track_assign_color_controls_raw[6]', button7=b'track_assign_color_controls_raw[7]')) ], behaviour=MomentaryBehaviour()) self._modes.add_mode(b'assign_a', [ AddLayerMode( self._mixer, Layer(assign_a_buttons=b'track_assign_buttons', assign_a_color_controls=b'track_assign_color_controls')) ], behaviour=MomentaryBehaviour()) self._modes.add_mode(b'assign_b', [ AddLayerMode( self._mixer, Layer(assign_b_buttons=b'track_assign_buttons', assign_b_color_controls=b'track_assign_color_controls')) ], behaviour=MomentaryBehaviour()) self._modes.layer = Layer(mute_button=b'mute_button', solo_button=b'solo_button', rec_arm_button=b'rec_arm_button', clip_stop_button=b'clip_stop_button', shift_button=b'shift_button', assign_a_button=b'assign_a_button', assign_b_button=b'assign_b_button') self._modes.selected_mode = b'clip_stop'
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)
def _create_launch_modes(self): self._scene_list = SceneListComponent(name=u'Expanded_Scene_Launch', session_ring=self._session_ring, num_scenes=16) self._launch_modes = ModesComponent(name=u'Launch_Modes') self._launch_modes.add_mode(u'clip_launch', [partial(self._elements.launch_mode_switch.send_value, 0), ExtendComboElementMode(combo_pairs=list(zip(chain(*self._elements.clip_launch_buttons_raw), chain(*self._elements.physical_clip_launch_buttons_raw)))), ExtendComboElementMode(combo_pairs=list(zip(chain(*self._elements.clip_color_controls_raw), chain(*self._elements.physical_clip_color_controls_raw))))], cycle_mode_button_color=u'Mode.Off') if not self.is_force: self._launch_modes.add_mode(u'scene_launch', [partial(self._elements.launch_mode_switch.send_value, 1), LayerMode(self._scene_list, Layer(scene_launch_buttons=u'mpc_scene_launch_buttons', scene_color_controls=u'mpc_scene_color_controls'))], cycle_mode_button_color=u'Mode.On') self._launch_modes.layer = Layer(cycle_mode_button=u'xyfx_button' if self._product_id == MPC_X_PRODUCT_ID else u'sixteen_level_button') self._launch_modes.selected_mode = u'clip_launch'
def _create_modes(self): self._encoder_modes = DisplayingSkinableModesComponent( name='Encoder_Modes') self._encoder_modes.add_mode('devices', [ partial(self._switch_display_layout, sysex.BOX_SCREEN_LAYOUT_BYTE), AddLayerMode( self._encoder_modes, Layer(mode_display=self._elements.text_display_line_5, mode_color_fields=self._elements.color_field_line_2, mode_selection_fields=self._elements. selection_field_line_2)), LayerMode( self._device_navigation, Layer(select_buttons='pads_flattened', device_color_fields='color_field_lines_0_1_flattened', device_name_display_1='text_display_line_0', device_name_display_2='text_display_line_2', device_bank_name_display_1='text_display_line_1', device_bank_name_display_2='text_display_line_3', device_selection_fields= 'selection_field_lines_0_1_flattened', selected_device_name_display='center_display_1')), SetAttributeMode(self._device_navigation, 'scroll_left_layer', Layer(button='up_button')), SetAttributeMode(self._device_navigation, 'scroll_right_layer', Layer(button='down_button')), LayerMode( self._device, Layer(prev_bank_button='display_up_button', next_bank_button='display_down_button')), AddLayerMode( self._mixer, Layer(selected_track_color_field='center_color_field', selected_track_name_display='center_display_1')), AddLayerMode( self._background, Layer(center_display_2='center_display_2', scene_launch_buttons='scene_launch_buttons', encoders='encoders')) ]) self._main_modes = ModesComponent(name='Encoder_Modes') self._main_modes.add_mode('device_control', [ partial(self._switch_display_layout, sysex.KNOB_SCREEN_LAYOUT_BYTE), AddLayerMode( self._mixer, Layer(track_select_buttons='select_buttons', track_names_display='text_display_line_3', track_color_fields='color_field_line_2', track_selection_fields='selection_field_line_1', selected_track_color_field='center_color_field')), LayerMode( self._device_parameters, Layer(parameter_controls='encoders', name_display_line='text_display_line_0', value_display_line='text_display_line_1', parameter_color_fields='color_field_line_0', encoder_color_fields='encoder_color_fields')), LayerMode(self._session_navigation, Layer(up_button='up_button', down_button='down_button')), LayerMode( self._device, Layer(prev_bank_button='display_up_button', next_bank_button='display_down_button')), LayerMode( self._device_navigation, Layer(selected_device_name_display='center_display_1', selected_device_bank_name_display='center_display_2')) ]) self._main_modes.selected_mode = 'device_control'