Esempio n. 1
0
 def __init__(self, *a, **k):
     (super(MPK261, self).__init__)(*a, **k)
     with self.component_guard():
         midimap = MidiMap()
         drum_rack = DrumRackComponent(
             name='Drum_Rack',
             is_enabled=False,
             layer=Layer(pads=(midimap['Drum_Pads'])))
         drum_rack.set_enabled(True)
         transport = TransportComponent(
             name='Transport',
             is_enabled=False,
             layer=Layer(play_button=(midimap['Play']),
                         record_button=(midimap['Record']),
                         stop_button=(midimap['Stop']),
                         seek_forward_button=(midimap['Forward']),
                         seek_backward_button=(midimap['Backward']),
                         loop_button=(midimap['Loop'])))
         transport.set_enabled(True)
         mixer_size = len(midimap['Sliders'])
         mixer = MixerComponent(mixer_size,
                                name='Mixer',
                                is_enabled=False,
                                layer=Layer(
                                    volume_controls=(midimap['Sliders']),
                                    pan_controls=(midimap['Encoders']),
                                    arm_buttons=(midimap['Arm_Buttons'])))
         mixer.set_enabled(True)
    def _create_mixer(self):
        mixer = MixerComponent(NUM_TRACKS, is_enabled=True, auto_name=True)
        mixer.layer = Layer(track_select_buttons=(self._select_buttons),
                            send_controls=(self._send_encoders),
                            next_sends_button=(self._down_button),
                            prev_sends_button=(self._up_button),
                            pan_controls=(self._pan_device_encoders),
                            volume_controls=(self._volume_faders),
                            send_lights=(self._send_encoder_lights),
                            pan_lights=(self._pan_device_encoder_lights))
        mixer.on_send_index_changed = partial(
            self._show_controlled_sends_message, mixer)
        for channel_strip in map(mixer.channel_strip, range(NUM_TRACKS)):
            channel_strip.empty_color = 'Mixer.NoTrack'

        mixer_modes = ModesComponent()
        mixer_modes.add_mode(
            'mute',
            [AddLayerMode(mixer, Layer(mute_buttons=(self._state_buttons)))])
        mixer_modes.add_mode(
            'solo',
            [AddLayerMode(mixer, Layer(solo_buttons=(self._state_buttons)))])
        mixer_modes.add_mode(
            'arm',
            [AddLayerMode(mixer, Layer(arm_buttons=(self._state_buttons)))])
        mixer_modes.layer = Layer(mute_button=(self._mute_mode_button),
                                  solo_button=(self._solo_mode_button),
                                  arm_button=(self._arm_mode_button))
        mixer_modes.selected_mode = 'mute'
        return mixer
    def _create_session(self):
        self._session = SessionComponent(
            NUM_TRACKS,
            NUM_SCENES,
            auto_name=True,
            is_enabled=False,
            enable_skinning=True,
            layer=Layer(
                track_bank_left_button=(self._midimap['Arrow_Left_Button']),
                track_bank_right_button=(self._midimap['Arrow_Right_Button']),
                scene_bank_up_button=(self._midimap['Arrow_Up_Button']),
                scene_bank_down_button=(self._midimap['Arrow_Down_Button'])))
        self._session.set_enabled(True)
        self._session.set_rgb_mode(LIVE_COLORS_TO_MIDI_VALUES, RGB_COLOR_TABLE)
        for scene_index in range(NUM_SCENES):
            scene = self._session.scene(scene_index)
            scene.layer = Layer(
                select_button=(self._midimap['Shift_Button']),
                delete_button=(self._midimap['Delete_Button']),
                duplicate_button=(self._midimap['Duplicate_Button']))
            for track_index in range(NUM_TRACKS):
                slot = scene.clip_slot(track_index)
                slot.layer = Layer(
                    select_button=(self._midimap['Shift_Button']),
                    delete_button=(self._midimap['Delete_Button']),
                    duplicate_button=(self._midimap['Duplicate_Button']),
                    double_loop_button=(self._midimap['Double_Loop_Button']),
                    quantize_button=(self._midimap['Quantize_Button']))

        self._session_zoom = SessionZoomingComponent((self._session),
                                                     name='Session_Overview',
                                                     is_enabled=True,
                                                     enable_skinning=True)
 def _create_device_mode(self):
     device_mode_scene_launch_translation = self._create_translation(
         'Device_Mode_Scene_Launch_Translation', consts.DEVICE_MAP_CHANNEL,
         Layer(scene_launch_buttons=(
             self._midimap['Scene_Launch_Button_Matrix'])))
     device_layer_mode = LayerMode(
         (self._device),
         layer=Layer(
             parameter_controls=(self._midimap['Slider_Button_Matrix'])))
     device_nav_layer_mode = LayerMode(
         (self._device_navigation),
         layer=Layer(
             device_nav_left_button=(self._midimap['Arrow_Left_Button']),
             device_nav_right_button=(self._midimap['Arrow_Right_Button'])))
     device_background_layer_mode = LayerMode(
         (self._device_background),
         layer=Layer(
             arrow_up_button=(self._midimap['Arrow_Up_Button']),
             arrow_down_button=(self._midimap['Arrow_Down_Button'])))
     self._modes.add_mode('device_mode', [
         partial(self._layout_setup, consts.FADER_LAYOUT_SYSEX_BYTE),
         self._device, device_layer_mode, device_nav_layer_mode,
         device_background_layer_mode, self._clip_actions_component,
         self._clip_delete_layer_mode, device_mode_scene_launch_translation,
         self._show_playing_clip, self._set_clip_actions_type
     ],
                          behaviour=(ReenterBehaviour(
                              self.toggle_detail_view)))
