コード例 #1
0
 def _setup_global_control(self):
     is_momentary = True
     self._global_bank_buttons = []
     self._global_param_controls = []
     for index in range(8):
         ring_button = ButtonElement(not is_momentary, MIDI_CC_TYPE, 0, 56 + index)
         ringed_encoder = RingedEncoderElement(MIDI_CC_TYPE, 0, 48 + index, Live.MidiMap.MapMode.absolute)
         ringed_encoder.name = 'Track_Control_' + str(index)
         ringed_encoder.set_feedback_delay(-1)
         ring_button.name = ringed_encoder.name + '_Ring_Mode_Button'
         ringed_encoder.set_ring_mode_button(ring_button)
         self._global_param_controls.append(ringed_encoder)
     self._global_bank_buttons = []
     global_bank_labels = ('Pan_Button', 'Send_A_Button', 'Send_B_Button', 'Send_C_Button')
     for index in range(4):
         self._global_bank_buttons.append(ConfigurableButtonElement(is_momentary, MIDI_NOTE_TYPE, 0, 87 + index))#(not is_momentary, MIDI_NOTE_TYPE, 0, 87 + index))
         self._global_bank_buttons[-1].name = global_bank_labels[index]
     self._encoder_modes = EncoderMixerModeSelectorComponent(self._mixer)
     self._encoder_modes.name = 'Track_Control_Modes'
     #self._encoder_modes.set_modes_buttons(self._global_bank_buttons) # set in ShiftableEncoderSelectorComponent
     self._encoder_modes.set_controls(tuple(self._global_param_controls))
     #self._encoder_device_modes = EncoderDeviceModeSelectorComponent(self._mixer, self._device) #new
     self._encoder_device_modes = EncoderDeviceComponent(self._mixer, self._device, self)
     self._encoder_device_modes.name = 'Alt_Device_Control_Modes' #new
     self._encoder_eq_modes = EncoderEQComponent(self._mixer, self)#EncoderEQModeSelectorComponent(self._mixer) #new
     self._encoder_eq_modes.name = 'EQ_Control_Modes' #new
     global_translation_selector = ChannelTranslationSelector() #translate track encoders to channels 1 through 4, based on button selection (pan = 1, send A = 2, send B = 3, send C = 4)
     global_translation_selector.name = 'Global_Translations'
     global_translation_selector.set_controls_to_translate(tuple(self._global_param_controls))
     global_translation_selector.set_mode_buttons(tuple(self._global_bank_buttons))
     encoder_user_modes = EncoderUserModesComponent(self, self._encoder_modes, tuple(self._global_param_controls), tuple(self._global_bank_buttons), self._mixer, self._device, self._encoder_device_modes, self._encoder_eq_modes) #self._mixer, tuple(sliders)) #added
     encoder_user_modes.name = 'Encoder_User_Modes' #added   
     self._encoder_shift_modes = ShiftableEncoderSelectorComponent(self, tuple(self._global_bank_buttons), encoder_user_modes, self._encoder_modes, self._encoder_eq_modes, self._encoder_device_modes) #tuple(select_buttons), master_select_button, tuple(arm_buttons), self._matrix, self._session, self._session_zoom, self._mixer, slider_modes, matrix_modes) #, self._send_introduction_message) #also added self for _parent
     self._encoder_shift_modes.name = 'Encoder_Shift_Modes'
     self._encoder_shift_modes.set_mode_toggle(self._shift_button)     
コード例 #2
0
def make_ring_encoder(encoder_identifer, button_identifier, name = '', *a, **k):
    button_name = '%s_Ring_Mode_Button' % name
    button = ButtonElement(False, MIDI_CC_TYPE, 0, button_identifier, name=button_name)
    encoder = RingedEncoderElement(MIDI_CC_TYPE, 0, encoder_identifer, MapMode.absolute, name=name, *a, **k)
    encoder.set_ring_mode_button(button)
    encoder.set_feedback_delay(-1)
    return encoder
