Пример #1
0
    def __init__(self, c_instance):
        ControlSurface.__init__(self, c_instance)
        AbletonPlus.__init__(self, options)

        self._main_encoders = []
        self._main_buttons = []
        self._effects_encoders = []
        self._extra_buttons = []
        self._mixer = None

        for index in range(0, 24):
            encoder = EncoderElement(MIDI_CC_TYPE, 0, 81 + index,
                                     Live.MidiMap.MapMode.absolute)
            self._main_encoders.append(encoder)
        for index in range(0, 16):
            button = ButtonElement(False, MIDI_CC_TYPE, 0, 76 + index)
            self._main_buttons.append(button)

        self._mixer = MixerComponent(8)

        self._remap_track_mixer_controls()

        self._enable_abletonplus()

        return None
Пример #2
0
 def __init__(self, c_instance):
     ControlSurface.__init__(self, c_instance)
     with self.component_guard():
         self._note_map_scenes = []
         self._note_map_buttons = []
         self._ctrl_map_sliders = []
         self._note_map_trk_stop_buttons = []
         self._note_map_trk_sel_buttons = []
         self._note_map_trk_mute_buttons = []
         self._note_map_trk_solo_buttons = []
         self._note_map_trk_rec_buttons = []
         self._ctrl_map_trk_volume = []
         self._ctrl_map_trk_pan = []
         self._ctrl_map_senda = []
         self._ctrl_map_sendb = []
         self._ctrl_map_sendc = []
         self._note_map_bank_buttons = []
         self._ctrl_map_parameter = []
         self._load_MIDI_map()
         self._session = None
         self._session_zoom = None
         self._mixer = None
         self._setup_session_control()
         self._setup_mixer_control()
         self._session.set_mixer(self._mixer)
         self._setup_device_and_transport_control()
         self.set_highlighting_session_component(self._session)
     self._pads = []
     self._load_pad_translations()
     self._do_combine()
Пример #3
0
    def __init__(self, *args, **kwargs):
        ControlSurface.__init__(self, *args, **kwargs)

        self.log_message('__init__()')
        self.show_message("Version: " + VERSION)

        # Data for tracking connection attempts
        self.device_connected = False
        self.next_retry_delay = 1
        self.next_retry_ts = None
        self.retries_count = 0
        self._current_midi_map = None

        # State of display text
        self.text_top = ''
        self.text_bottom = ''

        # State of display key slots
        self.display_color_by_slot_num = {}
        for i in range(NUM_DISPLAY_CLIP_SLOTS):
            self.display_color_by_slot_num[i] = COLOR_BLACK_BYTES

        with self.component_guard():
            self._build_components()
            self.init_modes()
Пример #4
0
    def __init__(self,c_instance):
        ControlSurface.__init__(self, c_instance)
        AbletonPlus.__init__(self, options)
        
        #setup the navigation controls
        self.setup_nav()
        self._nav.add_offset_listener(self.offset_modify)

        #setup the switchable button matrix
        self._buttonmatrix = LaunchpadButtonMatrix(options['width'], options['height'], options['hold'], options['defaultgridmode'])

        #setup the mode selector, and put it into mode 0 (init mode)
        self._mode = LaunchpadModeSelectorComponent()        
        
        #setup and add the sessionmode to the mode selector
        self.init_session_mode()
                
        #setup and add the user1 mode to the mode selector
        self.init_user1_mode()
        
        #setup and add the user2 mode to the mode selector
        self.init_user2_mode()
       
        #setup and add the user2 mode to the mode selector
        self.init_mixer_mode()
        
        #user2_mode_button = LaunchpadButtonComponent(options['hold'], MIDI_CC_TYPE,0,0x6E)
        #user2_mode_button.set_on_off_values(60,28)
        
        self._mode.set_mode(options['defaultmode'])
        
        #enable abletonplus last, so that any information it needs to pass along has already been initialized!
        self._enable_abletonplus()
               
        return None
Пример #5
0
    def __init__(self, c_instance):
        ControlSurface.__init__(self, c_instance)
        with self.component_guard():
            self.set_pad_translations(PAD_TRANSLATIONS)
            self._device_selection_follows_track_selection = True
            self._suggested_input_port = 'Impulse'
            self._suggested_output_port = 'Impulse'
            self._has_sliders = True
            self._current_midi_map = None
            self._display_reset_delay = -1
            self._shift_button = ButtonElement(IS_MOMENTARY, MIDI_CC_TYPE, 0, 39)
            self._preview_button = ButtonElement(IS_MOMENTARY, MIDI_CC_TYPE, 0, 41)
            self._master_slider = SliderElement(MIDI_CC_TYPE, 0, 8)
            self._shift_button.name = 'Shift_Button'
            self._master_slider.name = 'Master_Volume_Control'
            self._master_slider.add_value_listener(self._slider_value, identify_sender=True)
            self._preview_button.add_value_listener(self._preview_value)
            self._setup_mixer()
            self._setup_session()
            self._setup_transport()
            self._setup_device()
            self._setup_name_display()
            device_button = ButtonElement(not IS_MOMENTARY, MIDI_CC_TYPE, 1, 10)
            mixer_button = ButtonElement(not IS_MOMENTARY, MIDI_CC_TYPE, 1, 9)
            device_button.name = 'Encoder_Device_Mode'
            mixer_button.name = 'Encoder_Mixer_Mode'
            self._encoder_modes = EncoderModeSelector(self._device_component, self._mixer, self._next_bank_button, self._prev_bank_button, self._encoders)
            self._encoder_modes.set_device_mixer_buttons(device_button, mixer_button)
            self._string_to_display = None
            for component in self.components:
                component.set_enabled(False)

        return
Пример #6
0
 def __init__(self, c_instance):
     #log(True, __name__)
     # basic init
     ControlSurface.__init__(self, c_instance)
     self.set_suppress_rebuild_requests(True)        
     self._suggested_input_port = "Traktor F1 - 1"
     self._suggested_output_port = "Traktor F1 - 1"
Пример #7
0
	def __init__(self, c_instance):
		ControlSurface.__init__(self, c_instance)
		self.set_suppress_rebuild_requests(True)
		self._suppress_session_highlight = True
		self._suppress_send_midi = True
		self._suggested_input_port = ('Akai ' + self.__class__.__name__)
		self._suggested_output_port = ('Akai ' + self.__class__.__name__)
		self._monomod_version = 'b994'
		self._host_name = 'AumPC'
		self._color_type = 'Monochrome'
		self.log_message("--------------= " + str(self._host_name) + " " + str(self._monomod_version) + " log opened =--------------") 
		self.hosts = []
		self._timer = 0
		self._touched = 0
		self.flash_status = 0
		self._shift_button = None
		self._matrix = None
		self._session = None
		self._session_zoom = None
		self._mixer = None
		self._setup_monobridge()
		self._setup_session_control()
		self._setup_mixer_control()
		self._session.set_mixer(self._mixer)
		self._shift_button.name = 'Shift_Button'
		self._setup_custom_components()
		self._setup_monomod()
		for component in self.components:
			component.set_enabled(False)
		self.set_suppress_rebuild_requests(False)
		self._device_id = 0
		self._common_channel = 0
		self._dongle_challenge = (Live.Application.get_random_int(0, 2000000), Live.Application.get_random_int(2000001, 4000000))