Esempio n. 5
0
 def _create_mixer(self):
     self._mixer = MixerComponent(is_enabled=False,
                                  num_tracks=(consts.SESSION_WIDTH),
                                  invert_mute_feedback=True,
                                  enable_skinning=True,
                                  name='Mixer',
                                  is_root=True)
     self._session.set_mixer(self._mixer)
     self._mixer_home_page_layer = LayerMode(
         self._mixer,
         Layer(volume_reset_buttons=(self._volume_reset_buttons),
               pan_reset_buttons=(self._pan_reset_buttons),
               send_a_reset_buttons=(self._send_a_reset_buttons),
               send_b_reset_buttons=(self._send_b_reset_buttons),
               mute_buttons=(self._mute_buttons),
               solo_buttons=(self._solo_buttons),
               arm_buttons=(self._arm_buttons),
               unmute_all_button=(self._mute_button),
               unsolo_all_button=(self._solo_button),
               unarm_all_button=(self._record_arm_button)))
     self._mixer_volume_layer = LayerMode(
         self._mixer, Layer(volume_controls=(self._sliders)))
     self._mixer_pan_layer = LayerMode(self._mixer,
                                       Layer(pan_controls=(self._sliders)))
     self._mixer_send_a_layer = LayerMode(
         self._mixer, Layer(send_a_controls=(self._sliders)))
     self._mixer_send_b_layer = LayerMode(
         self._mixer, Layer(send_b_controls=(self._sliders)))
 def __init__(self, *a, **k):
     (super(Advance, self).__init__)(*a, **k)
     with self.component_guard():
         encoders = ButtonMatrixElement(rows=[[
             make_encoder(index + 22, 'Encoder_%d' % index)
             for index in range(8)
         ]])
         pads = ButtonMatrixElement(rows=[[
             make_button(identifier, 'Pad_%d_%d' % (col, row))
             for col, identifier in enumerate(row_ids)
         ] for row, row_ids in enumerate(PAD_IDS)])
         device = DeviceComponent(
             is_enabled=False,
             layer=Layer(parameter_controls=encoders),
             device_selection_follows_track_selection=True)
         device.set_enabled(True)
         self.set_device_component(device)
         drums = DrumRackComponent(is_enabled=False, layer=Layer(pads=pads))
         drums.set_enabled(True)
         play_button = make_button(118, 'Play_Button', MIDI_CC_TYPE, 0)
         stop_button = make_button(117, 'Stop_Button', MIDI_CC_TYPE, 0)
         record_button = make_button(119, 'Record_Button', MIDI_CC_TYPE, 0)
         loop_button = make_button(114, 'Loop_Button', MIDI_CC_TYPE, 0)
         transport = TransportComponent(is_enabled=False,
                                        layer=Layer(
                                            play_button=play_button,
                                            stop_button=stop_button,
                                            record_button=record_button,
                                            loop_button=loop_button))
         transport.set_enabled(True)
