def __init__(self, *a, **k):
     super(InstrumentPresetsComponent, self).__init__(*a, **k)
     self._line_names = recursive_map(DisplayDataSource,
                                      (('Scale layout:', ),
                                       ('4th ^', '4th >', '3rd ^', '3rd >',
                                        'Sequent ^', 'Sequent >', '', '')))
     self.add_mode('scale_p4_vertical',
                   partial(self._set_scale_mode, True, 3),
                   self._line_names[1][0])
     self.add_mode('scale_p4_horizontal',
                   partial(self._set_scale_mode, False, 3),
                   self._line_names[1][1])
     self.add_mode('scale_m3_vertical',
                   partial(self._set_scale_mode, True, 2),
                   self._line_names[1][2])
     self.add_mode('scale_m3_horizontal',
                   partial(self._set_scale_mode, False, 2),
                   self._line_names[1][3])
     self.add_mode('scale_m6_vertical',
                   partial(self._set_scale_mode, True, None),
                   self._line_names[1][4])
     self.add_mode('scale_m6_horizontal',
                   partial(self._set_scale_mode, False, None),
                   self._line_names[1][5])
     return
 def __init__(self, *a, **k):
     super(InstrumentScalesComponent, self).__init__(*a, **k)
     self._key_center_slots = self.register_slot_manager()
     self._key_center_buttons = []
     self._encoder_touch_button_slots = self.register_slot_manager()
     self._encoder_touch_buttons = []
     self._top_key_center_buttons = None
     self._bottom_key_center_buttons = None
     self._absolute_relative_button = None
     self._diatonic_chromatic_button = None
     table = consts.MUSICAL_MODES
     self._info_sources = map(DisplayDataSource,
                              ('Scale selection:', '', ''))
     self._line_sources = recursive_map(DisplayDataSource,
                                        (('', '', '', '', '', '', ''),
                                         ('', '', '', '', '', '', '')))
     self._modus_sources = map(
         partial(DisplayDataSource, adjust_string_fn=adjust_string_crop),
         ('', '', '', ''))
     self._presets = self.register_component(InstrumentPresetsComponent())
     self._presets_enabler = self.register_component(
         EnablingModesComponent(component=self._presets,
                                toggle_value='Scales.PresetsEnabled'))
     self._presets_enabler.momentary_toggle = True
     self._presets.selected_mode = 'scale_p4_vertical'
     self._modus_list = self.register_component(
         ListComponent(data_sources=self._modus_sources))
     self._modus_list.scrollable_list.fixed_offset = 1
     self._modus_list.scrollable_list.assign_items([
         Modus(name=table[i], notes=table[i + 1])
         for i in xrange(0, len(consts.MUSICAL_MODES), 2)
     ])
     self._on_selected_modus.subject = self._modus_list.scrollable_list
     self._update_data_sources()
 def __init__(self, *a, **k):
     super(QuantizationSettingsComponent, self).__init__(*a, **k)
     self._display_lines = recursive_map(DisplayDataSource, (('', '', '', '', '', '', '', ''),
      ('Swing', 'Quantize', 'Quantize', '', '', '', '', 'Record'),
      ('Amount', 'To', 'Amount', '', '', '', '', 'Quantize'),
      ('', '', '', '', '', '', '', '')))
     self._swing_amount_display = self._display_lines[0][0]
     self._quantize_to_display = self._display_lines[0][1]
     self._quantize_amount_display = self._display_lines[0][2]
     self._record_quantization_display = self._display_lines[0][7]
     self._record_quantization_on_display = self._display_lines[3][7]
     default_quantize = RecordingQuantization.rec_q_sixtenth
     self._record_quantization = default_quantize
     self._quantize_to = default_quantize
     self._quantize_amount = 1.0
     default_quantize_float = record_quantization_to_float(default_quantize)
     self._record_quantization_float = default_quantize_float
     self._quantize_to_float = default_quantize_float
     self._on_swing_amount_changed_in_live.subject = self.song()
     self._on_swing_amount_changed_in_live()
     self._on_record_quantization_changed_in_live.subject = self.song()
     self._on_record_quantization_changed_in_live()
     self._update_swing_amount_display()
     self._update_quantize_to_display()
     self._update_quantize_amount_display()
 def __init__(self, *a, **k):
     super(InstrumentScalesComponent, self).__init__(*a, **k)
     self._key_center_slots = self.register_slot_manager()
     self._key_center_buttons = []
     self._encoder_touch_button_slots = self.register_slot_manager()
     self._encoder_touch_buttons = []
     self._top_key_center_buttons = None
     self._bottom_key_center_buttons = None
     self._absolute_relative_button = None
     self._diatonic_chromatic_button = None
     table = consts.MUSICAL_MODES
     self._modus_list = [
         Modus(table[k], table[k + 1])
         for k in xrange(0, len(consts.MUSICAL_MODES), 2)
     ]
     self._selected_modus = 0
     self._line_sources = recursive_map(DisplayDataSource,
                                        SCALES_DISPLAY_STRINGS)
     self._presets = self.register_component(InstrumentPresetsComponent())
     self._presets.set_enabled(False)
     self._presets_modes = self.register_component(ModesComponent())
     self._presets_modes.add_mode('disabled', None)
     self._presets_modes.add_mode('enabled', self._presets,
                                  'Scales.PresetsEnabled')
     self._presets_modes.selected_mode = 'disabled'
     self._presets_modes.momentary_toggle = True
     self._presets.selected_mode = 'scale_p4_vertical'
     self._scales_info = self.register_component(ScalesInfoComponent())
     self._scales_info.set_enabled(True)
     self._modus_scroll = self.register_component(ScrollComponent())
     self._modus_scroll.scrollable = self
     self._update_data_sources()
 def _create_controls(self):
     self._aux_button = make_button(b'Aux_Button', 32, is_modifier=True)
     self._cursor_up_button = make_button(b'Cursor_Up_Button', 12)
     self._cursor_down_button = make_button(b'Cursor_Down_Button', 13)
     self._modified_cursor_up_button = with_modifier(self._cursor_up_button, self._aux_button)
     self._modified_cursor_down_button = with_modifier(self._cursor_down_button, self._aux_button)
     self._start_stop_button = make_button(b'Start_Stop_Button', 16)
     self._modified_start_stop_button = with_modifier(self._start_stop_button, self._aux_button)
     self._recall_button = make_button(b'Recall_Button', 17)
     self._store_button = make_button(b'Store_Button', 18)
     self._tone_filter_knobs = ButtonMatrixElement(rows=[
      [ make_encoder(b'Tone_Filter_Encoder_%d' % (col,), identifier) for col, identifier in enumerate(xrange(102, 113))
      ]], name=b'Tone_Filter_Knobs')
     step_buttons_raw = [
      [ make_button(b'Step_Button_%d' % (col,), identifier) for col, identifier in enumerate(xrange(20, 31))
      ]]
     self._step_buttons = ButtonMatrixElement(rows=step_buttons_raw, name=b'Step_Buttons')
     self._modified_step_buttons = ButtonMatrixElement(rows=recursive_map(partial(with_modifier, modifier=self._aux_button), step_buttons_raw), name=b'Step_Buttons_With_Modifier')
     self._select_buttons = ButtonMatrixElement(rows=[
      [ make_button(b'Select_Button_%d' % (col,), identifier) for col, identifier in enumerate(xrange(60, 71))
      ]], name=b'Select_Buttons')
     self._bfx_buttons = ButtonMatrixElement(rows=[
      [ make_button(b'BFX_Button_%d' % (col,), identifier) for col, identifier in enumerate(xrange(80, 91))
      ]], name=b'BFX_Buttons')
     self._mfx_buttons = ButtonMatrixElement(rows=[
      [ make_button(b'MFX_Button_%d' % (col,), identifier) for col, identifier in enumerate(xrange(100, 111))
      ]], name=b'MFX_Buttons')
 def __init__(self, *a, **k):
     super(InstrumentScalesComponent, self).__init__(*a, **k)
     self._key_center_slots = self.register_slot_manager()
     self._key_center_buttons = []
     self._encoder_touch_button_slots = self.register_slot_manager()
     self._encoder_touch_buttons = []
     self._top_key_center_buttons = None
     self._bottom_key_center_buttons = None
     self._absolute_relative_button = None
     self._diatonic_chromatic_button = None
     table = consts.MUSICAL_MODES
     self._modus_list = [ Modus(table[k], table[k + 1]) for k in xrange(0, len(consts.MUSICAL_MODES), 2) ]
     self._selected_modus = 0
     self._line_sources = recursive_map(DisplayDataSource, SCALES_DISPLAY_STRINGS)
     self._presets = self.register_component(InstrumentPresetsComponent())
     self._presets.set_enabled(False)
     self._presets_modes = self.register_component(ModesComponent())
     self._presets_modes.add_mode('disabled', None)
     self._presets_modes.add_mode('enabled', self._presets, 'Scales.PresetsEnabled')
     self._presets_modes.selected_mode = 'disabled'
     self._presets_modes.momentary_toggle = True
     self._presets.selected_mode = 'scale_p4_vertical'
     self._scales_info = self.register_component(ScalesInfoComponent())
     self._scales_info.set_enabled(True)
     self._modus_scroll = self.register_component(ScrollComponent())
     self._modus_scroll.scrollable = self
     self._update_data_sources()
 def __init__(self, *a, **k):
     super(InstrumentPresetsComponent, self).__init__(*a, **k)
     self._line_names = recursive_map(DisplayDataSource, (('Scale layout:',), ('4th ^', '4th >', '3rd ^', '3rd >', 'Sequent ^', 'Sequent >', '', '')))
     self.add_mode('scale_p4_vertical', partial(self._set_scale_mode, True, 3), self._line_names[1][0])
     self.add_mode('scale_p4_horizontal', partial(self._set_scale_mode, False, 3), self._line_names[1][1])
     self.add_mode('scale_m3_vertical', partial(self._set_scale_mode, True, 2), self._line_names[1][2])
     self.add_mode('scale_m3_horizontal', partial(self._set_scale_mode, False, 2), self._line_names[1][3])
     self.add_mode('scale_m6_vertical', partial(self._set_scale_mode, True, None), self._line_names[1][4])
     self.add_mode('scale_m6_horizontal', partial(self._set_scale_mode, False, None), self._line_names[1][5])
 def __init__(self, *a, **k):
     super(InstrumentPresetsComponent, self).__init__(*a, **k)
     self._unused_button_slots = self.register_slot_manager()
     self._unused_buttons = []
     self._line_names = recursive_map(DisplayDataSource, INSTRUMENT_PRESETS_DISPLAY)
     self.add_mode('scale_p4_vertical', partial(self._set_scale_mode, 0, True, 3), self._line_names[1][0])
     self.add_mode('scale_p4_horizontal', partial(self._set_scale_mode, 0, False, 3), self._line_names[1][1])
     self.add_mode('scale_m3_vertical', partial(self._set_scale_mode, 0, True, 2), self._line_names[1][2])
     self.add_mode('scale_m3_horizontal', partial(self._set_scale_mode, 0, False, 2), self._line_names[1][3])
     self.add_mode('scale_m6_vertical', partial(self._set_scale_mode, -2, True, None), self._line_names[1][4])
     self.add_mode('scale_m6_horizontal', partial(self._set_scale_mode, -2, False, None), self._line_names[1][5])