Пример #8
0
 def __init__(self, c_instance):
     """everything except the '_on_selected_track_changed' override and 'disconnect' runs from here"""
     ControlSurface.__init__(self, c_instance)
     self.log_message("--------------= Lemaur256 log opened =--------------")
     self._suggested_input_port = "None"
     self._suggested_output_port = "None"
     self.set_suppress_rebuild_requests(True)
     self._monomod_version = "b995"
     self._host_name = "AumPad"
     self._color_type = "AumPad"
     self.connected = 0
     self.hosts = []
     self._osc_registry = {}
     self._bright = True
     self._rgb = 0
     self._timer = 0
     self.flash_status = 1
     self._setup_monobridge()
     self._setup_controls()
     self._setup_monomod()
     self._setup_touchosc()
     self._host2._set_shift_button(self._bank_button[0])
     self._host2._set_alt_button(self._bank_button[1])
     self._host2._set_button_matrix(self._monomod256)
     self._host2._set_key_buttons(self._key_button)
     self._host2.set_enabled(True)
     self.set_suppress_rebuild_requests(False)
     self.reset()
     self.refresh_state()
     self.show_message("Aum256 Control Surface Loaded")
Пример #9
0
 def __init__(self, c_instance, macro_map_mode, volume_map_mode, device_controls, transport_controls, volume_controls, trackarm_controls, bank_controls, descriptions = None, mixer_options = None):
     ControlSurface.__init__(self, c_instance)
     self.set_suppress_rebuild_requests(True)
     global_channel = 0
     if descriptions:
         if list(descriptions.keys()).count('INPUTPORT') > 0:
             self._suggested_input_port = descriptions['INPUTPORT']
         
         if list(descriptions.keys()).count('OUTPUTPORT') > 0:
             self._suggested_output_port = descriptions['OUTPUTPORT']
         
         if list(descriptions.keys()).count('CHANNEL') > 0:
             global_channel = descriptions['CHANNEL']
             if global_channel not in range(16):
                 global_channel = 0
             
         
         if list(descriptions.keys()).count('PAD_TRANSLATION') > 0:
             self.set_pad_translations(descriptions['PAD_TRANSLATION'])
     #delete this print
     self.log_message("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"+str(type(macro_map_mode)))
     self._init_mixer_component(volume_controls, trackarm_controls, mixer_options, global_channel, volume_map_mode)
     self._init_device_component(device_controls, bank_controls, global_channel, macro_map_mode)
     self._init_transport_component(transport_controls, global_channel, macro_map_mode) #that last arg is new and shold be deleted
     #this is a new method call
     self._init_clip_slot_component(volume_controls)#this should take some args)
     #this is too
     self._init_session_component(global_channel, 3, 1)
     self.set_suppress_rebuild_requests(False)
Пример #10
0
    def __init__(self, c_instance):
        """everything except the '_on_selected_track_changed' override and 'disconnect' runs from here"""
        ControlSurface.__init__(self, c_instance)
        self.log_message(
            time.strftime("%d.%m.%Y %H:%M:%S", time.localtime()) +
            "--------------= ProjectX log opened =--------------"
        )  # Writes message into Live's main log file. This is a ControlSurface method.
        self.set_suppress_rebuild_requests(
            True
        )  # Turn off rebuild MIDI map until after we're done setting up
        self._setup_transport_control(
        )  # Run the transport setup part of the script
        self._setup_mixer_control()  # Setup the mixer object
        self._setup_session_control()  # Setup the session object
        """ Here is some Live API stuff just for fun """
        app = Live.Application.get_application()  # get a handle to the App
        maj = app.get_major_version()  # get the major version from the App
        min = app.get_minor_version()  # get the minor version from the App
        bug = app.get_bugfix_version()  # get the bugfix version from the App
        self.show_message(
            str(maj) + "." + str(min) + "." + str(bug)
        )  #put them together and use the ControlSurface show_message method to output version info to console

        self.set_suppress_rebuild_requests(
            False)  #Turn rebuild back on, now that we're done setting up
Пример #11
0
 def __init__(self, c_instance):
     ControlSurface.__init__(self, c_instance)
     self.log_message("LOG: AAAMatrix __init__")
     with self.component_guard():
         self._set_suppress_features(True)
         self._setup_session_control()
         self._set_suppress_features(False)
Пример #12
0
    def __init__(self, c_instance):
        ControlSurface.__init__(self, c_instance)
        #self._suppress_session_highlight = True
        self._suppress_send_midi = True  # Turn off rebuild MIDI map until after we're done setting up
        Live.Base.log(time.strftime("%d.%m.%Y %H:%M:%S", time.localtime()) + "--------------= NanoKontrolLP95 log opened =--------------") # Writes message into Live's main log file. This is a ControlSurface method.
        with self.component_guard():
            # OBJECTS
            self._session = None #session object
            self._mixer = None #mixer object
            self._transport = None #transport object
            self._last_button_time = time.time()
            self._io_list_index = 0
            
            self._setup_controls()

            self._setup_session_control()  # Setup the session object
            self._setup_mixer_control() # Setup the mixer object
            self._session.set_mixer(self._mixer) # Bind mixer to session
            self._setup_transport_control() # Setup transport object

            self._set_mode_button()
            self._set_normal_mode()
            self._track = self.song().view.selected_track
            
            self.set_highlighting_session_component(self._session)

            self._flash_counter = 0
            self._flash_on = True
            
            for component in self.components:
                component.set_enabled(True)

        self._suppress_send_midi = True # Turn rebuild back on, once we're done setting up
        Live.Base.log("NanoKontrolLP95 Loaded !")
Пример #13
0
    def __init__(self, c_instance):
        ControlSurface.__init__(self, c_instance)
        #self.log_message(time.strftime("%d.%m.%Y %H:%M:%S", time.localtime()) + "--------------= PocketDial log opened =--------------")

        # turn off rebuild MIDI map until after setup
        #self._set_suppress_rebuild_requests(True)
        with self.component_guard():
            self._controls = [
                EncoderElement(MIDI_CC_TYPE, settings.CHANNEL, cc,
                               settings.MAP_MODE) for cc in settings.CCS
            ]

            mixer = MixerControl(self)
            session = SessionControl(self)
            device = DeviceControl(self)
            track = TrackControl(self)

            # bind mixer to session
            session.component.set_mixer(mixer.component)
            self.set_highlighting_session_component(session.component)

            # "magic" internal self._device_component, which enables lock to device, etc.
            self.set_device_component(device.component)

            # register components (Live 8 only?)
            #self._register_component(session.component)
            #self._register_component(mixer.component)
            #self._register_component(device.component)

            self._device = device
            self._track = track
Пример #14
0
    def __init__(self, c_instance):
        ControlSurface.__init__(self, c_instance)

        with self.component_guard():
            self._setup_controls()
            self._setup_device()
            self._setup_sibling_devices()
Пример #15
0
 def __init__(self, c_instance, macro_map_mode, volume_map_mode, device_controls, transport_controls, volume_controls, trackarm_controls, bank_controls, descriptions = None, mixer_options = None):
     ControlSurface.__init__(self, c_instance)
     self.set_suppress_rebuild_requests(True)
     global_channel = 0
     if descriptions:
         if list(descriptions.keys()).count('INPUTPORT') > 0:
             self._suggested_input_port = descriptions['INPUTPORT']
         
         if list(descriptions.keys()).count('OUTPUTPORT') > 0:
             self._suggested_output_port = descriptions['OUTPUTPORT']
         
         if list(descriptions.keys()).count('CHANNEL') > 0:
             global_channel = descriptions['CHANNEL']
             if global_channel not in range(16):
                 global_channel = 0
             
         
         if list(descriptions.keys()).count('PAD_TRANSLATION') > 0:
             self.set_pad_translations(descriptions['PAD_TRANSLATION'])
         
     
     self._init_mixer_component(volume_controls, trackarm_controls, mixer_options, global_channel, volume_map_mode)
     self._init_device_component(device_controls, bank_controls, global_channel, macro_map_mode)
     self._init_transport_component(transport_controls, global_channel, macro_map_mode) #that last arg is new and shold be deleted
     #this is a new method call
     self._init_clip_slot_component(volume_controls)#this should take some args)
     self.set_suppress_rebuild_requests(False)