Esempio n. 7
0
    def _create_encoder_modes(self):
        self._encoder_modes = DisablingModesComponent()
        self._encoder_modes.default_behaviour = mixin(SkinableBehaviourMixin,
                                                      ImmediateBehaviour)()
        device_mode = LayerMode(
            self._device,
            Layer(parameter_controls=(self._encoders),
                  bank_buttons=(self._top_pad_row)))
        pan_mode = AddLayerMode(self._mixer,
                                Layer(pan_controls=(self._encoders)))
        sends_mode = AddLayerMode(self._mixer,
                                  Layer(send_controls=(self._encoders)))
        background_mode = LayerMode(self._background,
                                    Layer(bank_buttons=(self._top_pad_row)))
        self._encoder_modes.add_mode('device_mode',
                                     device_mode,
                                     is_enabled=True)
        self._encoder_modes.add_mode('pan_mode', [pan_mode, background_mode],
                                     is_enabled=True)
        for index in range(6):
            self._encoder_modes.add_mode(('send_%d_mode' % (index, )), [
                sends_mode,
                partial(self._set_send_index, index), background_mode
            ],
                                         is_enabled=False)

        self._encoder_modes.selected_mode = 'device_mode'
        self._encoder_modes.set_enabled(True)
Esempio n. 8
0
 def __init__(self, *a, **k):
     (super(MPK225, self).__init__)(*a, **k)
     with self.component_guard():
         midimap = MidiMap()
         drum_rack = DrumRackComponent(
             name='Drum_Rack',
             is_enabled=False,
             layer=Layer(pads=(midimap['Drum_Pads'])))
         drum_rack.set_enabled(True)
         transport = TransportComponent(
             name='Transport',
             is_enabled=False,
             layer=Layer(play_button=(midimap['Play']),
                         record_button=(midimap['Record']),
                         stop_button=(midimap['Stop']),
                         seek_forward_button=(midimap['Forward']),
                         seek_backward_button=(midimap['Backward']),
                         loop_button=(midimap['Loop'])))
         transport.set_enabled(True)
         device = DeviceComponent(
             name='Device',
             is_enabled=False,
             layer=Layer(parameter_controls=(midimap['Encoders'])),
             device_selection_follows_track_selection=True)
         device.set_enabled(True)
         self.set_device_component(device)
