def _create_controls(self): super(KeyLabMkII, self)._create_controls() def make_button_row(index_offset, name): return ButtonMatrixElement(rows=[ [ create_button(index + index_offset, name=('{}_{}').format(name, index)) for index in xrange(8) ]], name=('{}s').format(name)) self._select_buttons = make_button_row(24, 'Select_Button') self._solo_buttons = make_button_row(8, 'Solo_Button') self._mute_buttons = make_button_row(16, 'Mute_Button') self._record_arm_buttons = make_button_row(0, 'Record_Arm_Buttons') self._automation_button = create_button(56, name='Automation_Button') self._re_enable_automation_button = create_button(57, name='Re_Enable_Automation_Button') self._view_button = create_button(74, name='View_Button') self._pads = ButtonMatrixElement(rows=[ [ create_button(identifier, channel=9, name=('Pad_{}_{}').format(col_index, row_index)) for col_index, identifier in enumerate(row) ] for row_index, row in enumerate(PAD_IDS) ]) self._pad_leds = ButtonMatrixElement(rows=[ [ create_pad_led(identifier, ('Pad_LED_{}_{}').format(col_index, row_index)) for col_index, identifier in enumerate(row) ] for row_index, row in enumerate(PAD_LED_IDS) ], name='Pad_LED_Matrix') self._display = PhysicalDisplayElement(DISPLAY_LINE_WIDTH, name='Display') self._display.set_message_parts(sysex.LCD_SET_STRING_MESSAGE_HEADER + (sysex.LCD_LINE_1_ITEM_ID,), ( sysex.NULL, sysex.LCD_LINE_2_ITEM_ID) + (ord(' '),) * DISPLAY_LINE_WIDTH + (sysex.NULL, sysex.END_BYTE)) self._mixer_mode_cycle_button = create_button(51, name='Mixer_Mode_Cycle_Button') self._vegas_mode_switch = SysexElement(send_message_generator=lambda b: sysex.VEGAS_MODE_MESSAGE_HEADER + ( b, sysex.END_BYTE), name='Vegas_Mode_Switch')
def make_button_row(index_offset, name): return ButtonMatrixElement(rows=[[ create_button(index + index_offset, name=('{}_{}').format(name, index)) for index in xrange(8) ]], name=('{}s').format(name))