Пример #16
0
    def __init__(self, c_instance):
        ControlSurface.__init__(self, c_instance)
        with self.component_guard():
            is_momentary = True
            self._suggested_input_port = 'Oxygen'
            self._suggested_output_port = 'Oxygen'
            self._has_slider_section = True
            self._device_selection_follows_track_selection = True
            self._shift_button = ButtonElement(is_momentary, MIDI_CC_TYPE, GLOBAL_CHANNEL, 57)
            self._shift_button.add_value_listener(self._shift_value)
            self._mixer = SpecialMixerComponent(NUM_TRACKS)
            self._mute_solo_buttons = []
            self._track_up_button = ButtonElement(is_momentary, MIDI_CC_TYPE, GLOBAL_CHANNEL, 111)
            self._track_down_button = ButtonElement(is_momentary, MIDI_CC_TYPE, GLOBAL_CHANNEL, 110)
            self._master_slider = SliderElement(MIDI_CC_TYPE, GLOBAL_CHANNEL, 41)
            for index in range(NUM_TRACKS):
                self._mute_solo_buttons.append(ButtonElement(is_momentary, MIDI_CC_TYPE, GLOBAL_CHANNEL, 49 + index))
                self._mixer.channel_strip(index).set_volume_control(SliderElement(MIDI_CC_TYPE, GLOBAL_CHANNEL, 33 + index))

            self._shift_value(0)
            self._mixer.master_strip().set_volume_control(self._master_slider)
            self._mixer.selected_strip().set_volume_control(None)
            device = DeviceComponent()
            device.set_parameter_controls(tuple([ EncoderElement(MIDI_CC_TYPE, GLOBAL_CHANNEL, 17 + index, Live.MidiMap.MapMode.absolute) for index in range(8) ]))
            self.set_device_component(device)
            ffwd_button = ButtonElement(is_momentary, MIDI_CC_TYPE, GLOBAL_CHANNEL, 115)
            rwd_button = ButtonElement(is_momentary, MIDI_CC_TYPE, GLOBAL_CHANNEL, 114)
            loop_button = ButtonElement(is_momentary, MIDI_CC_TYPE, GLOBAL_CHANNEL, 113)
            transport = TransportComponent()
            transport.set_stop_button(ButtonElement(is_momentary, MIDI_CC_TYPE, GLOBAL_CHANNEL, 116))
            transport.set_play_button(ButtonElement(is_momentary, MIDI_CC_TYPE, GLOBAL_CHANNEL, 117))
            transport.set_record_button(ButtonElement(is_momentary, MIDI_CC_TYPE, GLOBAL_CHANNEL, 118))
            session = SessionComponent(0, 0)
            transport_view_modes = TransportViewModeSelector(transport, session, ffwd_button, rwd_button, loop_button)
Пример #17
0
	def __init__(self, c_instance):
		ControlSurface.__init__(self, c_instance)
		self._monomod_version = 'b994'
		self.hosts = []
		self._host_name = 'BlockPad'
		self._color_type = 'Monochrome'
		self._timer = 0
		is_momentary = True
		self._suggested_input_port = 'block (Controls)'
		self._suggested_output_port = 'block (Controls)'
		self._wrote_user_byte = False
		matrix = ButtonMatrixElement()
		for row in range(8):
			button_row = [ FlashingButtonElement(is_momentary, MIDI_NOTE_TYPE, 0, ((column * 8) + row), 'Button_'+str(column)+'_'+str(row), self) for column in range(8) ]
			matrix.add_row(tuple(button_row))
		knobs = [ EncoderElement(MIDI_CC_TYPE, 0, KNOB_CC[index], Live.MidiMap.MapMode.absolute) for index in range(8) ]
		sliders = [ EncoderElement(MIDI_CC_TYPE, 0, SLIDER_CC[index], Live.MidiMap.MapMode.absolute) for index in range(2) ]
		self._config_button = ButtonElement(is_momentary, MIDI_CC_TYPE, 0, 0)
		self._config_button.add_value_listener(self._config_value)
		top_buttons = [ FlashingButtonElement(is_momentary, MIDI_NOTE_TYPE, 0, TOP_NOTES[index], 'Top_Button'+str(index), self) for index in range(8) ]
		side_buttons = [ FlashingButtonElement(is_momentary, MIDI_NOTE_TYPE, 0, SIDE_NOTES[index], 'Side_Button'+str(index), self) for index in range(8) ]
		self._setup_monobridge()
		self._setup_monomod()
		self._selector = MainSelectorComponent(matrix, tuple(top_buttons), tuple(side_buttons), self._config_button, tuple(knobs), tuple(sliders), self)
		self._user_byte_write_button = ButtonElement(is_momentary, MIDI_CC_TYPE, 0, 16)
		self._user_byte_value(1)
		self._user_byte_write_button.add_value_listener(self._user_byte_value)
		self.set_enabled(True)
		self.log_message("--------------= BlockPad log opened =--------------") #Create entry in log file
		self.refresh_state()
Пример #18
0
	def __init__(self, c_instance):
		"""everything except the '_on_selected_track_changed' override and 'disconnect' runs from here"""
		ControlSurface.__init__(self, c_instance)
		self.log_message("--------------= Lemaur256 log opened =--------------") 
		self._suggested_input_port = 'None'
		self._suggested_output_port = 'None'
		self.set_suppress_rebuild_requests(True)
		self._monomod_version = 'b994'
		self._host_name = 'AumPad'
		self._color_type = 'AumPad'
		self.connected = 0
		self.hosts = []
		self._osc_registry = {}
		self._bright = True
		self._rgb = 0
		self._timer = 0
		self.flash_status = 1
		self._setup_monobridge()
		self._setup_controls()
		self._setup_monomod()
		self._setup_touchosc()
		self._host2._set_shift_button(self._bank_button[0])
		self._host2._set_alt_button(self._bank_button[1])
		self._host2._set_button_matrix(self._monomod256)
		self._host2._set_key_buttons(self._key_button)
		self._host2.set_enabled(True)
		self.set_suppress_rebuild_requests(False)
		self.reset()
		self.refresh_state()
		self.show_message('Aum256 Control Surface Loaded')
Пример #19
0
 def __init__(self, c_instance):
     publish_in_cs_list = True
     ControlSurface.__init__(self, c_instance, not publish_in_cs_list)
     self._device_selection_follows_track_selection = True
     with self.component_guard():
         self._matrix = None
         self._session = None
         self._mixer = None
         self._device = None
         self._scene_launch_buttons = None
         self._track_arm_buttons = None
         self._track_solo_buttons = None
         self._track_mute_buttons = None
         self._track_stop_buttons = None
         self._track_select_buttons = None
         self._device_on_off_button = None
         self._shift_button = None
         self._serato_interface = PySCAClipControl()
         self._serato_interface.PySCA_InitializeClipControl()
         self._setup_session_control()
         self._setup_mixer_control()
         self._setup_device_control()
         self._session.set_mixer(self._mixer)
         self.set_highlighting_session_component(self._session)
     return
Пример #20
0
    def __init__(self, c_instance):
        ControlSurface.__init__(self, c_instance)
        with self.component_guard():
        	self.log_message("DeleteClip started")
        	self.show_message('DeleteClip started')
		self.DeleteButton = ButtonElement(IS_MOMENTARY, MIDI_NOTE_TYPE, 8, 39)
        	self.DeleteButton.add_value_listener(self._delete_clip,identify_sender= False)