Esempio n. 9
0
 def _create_session(self):
     self._session = SessionComponent(
         is_enabled=False,
         num_tracks=(self._session_matrix.width()),
         num_scenes=(self._session_matrix.height()),
         enable_skinning=True,
         name='Session',
         is_root=True,
         layer=Layer(track_bank_left_button=(self._left_button),
                     track_bank_right_button=(self._right_button),
                     scene_bank_up_button=(self._up_button),
                     scene_bank_down_button=(self._down_button)))
     self._session.set_rgb_mode(LIVE_COLORS_TO_MIDI_VALUES, RGB_COLOR_TABLE)
     self._session_layer_mode = AddLayerMode(
         self._session,
         Layer(clip_launch_buttons=(self._session_matrix),
               scene_launch_buttons=(self._scene_launch_matrix)))
     self._session_zoom = SessionZoomingComponent(
         (self._session),
         is_enabled=False,
         enable_skinning=True,
         layer=Layer(
             nav_up_button=(with_modifier(self._session_button_single,
                                          self._up_button)),
             nav_down_button=(with_modifier(self._session_button_single,
                                            self._down_button)),
             nav_left_button=(with_modifier(self._session_button_single,
                                            self._left_button)),
             nav_right_button=(with_modifier(self._session_button_single,
                                             self._right_button)),
             button_matrix=(self._session_zoom_matrix)))
     self._stop_clip_layer_mode = AddLayerMode(
         self._session,
         Layer(stop_track_clip_buttons=(self._stop_clip_buttons),
               stop_all_clips_button=(self._stop_button)))
 def _create_note_modes(self):
     note_mode_matrix_translation = self._create_translation(
         'Note_Mode_Matrix_Translation', (consts.CHROM_MAP_CHANNEL),
         Layer(button_matrix=(self._midimap['Main_Button_Matrix']),
               note_button_matrix=(self._midimap['Note_Button_Matrix']),
               drum_matrix=(self._midimap['Drum_Button_Matrix']),
               mixer_button_matrix=(self._midimap['Mixer_Button_Matrix'])),
         should_enable=False)
     note_mode_scene_launch_translation = self._create_translation(
         'Note_Mode_Scene_Launch_Translation', consts.CHROM_MAP_CHANNEL,
         Layer(scene_launch_buttons=(
             self._midimap['Scene_Launch_Button_Matrix'])))
     scale_setup_mode_button_lighting = LedLightingComponent(
         name='LED_Lighting_Component',
         is_enabled=False,
         layer=Layer(button=(self._midimap.with_shift('Note_Mode_Button'))))
     drum_mode_note_matrix_translation = self._create_translation(
         'Drum_Mode_Note_Button_Translation',
         0,
         Layer(note_button_matrix=(self._midimap['Note_Button_Matrix'])),
         should_enable=False,
         should_reset=False)
     drum_group_layer_mode = LayerMode(
         (self._drum_group),
         layer=Layer(
             scroll_up_button=(self._midimap['Arrow_Left_Button']),
             scroll_down_button=(self._midimap['Arrow_Right_Button']),
             scroll_page_up_button=(self._midimap['Arrow_Up_Button']),
             scroll_page_down_button=(self._midimap['Arrow_Down_Button']),
             drum_matrix=(self._midimap['Drum_Button_Matrix']),
             select_button=(self._midimap['Shift_Button']),
             delete_button=(self._midimap['Delete_Button'])))
     self._note_modes = SpecialModesComponent(name='Note_Modes')
     self._note_modes.add_mode('chromatic_mode', [
         partial(self._layout_setup, consts.NOTE_LAYOUT_SYSEX_BYTE),
         self._clip_delete_layer_mode, note_mode_matrix_translation,
         scale_setup_mode_button_lighting
     ])
     self._note_modes.add_mode('drum_mode', [
         partial(self._layout_setup,
                 consts.DRUM_LAYOUT_SYSEX_BYTE), self._setup_drum_group,
         drum_group_layer_mode, drum_mode_note_matrix_translation
     ])
     self._note_modes.add_mode('audio_mode', [
         partial(self._layout_setup, consts.AUDIO_LAYOUT_SYSEX_BYTE),
         self._clip_delete_layer_mode
     ])
     self._note_modes.set_enabled(False)
     self._modes.add_mode('note_mode', [
         note_mode_scene_launch_translation, self._note_modes,
         self._select_note_mode, self._select_target_track,
         self._clip_actions_component, self._show_playing_clip,
         self._set_clip_actions_type
     ],
                          behaviour=(ReenterBehaviour(
                              self.toggle_detail_view)))
     self._session_record.set_modes_component(self._modes)
     self._session_record.set_note_mode_name('note_mode')
 def _create_mixer(self):
     mixer_size = self._sliders.width()
     self._mixer = MixerComponent(mixer_size,
       name='Mixer',
       is_enabled=False,
       layer=Layer(volume_controls=(self._sliders),
       prehear_volume_control=(self._master_encoder)))
     self._mixer.master_strip().layer = Layer(volume_control=(self._master_slider))
     self._mixer.set_enabled(True)
 def _create_mixer(self):
     self._mixer = MixerComponent(
         num_tracks=(self._volume_sliders.width()),
         name='Mixer',
         is_enabled=False,
         layer=Layer(
             volume_controls=(self._volume_sliders),
             track_select_encoder=(self._horizontal_scroll_encoder)))
     self._mixer.master_strip().layer = Layer(
         volume_control=(self._master_slider))
     self._mixer.set_enabled(True)
Esempio n. 13
0
 def _setup_session(self):
     self._session = SessionComponent(NUM_CHANNEL_STRIPS, name='Session_Control')
     self._session.set_enabled(False)
     stop_buttons = ButtonMatrixElement(name='Track_Stop_Buttons',
       rows=[self._shifted_solo_buttons])
     self._session.layer = Layer(stop_all_clips_button=(self._shifted_stop_button),
       stop_track_clip_buttons=stop_buttons,
       select_prev_button=(self._shifted_octave_down_button),
       select_next_button=(self._shifted_octave_up_button))
     self._session.selected_scene().name = 'Selected_Scene_Control'
     self._session.selected_scene().layer = Layer(launch_button=(self._shifted_play_button))
     for index in range(NUM_CHANNEL_STRIPS):
         slot = self._session.selected_scene().clip_slot(index)
         slot.layer = Layer(launch_button=(self._shifted_mute_buttons[index]))