コード例 #3
0
 def _setup_global_control(self):
     is_momentary = True
     self._global_bank_buttons = []
     self._global_param_controls = []
     for index in range(8):
         ring_button = ButtonElement(not is_momentary, MIDI_CC_TYPE, 0, 56 + index)
         ringed_encoder = RingedEncoderElement(MIDI_CC_TYPE, 0, 48 + index, Live.MidiMap.MapMode.absolute)
         ringed_encoder.name = 'Track_Control_' + str(index)
         ringed_encoder.set_feedback_delay(-1)
         ring_button.name = ringed_encoder.name + '_Ring_Mode_Button'
         ringed_encoder.set_ring_mode_button(ring_button)
         self._global_param_controls.append(ringed_encoder)
     self._global_bank_buttons = []
     global_bank_labels = ('Pan_Button', 'Send_A_Button', 'Send_B_Button', 'Send_C_Button')
     for index in range(4):
         self._global_bank_buttons.append(ConfigurableButtonElement(is_momentary, MIDI_NOTE_TYPE, 0, 87 + index))
         self._global_bank_buttons[-1].name = global_bank_labels[index]
     self._encoder_modes = EncModeSelectorComponent(self._mixer)
     self._encoder_modes.name = 'Track_Control_Modes'
     self._encoder_modes.set_controls(tuple(self._global_param_controls))
     self._encoder_device_modes = EncoderDeviceComponent(self._mixer, self._device, self)
     self._encoder_device_modes.name = 'Alt_Device_Control_Modes'
     self._encoder_eq_modes = EncoderEQComponent(self._mixer, self)
     self._encoder_eq_modes.name = 'EQ_Control_Modes'
     global_translation_selector = ChannelTranslationSelector()
     global_translation_selector.name = 'Global_Translations'
     global_translation_selector.set_controls_to_translate(tuple(self._global_param_controls))
     global_translation_selector.set_mode_buttons(tuple(self._global_bank_buttons))
     encoder_user_modes = EncoderUserModesComponent(self, self._encoder_modes, tuple(self._global_param_controls), tuple(self._global_bank_buttons), self._mixer, self._device, self._encoder_device_modes, self._encoder_eq_modes)
     encoder_user_modes.name = 'Encoder_User_Modes' 
     self._encoder_shift_modes = ShiftableEncoderSelectorComponent(self, tuple(self._global_bank_buttons), encoder_user_modes, self._encoder_modes, self._encoder_eq_modes, self._encoder_device_modes)
     self._encoder_shift_modes.name = 'Encoder_Shift_Modes'
     self._encoder_shift_modes.set_mode_toggle(self._shift_button)  
コード例 #4
0
 def _setup_device_and_transport_control(self):
     is_momentary = True
     device_bank_buttons = []
     device_param_controls = []
     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):
         device_bank_buttons.append(ButtonElement(is_momentary, MIDI_NOTE_TYPE, 0, 58 + index))
         device_bank_buttons[-1].name = bank_button_labels[index]
         ring_mode_button = ButtonElement(not is_momentary, MIDI_CC_TYPE, 0, 24 + index)
         ringed_encoder = RingedEncoderElement(MIDI_CC_TYPE, 0, 16 + index, Live.MidiMap.MapMode.absolute)
         ringed_encoder.set_ring_mode_button(ring_mode_button)
         ringed_encoder.set_feedback_delay(-1)
         ringed_encoder.name = 'Device_Control_' + str(index)
         ring_mode_button.name = ringed_encoder.name + '_Ring_Mode_Button'
         device_param_controls.append(ringed_encoder)
     self._device = ShiftableDeviceComponent()
     self._device.name = 'Device_Component'
     self._device.set_bank_buttons(tuple(device_bank_buttons))
     self._device.set_shift_button(self._shift_button)
     self._device.set_parameter_controls(tuple(device_param_controls))
     self._device.set_on_off_button(device_bank_buttons[1])
     self.set_device_component(self._device)
     detail_view_toggler = DetailViewCntrlComponent()
     detail_view_toggler.name = 'Detail_View_Control'
     detail_view_toggler.set_shift_button(self._shift_button)
     detail_view_toggler.set_device_clip_toggle_button(device_bank_buttons[0])
     detail_view_toggler.set_detail_toggle_button(device_bank_buttons[4])
     detail_view_toggler.set_device_nav_buttons(device_bank_buttons[2], device_bank_buttons[3])
     
     transport = ShiftableTransportComponent()
     transport.name = 'Transport'
     play_button = ButtonElement(is_momentary, MIDI_NOTE_TYPE, 0, 91)
     stop_button = ButtonElement(is_momentary, MIDI_NOTE_TYPE, 0, 92)
     record_button = ButtonElement(is_momentary, MIDI_NOTE_TYPE, 0, 93)
     nudge_up_button = ButtonElement(is_momentary, MIDI_NOTE_TYPE, 0, 100)
     nudge_down_button = ButtonElement(is_momentary, MIDI_NOTE_TYPE, 0, 101)
     tap_tempo_button = ButtonElement(is_momentary, MIDI_NOTE_TYPE, 0, 99)
     play_button.name = 'Play_Button'
     stop_button.name = 'Stop_Button'
     record_button.name = 'Record_Button'
     nudge_up_button.name = 'Nudge_Up_button'
     nudge_down_button.name = 'Nudge_Down_button'
     tap_tempo_button.name = 'Tap_Tempo_Button'
     transport.set_shift_button(self._shift_button)
     transport.set_play_button(play_button)
     transport.set_stop_button(stop_button)
     transport.set_record_button(record_button)
     transport.set_nudge_buttons(nudge_up_button, nudge_down_button)
     transport.set_undo_button(nudge_down_button)
     transport.set_redo_button(nudge_up_button)
     transport.set_tap_tempo_button(tap_tempo_button)
     self._device.set_lock_button(tap_tempo_button)
     transport.set_quant_toggle_button(device_bank_buttons[5])
     transport.set_overdub_button(device_bank_buttons[6])
     transport.set_metronome_button(device_bank_buttons[7])
     transport.set_tempo_encoder(self._prehear_control)
     bank_button_translator = ShiftTranslatorComponent()
     bank_button_translator.set_controls_to_translate(tuple(device_bank_buttons))
     bank_button_translator.set_shift_button(self._shift_button)