Пример #21
0
    def __init__(self, c_instance):
        ControlSurface.__init__(self, c_instance)
        with self.component_guard():
            self._suppress_session_highlight = True
            self._suppress_send_midi = True
            self._suggested_input_port = 'Akai ' + self.__class__.__name__
            self._suggested_output_port = 'Akai ' + self.__class__.__name__
            self._shift_button = None
            self._matrix = None
            self._session = None
            self._session_zoom = None
            self._mixer = None
            self._setup_session_control()
            self._setup_mixer_control()
            self._session.set_mixer(self._mixer)
            self._shift_button.name = 'Shift_Button'
            self._setup_custom_components()
            self.set_highlighting_session_component(self._session)
            for component in self.components:
                component.set_enabled(False)

        self._device_id = 0
        self._common_channel = 0
        self._dongle_challenge = (Live.Application.get_random_int(
            0, 2000000), Live.Application.get_random_int(2000001, 4000000))
Пример #22
0
    def __init__(self, c_instance):
        ControlSurface.__init__(self, c_instance)
        self._suppress_session_highlight = True
        self._suppress_send_midi = True  # Turn off rebuild MIDI map until after we're done setting up
        self.log("--------------= ControlMI log opened =--------------")
        with self.component_guard():
            # OBJECTS
            self.session = None
            self.mixer = None
            self.view = None
            self.device = None
            self.transport = None
            # INITIALIZE MIXER, SESSIONS
            self._setup_session_control()  # Setup the session object
            self._setup_mixer_control()  # Setup the mixer object
            self.session.set_mixer(self.mixer)  # Bind mixer to session
            self._setup_device_control()  # Setup the device object
            self._setup_transport_control()  # Setup transport object
            self._set_initial_mode()
            self.set_device_component(
                self.device)  # Bind device to control surface-
            self.set_highlighting_session_component(self.session)

            for component in self.components:
                component.set_enabled(True)

        self._suppress_session_highlight = True
        self._suppress_send_midi = True  # Turn rebuild back on, once we're done setting up
    def __init__(self,
                 c_instance,
                 control_factory=LaunchkeyControlFactory(),
                 identity_response=SIZE_RESPONSE):
        ControlSurface.__init__(self, c_instance)
        self._control_factory = control_factory
        self._identity_response = identity_response
        with self.component_guard():
            self.set_pad_translations(PAD_TRANSLATIONS)
            self._suggested_input_port = 'Launchkey InControl'
            self._suggested_output_port = 'Launchkey InControl'
            self._has_sliders = True
            self._current_midi_map = None
            self._master_slider = make_slider(7, 'Master_Volume_Control')
            self._modes_buttons = []
            for index in range(3):
                button = ButtonElement(IS_MOMENTARY, MIDI_NOTE_TYPE, 0,
                                       13 + index)
                self._modes_buttons.append(button)
                self._modes_buttons[-1].add_value_listener(
                    self._dummy_listener)

            self._setup_mixer()
            self._setup_session()
            self._setup_transport()
            self._setup_device()
            self._setup_navigation()
            for component in self.components:
                component.set_enabled(False)

        return
 def __init__(self, c_instance):
     ControlSurface.__init__(self, c_instance)
     with self.component_guard():
         self.set_pad_translations(PAD_TRANSLATIONS)
         self._device_selection_follows_track_selection = True
         self._suggested_input_port = 'Impulse'
         self._suggested_output_port = 'Impulse'
         self._has_sliders = True
         self._current_midi_map = None
         self._display_reset_delay = -1
         self._shift_button = ButtonElement(IS_MOMENTARY, MIDI_CC_TYPE, 0, 39)
         self._preview_button = ButtonElement(IS_MOMENTARY, MIDI_CC_TYPE, 0, 41)
         self._master_slider = SliderElement(MIDI_CC_TYPE, 0, 8)
         self._shift_button.name = 'Shift_Button'
         self._master_slider.name = 'Master_Volume_Control'
         self._master_slider.add_value_listener(self._slider_value, identify_sender=True)
         self._preview_button.add_value_listener(self._preview_value)
         self._setup_mixer()
         self._setup_session()
         self._setup_transport()
         self._setup_device()
         self._setup_name_display()
         device_button = ButtonElement(not IS_MOMENTARY, MIDI_CC_TYPE, 1, 10)
         mixer_button = ButtonElement(not IS_MOMENTARY, MIDI_CC_TYPE, 1, 9)
         device_button.name = 'Encoder_Device_Mode'
         mixer_button.name = 'Encoder_Mixer_Mode'
         self._encoder_modes = EncoderModeSelector(self._device_component, self._mixer, self._next_bank_button, self._prev_bank_button, self._encoders)
         self._encoder_modes.set_device_mixer_buttons(device_button, mixer_button)
         self._string_to_display = None
         for component in self.components:
             component.set_enabled(False)
Пример #25
0
    def __init__(self, c_instance, control_factory = LaunchkeyControlFactory(), identity_response = SIZE_RESPONSE):
        ControlSurface.__init__(self, c_instance)
        self._control_factory = control_factory
        self._identity_response = identity_response
        with self.component_guard():
            self.set_pad_translations(PAD_TRANSLATIONS)
            self._device_selection_follows_track_selection = True
            self._suggested_input_port = 'Launchkey InControl'
            self._suggested_output_port = 'Launchkey InControl'
            self._has_sliders = True
            self._current_midi_map = None
            self._master_slider = make_slider(7, 'Master_Volume_Control')
            self._modes_buttons = []
            for index in range(3):
                button = ButtonElement(IS_MOMENTARY, MIDI_NOTE_TYPE, 0, 13 + index)
                self._modes_buttons.append(button)
                self._modes_buttons[-1].add_value_listener(self._dummy_listener)

            self._setup_mixer()
            self._setup_session()
            self._setup_transport()
            self._setup_device()
            self._setup_navigation()
            for component in self.components:
                component.set_enabled(False)

        return
Пример #26
0
 def __init__(self,c_instance):
     ControlSurface.__init__(self, c_instance)
     AbletonPlus.__init__(self, options)
     
     self._main_encoders = []
     self._main_buttons = []
     self._effects_encoders = []
     self._extra_buttons = []
     self._mixer = None
            
     for index in range(0, 24):
         encoder = EncoderElement(MIDI_CC_TYPE,0,92 + index,Live.MidiMap.MapMode.absolute)
         self._main_encoders.append(encoder)
     
     for index in range(0,16):
         button = ButtonElement(False, MIDI_CC_TYPE,0, 76 + index)
         self._main_buttons.append(button)
         
     self._mixer = MixerComponent(8)
     
     self._remap_track_mixer_controls()
     
     self._enable_abletonplus()
     
     return None
    def __init__(self, c_instance):
        ControlSurface.__init__(self, c_instance)
        with self.component_guard():
            is_momentary = True
            self._suggested_input_port = 'Oxygen'
            self._suggested_output_port = 'Oxygen'
            self._has_slider_section = True
            self._device_selection_follows_track_selection = True
            self._shift_button = ButtonElement(is_momentary, MIDI_CC_TYPE, GLOBAL_CHANNEL, 57)
            self._shift_button.add_value_listener(self._shift_value)
            self._mixer = SpecialMixerComponent(NUM_TRACKS)
            self._mute_solo_buttons = []
            self._track_up_button = ButtonElement(is_momentary, MIDI_CC_TYPE, GLOBAL_CHANNEL, 111)
            self._track_down_button = ButtonElement(is_momentary, MIDI_CC_TYPE, GLOBAL_CHANNEL, 110)
            self._master_slider = SliderElement(MIDI_CC_TYPE, GLOBAL_CHANNEL, 41)
            for index in range(NUM_TRACKS):
                self._mute_solo_buttons.append(ButtonElement(is_momentary, MIDI_CC_TYPE, GLOBAL_CHANNEL, 49 + index))
                self._mixer.channel_strip(index).set_volume_control(SliderElement(MIDI_CC_TYPE, GLOBAL_CHANNEL, 33 + index))

            self._shift_value(0)
            self._mixer.master_strip().set_volume_control(self._master_slider)
            self._mixer.selected_strip().set_volume_control(None)
            device = DeviceComponent()
            device.set_parameter_controls(tuple([ EncoderElement(MIDI_CC_TYPE, GLOBAL_CHANNEL, 17 + index, Live.MidiMap.MapMode.absolute) for index in range(8) ]))
            self.set_device_component(device)
            ffwd_button = ButtonElement(is_momentary, MIDI_CC_TYPE, GLOBAL_CHANNEL, 115)
            rwd_button = ButtonElement(is_momentary, MIDI_CC_TYPE, GLOBAL_CHANNEL, 114)
            loop_button = ButtonElement(is_momentary, MIDI_CC_TYPE, GLOBAL_CHANNEL, 113)
            transport = TransportComponent()
            transport.set_stop_button(ButtonElement(is_momentary, MIDI_CC_TYPE, GLOBAL_CHANNEL, 116))
            transport.set_play_button(ButtonElement(is_momentary, MIDI_CC_TYPE, GLOBAL_CHANNEL, 117))
            transport.set_record_button(ButtonElement(is_momentary, MIDI_CC_TYPE, GLOBAL_CHANNEL, 118))
            session = SessionComponent(0, 0)
            transport_view_modes = TransportViewModeSelector(transport, session, ffwd_button, rwd_button, loop_button)
        return