Esempio n. 14
0
 def _create_step_button_modes(self):
     matrix_modes = ModesComponent(name='Step_Button_Modes')
     clip_mode = AddLayerMode(
         self._session,
         Layer(clip_launch_buttons=(self._step_buttons),
               stop_track_clip_buttons=(self._modified_step_buttons)))
     scene_mode = AddLayerMode(
         self._session, Layer(scene_launch_buttons=(self._step_buttons)))
     matrix_modes.add_mode('clip', clip_mode)
     matrix_modes.add_mode('scene', scene_mode)
     matrix_modes.layer = Layer(clip_button=(self._recall_button),
                                scene_button=(self._store_button))
     matrix_modes.selected_mode = 'clip'
     return matrix_modes
 def _create_device(self):
     self._device = DeviceComponent(
         name='Device',
         is_enabled=False,
         layer=Layer(parameter_controls=(self._device_encoders)),
         device_selection_follows_track_selection=True)
     self._device.set_enabled(True)
     self.set_device_component(self._device)
     self._device_navigation = DeviceNavigationComponent(
         name='Device_Navigation',
         is_enabled=False,
         layer=Layer(device_nav_left_button=(self._device_left_button),
                     device_nav_right_button=(self._device_right_button)))
     self._device_navigation.set_enabled(True)
 def _create_modes(self):
     self._modes = ModesComponent(name='Launchpad_Modes', is_enabled=False)
     self._session_layer_mode = AddLayerMode(
         self._session,
         Layer(scene_launch_buttons=(
             self._midimap['Scene_Launch_Button_Matrix']),
               clip_launch_buttons=(self._midimap['Main_Button_Matrix']),
               delete_button=(self._midimap['Delete_Button']),
               duplicate_button=(self._midimap['Duplicate_Button']),
               double_button=(self._midimap['Double_Loop_Button']),
               quantize_button=(self._midimap['Quantize_Button'])))
     action_button_background = BackgroundComponent(name='No_Op_Buttons')
     self._action_button_background_layer_mode = LayerMode(
         action_button_background,
         Layer(delete_button=(self._midimap['Delete_Button']),
               quantize_button=(self._midimap['Quantize_Button']),
               duplicate_button=(self._midimap['Duplicate_Button']),
               double_button=(self._midimap['Double_Loop_Button'])))
     self._clip_delete_layer_mode = AddLayerMode(
         (self._clip_actions_component),
         layer=Layer(delete_button=(self._midimap['Delete_Button'])))
     self._create_session_zooming_modes()
     self._create_session_mode()
     self._create_note_modes()
     self._create_device_mode()
     self._create_user_mode()
     self._create_record_arm_mode()
     self._create_track_select_mode()
     self._create_mute_mode()
     self._create_solo_mode()
     self._create_volume_mode()
     self._create_pan_mode()
     self._create_sends_mode()
     self._create_stop_clips_mode()
     self._modes.layer = Layer(
         session_mode_button=(self._midimap['Session_Mode_Button']),
         note_mode_button=(self._midimap['Note_Mode_Button']),
         device_mode_button=(self._midimap['Device_Mode_Button']),
         user_mode_button=(self._midimap['User_Mode_Button']),
         record_arm_mode_button=(self._midimap['Record_Arm_Mode_Button']),
         track_select_mode_button=(
             self._midimap['Track_Select_Mode_Button']),
         mute_mode_button=(self._midimap['Mute_Mode_Button']),
         solo_mode_button=(self._midimap['Solo_Mode_Button']),
         volume_mode_button=(self._midimap['Volume_Mode_Button']),
         pan_mode_button=(self._midimap['Pan_Mode_Button']),
         sends_mode_button=(self._midimap['Sends_Mode_Button']),
         stop_clip_mode_button=(self._midimap['Stop_Clip_Mode_Button']))
     self._modes.selected_mode = 'session_mode'
     self._on_layout_changed.subject = self._modes