コード例 #5
0
 def _setup_device_and_transport_control(self):
     is_momentary = True
     device_bank_buttons = []
     device_param_controls = []
     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', 'Device_Lock_Button', 'Metronome_Button')
     for index in range(8):
         device_bank_buttons.append(ButtonElement(is_momentary, MIDI_NOTE_TYPE, 0, 58 + index))
         device_bank_buttons[-1].name = bank_button_labels[index]
         ring_mode_button = ButtonElement(not is_momentary, MIDI_CC_TYPE, 0, 24 + index)
         ringed_encoder = RingedEncoderElement(MIDI_CC_TYPE, 0, 16 + index, Live.MidiMap.MapMode.absolute)
         ringed_encoder.set_ring_mode_button(ring_mode_button)
         ringed_encoder.set_feedback_delay(-1) #added from Axiom DirectLink example
         ringed_encoder.name = 'Device_Control_' + str(index)
         ring_mode_button.name = ringed_encoder.name + '_Ring_Mode_Button'
         device_param_controls.append(ringed_encoder)
     self._device = ShiftableDeviceComponent()
     self._device.name = 'Device_Component'
     self._device.set_bank_buttons(tuple(device_bank_buttons))
     self._device.set_shift_button(self._shift_button)
     self._device.set_parameter_controls(tuple(device_param_controls))
     self._device.set_on_off_button(device_bank_buttons[1])
     self.set_device_component(self._device)
     detail_view_toggler = DetailViewControllerComponent()
     detail_view_toggler.name = 'Detail_View_Control'
     detail_view_toggler.set_shift_button(self._shift_button)
     detail_view_toggler.set_device_clip_toggle_button(device_bank_buttons[0])
     detail_view_toggler.set_detail_toggle_button(device_bank_buttons[4])
     detail_view_toggler.set_device_nav_buttons(device_bank_buttons[2], device_bank_buttons[3])
     transport = ShiftableTransportComponent()
     transport.name = 'Transport'
     play_button = ButtonElement(is_momentary, MIDI_NOTE_TYPE, 0, 91)
     stop_button = ButtonElement(is_momentary, MIDI_NOTE_TYPE, 0, 92)
     record_button = ButtonElement(is_momentary, MIDI_NOTE_TYPE, 0, 93)
     nudge_up_button = ButtonElement(is_momentary, MIDI_NOTE_TYPE, 0, 100)
     nudge_down_button = ButtonElement(is_momentary, MIDI_NOTE_TYPE, 0, 101)
     tap_tempo_button = ButtonElement(is_momentary, MIDI_NOTE_TYPE, 0, 99)
     play_button.name = 'Play_Button'
     stop_button.name = 'Stop_Button'
     record_button.name = 'Record_Button'
     nudge_up_button.name = 'Nudge_Up_Button'
     nudge_down_button.name = 'Nudge_Down_Button'
     tap_tempo_button.name = 'Tap_Tempo_Button'
     transport.set_shift_button(self._shift_button)
     transport.set_play_button(play_button)
     transport.set_stop_button(stop_button)
     transport.set_record_button(record_button)
     transport.set_nudge_buttons(nudge_up_button, nudge_down_button)
     transport.set_undo_button(nudge_down_button) #shifted nudge
     transport.set_redo_button(nudge_up_button) #shifted nudge
     transport.set_tap_tempo_button(tap_tempo_button)
     self._device.set_lock_button(tap_tempo_button) #shifted tap tempo
     transport.set_quant_toggle_button(device_bank_buttons[5])
     transport.set_overdub_button(device_bank_buttons[6])
     transport.set_metronome_button(device_bank_buttons[7])
     transport.set_tempo_encoder(self._prehear_control) #shifted prehear
     bank_button_translator = ShiftableTranslatorComponent()
     bank_button_translator.set_controls_to_translate(tuple(device_bank_buttons))
     bank_button_translator.set_shift_button(self._shift_button)