Пример #28
0
 def __init__(self,
              c_instance,
              macro_map_mode,
              volume_map_mode,
              device_controls,
              transport_controls,
              volume_controls,
              trackarm_controls,
              bank_controls,
              descriptions=None,
              mixer_options=None):
     ControlSurface.__init__(self, c_instance)
     with self.component_guard():
         global_channel = 0
         if descriptions:
             if list(descriptions.keys()).count('INPUTPORT') > 0:
                 self._suggested_input_port = descriptions['INPUTPORT']
             if list(descriptions.keys()).count('OUTPUTPORT') > 0:
                 self._suggested_output_port = descriptions['OUTPUTPORT']
             if list(descriptions.keys()).count('CHANNEL') > 0:
                 global_channel = descriptions['CHANNEL']
                 if global_channel not in range(16):
                     global_channel = 0
             if list(descriptions.keys()).count('PAD_TRANSLATION') > 0:
                 self.set_pad_translations(descriptions['PAD_TRANSLATION'])
         self._init_mixer_component(volume_controls, trackarm_controls,
                                    mixer_options, global_channel,
                                    volume_map_mode)
         self._init_device_component(device_controls, bank_controls,
                                     global_channel, macro_map_mode)
         self._init_transport_component(transport_controls, global_channel)
Пример #29
0
 def __init__(self, c_instance):
     ControlSurface.__init__(self, c_instance)
     with self.component_guard():
         self.set_pad_translations(PAD_TRANSLATIONS)
         self._device_selection_follows_track_selection = True
         self._suggested_input_port = 'DirectLink'
         self._suggested_output_port = 'DirectLink'
         self._waiting_for_first_response = True
         self._has_sliders = True
         self._current_midi_map = None
         self._display_reset_delay = -1
         self._shift_pressed = False
         self._shift_button = ButtonElement(IS_MOMENTARY, MIDI_CC_TYPE, 15,
                                            13)
         self._master_slider = SliderElement(MIDI_CC_TYPE, 15, 41)
         self._next_nav_button = ButtonElement(IS_MOMENTARY, MIDI_CC_TYPE,
                                               15, 111)
         self._prev_nav_button = ButtonElement(IS_MOMENTARY, MIDI_CC_TYPE,
                                               15, 110)
         self._device_bank_buttons = None
         self._device_navigation = None
         self._shift_button.name = 'Shift_Button'
         self._master_slider.name = 'Master_Volume_Control'
         self._next_nav_button.name = 'Next_Track_Button'
         self._prev_nav_button.name = 'Prev_Track_Button'
         self._master_slider.add_value_listener(self._slider_value,
                                                identify_sender=True)
         self._shift_button.add_value_listener(self._shift_value)
         self._setup_mixer()
         self._setup_transport_and_session()
         self._setup_device()
         self._setup_display()
         for component in self.components:
             component.set_enabled(False)
Пример #30
0
 def __init__(self, c_instance):
     ControlSurface.__init__(self, c_instance)
     self.set_suppress_rebuild_requests(True)
     self._folder_location = '/ClyphX/'
     self._macrobat = Macrobat(self)
     self._extra_prefs = ExtraPrefs(self)
     self._track_actions = ClyphXTrackActions(self)
     self._snap_actions = ClyphXSnapActions(self)
     self._global_actions = ClyphXGlobalActions(self)
     self._device_actions = ClyphXDeviceActions(self)
     self._clip_actions = ClyphXClipActions(self)
     self._control_surface_actions = ClyphXControlSurfaceActions(self)
     self._control_component = ClyphXControlComponent(self)
     ClyphXCueComponent(self)
     self._startup_actions_complete = False
     self._user_variables = {}
     self._play_seq_clips = {}
     self._loop_seq_clips = {}
     self._current_tracks = []
     live = Live.Application.get_application()
     self._can_have_nested_devices = False
     if live.get_major_version() == 8 and live.get_minor_version(
     ) >= 2 and live.get_bugfix_version() >= 2:
         self._can_have_nested_devices = True
     self.setup_tracks()
     self.log_message(
         'nativeKONTROL LOG ------- nativeKONTROL ClyphX v2.0.3 for Live 8 ------- Live Version: '
         + str(live.get_major_version()) + '.' +
         str(live.get_minor_version()) + '.' +
         str(live.get_bugfix_version()) + ' ------- END LOG')
     self.show_message('nativeKONTROL ClyphX v2.0.3 for Live 8')
     self.set_suppress_rebuild_requests(False)
    def __init__(self, c_instance):
        ControlSurface.__init__(self, c_instance)
        self._alt_device_component = None
        with self.component_guard():
            self.set_pad_translations(PAD_TRANSLATIONS)
            self._device_selection_follows_track_selection = True
            self._suggested_input_port = "HyperControl"
            self._suggested_output_port = "HyperControl"
            self._single_fader_button_modes = None
            self._has_faders = True
            self._display_reset_delay = -1
            self._hc_byte = HC_BYTE
            self._waiting_for_first_response = True
            self._setup_controls()
            self._setup_displays()
            self._setup_mixer()
            self._setup_session()
            self._setup_transport()
            self._setup_device()
            self._setup_modes()
            self._drum_group_midi_button = None
            self._drum_group_hyper_button = None
            for component in self.components:
                component.set_enabled(False)

        return
    def __init__(self, c_instance):
        ControlSurface.__init__(self, c_instance)
        self._alt_device_component = None
        with self.component_guard():
            self.set_pad_translations(PAD_TRANSLATIONS)
            self._device_selection_follows_track_selection = True
            self._suggested_input_port = 'HyperControl'
            self._suggested_output_port = 'HyperControl'
            self._single_fader_button_modes = None
            self._has_faders = True
            self._display_reset_delay = -1
            self._hc_byte = HC_BYTE
            self._waiting_for_first_response = True
            self._setup_controls()
            self._setup_displays()
            self._setup_mixer()
            self._setup_session()
            self._setup_transport()
            self._setup_device()
            self._setup_modes()
            self._drum_group_midi_button = None
            self._drum_group_hyper_button = None
            for component in self.components:
                component.set_enabled(False)

        return
 def __init__(self, c_instance):
     ControlSurface.__init__(self, c_instance)
     with self.component_guard():
         self._setup_controls()
         self._setup_mixer()
         self._setup_transport()
         self._setup_transport()
    def __init__(self, c_instance):
        ControlSurface.__init__(self, c_instance)
        with self.component_guard():
            self.cInstance = c_instance
            self._suppress_send_midi = True
            self.endpoint = None

            Log.set_logger(self.log_message)
            Log.set_log_level(Log.LOG_WARN)
            Log.set_log_network(True)
            Log.write("-----------------------")
            Log.write("ShowtimeBridge starting")
            Log.write("Python version " + sys.version)
            Log.info(sys.version)

            # Network endpoint
            self.endpoint = LiveNetworkEndpoint()
            self.endpoint.set_song_root_accessor(LiveUtils.getSong)
            LiveWrapper.set_endpoint(self.endpoint)

            # Midi clock to trigger incoming message check
            self.clock = LoopingEncoderElement(0, 119)

            self.refresh_state()
            self._suppress_send_midi = False