Exemple #9
0
    def _create_controls(self):
        """ Add some additional stuff baby """
        super(APSequencer, self)._create_controls()
        self._grid_resolution = GridResolution()
        self._velocity_slider = ButtonSliderElement(
            tuple(self._scene_launch_buttons_raw[::-1]))

        double_press_rows = recursive_map(DoublePressElement,
                                          self._matrix_rows_raw)
        self._double_press_matrix = ButtonMatrixElement(
            name='Double_Press_Matrix', rows=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._playhead = PlayheadElement(self._c_instance.playhead)

        # Make these prioritized resources, which share between Layers() equally
        # Rather than building a stack
        self._pan_button._resource_type = PrioritizedResource
        self._user_button._resource_type = PrioritizedResource

        self._view_control = ViewControlComponent(name='View_Control')
        self._view_control.set_enabled(False)
  def _create_controls(self):
    """ Add some additional stuff baby """
    super(APSequencer, self)._create_controls()
    self._grid_resolution = GridResolution()
    self._velocity_slider = ButtonSliderElement(tuple(self._scene_launch_buttons_raw[::-1])) 
    double_press_rows = recursive_map(DoublePressElement, self._matrix_rows_raw) 
    self._double_press_matrix = ButtonMatrixElement(name='Double_Press_Matrix', rows=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._playhead = PlayheadElement(self._c_instance.playhead)

    # Make these prioritized resources, which share between Layers() equally
    # Rather than building a stack
    self._pan_button._resource_type = PrioritizedResource 
    self._user_button._resource_type = PrioritizedResource 
 def _create_controls(self):
     multi_button_channels = consts.USER_MODE_CHANNELS
     self._session_button_single = make_button(108, 0, 'Session_Mode_Button', msg_type=MIDI_CC_TYPE, is_modifier=True)
     self._session_button = FilteringMultiElement([
      self._session_button_single] + [ make_button(108, channel, msg_type=MIDI_CC_TYPE, name='Session_Mode_Button_ch_%d' % (channel,)) for channel in multi_button_channels
                                     ], feedback_channels=[
      0])
     self._user_1_button = FilteringMultiElement([ make_button(109, channel, msg_type=MIDI_CC_TYPE, name='User_1_Mode_Button_ch_%d' % (channel,)) for channel in (0, ) + multi_button_channels
                                                 ], feedback_channels=[
      0, 5, 6, 7])
     self._user_2_button = FilteringMultiElement([ make_button(110, channel, msg_type=MIDI_CC_TYPE, name='User_2_Mode_Button_ch_%d' % (channel,)) for channel in (0, ) + multi_button_channels
                                                 ], feedback_channels=[
      0, 13, 14, 15])
     self._mixer_button = FilteringMultiElement([ make_button(111, channel, msg_type=MIDI_CC_TYPE, name='Mixer_Mode_Button_ch_%d' % (channel,)) for channel in (0, ) + multi_button_channels
                                                ], feedback_channels=[
      0])
     self._up_button = make_button(104, 0, msg_type=MIDI_CC_TYPE, name='Up_Button')
     self._down_button = make_button(105, 0, msg_type=MIDI_CC_TYPE, name='Down_Button')
     self._left_button = make_button(106, 0, msg_type=MIDI_CC_TYPE, name='Left_Button')
     self._right_button = make_button(107, 0, msg_type=MIDI_CC_TYPE, name='Right_Button')
     self._session_matrix_raw = [ [ make_button(col + offset, 0, name='Session_Matrix_Button_%d_%d' % (col, row)) for col in xrange(consts.SESSION_WIDTH) ] for row, offset in enumerate(xrange(81, 10, -10))
                                ]
     self._session_matrix = ButtonMatrixElement(rows=self._session_matrix_raw, name='Session_Matrix')
     self._scene_launch_matrix_raw = [ make_button(identifier, 0, name='Scene_Launch_Button_%d' % (index,)) for index, identifier in enumerate(xrange(89, 18, -10))
                                     ]
     self._scene_launch_matrix = ButtonMatrixElement(rows=[
      self._scene_launch_matrix_raw], name='Scene_Launch_Buttons')
     self._session_zoom_matrix = ButtonMatrixElement(rows=recursive_map(partial(with_modifier, self._session_button_single), self._session_matrix_raw))
     self._volume_reset_buttons = self._session_matrix.submatrix[:, :1]
     self._pan_reset_buttons = self._session_matrix.submatrix[:, 1:2]
     self._send_a_reset_buttons = self._session_matrix.submatrix[:, 2:3]
     self._send_b_reset_buttons = self._session_matrix.submatrix[:, 3:4]
     self._stop_clip_buttons = self._session_matrix.submatrix[:, 4:5]
     self._mute_buttons = self._session_matrix.submatrix[:, 5:6]
     self._solo_buttons = self._session_matrix.submatrix[:, 6:7]
     self._arm_buttons = self._session_matrix.submatrix[:, 7:]
     self._volume_button = self._scene_launch_matrix_raw[0]
     self._pan_button = self._scene_launch_matrix_raw[1]
     self._send_a_button = self._scene_launch_matrix_raw[2]
     self._send_b_button = self._scene_launch_matrix_raw[3]
     self._stop_button = self._scene_launch_matrix_raw[4]
     self._mute_button = self._scene_launch_matrix_raw[5]
     self._solo_button = self._scene_launch_matrix_raw[6]
     self._record_arm_button = self._scene_launch_matrix_raw[7]
     self._sliders = ButtonMatrixElement(rows=[
      [ SliderElement(MIDI_CC_TYPE, 0, identifier) for identifier in xrange(21, 29)
      ]])
     self._create_user_controls()
Exemple #12
0
  def _create_controls(self):
    """ Add some additional stuff baby """
    super(PHAZE, self)._create_controls()
    self._grid_resolution = GridResolution()
    self._velocity_slider = ButtonSliderElement(tuple(self._scene_launch_buttons_raw[::-1])) 
    double_press_rows = recursive_map(DoublePressElement, self._matrix_rows_raw) 
    self._double_press_matrix = ButtonMatrixElement(name='Double_Press_Matrix', rows=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._playhead = PlayheadElement(self._c_instance.playhead)

    # Make these prioritized resources, which share between Layers() equally
    # Rather than building a stack
 
    """not sure but we greened out below on 05/11/17.. maybe work on order of definitions so as to tidy up some"""
 
    self._pan_button._resource_type = PrioritizedResource 
    self._user_button._resource_type = PrioritizedResource 
 def _create_controls(self):
     self._aux_button = make_button('Aux_Button', 32, is_modifier=True)
     self._cursor_up_button = make_button('Cursor_Up_Button', 12)
     self._cursor_down_button = make_button('Cursor_Down_Button', 13)
     self._modified_cursor_up_button = with_modifier(self._cursor_up_button, self._aux_button)
     self._modified_cursor_down_button = with_modifier(self._cursor_down_button, self._aux_button)
     self._start_stop_button = make_button('Start_Stop_Button', 16)
     self._modified_start_stop_button = with_modifier(self._start_stop_button, self._aux_button)
     self._recall_button = make_button('Recall_Button', 17)
     self._store_button = make_button('Store_Button', 18)
     self._tone_filter_knobs = ButtonMatrixElement(rows=[[ make_encoder('Tone_Filter_Encoder_%d' % (col,), identifier) for col, identifier in enumerate(xrange(102, 113)) ]], name='Tone_Filter_Knobs')
     step_buttons_raw = [[ make_button('Step_Button_%d' % (col,), identifier) for col, identifier in enumerate(xrange(20, 31)) ]]
     self._step_buttons = ButtonMatrixElement(rows=step_buttons_raw, name='Step_Buttons')
     self._modified_step_buttons = ButtonMatrixElement(rows=recursive_map(partial(with_modifier, modifier=self._aux_button), step_buttons_raw), name='Step_Buttons_With_Modifier')
     self._select_buttons = ButtonMatrixElement(rows=[[ make_button('Select_Button_%d' % (col,), identifier) for col, identifier in enumerate(xrange(60, 71)) ]], name='Select_Buttons')
     self._bfx_buttons = ButtonMatrixElement(rows=[[ make_button('BFX_Button_%d' % (col,), identifier) for col, identifier in enumerate(xrange(80, 91)) ]], name='BFX_Buttons')
     self._mfx_buttons = ButtonMatrixElement(rows=[[ make_button('MFX_Button_%d' % (col,), identifier) for col, identifier in enumerate(xrange(100, 111)) ]], name='MFX_Buttons')
 def __init__(self, *a, **k):
     super(InstrumentScalesComponent, self).__init__(*a, **k)
     self._key_center_buttons = []
     self._encoder_touch_button_slots = self.register_slot_manager()
     self._encoder_touch_buttons = []
     self._top_key_center_buttons = None
     self._bottom_key_center_buttons = None
     self._absolute_relative_button = None
     self._diatonic_chromatic_button = None
     table = consts.MUSICAL_MODES
     self._info_sources = map(DisplayDataSource, ('Scale selection:', '', ''))
     self._line_sources = recursive_map(DisplayDataSource, (('', '', '', '', '', '', ''), ('', '', '', '', '', '', '')))
     self._modus_sources = map(partial(DisplayDataSource, adjust_string_fn=adjust_string_crop), ('', '', '', ''))
     self._presets = self.register_component(InstrumentPresetsComponent(is_enabled=False))
     self._presets.selected_mode = 'scale_p4_vertical'
     self._modus_list = self.register_component(ListComponent(data_sources=self._modus_sources))
     self._modus_list.scrollable_list.fixed_offset = 1
     self._modus_list.scrollable_list.assign_items([ Modus(name=table[i], notes=table[i + 1]) for i in xrange(0, len(consts.MUSICAL_MODES), 2) ])
     self._on_selected_modus.subject = self._modus_list.scrollable_list
     self._update_data_sources()
Exemple #15
0
 def _create_controls(self):
     multi_button_channels = consts.USER_MODE_CHANNELS
     self._session_button_single = make_button(108, 0, 'Session_Mode_Button', msg_type=MIDI_CC_TYPE, is_modifier=True)
     self._session_button = FilteringMultiElement([self._session_button_single] + [ make_button(108, channel, msg_type=MIDI_CC_TYPE, name='Session_Mode_Button_ch_%d' % (channel,)) for channel in multi_button_channels ], feedback_channels=[0])
     self._user_1_button = FilteringMultiElement([ make_button(109, channel, msg_type=MIDI_CC_TYPE, name='User_1_Mode_Button_ch_%d' % (channel,)) for channel in (0,) + multi_button_channels ], feedback_channels=[0,
      5,
      6,
      7])
     self._user_2_button = FilteringMultiElement([ make_button(110, channel, msg_type=MIDI_CC_TYPE, name='User_2_Mode_Button_ch_%d' % (channel,)) for channel in (0,) + multi_button_channels ], feedback_channels=[0,
      13,
      14,
      15])
     self._mixer_button = FilteringMultiElement([ make_button(111, channel, msg_type=MIDI_CC_TYPE, name='Mixer_Mode_Button_ch_%d' % (channel,)) for channel in (0,) + multi_button_channels ], feedback_channels=[0])
     self._up_button = make_button(104, 0, msg_type=MIDI_CC_TYPE, name='Up_Button')
     self._down_button = make_button(105, 0, msg_type=MIDI_CC_TYPE, name='Down_Button')
     self._left_button = make_button(106, 0, msg_type=MIDI_CC_TYPE, name='Left_Button')
     self._right_button = make_button(107, 0, msg_type=MIDI_CC_TYPE, name='Right_Button')
     self._session_matrix_raw = [ [ make_button(col + offset, 0, name='Session_Matrix_Button_%d_%d' % (col, row)) for col in xrange(consts.SESSION_WIDTH) ] for row, offset in enumerate(xrange(81, 10, -10)) ]
     self._session_matrix = ButtonMatrixElement(rows=self._session_matrix_raw, name='Session_Matrix')
     self._scene_launch_matrix_raw = [ make_button(identifier, 0, name='Scene_Launch_Button_%d' % (index,)) for index, identifier in enumerate(xrange(89, 18, -10)) ]
     self._scene_launch_matrix = ButtonMatrixElement(rows=[self._scene_launch_matrix_raw], name='Scene_Launch_Buttons')
     self._session_zoom_matrix = ButtonMatrixElement(rows=recursive_map(partial(with_modifier, self._session_button_single), self._session_matrix_raw))
     self._volume_reset_buttons = self._session_matrix.submatrix[:, :1]
     self._pan_reset_buttons = self._session_matrix.submatrix[:, 1:2]
     self._send_a_reset_buttons = self._session_matrix.submatrix[:, 2:3]
     self._send_b_reset_buttons = self._session_matrix.submatrix[:, 3:4]
     self._stop_clip_buttons = self._session_matrix.submatrix[:, 4:5]
     self._mute_buttons = self._session_matrix.submatrix[:, 5:6]
     self._solo_buttons = self._session_matrix.submatrix[:, 6:7]
     self._arm_buttons = self._session_matrix.submatrix[:, 7:]
     self._volume_button = self._scene_launch_matrix_raw[0]
     self._pan_button = self._scene_launch_matrix_raw[1]
     self._send_a_button = self._scene_launch_matrix_raw[2]
     self._send_b_button = self._scene_launch_matrix_raw[3]
     self._stop_button = self._scene_launch_matrix_raw[4]
     self._mute_button = self._scene_launch_matrix_raw[5]
     self._solo_button = self._scene_launch_matrix_raw[6]
     self._record_arm_button = self._scene_launch_matrix_raw[7]
     self._sliders = ButtonMatrixElement(rows=[[ SliderElement(MIDI_CC_TYPE, 0, identifier) for identifier in xrange(21, 29) ]])
     self._create_user_controls()
 def __init__(self, *a, **k):
     super(InstrumentPresetsComponent, self).__init__(*a, **k)
     self._unused_button_slots = self.register_slot_manager()
     self._unused_buttons = []
     self._line_names = recursive_map(DisplayDataSource,
                                      INSTRUMENT_PRESETS_DISPLAY)
     self.add_mode('scale_p4_vertical',
                   partial(self._set_scale_mode, 0, True, 3),
                   self._line_names[1][0])
     self.add_mode('scale_p4_horizontal',
                   partial(self._set_scale_mode, 0, False, 3),
                   self._line_names[1][1])
     self.add_mode('scale_m3_vertical',
                   partial(self._set_scale_mode, 0, True, 2),
                   self._line_names[1][2])
     self.add_mode('scale_m3_horizontal',
                   partial(self._set_scale_mode, 0, False, 2),
                   self._line_names[1][3])
     self.add_mode('scale_m6_vertical',
                   partial(self._set_scale_mode, -2, True, None),
                   self._line_names[1][4])
     self.add_mode('scale_m6_horizontal',
                   partial(self._set_scale_mode, -2, False, None),
                   self._line_names[1][5])
    def _create_controls(self):
        make_on_off_button = partial(make_button, skin=self._default_skin)
        make_color_button = partial(make_button, skin=self._color_skin)
        self._shift_button = make_button(0,
                                         98,
                                         resource_type=PrioritizedResource,
                                         name=u'Shift_Button')
        self._right_button = make_button(0,
                                         96,
                                         name=u'Bank_Select_Right_Button')
        self._left_button = make_button(0, 97, name=u'Bank_Select_Left_Button')
        self._up_button = make_button(0, 94, name=u'Bank_Select_Up_Button')
        self._down_button = make_button(0, 95, name=u'Bank_Select_Down_Button')
        self._session_matrix = ButtonMatrixElement(name=u'Button_Matrix')
        self._scene_launch_buttons_raw = [
            make_color_button(0,
                              index + 82,
                              name=u'Scene_%d_Launch_Button' % index)
            for index in range(SESSION_HEIGHT)
        ]
        self._track_stop_buttons = [
            make_color_button(index, 52, name=u'Track_%d_Stop_Button' % index)
            for index in range(SESSION_WIDTH)
        ]
        self._stop_all_button = make_color_button(
            0, 81, name=u'Stop_All_Clips_Button')
        self._matrix_rows_raw = [[
            make_color_button(track_index,
                              scene_index + 53,
                              name=u'%d_Clip_%d_Button' %
                              (track_index, scene_index))
            for track_index in range(SESSION_WIDTH)
        ] for scene_index in range(SESSION_HEIGHT)]
        for row in self._matrix_rows_raw:
            self._session_matrix.add_row(row)

        self._selected_slot_launch_button = make_pedal_button(
            67, name=u'Selected_Slot_Launch_Button')
        self._selected_scene_launch_button = make_pedal_button(
            64, name=u'Selected_Scene_Launch_Button')
        self._volume_controls = []
        self._arm_buttons = []
        self._solo_buttons = []
        self._mute_buttons = []
        self._select_buttons = []
        for index in range(MIXER_SIZE):
            self._volume_controls.append(
                make_slider(index, 7, name=u'%d_Volume_Control' % index))
            self._arm_buttons.append(
                make_on_off_button(index, 48, name=u'%d_Arm_Button' % index))
            self._solo_buttons.append(
                make_on_off_button(index, 49, name=u'%d_Solo_Button' % index))
            self._mute_buttons.append(
                make_on_off_button(index, 50, name=u'%d_Mute_Button' % index))
            self._select_buttons.append(
                make_on_off_button(index, 51,
                                   name=u'%d_Select_Button' % index))

        self._crossfader_control = make_slider(0, 15, name=u'Crossfader')
        self._master_volume_control = make_slider(
            0, 14, name=u'Master_Volume_Control')
        self._master_select_button = make_on_off_button(
            0, 80, name=u'Master_Select_Button')
        self._prehear_control = make_encoder(0,
                                             47,
                                             name=u'Prehear_Volume_Control')
        self._device_bank_buttons = []
        self._device_param_controls_raw = []
        bank_button_labels = (u'Clip_Track_Button', u'Device_On_Off_Button',
                              u'Previous_Device_Button', u'Next_Device_Button',
                              u'Detail_View_Button',
                              u'Rec_Quantization_Button',
                              u'Midi_Overdub_Button', u'Metronome_Button')
        for index in range(8):
            self._device_bank_buttons.append(
                make_on_off_button(0,
                                   58 + index,
                                   name=bank_button_labels[index]))
            encoder_name = u'Device_Control_%d' % index
            ringed_encoder = make_ring_encoder(16 + index,
                                               24 + index,
                                               name=encoder_name)
            self._device_param_controls_raw.append(ringed_encoder)

        self._play_button = make_button(0, 91, name=u'Play_Button')
        self._stop_button = make_button(0, 92, name=u'Stop_Button')
        self._record_button = make_button(0, 93, name=u'Record_Button')
        self._nudge_up_button = make_button(0, 100, name=u'Nudge_Up_Button')
        self._nudge_down_button = make_button(0,
                                              101,
                                              name=u'Nudge_Down_Button')
        self._tap_tempo_button = make_button(0, 99, name=u'Tap_Tempo_Button')
        self._global_bank_buttons = []
        self._global_param_controls = []
        for index in range(8):
            encoder_name = u'Track_Control_%d' % index
            ringed_encoder = make_ring_encoder(48 + index,
                                               56 + index,
                                               name=encoder_name)
            self._global_param_controls.append(ringed_encoder)

        self._global_bank_buttons = [
            make_on_off_button(0, 87 + index, name=name)
            for index, name in enumerate((u'Pan_Button', u'Send_A_Button',
                                          u'Send_B_Button', u'Send_C_Button'))
        ]
        self._device_clip_toggle_button = self._device_bank_buttons[0]
        self._device_on_off_button = self._device_bank_buttons[1]
        self._detail_left_button = self._device_bank_buttons[2]
        self._detail_right_button = self._device_bank_buttons[3]
        self._detail_toggle_button = self._device_bank_buttons[4]
        self._rec_quantization_button = self._device_bank_buttons[5]
        self._overdub_button = self._device_bank_buttons[6]
        self._metronome_button = self._device_bank_buttons[7]

        def wrap_matrix(control_list, wrapper=nop):
            return ButtonMatrixElement(rows=[list(map(wrapper, control_list))])

        self._scene_launch_buttons = wrap_matrix(
            self._scene_launch_buttons_raw)
        self._track_stop_buttons = wrap_matrix(self._track_stop_buttons)
        self._volume_controls = wrap_matrix(self._volume_controls)
        self._arm_buttons = wrap_matrix(self._arm_buttons)
        self._solo_buttons = wrap_matrix(self._solo_buttons)
        self._mute_buttons = wrap_matrix(self._mute_buttons)
        self._select_buttons = wrap_matrix(self._select_buttons)
        self._device_param_controls = wrap_matrix(
            self._device_param_controls_raw)
        self._device_bank_buttons = wrap_matrix(
            self._device_bank_buttons,
            partial(DeviceBankButtonElement, modifiers=[self._shift_button]))
        self._shifted_matrix = ButtonMatrixElement(
            rows=recursive_map(self._with_shift, self._matrix_rows_raw))
        self._shifted_scene_buttons = ButtonMatrixElement(rows=[[
            self._with_shift(button)
            for button in self._scene_launch_buttons_raw
        ]])
Exemple #18
0
    def _create_controls(self):
        make_on_off_button = partial(make_button, skin=self._default_skin)

        def make_color_button(*a, **k):
            button = make_button(skin=self._color_skin, *a, **k)
            button.is_rgb = True
            button.num_delayed_messages = 2
            return button

        def make_matrix_button(track, scene):
            return make_color_button(0,
                                     32 + track - NUM_TRACKS * scene,
                                     name=u'%d_Clip_%d_Button' %
                                     (track, scene))

        def make_stop_button(track):
            return make_button(track,
                               52,
                               name=u'%d_Stop_Button' % track,
                               skin=self._stop_button_skin)

        self._shift_button = make_button(0,
                                         98,
                                         name=u'Shift_Button',
                                         resource_type=PrioritizedResource)
        self._bank_button = make_on_off_button(0, 103, name=u'Bank_Button')
        self._left_button = make_button(0, 97, name=u'Bank_Select_Left_Button')
        self._right_button = make_button(0,
                                         96,
                                         name=u'Bank_Select_Right_Button')
        self._up_button = make_button(0, 94, name=u'Bank_Select_Up_Button')
        self._down_button = make_button(0, 95, name=u'Bank_Select_Down_Button')
        self._stop_buttons = ButtonMatrixElement(
            rows=[[make_stop_button(track) for track in xrange(NUM_TRACKS)]])
        self._stop_all_button = make_button(0,
                                            81,
                                            name=u'Stop_All_Clips_Button')
        self._scene_launch_buttons_raw = [
            make_color_button(0,
                              scene + 82,
                              name=u'Scene_%d_Launch_Button' % scene)
            for scene in xrange(NUM_SCENES)
        ]
        self._scene_launch_buttons = ButtonMatrixElement(
            rows=[self._scene_launch_buttons_raw])
        self._matrix_rows_raw = [[
            make_matrix_button(track, scene) for track in xrange(NUM_TRACKS)
        ] for scene in xrange(NUM_SCENES)]
        self._session_matrix = ButtonMatrixElement(rows=self._matrix_rows_raw)
        self._pan_button = make_on_off_button(0, 87, name=u'Pan_Button')
        self._sends_button = make_on_off_button(
            0, 88, name=u'Sends_Button', resource_type=PrioritizedResource)
        self._user_button = make_on_off_button(0, 89, name=u'User_Button')
        self._mixer_encoders = ButtonMatrixElement(rows=[[
            make_ring_encoder(
                48 + track, 56 + track, name=u'Track_Control_%d' % track)
            for track in xrange(NUM_TRACKS)
        ]])
        self._volume_controls = ButtonMatrixElement(rows=[[
            make_slider(track, 7, name=u'%d_Volume_Control' % track)
            for track in xrange(NUM_TRACKS)
        ]])
        self._master_volume_control = make_slider(
            0, 14, name=u'Master_Volume_Control')
        self._prehear_control = make_encoder(0,
                                             47,
                                             name=u'Prehear_Volume_Control')
        self._crossfader_control = make_slider(0, 15, name=u'Crossfader')
        self._raw_select_buttons = [
            make_on_off_button(channel, 51, name=u'%d_Select_Button' % channel)
            for channel in xrange(NUM_TRACKS)
        ]
        self._arm_buttons = ButtonMatrixElement(rows=[[
            make_on_off_button(channel, 48, name=u'%d_Arm_Button' % channel)
            for channel in xrange(NUM_TRACKS)
        ]])
        self._solo_buttons = ButtonMatrixElement(rows=[[
            make_on_off_button(channel, 49, name=u'%d_Solo_Button' % channel)
            for channel in xrange(NUM_TRACKS)
        ]])
        self._mute_buttons = ButtonMatrixElement(rows=[[
            make_on_off_button(channel, 50, name=u'%d_Mute_Button' % channel)
            for channel in xrange(NUM_TRACKS)
        ]])
        self._crossfade_buttons = ButtonMatrixElement(rows=[[
            make_button(channel,
                        66,
                        name=u'%d_Crossfade_Button' % channel,
                        skin=self._crossfade_button_skin)
            for channel in xrange(NUM_TRACKS)
        ]])
        self._select_buttons = ButtonMatrixElement(
            rows=[self._raw_select_buttons])
        self._master_select_button = make_on_off_button(
            channel=0, identifier=80, name=u'Master_Select_Button')
        self._send_select_buttons = ButtonMatrixElement(rows=[[
            ComboElement(button, modifiers=[self._sends_button])
            for button in self._raw_select_buttons
        ]])
        self._quantization_buttons = ButtonMatrixElement(rows=[[
            ComboElement(button, modifiers=[self._shift_button])
            for button in self._raw_select_buttons
        ]])
        self._metronome_button = make_on_off_button(0,
                                                    90,
                                                    name=u'Metronome_Button')
        self._play_button = make_on_off_button(0, 91, name=u'Play_Button')
        self._record_button = make_on_off_button(0, 93, name=u'Record_Button')
        self._session_record_button = make_on_off_button(
            0, 102, name=u'Session_Record_Button')
        self._nudge_down_button = make_button(0,
                                              100,
                                              name=u'Nudge_Down_Button')
        self._nudge_up_button = make_button(0, 101, name=u'Nudge_Up_Button')
        self._tap_tempo_button = make_button(0, 99, name=u'Tap_Tempo_Button')
        self._tempo_control = make_encoder(0, 13, name=u'Tempo_Control')
        self._device_controls = ButtonMatrixElement(rows=[[
            make_ring_encoder(
                16 + index, 24 + index, name=u'Device_Control_%d' % index)
            for index in xrange(8)
        ]])
        self._device_control_buttons_raw = [
            make_on_off_button(0, 58 + index) for index in xrange(8)
        ]
        self._device_bank_buttons = ButtonMatrixElement(rows=[[
            DeviceBankButtonElement(button, modifiers=[self._shift_button])
            for button in self._device_control_buttons_raw
        ]])
        self._device_prev_bank_button = self._device_control_buttons_raw[2]
        self._device_prev_bank_button.name = u'Device_Prev_Bank_Button'
        self._device_next_bank_button = self._device_control_buttons_raw[3]
        self._device_next_bank_button.name = u'Device_Next_Bank_Button'
        self._device_on_off_button = self._device_control_buttons_raw[4]
        self._device_on_off_button.name = u'Device_On_Off_Button'
        self._device_lock_button = self._device_control_buttons_raw[5]
        self._device_lock_button.name = u'Device_Lock_Button'
        self._prev_device_button = self._device_control_buttons_raw[0]
        self._prev_device_button.name = u'Prev_Device_Button'
        self._next_device_button = self._device_control_buttons_raw[1]
        self._next_device_button.name = u'Next_Device_Button'
        self._clip_device_button = self._device_control_buttons_raw[6]
        self._clip_device_button.name = u'Clip_Device_Button'
        self._detail_view_button = self._device_control_buttons_raw[7]
        self._detail_view_button.name = u'Detail_View_Button'
        self._foot_pedal_button = DoublePressElement(
            make_pedal_button(64, name=u'Foot_Pedal'))
        self._shifted_matrix = ButtonMatrixElement(
            rows=recursive_map(self._with_shift, self._matrix_rows_raw))
        self._shifted_scene_buttons = ButtonMatrixElement(rows=[[
            self._with_shift(button)
            for button in self._scene_launch_buttons_raw
        ]])
    def _create_controls(self):
        make_on_off_button = partial(make_button, skin=self._default_skin)

        def make_color_button(*a, **k):
            button = make_button(skin=self._color_skin, *a, **k)
            button.is_rgb = True
            button.num_delayed_messages = 2
            return button

        def make_matrix_button(track, scene):
            return make_color_button(0, 32 + track - NUM_TRACKS * scene, name='%d_Clip_%d_Button' % (track, scene))

        def make_stop_button(track):
            return make_button(track, 52, name='%d_Stop_Button' % track, skin=self._stop_button_skin)

        self._shift_button = make_button(0, 98, name='Shift_Button', resource_type=PrioritizedResource)
        self._bank_button = make_on_off_button(0, 103, name='Bank_Button')
        self._left_button = make_button(0, 97, name='Bank_Select_Left_Button')
        self._right_button = make_button(0, 96, name='Bank_Select_Right_Button')
        self._up_button = make_button(0, 94, name='Bank_Select_Up_Button')
        self._down_button = make_button(0, 95, name='Bank_Select_Down_Button')
        self._stop_buttons = ButtonMatrixElement(rows=[[ make_stop_button(track) for track in xrange(NUM_TRACKS) ]])
        self._stop_all_button = make_button(0, 81, name='Stop_All_Clips_Button')
        self._scene_launch_buttons_raw = [ make_color_button(0, scene + 82, name='Scene_%d_Launch_Button' % scene) for scene in xrange(NUM_SCENES) ]
        self._scene_launch_buttons = ButtonMatrixElement(rows=[self._scene_launch_buttons_raw])
        self._matrix_rows_raw = [ [ make_matrix_button(track, scene) for track in xrange(NUM_TRACKS) ] for scene in xrange(NUM_SCENES) ]
        self._session_matrix = ButtonMatrixElement(rows=self._matrix_rows_raw)
        self._pan_button = make_on_off_button(0, 87, name='Pan_Button')
        self._sends_button = make_on_off_button(0, 88, name='Sends_Button', resource_type=PrioritizedResource)
        self._user_button = make_on_off_button(0, 89, name='User_Button')
        self._mixer_encoders = ButtonMatrixElement(rows=[[ make_ring_encoder(48 + track, 56 + track, name='Track_Control_%d' % track) for track in xrange(NUM_TRACKS) ]])
        self._volume_controls = ButtonMatrixElement(rows=[[ make_slider(track, 7, name='%d_Volume_Control' % track) for track in xrange(NUM_TRACKS) ]])
        self._master_volume_control = make_slider(0, 14, name='Master_Volume_Control')
        self._prehear_control = make_encoder(0, 47, name='Prehear_Volume_Control')
        self._crossfader_control = make_slider(0, 15, name='Crossfader')
        self._raw_select_buttons = [ make_on_off_button(channel, 51, name='%d_Select_Button' % channel) for channel in xrange(NUM_TRACKS) ]
        self._arm_buttons = ButtonMatrixElement(rows=[[ make_on_off_button(channel, 48, name='%d_Arm_Button' % channel) for channel in xrange(NUM_TRACKS) ]])
        self._solo_buttons = ButtonMatrixElement(rows=[[ make_on_off_button(channel, 49, name='%d_Solo_Button' % channel) for channel in xrange(NUM_TRACKS) ]])
        self._mute_buttons = ButtonMatrixElement(rows=[[ make_on_off_button(channel, 50, name='%d_Mute_Button' % channel) for channel in xrange(NUM_TRACKS) ]])
        self._crossfade_buttons = ButtonMatrixElement(rows=[[ make_button(channel, 66, name='%d_Crossfade_Button' % channel, skin=self._crossfade_button_skin) for channel in xrange(NUM_TRACKS) ]])
        self._select_buttons = ButtonMatrixElement(rows=[self._raw_select_buttons])
        self._master_select_button = make_on_off_button(channel=0, identifier=80, name='Master_Select_Button')
        self._send_select_buttons = ButtonMatrixElement(rows=[[ ComboElement(button, modifiers=[self._sends_button]) for button in self._raw_select_buttons ]])
        self._quantization_buttons = ButtonMatrixElement(rows=[[ ComboElement(button, modifiers=[self._shift_button]) for button in self._raw_select_buttons ]])
        self._metronome_button = make_on_off_button(0, 90, name='Metronome_Button')
        self._play_button = make_on_off_button(0, 91, name='Play_Button')
        self._record_button = make_on_off_button(0, 93, name='Record_Button')
        self._session_record_button = make_on_off_button(0, 102, name='Session_Record_Button')
        self._nudge_down_button = make_button(0, 100, name='Nudge_Down_Button')
        self._nudge_up_button = make_button(0, 101, name='Nudge_Up_Button')
        self._tap_tempo_button = make_button(0, 99, name='Tap_Tempo_Button')
        self._tempo_control = make_encoder(0, 13, name='Tempo_Control')
        self._device_controls = ButtonMatrixElement(rows=[[ make_ring_encoder(16 + index, 24 + index, name='Device_Control_%d' % index) for index in xrange(8) ]])
        self._device_control_buttons_raw = [ make_on_off_button(0, 58 + index) for index in xrange(8) ]
        self._device_bank_buttons = ButtonMatrixElement(rows=[[ DeviceBankButtonElement(button, modifiers=[self._shift_button]) for button in self._device_control_buttons_raw ]])
        self._device_prev_bank_button = self._device_control_buttons_raw[2]
        self._device_prev_bank_button.name = 'Device_Prev_Bank_Button'
        self._device_next_bank_button = self._device_control_buttons_raw[3]
        self._device_next_bank_button.name = 'Device_Next_Bank_Button'
        self._device_on_off_button = self._device_control_buttons_raw[4]
        self._device_on_off_button.name = 'Device_On_Off_Button'
        self._device_lock_button = self._device_control_buttons_raw[5]
        self._device_lock_button.name = 'Device_Lock_Button'
        self._prev_device_button = self._device_control_buttons_raw[0]
        self._prev_device_button.name = 'Prev_Device_Button'
        self._next_device_button = self._device_control_buttons_raw[1]
        self._next_device_button.name = 'Next_Device_Button'
        self._clip_device_button = self._device_control_buttons_raw[6]
        self._clip_device_button.name = 'Clip_Device_Button'
        self._detail_view_button = self._device_control_buttons_raw[7]
        self._detail_view_button.name = 'Detail_View_Button'
        self._foot_pedal_button = DoublePressElement(make_pedal_button(64, name='Foot_Pedal'))
        self._shifted_matrix = ButtonMatrixElement(rows=recursive_map(self._with_shift, self._matrix_rows_raw))
        self._shifted_scene_buttons = ButtonMatrixElement(rows=[[ self._with_shift(button) for button in self._scene_launch_buttons_raw ]])
Exemple #20
0
    def _create_controls(self):

        make_on_off_button = partial(make_configurable_button, skin=self._default_skin)
        make_color_button = partial(make_configurable_button, skin=self._color_skin)
        make_stop_button = partial(make_configurable_button, skin=self._stop_button_skin)

        self._shift_button = make_button(0, 98, name='Shift_Button', resource_type=PrioritizedResource)
        self._left_button = make_button(0, 97, name='Bank_Select_Left_Button')
        self._right_button = make_button(0, 96, name='Bank_Select_Right_Button')
        self._up_button = make_button(0, 94, name='Bank_Select_Up_Button')
        self._down_button = make_button(0, 95, name='Bank_Select_Down_Button')
        self._stop_buttons = ButtonMatrixElement(rows=[[ make_stop_button(track, 52, name='%d_Stop_Button' % track) for track in xrange(NUM_TRACKS) ]], name="Stop_Buttons")
        self._stop_all_button = make_button(0, 81, name='Stop_All_Clips_Button')
        self._scene_launch_buttons_raw = [ make_color_button(0, scene + 82, name='Scene_%d_Launch_Button' % scene) for scene in xrange(NUM_SCENES) ]
        self._scene_launch_buttons = ButtonMatrixElement(rows=[self._scene_launch_buttons_raw], name="Scene_Launch_Buttons")
        self._matrix_rows_raw = [ [ make_color_button(track, 53 + scene, name='%d_Clip_%d_Button' % (track, scene)) for track in xrange(NUM_TRACKS) ] for scene in xrange(NUM_SCENES) ]
        self._session_matrix = ButtonMatrixElement(rows=self._matrix_rows_raw, name='Button_Matrix')
        self._pan_button = make_on_off_button(0, 87, name='Pan_Button')
        self._send_a_button = make_on_off_button(0, 88, name='Send_A_Button')
        self._send_b_button = make_on_off_button(0, 89, name='Send_B_Button')
        self._send_c_button = make_on_off_button(0, 90, name='Send_C_Button')
        self._mixer_encoders = ButtonMatrixElement(rows=[[ make_ring_encoder(48 + track, 56 + track, name='Track_Control_%d' % track) for track in xrange(NUM_TRACKS) ]], name="Track_Controls")
        # self._mixer_encoders_raw = [ make_ring_encoder(48 + track, 56 + track, name='Track_Control_%d' % track) for track in xrange(NUM_TRACKS) ]
        # self._mixer_encoders = ButtonMatrixElement(rows=[[FineGrainWithModifierEncoderElement(encoder, self._shift_button) for encoder in self._mixer_encoders_raw]], name="Track_Controls")
        self._volume_controls = ButtonMatrixElement(rows=[[ make_slider(track, 7, name='%d_Volume_Control' % track) for track in xrange(NUM_TRACKS) ]])
        self._master_volume_control = make_slider(0, 14, name='Master_Volume_Control')
        self._prehear_control = make_encoder(0, 47, name='Prehear_Volume_Control')
        self._crossfader_control = make_slider(0, 15, name='Crossfader')
        self._raw_select_buttons = [ make_on_off_button(channel, 51, name='%d_Select_Button' % channel) for channel in xrange(NUM_TRACKS) ]
        self._arm_buttons = ButtonMatrixElement(rows=[[ make_on_off_button(channel, 48, name='%d_Arm_Button' % channel) for channel in xrange(NUM_TRACKS) ]], name="Arm_Buttons")
        self._solo_buttons = ButtonMatrixElement(rows=[[ make_on_off_button(channel, 49, name='%d_Solo_Button' % channel) for channel in xrange(NUM_TRACKS) ]], name="Solo_Buttons")
        self._mute_buttons = ButtonMatrixElement(rows=[[ make_on_off_button(channel, 50, name='%d_Mute_Button' % channel) for channel in xrange(NUM_TRACKS) ]], name="Mute_Buttons")
        self._select_buttons = ButtonMatrixElement(rows=[self._raw_select_buttons], name="Select_Buttons")
        self._master_select_button = make_on_off_button(channel=0, identifier=80, name='Master_Select_Button')
        # self._send_select_buttons = ButtonMatrixElement(rows=[[ ComboElement(button, modifiers=[self._sends_button]) for button in self._raw_select_buttons ]])
        self._quantization_buttons = ButtonMatrixElement(rows=[[ ComboElement(button, modifiers=[self._shift_button]) for button in self._raw_select_buttons ]], name="Quantization_Buttons")
        self._play_button = make_on_off_button(0, 91, name='Play_Button')
        self._stop_button = make_on_off_button(0, 92, name='Stop_Button')
        self._record_button = make_on_off_button(0, 93, name='Record_Button')
        self._nudge_down_button = make_button(0, 101, name='Nudge_Down_Button')
        self._nudge_up_button = make_button(0, 100, name='Nudge_Up_Button')
        self._tap_tempo_button = make_button(0, 99, name='Tap_Tempo_Button')
        self._device_controls = ButtonMatrixElement(rows=[[ make_ring_encoder(16 + index, 24 + index, name='Device_Control_%d' % index) for index in xrange(8) ]], name="Device_Controls")
        self._device_control_buttons_raw = [ make_on_off_button(0, 58 + index) for index in xrange(8) ]
        self._device_bank_buttons = ButtonMatrixElement(rows=[[ DeviceBankButtonElement(button, modifiers=[self._shift_button]) for button in self._device_control_buttons_raw ]], name="Device_Bank_Buttons")
        self._device_lock_button = self._device_control_buttons_raw[0]
        self._device_lock_button.name = 'Device_Lock_Button'
        self._device_on_off_button = self._device_control_buttons_raw[1]
        self._device_on_off_button.name = 'Device_On_Off_Button'
        self._device_prev_bank_button = self._device_control_buttons_raw[2]
        self._device_prev_bank_button.name = 'Device_Prev_Bank_Button'
        self._device_next_bank_button = self._device_control_buttons_raw[3]
        self._device_next_bank_button.name = 'Device_Next_Bank_Button'
        self._clip_device_button = self._device_control_buttons_raw[4]
        self._clip_device_button.name = 'Clip_Device_Button'
        self._automation_button = self._device_control_buttons_raw[5]
        self._automation_button.name = 'Automation_Arm_Button'
        self._prev_device_button = self._device_control_buttons_raw[6]
        self._prev_device_button.name = 'Prev_Device_Button'
        self._next_device_button = self._device_control_buttons_raw[7]
        self._next_device_button.name = 'Next_Device_Button'
        self._foot_pedal_1_button = DoublePressElement(make_pedal_button(64, name='Foot_Pedal_1'))
        self._foot_pedal_2_button = DoublePressElement(make_pedal_button(67, name='Foot_Pedal_2'))
        self._shifted_matrix = ButtonMatrixElement(rows=recursive_map(self._with_shift, self._matrix_rows_raw), name="Shifted_Matrix")
        self._shifted_scene_buttons = ButtonMatrixElement(rows=[[ self._with_shift(button) for button in self._scene_launch_buttons_raw ]], name="Shifted_Scene_Buttons")
        self._double_press_rows = recursive_map(DoublePressElement, self._matrix_rows_raw)
        self._double_press_matrix = ButtonMatrixElement(name='Double_Press_Matrix', rows=self._double_press_rows)
        self._double_press_event_matrix = ButtonMatrixElement(name='Double_Press_Event_Matrix', rows=recursive_map(lambda x: x.double_press, self._double_press_rows))
        self._velocity_slider = ButtonSliderElement(tuple(self._scene_launch_buttons_raw[::-1]))
        self._grid_resolution = GridResolution()
        self._playhead_element = PlayheadElement(self._c_instance.playhead)
    def _create_controls(self):
        make_on_off_button = partial(make_button, skin=self._default_skin)
        make_color_button = partial(make_button, skin=self._color_skin)
        self._shift_button = make_button(0, 98, resource_type=PrioritizedResource, name='Shift_Button')
        self._right_button = make_button(0, 96, name='Bank_Select_Right_Button')
        self._left_button = make_button(0, 97, name='Bank_Select_Left_Button')
        self._up_button = make_button(0, 94, name='Bank_Select_Up_Button')
        self._down_button = make_button(0, 95, name='Bank_Select_Down_Button')
        self._session_matrix = ButtonMatrixElement(name='Button_Matrix')
        self._scene_launch_buttons_raw = [ make_color_button(0, index + 82, name='Scene_%d_Launch_Button' % index) for index in xrange(SESSION_HEIGHT) ]
        self._track_stop_buttons = [ make_color_button(index, 52, name='Track_%d_Stop_Button' % index) for index in xrange(SESSION_WIDTH) ]
        self._stop_all_button = make_color_button(0, 81, name='Stop_All_Clips_Button')
        self._matrix_rows_raw = [ [ make_color_button(track_index, scene_index + 53, name='%d_Clip_%d_Button' % (track_index, scene_index)) for track_index in xrange(SESSION_WIDTH) ] for scene_index in xrange(SESSION_HEIGHT) ]
        for row in self._matrix_rows_raw:
            self._session_matrix.add_row(row)

        self._selected_slot_launch_button = make_pedal_button(67, name='Selected_Slot_Launch_Button')
        self._selected_scene_launch_button = make_pedal_button(64, name='Selected_Scene_Launch_Button')
        self._volume_controls = []
        self._arm_buttons = []
        self._solo_buttons = []
        self._mute_buttons = []
        self._select_buttons = []
        for index in xrange(MIXER_SIZE):
            self._volume_controls.append(make_slider(index, 7, name='%d_Volume_Control' % index))
            self._arm_buttons.append(make_on_off_button(index, 48, name='%d_Arm_Button' % index))
            self._solo_buttons.append(make_on_off_button(index, 49, name='%d_Solo_Button' % index))
            self._mute_buttons.append(make_on_off_button(index, 50, name='%d_Mute_Button' % index))
            self._select_buttons.append(make_on_off_button(index, 51, name='%d_Select_Button' % index))

        self._crossfader_control = make_slider(0, 15, name='Crossfader')
        self._master_volume_control = make_slider(0, 14, name='Master_Volume_Control')
        self._master_select_button = make_on_off_button(0, 80, name='Master_Select_Button')
        self._prehear_control = make_encoder(0, 47, name='Prehear_Volume_Control')
        self._device_bank_buttons = []
        self._device_param_controls_raw = []
        bank_button_labels = ('Clip_Track_Button', 'Device_On_Off_Button', 'Previous_Device_Button', 'Next_Device_Button', 'Detail_View_Button', 'Rec_Quantization_Button', 'Midi_Overdub_Button', 'Metronome_Button')
        for index in range(8):
            self._device_bank_buttons.append(make_on_off_button(0, 58 + index, name=bank_button_labels[index]))
            encoder_name = 'Device_Control_%d' % index
            ringed_encoder = make_ring_encoder(16 + index, 24 + index, name=encoder_name)
            self._device_param_controls_raw.append(ringed_encoder)

        self._play_button = make_button(0, 91, name='Play_Button')
        self._stop_button = make_button(0, 92, name='Stop_Button')
        self._record_button = make_button(0, 93, name='Record_Button')
        self._nudge_up_button = make_button(0, 100, name='Nudge_Up_Button')
        self._nudge_down_button = make_button(0, 101, name='Nudge_Down_Button')
        self._tap_tempo_button = make_button(0, 99, name='Tap_Tempo_Button')
        self._global_bank_buttons = []
        self._global_param_controls = []
        for index in range(8):
            encoder_name = 'Track_Control_%d' % index
            ringed_encoder = make_ring_encoder(48 + index, 56 + index, name=encoder_name)
            self._global_param_controls.append(ringed_encoder)

        self._global_bank_buttons = [ make_on_off_button(0, 87 + index, name=name) for index, name in enumerate(('Pan_Button', 'Send_A_Button', 'Send_B_Button', 'Send_C_Button')) ]
        self._device_clip_toggle_button = self._device_bank_buttons[0]
        self._device_on_off_button = self._device_bank_buttons[1]
        self._detail_left_button = self._device_bank_buttons[2]
        self._detail_right_button = self._device_bank_buttons[3]
        self._detail_toggle_button = self._device_bank_buttons[4]
        self._rec_quantization_button = self._device_bank_buttons[5]
        self._overdub_button = self._device_bank_buttons[6]
        self._metronome_button = self._device_bank_buttons[7]

        def wrap_matrix(control_list, wrapper = nop):
            return ButtonMatrixElement(rows=[map(wrapper, control_list)])

        self._scene_launch_buttons = wrap_matrix(self._scene_launch_buttons_raw)
        self._track_stop_buttons = wrap_matrix(self._track_stop_buttons)
        self._volume_controls = wrap_matrix(self._volume_controls)
        self._arm_buttons = wrap_matrix(self._arm_buttons)
        self._solo_buttons = wrap_matrix(self._solo_buttons)
        self._mute_buttons = wrap_matrix(self._mute_buttons)
        self._select_buttons = wrap_matrix(self._select_buttons)
        self._device_param_controls = wrap_matrix(self._device_param_controls_raw)
        self._device_bank_buttons = wrap_matrix(self._device_bank_buttons, partial(DeviceBankButtonElement, modifiers=[self._shift_button]))
        self._shifted_matrix = ButtonMatrixElement(rows=recursive_map(self._with_shift, self._matrix_rows_raw))
        self._shifted_scene_buttons = ButtonMatrixElement(rows=[[ self._with_shift(button) for button in self._scene_launch_buttons_raw ]])
 def _create_shifted_matrix(self):
   self._shifted_matrix = ButtonMatrixElement(name='Shifted_Button_Matrix',
       rows = recursive_map(self._with_session, self.control_surface._pads)) 
   return self._shifted_matrix
    def _create_controls(self):
        make_on_off_button = partial(make_button, skin=self._default_skin)
        make_color_button = partial(make_button, skin=self._color_skin)
        make_stop_button = partial(make_button, skin=self._stop_button_skin)

        self._shift_button = make_button(0, 98, name='Shift_Button', resource_type=PrioritizedResource)
        self._left_button = make_button(0, 97, name='Bank_Select_Left_Button')
        self._right_button = make_button(0, 96, name='Bank_Select_Right_Button')
        self._up_button = make_button(0, 94, name='Bank_Select_Up_Button')
        self._down_button = make_button(0, 95, name='Bank_Select_Down_Button')
        self._stop_buttons = ButtonMatrixElement(rows=[[ make_stop_button(track, 52, name='%d_Stop_Button' % track) for track in xrange(NUM_TRACKS) ]], name="Stop_Buttons")
        self._stop_all_button = make_button(0, 81, name='Stop_All_Clips_Button')
        self._scene_launch_buttons_raw = [ make_color_button(0, scene + 82, name='Scene_%d_Launch_Button' % scene) for scene in xrange(NUM_SCENES) ]
        self._scene_launch_buttons = ButtonMatrixElement(rows=[self._scene_launch_buttons_raw], name="Scene_Launch_Buttons")
        self._matrix_rows_raw = [ [ make_color_button(track, 53 + scene, name='%d_Clip_%d_Button' % (track, scene)) for track in xrange(NUM_TRACKS) ] for scene in xrange(NUM_SCENES) ]
        self._session_matrix = ButtonMatrixElement(rows=self._matrix_rows_raw, name='Button_Matrix')
        self._pan_button = make_on_off_button(0, 87, name='Pan_Button')
        self._send_a_button = make_on_off_button(0, 88, name='Send_A_Button')
        self._send_b_button = make_on_off_button(0, 89, name='Send_B_Button')
        self._send_c_button = make_on_off_button(0, 90, name='Send_C_Button')
        self._mixer_encoders = ButtonMatrixElement(rows=[[ make_ring_encoder(48 + track, 56 + track, name='Track_Control_%d' % track) for track in xrange(NUM_TRACKS) ]], name="Track_Controls")
        self._volume_controls = ButtonMatrixElement(rows=[[ make_slider(track, 7, name='%d_Volume_Control' % track) for track in xrange(NUM_TRACKS) ]])
        self._master_volume_control = make_slider(0, 14, name='Master_Volume_Control')
        self._prehear_control = make_encoder(0, 47, name='Prehear_Volume_Control')
        self._crossfader_control = make_slider(0, 15, name='Crossfader')
        self._raw_select_buttons = [ make_on_off_button(channel, 51, name='%d_Select_Button' % channel) for channel in xrange(NUM_TRACKS) ]
        self._arm_buttons = ButtonMatrixElement(rows=[[ make_on_off_button(channel, 48, name='%d_Arm_Button' % channel) for channel in xrange(NUM_TRACKS) ]], name="Arm_Buttons")
        self._solo_buttons = ButtonMatrixElement(rows=[[ make_on_off_button(channel, 49, name='%d_Solo_Button' % channel) for channel in xrange(NUM_TRACKS) ]], name="Solo_Buttons")
        self._mute_buttons = ButtonMatrixElement(rows=[[ make_on_off_button(channel, 50, name='%d_Mute_Button' % channel) for channel in xrange(NUM_TRACKS) ]], name="Mute_Buttons")
        self._select_buttons = ButtonMatrixElement(rows=[self._raw_select_buttons], name="Select_Buttons")
        self._master_select_button = make_on_off_button(channel=0, identifier=80, name='Master_Select_Button')
        self._quantization_buttons = ButtonMatrixElement(rows=[[ ComboElement(button, modifiers=[self._shift_button]) for button in self._raw_select_buttons ]], name="Quantization_Buttons")
        self._play_button = make_on_off_button(0, 91, name='Play_Button')
        self._stop_button = make_on_off_button(0, 92, name='Stop_Button')
        self._record_button = make_on_off_button(0, 93, name='Record_Button')
        self._nudge_down_button = make_button(0, 101, name='Nudge_Down_Button')
        self._nudge_up_button = make_button(0, 100, name='Nudge_Up_Button')
        self._tap_tempo_button = make_button(0, 99, name='Tap_Tempo_Button')
        self._device_controls = ButtonMatrixElement(rows=[[ make_ring_encoder(16 + index, 24 + index, name='Device_Control_%d' % index) for index in xrange(8) ]], name="Device_Controls")
        self._device_control_buttons_raw = [ make_on_off_button(0, 58 + index) for index in xrange(8) ]
        self._device_bank_buttons = ButtonMatrixElement(rows=[[ DeviceBankButtonElement(button, modifiers=[self._shift_button]) for button in self._device_control_buttons_raw ]], name="Device_Bank_Buttons")
        self._device_clip_toggle_button = self._device_control_buttons_raw[0]
        self._device_clip_toggle_button.name = 'Clip_Device_Button'
        self._device_on_off_button = self._device_control_buttons_raw[1]
        self._device_on_off_button.name = 'Device_On_Off_Button'
        self._detail_left_button = self._device_control_buttons_raw[2]
        self._detail_left_button.name = 'Prev_Device_Button'
        self._detail_right_button = self._device_control_buttons_raw[3]
        self._detail_right_button.name = 'Next_Device_Button'
        self._detail_toggle_button = self._device_control_buttons_raw[4]
        self._detail_toggle_button.name = 'Detail_View_Button'
        self._rec_quantization_button = self._device_control_buttons_raw[5]
        self._rec_quantization_button.name ='Rec_Quantization_Button'
        self._overdub_button = self._device_control_buttons_raw[6]
        self._overdub_button.name = 'Overdub_Button'
        self._metronome_button = self._device_control_buttons_raw[7]
        self._metronome_button.name = 'Metronome_Button'
        self._selected_slot_launch_button = make_pedal_button(67, name='Selected_Slot_Launch_Button')
        self._selected_scene_launch_button = make_pedal_button(64, name='Selected_Scene_Launch_Button')
        self._shifted_matrix = ButtonMatrixElement(rows=recursive_map(self._with_shift, self._matrix_rows_raw), name="Shifted_Matrix")
        self._shifted_scene_buttons = ButtonMatrixElement(rows=[[ self._with_shift(button) for button in self._scene_launch_buttons_raw ]], name="Shifted_Scene_Buttons")
Exemple #24
0
 def _create_shifted_matrix(self):
     self._shifted_matrix = ButtonMatrixElement(
         name='Shifted_Button_Matrix',
         rows=recursive_map(self._with_session, self.control_surface._pads))
     return self._shifted_matrix