コード例 #6
0
 def _setup_global_control(self):
     is_momentary = True
     self._global_bank_buttons = []
     self._global_param_controls = []
     for index in range(8):
         ring_button = ButtonElement(not is_momentary, MIDI_CC_TYPE, 0,
                                     56 + index)
         ringed_encoder = RingedEncoderElement(
             MIDI_CC_TYPE, 0, 48 + index, Live.MidiMap.MapMode.absolute)
         ringed_encoder.name = 'Track_Control_' + str(index)
         ringed_encoder.set_feedback_delay(-1)
         ring_button.name = ringed_encoder.name + '_Ring_Mode_Button'
         ringed_encoder.set_ring_mode_button(ring_button)
         self._global_param_controls.append(ringed_encoder)
     self._global_bank_buttons = []
     global_bank_labels = ('Pan_Button', 'Send_A_Button', 'Send_B_Button',
                           'Send_C_Button')
     for index in range(4):
         self._global_bank_buttons.append(
             ConfigurableButtonElement(is_momentary, MIDI_NOTE_TYPE, 0,
                                       87 + index))
         self._global_bank_buttons[-1].name = global_bank_labels[index]
     self._encoder_modes = EncModeSelectorComponent(self._mixer)
     self._encoder_modes.name = 'Track_Control_Modes'
     self._encoder_modes.set_controls(tuple(self._global_param_controls))
     self._encoder_device_modes = EncoderDeviceComponent(
         self._mixer, self._device, self)
     self._encoder_device_modes.name = 'Alt_Device_Control_Modes'
     self._encoder_eq_modes = EncoderEQComponent(self._mixer, self)
     self._encoder_eq_modes.name = 'EQ_Control_Modes'
     global_translation_selector = ChannelTranslationSelector()
     global_translation_selector.name = 'Global_Translations'
     global_translation_selector.set_controls_to_translate(
         tuple(self._global_param_controls))
     global_translation_selector.set_mode_buttons(
         tuple(self._global_bank_buttons))
     encoder_user_modes = EncoderUserModesComponent(
         self, self._encoder_modes, tuple(self._global_param_controls),
         tuple(self._global_bank_buttons), self._mixer, self._device,
         self._encoder_device_modes, self._encoder_eq_modes)
     encoder_user_modes.name = 'Encoder_User_Modes'
     self._encoder_shift_modes = ShiftableEncoderSelectorComponent(
         self, tuple(self._global_bank_buttons), encoder_user_modes,
         self._encoder_modes, self._encoder_eq_modes,
         self._encoder_device_modes)
     self._encoder_shift_modes.name = 'Encoder_Shift_Modes'
     self._encoder_shift_modes.set_mode_toggle(self._shift_button)
コード例 #7
0
def make_ring_encoder(encoder_identifer, button_identifier, name='', *a, **k):
    button_name = '%s_Ring_Mode_Button' % name
    button = ButtonElement(False,
                           MIDI_CC_TYPE,
                           0,
                           button_identifier,
                           name=button_name)
    encoder = RingedEncoderElement(MIDI_CC_TYPE,
                                   0,
                                   encoder_identifer,
                                   MapMode.absolute,
                                   name=name,
                                   *a,
                                   **k)
    encoder.set_ring_mode_button(button)
    encoder.set_feedback_delay(-1)
    return encoder