Пример #35
0
    def __init__(self, c_instance):
        ControlSurface.__init__(self, c_instance)
        #self.log_message(time.strftime("%d.%m.%Y %H:%M:%S", time.localtime()) + "--------------= PocketDial log opened =--------------")

        # turn off rebuild MIDI map until after setup
        # self.set_suppress_rebuild_requests(True)

        with self.component_guard():
            session = SessionControl(self)
            mixer = MixerControl(self)
            device = DeviceControl(self)
            track = TrackControl(self)
            GlobalControl(self) # play/pause, undo/redo

            # bind mixer to session
            session.component.set_mixer(mixer.component)

            # "magic" internal self._device_component, which enables lock to device, etc.
            self.set_device_component(device.component)

            # register components
            #self._register_component(session.component)
            #self._register_component(mixer.component)
            #self._register_component(device.component)

            self.set_highlighting_session_component(session.component)
            for component in self.components:
                component.set_enabled(True)


            self._device = device
            self._track = track
Пример #36
0
 def __init__(self, c_instance):
     ControlSurface.__init__(self, c_instance)
     with self.component_guard():
         self._setup_controls()
         self._setup_mixer()
         self._setup_transport()
         self._setup_transport()
Пример #37
0
 def __init__(self, c_instance):
     ControlSurface.__init__(self, c_instance)
     self.set_suppress_rebuild_requests(True) 
     self._folder_location = '/ClyphX/'
     self._macrobat = Macrobat(self)
     self._extra_prefs = ExtraPrefs(self)
     self._track_actions = ClyphXTrackActions(self)
     self._snap_actions = ClyphXSnapActions(self)
     self._global_actions = ClyphXGlobalActions(self)
     self._device_actions = ClyphXDeviceActions(self)
     self._clip_actions = ClyphXClipActions(self)
     self._control_surface_actions = ClyphXControlSurfaceActions(self)
     self._control_component = ClyphXControlComponent(self)
     ClyphXCueComponent(self)
     self._startup_actions_complete = False
     self._user_variables = {}
     self._play_seq_clips = {}
     self._loop_seq_clips = {}
     self._current_tracks = []
     live = Live.Application.get_application()
     self._can_have_nested_devices = False
     if live.get_major_version() == 8 and live.get_minor_version() >= 2 and live.get_bugfix_version() >= 2:
         self._can_have_nested_devices = True
     self.setup_tracks()
     self.log_message('nativeKONTROL LOG ------- nativeKONTROL ClyphX v2.0.3 for Live 8 ------- Live Version: ' + str(live.get_major_version()) + '.' + str(live.get_minor_version()) + '.' + str(live.get_bugfix_version()) + ' ------- END LOG')
     self.show_message('nativeKONTROL ClyphX v2.0.3 for Live 8')
     self.set_suppress_rebuild_requests(False) 
Пример #38
0
 def __init__(self, c_instance):
     ControlSurface.__init__(self, c_instance)
     with self.component_guard():
         self._suggested_input_port = u'HyperControl'
         self._suggested_output_port = u'HyperControl'
         self.set_pad_translations(PAD_TRANSLATIONS)
         stop_button = make_button(116)
         play_button = make_button(117)
         record_button = make_button(118)
         select_button = make_button(98)
         nav_left_button = make_button(99)
         nav_right_button = make_button(100)
         nav_up_button = make_button(101)
         nav_down_button = make_button(102)
         mixer_modes_toggle = make_button(58)
         mixer_or_device_toggle = make_button(59)
         hypercontrol_mode_toggle = make_button(60)
         encoders = tuple([ make_encoder(33 + index) for index in range(8) ])
         transport = TransportComponent()
         transport.set_stop_button(stop_button)
         transport.set_play_button(play_button)
         transport.set_record_button(record_button)
         session = SessionComponent(8, 0)
         device = BestBankDeviceComponent(device_selection_follows_track_selection=True)
         self.set_device_component(device)
         device_nav = DeviceNavComponent()
         mixer = SpecialMixerComponent(NUM_TRACKS)
         session.set_mixer(mixer)
         mixer_encoder_modes = EncoderMixerModeSelector(mixer)
         mixer_encoder_modes.set_mode_toggle(mixer_modes_toggle)
         mixer_or_device = MixerOrDeviceModeSelector(encoders, select_button, nav_up_button, nav_down_button, nav_left_button, nav_right_button, mixer, session, device, mixer_encoder_modes, device_nav)
         mixer_or_device.set_mode_buttons((mixer_modes_toggle, mixer_or_device_toggle, hypercontrol_mode_toggle))
Пример #39
0
 def __init__(self, c_instance):
     ControlSurface.__init__(self, c_instance)
     live = Live.Application.get_application()
     self._live_major_version = live.get_major_version()
     self._live_minor_version = live.get_minor_version()
     self._live_bugfix_version = live.get_bugfix_version()
     self._selector = None  #needed because update hardware is called.
     self._lpx = False
     self._mk2_rgb = False
     self._mk3_rgb = False
     with self.component_guard():
         self._suppress_send_midi = True
         self._suppress_session_highlight = True
         self._suggested_input_port = ("Launchpad", "Launchpad Mini",
                                       "Launchpad S", "Launchpad MK2",
                                       "Launchpad X", "Launchpad Mini MK3")
         self._suggested_output_port = ("Launchpad", "Launchpad Mini",
                                        "Launchpad S", "Launchpad MK2",
                                        "Launchpad X", "Launchpad Mini MK3")
         self._control_is_with_automap = False
         self._user_byte_write_button = None
         self._config_button = None
         self._wrote_user_byte = False
         self._challenge = Live.Application.get_random_int(
             0, 400000000) & 2139062143
         self._init_done = False
Пример #40
0
 def __init__(self, c_instance):
     ControlSurface.__init__(self, c_instance)
     transport = TransportComponent()
     transport.set_play_button(ButtonElement(True, 0, ABLETON["GENERAL_CHANNEL"], ABLETON["START_NOTE"]))
     transport.set_stop_button(ButtonElement(True, 0, ABLETON["GENERAL_CHANNEL"], ABLETON["STOP_NOTE"]))
     self.log_message("MiniCommand surface")
     self.get_track_name(0)