Esempio n. 17
0
 def _create_mixer(self):
     self._mixer = MixerComponent(
         num_tracks=NUM_TRACKS,
         is_enabled=False,
         invert_mute_feedback=True,
         layer=Layer(volume_controls=(self._sliders),
                     pan_controls=(self._pan_encoders),
                     send_controls=(self._send_encoders),
                     bank_down_button=(self._bank_left_button),
                     bank_up_button=(self._bank_right_button),
                     arm_buttons=(self._rec_arm_buttons),
                     solo_buttons=(self._solo_buttons),
                     mute_buttons=(self._mute_buttons)))
     self._mixer.master_strip().layer = Layer(
         volume_control=(self._master_slider))
 def _create_background(self):
     self._modifier_background_component = ModifierBackgroundComponent(
         name='Background_Component',
         is_enabled=False,
         layer=Layer(shift_button=(self._midimap['Shift_Button'])))
     self._shifted_background = BackgroundComponent(
         name='No_Op_Shifted_Buttons',
         is_enabled=False,
         layer=Layer(
             click_bitton=(self._midimap.with_shift('Click_Button')),
             delete_button=(self._midimap.with_shift('Delete_Button')),
             duplicate_button=(
                 self._midimap.with_shift('Duplicate_Button')),
             double_button=(self._midimap.with_shift('Double_Loop_Button')),
             session_record_button=(
                 self._midimap.with_shift('Session_Record_Button'))))
Esempio n. 19
0
 def _create_transport(self):
     transport = TransportComponent(
         play_toggle_model_transform=(lambda v: v))
     transport.layer = Layer(
         record_button=(self._modified_start_stop_button),
         play_button=(self._start_stop_button))
     return transport
Esempio n. 20
0
 def _create_in_control_status_listener(self):
     self._in_control_status = InControlStatusComponent(
         set_is_in_control_on=(self._set_is_in_control_on),
         is_enabled=False,
         layer=Layer(
             in_control_status_button=(self._pad_in_control_status_button)))
     self._in_control_status.set_enabled(True)
 def _create_transport(self):
     self._transport = TransportComponent(name='Transport',
       is_enabled=False,
       layer=Layer(play_button=(self._play_button),
       stop_button=(self._stop_button),
       record_button=(self._record_button)))
     self._transport.set_enabled(True)
 def _create_recording(self):
     self._session_record = SpecialSessionRecordingComponent(
         (self._target_track_component),
         name='Session_Recording',
         is_enabled=False,
         layer=Layer(
             record_button=(self._midimap['Session_Record_Button'])))
Esempio n. 23
0
    def _init_device_component(self, device_controls, bank_controls, global_channel, macro_map_mode, device_component_class):
        is_momentary = True
        DeviceButton = partial(ButtonElement, is_momentary, MIDI_CC_TYPE)

        def make_bank_button(control, name):
            return DeviceButton(global_channel, (bank_controls[control]), name=name)

        if device_controls:
            device = device_component_class(device_selection_follows_track_selection=True,
              name='Device_Component')
            layer_specs = {}
            if bank_controls:
                if has_specification_for('NEXTBANK', bank_controls):
                    layer_specs['bank_next_button'] = make_bank_button('NEXTBANK', 'Device_Next_Bank_Button')
                if has_specification_for('PREVBANK', bank_controls):
                    layer_specs['bank_prev_button'] = make_bank_button('PREVBANK', 'Device_Previous_Bank_Button')
                if has_specification_for('TOGGLELOCK', bank_controls):
                    layer_specs['lock_button'] = make_bank_button('TOGGLELOCK', 'Device_Lock_Button')
                if has_specification_for('ONOFF', bank_controls):
                    layer_specs['on_off_button'] = make_bank_button('ONOFF', 'Device_On_Off_Button')
                bank_buttons_raw = []
                for index in range(8):
                    key = 'BANK{}'.format(index + 1)
                    if key in list(bank_controls.keys()):
                        control_info = bank_controls[key]
                        channel = global_channel
                        cc = control_info
                        if isinstance(control_info, (tuple, list)):
                            cc = control_info[0]
                            if is_valid_midi_channel(control_info[1]):
                                channel = control_info[1]
                        if is_valid_midi_identifier(cc):
                            if is_valid_midi_channel(channel):
                                name = 'Device_Bank_{}_Button'.format(index)
                                bank_buttons_raw.append(DeviceButton(channel, cc, name=name))

                if len(bank_buttons_raw) > 0:
                    layer_specs['bank_buttons'] = ButtonMatrixElement(rows=[
                     bank_buttons_raw],
                      name='Device_Bank_Buttons')
            parameter_encoders_raw = []
            for index, control_info in enumerate(device_controls):
                channel = global_channel
                cc = control_info
                if isinstance(control_info, (tuple, list)):
                    cc = control_info[0]
                    if is_valid_midi_channel(control_info[1]):
                        channel = control_info[1]
                if is_valid_midi_identifier(cc):
                    if is_valid_midi_channel(channel):
                        name = 'Device_Parameter_%d_Control' % index
                        parameter_encoders_raw.append(EncoderElement(MIDI_CC_TYPE,
                          channel, cc, macro_map_mode, name=name))

            if len(parameter_encoders_raw) > 0:
                layer_specs['parameter_controls'] = ButtonMatrixElement(rows=[
                 parameter_encoders_raw],
                  name='Device_Parameter_Controls')
            device.layer = Layer(**layer_specs)
            self.set_device_component(device)