Пример #41
0
 def __init__(self, c_instance):
     ControlSurface.__init__(self, c_instance)
     with self.component_guard():
         self._suppress_send_midi = True
         self._suppress_session_highlight = True
         #non-throw-away variables ???
         #self._suggested_input_port = 'LiveStrip'		#???
         #self._suggested_output_port = 'LiveStrip'	#???
         #self._control_is_with_automap = False #for buttons ??? mabye for user-defined mappings
         self._transport = None  #setup a blank transport
         self._session = None  #setup a blank session
         self._device = None  #setup a blank device
         #self._is_locked = False #for device or track
         self.setup_button_control()  #buttons first - important
         #self.setup_rotary_control()   #then rotary encoders - important
         self.setup_transport_control()  #then transport..
         self.setup_session_control()  #..then the rest
         self.setup_device_control()
         self.assign_button_control(
         )  #after everything is set up we can then assign the buttons to things. ref this for updating aswell ???
         self._end_buttons[0].add_value_listener(self._bt0_value)
         self._end_buttons[1].add_value_listener(self._bt1_value)
         self._end_buttons[2].add_value_listener(self._bt2_value)
         self._end_buttons[3].add_value_listener(self._bt3_value)
         self.set_highlighting_session_component(self._session)
         self._suppress_session_highlight = False
     self.log_message("LiveStrip loaded")
Пример #42
0
    def __init__(self, c_instance):
        ControlSurface.__init__(self, c_instance)
        #self.log_message(time.strftime("%d.%m.%Y %H:%M:%S", time.localtime()) + "--------------= PocketDial log opened =--------------")
 
        # turn off rebuild MIDI map until after setup
        #self._set_suppress_rebuild_requests(True)
        with self.component_guard():
            self._controls = [EncoderElement(MIDI_CC_TYPE, settings.CHANNEL, cc, settings.MAP_MODE) for cc in settings.CCS]
 
            mixer = MixerControl(self)
            session = SessionControl(self)
            device = DeviceControl(self)
            track = TrackControl(self)
         
            # bind mixer to session
            session.component.set_mixer(mixer.component)
            self.set_highlighting_session_component(session.component)
         
            # "magic" internal self._device_component, which enables lock to device, etc.
            self.set_device_component(device.component)
         
            # register components (Live 8 only?)
            #self._register_component(session.component)
            #self._register_component(mixer.component)
            #self._register_component(device.component)
             
         
            self._device = device
            self._track = track
 def __init__(self, c_instance):
     ControlSurface.__init__(self, c_instance)
     with self.component_guard():
         self._suggested_input_port = 'HyperControl'
         self._suggested_output_port = 'HyperControl'
         self._device_selection_follows_track_selection = True
         self.set_pad_translations(PAD_TRANSLATIONS)
         stop_button = make_button(116)
         play_button = make_button(117)
         record_button = make_button(118)
         select_button = make_button(98)
         nav_left_button = make_button(99)
         nav_right_button = make_button(100)
         nav_up_button = make_button(101)
         nav_down_button = make_button(102)
         mixer_modes_toggle = make_button(58)
         mixer_or_device_toggle = make_button(59)
         hypercontrol_mode_toggle = make_button(60)
         encoders = tuple([ make_encoder(33 + index) for index in range(8) ])
         transport = TransportComponent()
         transport.set_stop_button(stop_button)
         transport.set_play_button(play_button)
         transport.set_record_button(record_button)
         session = SessionComponent(8, 0)
         device = BestBankDeviceComponent()
         self.set_device_component(device)
         device_nav = DeviceNavComponent()
         mixer = SpecialMixerComponent(NUM_TRACKS)
         session.set_mixer(mixer)
         mixer_encoder_modes = EncoderMixerModeSelector(mixer)
         mixer_encoder_modes.set_mode_toggle(mixer_modes_toggle)
         mixer_or_device = MixerOrDeviceModeSelector(encoders, select_button, nav_up_button, nav_down_button, nav_left_button, nav_right_button, mixer, session, device, mixer_encoder_modes, device_nav)
         mixer_or_device.set_mode_buttons((mixer_modes_toggle, mixer_or_device_toggle, hypercontrol_mode_toggle))
    def __init__(self, c_instance):
        ControlSurface.__init__(self, c_instance)

        with self.component_guard():
            self._setup_controls()
            self._setup_device()
            self._setup_sibling_devices()
Пример #45
0
    def __init__(self, c_instance):
        ControlSurface.__init__(self, c_instance)
        with self.component_guard():
            self.set_pad_translations(PAD_TRANSLATIONS)
            self._device_selection_follows_track_selection = True
            self._suggested_input_port = "DirectLink"
            self._suggested_output_port = "DirectLink"
            self._waiting_for_first_response = True
            self._has_sliders = True
            self._current_midi_map = None
            self._display_reset_delay = -1
            self._shift_pressed = False
            self._shift_button = ButtonElement(IS_MOMENTARY, MIDI_CC_TYPE, 15, 13)
            self._master_slider = SliderElement(MIDI_CC_TYPE, 15, 41)
            self._next_nav_button = ButtonElement(IS_MOMENTARY, MIDI_CC_TYPE, 15, 111)
            self._prev_nav_button = ButtonElement(IS_MOMENTARY, MIDI_CC_TYPE, 15, 110)
            self._device_bank_buttons = None
            self._device_navigation = None
            self._shift_button.name = "Shift_Button"
            self._master_slider.name = "Master_Volume_Control"
            self._next_nav_button.name = "Next_Track_Button"
            self._prev_nav_button.name = "Prev_Track_Button"
            self._master_slider.add_value_listener(self._slider_value, identify_sender=True)
            self._shift_button.add_value_listener(self._shift_value)
            self._setup_mixer()
            self._setup_transport_and_session()
            self._setup_device()
            self._setup_display()
            for component in self.components:
                component.set_enabled(False)

        return
 def __init__(
     self,
     c_instance,
     macro_map_mode,
     volume_map_mode,
     device_controls,
     transport_controls,
     volume_controls,
     trackarm_controls,
     bank_controls,
     descriptions=None,
     mixer_options=None,
 ):
     ControlSurface.__init__(self, c_instance)
     with self.component_guard():
         global_channel = 0
         if descriptions:
             if list(descriptions.keys()).count("INPUTPORT") > 0:
                 self._suggested_input_port = descriptions["INPUTPORT"]
             if list(descriptions.keys()).count("OUTPUTPORT") > 0:
                 self._suggested_output_port = descriptions["OUTPUTPORT"]
             if list(descriptions.keys()).count("CHANNEL") > 0:
                 global_channel = descriptions["CHANNEL"]
                 if global_channel not in range(16):
                     global_channel = 0
             if list(descriptions.keys()).count("PAD_TRANSLATION") > 0:
                 self.set_pad_translations(descriptions["PAD_TRANSLATION"])
         self._init_mixer_component(
             volume_controls, trackarm_controls, mixer_options, global_channel, volume_map_mode
         )
         self._init_device_component(device_controls, bank_controls, global_channel, macro_map_mode)
         self._init_transport_component(transport_controls, global_channel)
Пример #47
0
 def __init__(self, c_instance):
     publish_in_cs_list = True
     ControlSurface.__init__(self, c_instance, not publish_in_cs_list)
     self._device_selection_follows_track_selection = True
     with self.component_guard():
         self._matrix = None
         self._session = None
         self._mixer = None
         self._device = None
         self._scene_launch_buttons = None
         self._track_arm_buttons = None
         self._track_solo_buttons = None
         self._track_mute_buttons = None
         self._track_stop_buttons = None
         self._track_select_buttons = None
         self._device_on_off_button = None
         self._shift_button = None
         self._serato_interface = PySCAClipControl()
         self._serato_interface.PySCA_InitializeClipControl()
         self._setup_session_control()
         self._setup_mixer_control()
         self._setup_device_control()
         self._session.set_mixer(self._mixer)
         self.set_highlighting_session_component(self._session)
     return
 def __init__(self, c_instance):
     ControlSurface.__init__(self, c_instance)
     LC2Sysex.set_log(self.log_message)
     if LC2Sysex.l9():
         with self.component_guard():
             self.do_setup()
     else:
         self.do_setup()
Пример #49
0
	def __init__(self, c_instance):
		ControlSurface.__init__(self, c_instance)
		with self.component_guard():
			self.log_message(time.strftime("%d.%m.%Y %H:%M:%S", time.localtime()) + "--------------= Block opened =--------------") # Writes message into Live's main log file. This is a ControlSurface method.	   
			self._send_midi(switchxfader)
			self._setup_transport_control()
			self._setup_mixer_control() # Setup the mixer object
			self._setup_session_control()  # Setup the session object
 def __init__(self, c_instance):
     ControlSurface.__init__(self, c_instance)
     with self.component_guard():
         self._setup_session_control()
         self._setup_mixer_control()
         self._setup_device_control()
         self._setup_transport_control()
         self._setup_view_control()
Пример #51
0
	def __init__(self, c_instance):
		ControlSurface.__init__(self, c_instance)
		with self.component_guard():
			self._suppress_send_midi = True
			self._suppress_session_highlight = True
			is_momentary = True
			self._suggested_input_port = 'Launchpad'
			self._suggested_output_port = 'Launchpad'
			self._control_is_with_automap = False
			self._user_byte_write_button = ButtonElement(is_momentary, MIDI_CC_TYPE, 0, 16)
			self._user_byte_write_button.name = 'User_Byte_Button'
			self._user_byte_write_button.send_value(1)
			self._user_byte_write_button.add_value_listener(self._user_byte_value)
			self._wrote_user_byte = False
			self._challenge = Live.Application.get_random_int(0, 400000000) & 2139062143
			matrix = ButtonMatrixElement()
			matrix.name = 'Button_Matrix'
			for row in range(8):
				button_row = []
				for column in range(8):
					button = ConfigurableButtonElement(is_momentary, MIDI_NOTE_TYPE, 0, row * 16 + column)
					button.name = str(column) + '_Clip_' + str(row) + '_Button'
					button_row.append(button)

				matrix.add_row(tuple(button_row))

			self._config_button = ButtonElement(is_momentary, MIDI_CC_TYPE, 0, 0, optimized_send_midi=False)
			self._config_button.add_value_listener(self._config_value)
			top_buttons = [ ConfigurableButtonElement(is_momentary, MIDI_CC_TYPE, 0, 104 + index) for index in range(8) ]
			side_buttons = [ ConfigurableButtonElement(is_momentary, MIDI_NOTE_TYPE, 0, SIDE_NOTES[index]) for index in range(8) ]
			top_buttons[0].name = 'Bank_Select_Up_Button'
			top_buttons[1].name = 'Bank_Select_Down_Button'
			top_buttons[2].name = 'Bank_Select_Left_Button'
			top_buttons[3].name = 'Bank_Select_Right_Button'
			top_buttons[4].name = 'Session_Button'
			top_buttons[5].name = 'User1_Button'
			top_buttons[6].name = 'User2_Button'
			top_buttons[7].name = 'Mixer_Button'
			side_buttons[0].name = 'Vol_Button'
			side_buttons[1].name = 'Pan_Button'
			side_buttons[2].name = 'SndA_Button'
			side_buttons[3].name = 'SndB_Button'
			side_buttons[4].name = 'Stop_Button'
			side_buttons[5].name = 'Trk_On_Button'
			side_buttons[6].name = 'Solo_Button'
			side_buttons[7].name = 'Arm_Button'
			self._selector = MainSelectorComponent(matrix, tuple(top_buttons), tuple(side_buttons), self._config_button, self)
			self._selector.name = 'Main_Modes'
			self._do_combine()
			for control in self.controls:
				if isinstance(control, ConfigurableButtonElement):
					control.add_value_listener(self._button_value)

			self.set_highlighting_session_component(self._selector.session_component())
			self._suppress_session_highlight = False
			#self.set_suppress_rebuild_requests(False)

			self.log_message("LaunchPad95 Loaded !")
Пример #52
0
	def __init__(self, *a, **k):
		ControlSurface.__init__(self, *a, **k)
		with self.component_guard():
			self._monomod_version = 'b996'
			self._host_name = 'LaunchMod'
			self._color_type = 'Launchpad'
			self._timer = 0
			self._suppress_send_midi = True
			self._suppress_session_highlight = True
			self._suppress_highlight = False
			is_momentary = True
			self._suggested_input_port = 'Launchpad'
			self._suggested_output_port = 'Launchpad'
			self._control_is_with_automap = False
			self._user_byte_write_button = ButtonElement(is_momentary, MIDI_CC_TYPE, 0, 16)
			self._user_byte_write_button.name = 'User_Byte_Button'
			self._user_byte_write_button.send_value(1)
			self._user_byte_write_button.add_value_listener(self._user_byte_value)
			self._wrote_user_byte = False
			self._challenge = Live.Application.get_random_int(0, 400000000) & 2139062143
			matrix = ButtonMatrixElement()
			matrix.name = 'Button_Matrix'
			for row in range(8):
				button_row = [ ConfigurableButtonElement(is_momentary, MIDI_NOTE_TYPE, 0, row * 16 + column, str(column) + '_Clip_' + str(row) + '_Button', self) for column in range(8) ]
				matrix.add_row(tuple(button_row))

			self._config_button = ButtonElement(is_momentary, MIDI_CC_TYPE, 0, 0, optimized_send_midi=False)
			self._config_button.add_value_listener(self._config_value)
			top_button_names = ['Bank_Select_Up_Button',
			 'Bank_Select_Down_Button',
			 'Bank_Select_Left_Button',
			 'Bank_Select_Right_Button',
			 'Session_Button',
			 'User1_Button',
			 'User2_Button',
			 'Mixer_Button']
			side_button_names = ['Vol_Button',
			 'Pan_Button',
			 'SndA_Button',
			 'SndB_Button',
			 'Stop_Button',
			 'Trk_On_Button',
			 'Solo_Button',
			 'Arm_Button']
			top_buttons = [ ConfigurableButtonElement(is_momentary, MIDI_CC_TYPE, 0, 104 + index, top_button_names[index], self) for index in range(8) ]
			side_buttons = [ ConfigurableButtonElement(is_momentary, MIDI_NOTE_TYPE, 0, SIDE_NOTES[index], side_button_names[index], self) for index in range(8) ]
			self._side_buttons = ButtonMatrixElement()
			self._side_buttons.add_row(side_buttons)
			self._setup_monobridge()
			self._setup_mod()
			self._selector = MainSelectorComponent(self, matrix, tuple(top_buttons), tuple(side_buttons), self._config_button)
			self._selector.name = 'Main_Modes'
			for control in self.controls:
				isinstance(control, MonoButtonElement) and control.add_value_listener(self._button_value)
			self.set_highlighting_session_component(self._selector.session_component())
			self._suppress_session_highlight = False
		self.log_message('--------------= ' + str(self._monomod_version) + ' log opened =--------------')	
Пример #53
0
	def __init__(self, c_instance):
		ControlSurface.__init__(self, c_instance)
		self.log_message("====================== MaschineAble Log opened ======================")
		self.set_suppress_rebuild_requests(True)
		self._suggested_input_port = 'Maschine Controller In'
		self._suggested_output_port = 'Maschine Controller Out'
		self.session = None
		self._setup_session_control()
		self.set_suppress_rebuild_requests(False)
Пример #54
0
 def __init__(self, c_instance):
     ControlSurface.__init__(self, c_instance)
     self.set_suppress_rebuild_requests(True)
     self._setup_session_control()
     self._setup_mixer_control()
     self._setup_device_control()
     self._setup_transport_control()
     self._setup_view_control()
     self.set_suppress_rebuild_requests(False)
 def __init__(self, c_instance):
     ControlSurface.__init__(self, c_instance)
     self._handle_track_change.subject = self.song().view
     with self.component_guard():
         self._setup_controls()
         self._setup_device()
         self._setup_strip()
         self._setup_transport()
         self._handle_track_change()