Esempio n. 24
0
 def _create_device(self):
     self._device = DeviceComponent(name='Device',
       is_enabled=False,
       layer=Layer(parameter_controls=(self._device_controls)),
       device_selection_follows_track_selection=True)
     self._device.set_enabled(True)
     self.set_device_component(self._device)
 def _create_session_recording(self):
     self._session_recording = SessionRecordingComponent(
         (ClipCreator()), (ViewControlComponent()),
         name='Session_Recording',
         is_enabled=False,
         layer=Layer(record_button=(self._session_record_button)))
     self._session_recording.set_enabled(True)
 def _create_actions(self):
     self._clip_actions_component = ClipActionsComponent(
         (self._target_track_component), (self._actions_component),
         name='Clip_Actions',
         is_enabled=False,
         layer=Layer(duplicate_button=(self._midimap['Duplicate_Button']),
                     double_button=(self._midimap['Double_Loop_Button']),
                     quantize_button=(self._midimap['Quantize_Button'])))
Esempio n. 27
0
 def _create_session(self):
     session = NotifyingSessionComponent(NUM_TRACKS,
                                         NUM_SCENES,
                                         enable_skinning=True,
                                         auto_name=True)
     session.layer = Layer(scene_bank_down_button=(self._cursor_up_button),
                           scene_bank_up_button=(self._cursor_down_button))
     return session
Esempio n. 28
0
 def _create_session(self):
     self._session = self.session_component_type(num_tracks=(self._pads.width()),
       num_scenes=(self._pads.height()),
       name='Session',
       is_enabled=False,
       layer=Layer(clip_launch_buttons=(self._pads),
       scene_select_control=(self._vertical_scroll_encoder)))
     self._session.set_enabled(True)
 def _create_view_control(self):
     self._view_control = DetailViewCntrlComponent(name='View_Control',
       is_enabled=False,
       layer=Layer(device_nav_left_button=(self._prev_device_button),
       device_nav_right_button=(self._next_device_button),
       device_clip_toggle_button=(self._clip_device_button),
       detail_toggle_button=(self._detail_view_button)))
     self._view_control.device_clip_toggle_button.pressed_color = 'DefaultButton.On'
 def _create_mixer(self):
     self._mixer = MixerComponent(NUM_TRACKS,
       auto_name=True,
       is_enabled=False,
       invert_mute_feedback=True,
       layer=Layer(volume_controls=(self._volume_controls),
       arm_buttons=(self._arm_buttons),
       solo_buttons=(self._solo_buttons),
       mute_buttons=(self._mute_buttons),
       shift_button=(self._shift_button),
       track_select_buttons=(self._select_buttons),
       prehear_volume_control=(self._prehear_control),
       crossfader_control=(self._crossfader_control),
       crossfade_buttons=(self._crossfade_buttons)))
     self._mixer.master_strip().layer = Layer(volume_control=(self._master_volume_control),
       select_button=(self._master_select_button))
     self._encoder_mode = ModesComponent(name='Encoder_Mode', is_enabled=False)
     self._encoder_mode.default_behaviour = ImmediateBehaviour()
     self._encoder_mode.add_mode('pan', [AddLayerMode(self._mixer, Layer(pan_controls=(self._mixer_encoders)))])
     self._encoder_mode.add_mode('sends', [
      AddLayerMode(self._mixer, Layer(send_controls=(self._mixer_encoders))),
      DelayMode(AddLayerMode(self._mixer, Layer(send_select_buttons=(self._send_select_buttons))))])
     self._encoder_mode.add_mode('user', [AddLayerMode(self._mixer, Layer(user_controls=(self._mixer_encoders)))])
     self._encoder_mode.layer = Layer(pan_button=(self._pan_button),
       sends_button=(self._sends_button),
       user_button=(self._user_button))
     self._encoder_mode.selected_mode = 'pan'