예제 #1
0
파일: PadMode.py 프로젝트: frankois/ni
 def __init__(self, button_index, monochrome=False, *a, **k):
     (super().__init__)(button_index, *a, **k)
     self._note_display_mode = ND_KEYBOARD1
     self.current_scale_index = 0
     self._scale = None
     self._base_note = 0
     self._octave = 0.55
     self.current_scale_index = 0
     self._in_edit_mode = False
     self._editmode = None
     self._is_monochrome = monochrome
     self._color_edit_assign = monochrome and self.assign_edit_mono or self.assign_edit_color
     self.assign_transpose(SCALES[self.current_scale_index])
     is_momentary = True
     self.octave_down_button = ButtonElement(is_momentary, MIDI_CC_TYPE, 3,
                                             120)
     self.octave_up_button = ButtonElement(is_momentary, MIDI_CC_TYPE, 3,
                                           121)
     self.base_down_button = ButtonElement(is_momentary, MIDI_CC_TYPE, 3,
                                           124)
     self.base_up_button = ButtonElement(is_momentary, MIDI_CC_TYPE, 3, 125)
     self.scale_down_button = ButtonElement(is_momentary, MIDI_CC_TYPE, 3,
                                            118)
     self.scale_up_button = ButtonElement(is_momentary, MIDI_CC_TYPE, 3,
                                          119)
     self._adjust_scale.subject = SliderElement(MIDI_CC_TYPE, 2, 116)
     self._adjust_octav.subject = SliderElement(MIDI_CC_TYPE, 2, 115)
     self._adjust_basem.subject = SliderElement(MIDI_CC_TYPE, 2, 117)
     self._do_oct_down.subject = self.octave_down_button
     self._do_oct_up.subject = self.octave_up_button
     self._do_base_down.subject = self.base_down_button
     self._do_base_up.subject = self.base_up_button
     self._do_scale_down.subject = self.scale_down_button
     self._do_scale_up.subject = self.scale_up_button
     self._seg_display = None
    def _setup_mixer_control(self):
        is_momentary = True
        mixer = MixerComponent(NUM_TRACKS, 2)
        for track in range(NUM_TRACKS):
            strip = mixer.channel_strip(track)
            strip.set_volume_control(SliderElement(MIDI_CC_TYPE, track, 23))
            strip.set_pan_control(
                EncoderElement(MIDI_CC_TYPE, track, 10,
                               Live.MidiMap.MapMode.absolute))
            strip.set_send_controls(
                (EncoderElement(MIDI_CC_TYPE, track, 19,
                                Live.MidiMap.MapMode.absolute),
                 EncoderElement(MIDI_CC_TYPE, track, 20,
                                Live.MidiMap.MapMode.absolute)))
            strip.set_solo_button(
                ButtonElement(is_momentary, MIDI_NOTE_TYPE, track, 64))
            strip.set_mute_button(
                ButtonElement(is_momentary, MIDI_NOTE_TYPE, track, 63))
            strip.set_crossfade_toggle(
                ButtonElement(is_momentary, MIDI_NOTE_TYPE, track, 65))
            eq = mixer.track_eq(track)
            eq.set_gain_controls(
                tuple([
                    EncoderElement(MIDI_CC_TYPE, track, 18 - index,
                                   Live.MidiMap.MapMode.absolute)
                    for index in range(3)
                ]))
            eq.set_cut_buttons(
                tuple([
                    ButtonElement(is_momentary, MIDI_NOTE_TYPE, track,
                                  62 - index) for index in range(3)
                ]))
            filter = mixer.track_filter(track)
            filter.set_filter_controls(
                EncoderElement(MIDI_CC_TYPE, track, 22,
                               Live.MidiMap.MapMode.absolute),
                EncoderElement(MIDI_CC_TYPE, track, 21,
                               Live.MidiMap.MapMode.absolute))

        for ret_track in range(2):
            strip = mixer.return_strip(ret_track)
            strip.set_volume_control(
                SliderElement(MIDI_CC_TYPE, 12, 22 + ret_track))
            strip.set_pan_control(
                EncoderElement(MIDI_CC_TYPE, 12, 20 + ret_track,
                               Live.MidiMap.MapMode.absolute))
            strip.set_mute_button(
                ButtonElement(is_momentary, MIDI_NOTE_TYPE, 12,
                              78 + ret_track))

        mixer.set_crossfader_control(SliderElement(MIDI_CC_TYPE, 12, 8))
        mixer.set_prehear_volume_control(
            EncoderElement(MIDI_CC_TYPE, 12, 24,
                           Live.MidiMap.MapMode.absolute))
        mixer.master_strip().set_volume_control(
            SliderElement(MIDI_CC_TYPE, 12, 7))
        mixer.master_strip().set_pan_control(
            EncoderElement(MIDI_CC_TYPE, 12, 10,
                           Live.MidiMap.MapMode.absolute))
        return mixer
    def _setup_mixer_control(self):
        is_momentary = True
        num_tracks = 8
        num_returns = 7
        mixer = MixerComponent(num_tracks, num_returns)
        for track in range(num_tracks):
            strip = mixer.channel_strip(track)
            strip.set_volume_control(
                SliderElement(MIDI_CC_TYPE, 15, 54 - track))
            strip.set_pan_control(SliderElement(MIDI_CC_TYPE, 15, 80 - track))
            strip.set_mute_button(
                ButtonElement(is_momentary, MIDI_CC_TYPE, 15, 117 - track))
            strip.set_invert_mute_feedback(True)

        for track in range(num_returns):
            strip = mixer.return_strip(track)
            strip.set_volume_control(
                SliderElement(MIDI_CC_TYPE, 15, 10 + track))

        mixer.set_bank_buttons(
            ButtonElement(is_momentary, MIDI_CC_TYPE, 15, 108),
            ButtonElement(is_momentary, MIDI_CC_TYPE, 15, 109))
        mixer.set_crossfader_control(SliderElement(MIDI_CC_TYPE, 15, 9))
        mixer.master_strip().set_volume_control(
            SliderElement(MIDI_CC_TYPE, 15, 46))
        session = SessionComponent(0, 0)
        session.set_select_buttons(
            ButtonElement(is_momentary, MIDI_CC_TYPE, 15, 95),
            ButtonElement(is_momentary, MIDI_CC_TYPE, 15, 92))
        session.selected_scene().set_launch_button(
            ButtonElement(is_momentary, MIDI_CC_TYPE, 15, 91))
예제 #4
0
    def _set_up_mixer(self):
        is_momentary = True
        self._mixer = MaschineMixerComponent(8)
        self.send_sliders = []
        for track in range(8):
            self.send_sliders.append(
                SliderElement(MIDI_CC_TYPE, BASIC_CHANNEL,
                              SEND_CC_OFF + track))

        for track in range(8):
            strip = self._mixer.channel_strip(track)
            strip.set_arm_button(
                StateButton(is_momentary, MIDI_CC_TYPE, BASIC_CHANNEL,
                            ARM_CC_OFF + track))
            strip.set_solo_button(
                StateButton(is_momentary, MIDI_CC_TYPE, BASIC_CHANNEL,
                            SOLO_CC_OFF + track))
            strip.set_mute_button(
                StateButton(is_momentary, MIDI_CC_TYPE, BASIC_CHANNEL,
                            MUTE_CC_OFF + track))
            strip.set_volume_control(
                SliderElement(MIDI_CC_TYPE, BASIC_CHANNEL,
                              LEVEL_CC_OFF + track))
            strip.set_pan_control(
                SliderElement(MIDI_CC_TYPE, BASIC_CHANNEL, PAN_CC_OFF + track))
            strip.set_select_button(
                StateButton(is_momentary, MIDI_CC_TYPE, BASIC_CHANNEL,
                            SELECT_CC_OFF + track))
            st = tuple([self.send_sliders[track]])
            strip.set_send_controls(st)

        self.send_slider_toggle_button = StateButton(False, MIDI_CC_TYPE, 0,
                                                     90)
        self._do_toggle_send.subject = self.send_slider_toggle_button
        self._session.set_mixer(self._mixer)
예제 #5
0
 def _setup_transport(self):
     is_momentary = True
     transport = TransportComponent()
     studiotransport = MaschineTransport()
     playButton = StateButton(is_momentary, MIDI_CC_TYPE, 0, 108)
     stopButton = StateButton(not is_momentary, MIDI_CC_TYPE, 0, 110)
     recordButton = StateButton(is_momentary, MIDI_CC_TYPE, 0, 109)
     overdubButton = StateButton(is_momentary, MIDI_CC_TYPE, 0, 107)
     metrononmeButton = StateButton(is_momentary, MIDI_CC_TYPE, 0, 104)
     eventRecButton = StateButton(is_momentary, MIDI_CC_TYPE, 0, 98)
     playButton.name = 'Play'
     stopButton.name = 'Stop'
     recordButton.name = 'Record'
     overdubButton.name = 'Overdub'
     metrononmeButton.name = 'Metronome'
     transport.set_play_button(playButton)
     transport.set_stop_button(stopButton)
     transport.set_record_button(recordButton)
     transport.set_overdub_button(overdubButton)
     transport.set_metronome_button(metrononmeButton)
     studiotransport.set_session_auto_button(eventRecButton)
     studiotransport.set_arrangement_overdub_button(
         StateButton(is_momentary, MIDI_CC_TYPE, 0, 106))
     studiotransport.set_back_arrange_button(
         StateButton(is_momentary, MIDI_CC_TYPE, 0, 105))
     transport.set_nudge_buttons(
         StateButton(is_momentary, MIDI_CC_TYPE, 1, 51),
         StateButton(is_momentary, MIDI_CC_TYPE, 1, 50))
     punchinbutton = ToggleButton(MIDI_CC_TYPE, 1, 52)
     punchoutbutton = ToggleButton(MIDI_CC_TYPE, 1, 53)
     punchinbutton.name = 'Punch In'
     punchoutbutton.name = 'Punch Out'
     transport.set_punch_buttons(punchinbutton, punchoutbutton)
     transport.set_loop_button(
         StateButton(is_momentary, MIDI_CC_TYPE, 1, 54))
     self.song_follow_button = ButtonElement(True, MIDI_CC_TYPE, 2, 98)
     self._do_song_follow.subject = self.song_follow_button
     self._song_follow_changed.subject = self.song().view
     self._song_follow_changed()
     self.transp_ff_button = ButtonElement(True, MIDI_CC_TYPE, 1, 59)
     self.transp_rw_button = ButtonElement(True, MIDI_CC_TYPE, 1, 58)
     transport.set_seek_buttons(self.transp_ff_button,
                                self.transp_rw_button)
     self.xfadeKnob = SliderElement(MIDI_CC_TYPE, 1, 105)
     self.xfadeKnob.connect_to(
         self.song().master_track.mixer_device.crossfader)
     self.master_knob = SliderElement(MIDI_CC_TYPE, 0, 99)
     self.master_knob.connect_to(
         self.song().master_track.mixer_device.volume)
     self.tap_button = StateButton(is_momentary, MIDI_CC_TYPE, 0, 88)
     self._do_tap_tempo.subject = self.tap_button
     self.cue_add_delete_button = StateButton(is_momentary, MIDI_CC_TYPE, 1,
                                              55)
     self.cue_prev_button = StateButton(is_momentary, MIDI_CC_TYPE, 1, 56)
     self.cue_next_button = StateButton(is_momentary, MIDI_CC_TYPE, 1, 57)
     self._do_toggle_cue.subject = self.cue_add_delete_button
     self._do_toggle_prev_cue.subject = self.cue_prev_button
     self._do_toggle_next_cue.subject = self.cue_next_button
예제 #6
0
    def __init__(self, note_repeat=None, *a, **k):
        (super().__init__)(*a, **k)
        self._note_repeat = note_repeat
        self._adjust_cfg_value.subject = SliderElement(MIDI_CC_TYPE, 2, 105)
        self._note_repeat_button = ButtonElement(True, MIDI_CC_TYPE, 0, 102)
        self._do_note_repeat.subject = self._note_repeat_button
        self._cfg_adjust_button = ButtonElement(True, MIDI_CC_TYPE, 2, 106)
        self._cfg_adjust_button.add_value_listener(self._do_cfg_button)
        self._cfg_down = False
        self._hold_mode = False
        self.nr_down = False
        self._current_nr_button = None
        self._do_change_nr_1.subject = SliderElement(MIDI_CC_TYPE, 1, 76)
        self._do_change_nr_2.subject = SliderElement(MIDI_CC_TYPE, 1, 77)
        self._do_change_nr_3.subject = SliderElement(MIDI_CC_TYPE, 1, 78)
        self._do_change_nr_4.subject = SliderElement(MIDI_CC_TYPE, 1, 79)

        def createButton(ccindenfier, nr_freq):
            button = ButtonElement(True, MIDI_CC_TYPE, 1, ccindenfier)
            button.add_value_listener(self._select_value, True)
            button.active = False
            button.freq = nr_freq
            button.cfg = False
            button.hold = False
            return button

        def createCfgButton(ccindenfier, nr_freq_idx):
            button = ButtonElement(True, MIDI_CC_TYPE, 2, ccindenfier)
            button.add_value_listener(self._select_value, True)
            button.active = False
            button.fr_idx = nr_freq_idx
            button.freq = CFG_REPEAT_FREQUENCIES[nr_freq_idx]
            button.cfg = True
            button.hold = False
            return button

        self._cfg_buttons = [
            createCfgButton(assign[0], assign[1])
            for assign in CTRL_CFG_TO_FREQ
        ]
        for button in self._cfg_buttons:
            button.send_value(button.active and 1 or 0, True)

        self.nr_frq = CTRL_TO_FREQ[4][1]
        self._note_repeat.repeat_rate = 1.0 / self.nr_frq * 4.0
        self.buttons = [
            createButton(assign[0], assign[1]) for assign in CTRL_TO_FREQ
        ]
        self.buttons[4].active = True
        self._previous_button = self.buttons[4]
        self._last_active_button = self.buttons[4]
        for button in self.buttons:
            button.send_value(button.active and 1 or 0, True)
예제 #7
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._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_selection_follows_track_selection=True)
            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)
예제 #8
0
 def __init__(self, modeselector, editsection, *a, **k):
     super(CompoundComponent, self).__init__(*a, **k)
     self._modesel = modeselector
     self._editsection = editsection
     is_momentary = True
     self._do_push_button.subject = ButtonElement(is_momentary,
                                                  MIDI_CC_TYPE, 0, 82)
     self._do_edit_slider.subject = SliderElement(MIDI_CC_TYPE, 1, 81)
     self._do_channel_slider.subject = SliderElement(MIDI_CC_TYPE, 1, 83)
     self._do_channel_button.subject = ButtonElement(
         is_momentary, MIDI_CC_TYPE, 1, 63)
     self._do_req_quantize.subject = SliderElement(MIDI_CC_TYPE, 1, 100)
     self._do_browse.subject = SliderElement(MIDI_CC_TYPE, 1, 84)
     self._do_tempo.subject = SliderElement(MIDI_CC_TYPE, 1, 101)
     self._do_volume.subject = SliderElement(MIDI_CC_TYPE, 1, 103)
     self._do_dedicated_rec_quantize.subject = SliderElement(
         MIDI_CC_TYPE, 2, 112)
     self._do_dedicated_clip_quantize.subject = SliderElement(
         MIDI_CC_TYPE, 2, 113)
     self.set_up_function_buttons()
     self._wheel_overide = None
     self.scrub_mode = True
     self.select_arm_mode = True
     self._push_down = False
     return
예제 #9
0
    def _set_up_device_control(self):
        is_momentary = True
        device = MaschineDeviceComponent()
        param_controls = []
        for index in range(8):
            param_controls.append(
                SliderElement(MIDI_CC_TYPE, BASIC_CHANNEL,
                              DEVICE_CC_OFF + index))

        device.set_parameter_controls(tuple(param_controls))
        self.device_control = param_controls
        device.set_on_off_button(
            StateButton(is_momentary, MIDI_CC_TYPE, BASIC_CHANNEL,
                        DEVICE_BUTTON_CC_OFF))
        device.set_bank_nav_buttons(
            StateButton(is_momentary, MIDI_CC_TYPE, 3, 104),
            ButtonElement(is_momentary, MIDI_CC_TYPE, 3, 105))
        self._device_nav_button_left = StateButton(is_momentary, MIDI_CC_TYPE,
                                                   3, 106)
        self._device_nav_button_right = StateButton(is_momentary, MIDI_CC_TYPE,
                                                    3, 107)
        self._navigate_button = StateButton(is_momentary, MIDI_CC_TYPE, 0, 127)
        self._nav_value_left.subject = self._device_nav_button_left
        self._nav_value_right.subject = self._device_nav_button_right
        self._do_focus_navigate.subject = self._navigate_button
        self.set_device_component(device)
        return device
 def __init__(self, c_instance):
     ControlSurface.__init__(self, c_instance)
     with self.component_guard():
         self.set_pad_translations(PAD_TRANSLATIONS)
         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)
예제 #11
0
파일: KnobSection.py 프로젝트: frankois/ni
 def __init__(self, modeselector, editsection, *a, **k):
     (super().__init__)(*a, **k)
     self._modesel = modeselector
     self._editsection = editsection
     self._modesel.connect_main_knob(self)
     is_momentary = True
     self.main_knob = SliderElement(MIDI_CC_TYPE, 1, 85)
     self.push_button = ButtonElement(is_momentary, MIDI_CC_TYPE, 1, 87)
     self.volume_button = ButtonElement(is_momentary, MIDI_CC_TYPE, 3, 110)
     self.swing_button = ButtonElement(is_momentary, MIDI_CC_TYPE, 3, 111)
     self.tempo_button = ButtonElement(is_momentary, MIDI_CC_TYPE, 3, 112)
     self.xfade_button = ButtonElement(is_momentary, MIDI_CC_TYPE, 3, 116)
     self._mode_button = self.canonical_parent.create_gated_button(
         80, KSM_HUES[0])
     self._color_edit_button = ButtonElement(is_momentary, MIDI_CC_TYPE, 3,
                                             113)
     self._set_inicliplen_button = ButtonElement(is_momentary, MIDI_CC_TYPE,
                                                 3, 122)
     self._set_quantize_button = ButtonElement(is_momentary, MIDI_CC_TYPE,
                                               3, 126)
     self.do_main.subject = self.main_knob
     self.do_main_push.subject = self.push_button
     self._do_volume.subject = self.volume_button
     self._do_swing.subject = self.swing_button
     self._do_tempo.subject = self.tempo_button
     self._do_xfade.subject = self.xfade_button
     self._do_toggle_mode.subject = self._mode_button
     self._do_color_button.subject = self._color_edit_button
     self._do_mikr_cliplen.subject = self._set_inicliplen_button
     self._do_mikr_quantize.subject = self._set_quantize_button
     self._do_dedicated_rec_quantize.subject = SliderElement(
         MIDI_CC_TYPE, 2, 112)
     self._do_dedicated_clip_quantize.subject = SliderElement(
         MIDI_CC_TYPE, 2, 113)
     self._radio_buttons = (self.volume_button, self.swing_button,
                            self.tempo_button, self.xfade_button,
                            self._color_edit_button)
     self._do_button_left.subject = ButtonElement(is_momentary,
                                                  MIDI_CC_TYPE, 2, 120)
     self._do_button_right.subject = ButtonElement(is_momentary,
                                                   MIDI_CC_TYPE, 2, 121)
     self.volume_button.send_value(0, True)
     self._mode_button.set_color(KSM_HUES[0])
     self.knob_action = self._scroll_action
     self._prev_mode = None
     self._prev_action = None
예제 #12
0
 def _init_maschine(self):
     self._jogwheel = KnobSection(self._modeselect, self._editsection)
     self._note_repeater.registerKnobHandler(self._jogwheel)
     self._mixer.set_touch_mode(2)
     self._device_component.set_touch_mode(2)
     self.prehear_knob = SliderElement(MIDI_CC_TYPE, 0, 41)
     self.prehear_knob.connect_to(
         self.song().master_track.mixer_device.cue_volume)
 def _setup_transport_control(self):
     is_momentary = True
     transport = TransportComponent()
     transport.set_play_button(
         ButtonElement(is_momentary, MIDI_NOTE_TYPE, 12, 80))
     transport.set_record_button(
         ButtonElement(is_momentary, MIDI_NOTE_TYPE, 12, 81))
     transport.set_nudge_buttons(
         ButtonElement(is_momentary, MIDI_NOTE_TYPE, 12, 86),
         ButtonElement(is_momentary, MIDI_NOTE_TYPE, 12, 85))
     transport.set_loop_button(
         ButtonElement(is_momentary, MIDI_NOTE_TYPE, 12, 84))
     transport.set_punch_buttons(
         ButtonElement(is_momentary, MIDI_NOTE_TYPE, 12, 82),
         ButtonElement(is_momentary, MIDI_NOTE_TYPE, 12, 83))
     transport.set_tempo_control(SliderElement(MIDI_CC_TYPE, 12, 26),
                                 SliderElement(MIDI_CC_TYPE, 12, 25))
예제 #14
0
 def __init__(self, *a, **k):
     (super().__init__)(*a, **k)
     is_momentary = True
     self.split_knob = SliderElement(MIDI_CC_TYPE, 5, 70)
     self.gate_knob = SliderElement(MIDI_CC_TYPE, 5, 71)
     self.bend_knob = SliderElement(MIDI_CC_TYPE, 5, 72)
     self.offset_knob = SliderElement(MIDI_CC_TYPE, 5, 73)
     self.strech_knob = SliderElement(MIDI_CC_TYPE, 5, 74)
     self.fade_knob = SliderElement(MIDI_CC_TYPE, 5, 75)
     self.transpose_knob = SliderElement(MIDI_CC_TYPE, 5, 77)
     self.edit_button = ButtonElement(is_momentary, MIDI_CC_TYPE, 5, 60)
     self.split_button = ButtonElement(is_momentary, MIDI_CC_TYPE, 5, 61)
     self.init_button = ButtonElement(is_momentary, MIDI_CC_TYPE, 5, 62)
     self.delete_button = ButtonElement(is_momentary, MIDI_CC_TYPE, 5, 63)
     self.select_button = ButtonElement(is_momentary, MIDI_CC_TYPE, 5, 64)
     self._do_edit_button.subject = self.edit_button
     self._do_split_button.subject = self.split_button
     self._do_delete.subject = self.delete_button
     self._do_init.subject = self.init_button
     self._do_select.subject = self.select_button
     self._do_split.subject = self.split_knob
     self._do_gate.subject = self.gate_knob
     self._do_bend.subject = self.bend_knob
     self._do_offset.subject = self.offset_knob
     self._do_strech.subject = self.strech_knob
     self._do_fade.subject = self.fade_knob
     self._do_transpose.subject = self.transpose_knob
예제 #15
0
 def _setup_transport(self):
     is_momentary = True
     self.shiftButton = SysExButton(120, name='Shift_Button')
     self._MaschineJam__play_button = StateButton(is_momentary,
                                                  MIDI_CC_TYPE,
                                                  0,
                                                  108,
                                                  name='Play_Button')
     self._hand_play_pressed.subject = self._MaschineJam__play_button
     self._listen_playing.subject = self.song()
     self._channel_led_left = SliderElement(MIDI_CC_TYPE, 0, 38)
     self._channel_led_right = SliderElement(MIDI_CC_TYPE, 0, 39)
     self._channel_led_left.last_raw = 0.0
     self._channel_led_left.last_send = 0
     self._channel_led_right.last_raw = 0.0
     self._channel_led_right.last_send = 0
     self._listen_master_left.subject = self.song().master_track
     self._listen_master_right.subject = self.song().master_track
     self._auto_button = StateButton(is_momentary,
                                     MIDI_CC_TYPE,
                                     0,
                                     98,
                                     name='Auto_Button')
     self._listen_automation_record.subject = self.song()
     self._handle_automation_record.subject = self._auto_button
     self._do_direction_up.subject = StateButton(is_momentary,
                                                 MIDI_CC_TYPE,
                                                 0,
                                                 40,
                                                 name='Up_Arrow')
     self._do_direction_down.subject = StateButton(is_momentary,
                                                   MIDI_CC_TYPE,
                                                   0,
                                                   41,
                                                   name='Down_Arrow')
     self._do_direction_left.subject = StateButton(is_momentary,
                                                   MIDI_CC_TYPE,
                                                   0,
                                                   42,
                                                   name='Left_Arrow')
     self._do_direction_right.subject = StateButton(is_momentary,
                                                    MIDI_CC_TYPE,
                                                    0,
                                                    43,
                                                    name='Right_Arrow')
    def _create_controls(self):
        self._device_encoders = ButtonMatrixElement(rows=[[
            EncoderElement(MIDI_CC_TYPE,
                           ENCODER_CHANNEL,
                           identifier, (Live.MidiMap.MapMode.
                                        relative_smooth_binary_offset),
                           name=('Device_Encoder_%d_%d' %
                                 (col_index, row_index)))
            for col_index, identifier in enumerate(row)
        ] for row_index, row in enumerate((ENCODER_MSG_IDS[:4],
                                           ENCODER_MSG_IDS[4:8]))])
        self._horizontal_scroll_encoder = EncoderElement(
            MIDI_CC_TYPE,
            ENCODER_CHANNEL, (ENCODER_MSG_IDS[(-2)]),
            (Live.MidiMap.MapMode.relative_smooth_binary_offset),
            name='Horizontal_Scroll_Encoder')
        self._vertical_scroll_encoder = EncoderElement(
            MIDI_CC_TYPE,
            ENCODER_CHANNEL, (ENCODER_MSG_IDS[(-1)]),
            (Live.MidiMap.MapMode.relative_smooth_binary_offset),
            name='Vertical_Scroll_Encoder')
        self._volume_sliders = ButtonMatrixElement(rows=[[
            SliderElement(MIDI_CC_TYPE, ENCODER_CHANNEL, identifier)
            for identifier in SLIDER_MSG_IDS[:-1]
        ]])
        self._master_slider = SliderElement(MIDI_CC_TYPE, ENCODER_CHANNEL,
                                            SLIDER_MSG_IDS[(-1)])

        def make_keylab_button(name):
            button = ButtonElement(True,
                                   MIDI_CC_TYPE,
                                   0, (get_button_identifier_by_name(name)),
                                   name=(name.title()))
            return button

        for button_name in list(BUTTON_HARDWARE_AND_MESSAGE_IDS.keys()):
            setattr(self, '_' + button_name, make_keylab_button(button_name))

        self._pads = ButtonMatrixElement(rows=[[
            ButtonElement(True,
                          MIDI_CC_TYPE,
                          PAD_CHANNEL, (col_index + row_offset),
                          name=('Pad_%d_%d' % (col_index, row_index)))
            for col_index in range(4)
        ] for row_index, row_offset in enumerate(range(48, 35, -4))])
 def _create_controls(self):
     self._encoders = ButtonMatrixElement(rows=[
      [EncoderElement(MIDI_CC_TYPE, 0, identifier, (Live.MidiMap.MapMode.absolute), name=('Encoder_%d' % index)) for index, identifier in enumerate(ENCODER_IDS)]])
     self._master_encoder = EncoderElement(MIDI_CC_TYPE,
       0, 10, (Live.MidiMap.MapMode.absolute), name='Master_Encoder')
     self._sliders = ButtonMatrixElement(rows=[
      [SliderElement(MIDI_CC_TYPE, 0, identifier, name=('Slider_%d' % index)) for index, identifier in enumerate(SLIDER_IDS)]])
     self._master_slider = SliderElement(MIDI_CC_TYPE, 0, 7, name='Master_Slider')
     self._play_button = ButtonElement(True, MIDI_CC_TYPE, 0, 26)
     self._stop_button = ButtonElement(True, MIDI_CC_TYPE, 0, 25)
     self._record_button = ButtonElement(True, MIDI_CC_TYPE, 0, 28)
     self._forward_button = ButtonElement(True, MIDI_CC_TYPE, 0, 24)
     self._backward_button = ButtonElement(True, MIDI_CC_TYPE, 0, 21)
     self._ff_button = ButtonElement(True, MIDI_CC_TYPE, 0, 23)
     self._rw_button = ButtonElement(True, MIDI_CC_TYPE, 0, 22)
     self._device_mode_button = ButtonElement(True, MIDI_CC_TYPE, 0, 80)
     self._pan_mode_button = ButtonElement(True, MIDI_CC_TYPE, 0, 81)
     self._send_a_mode_button = ButtonElement(True, MIDI_CC_TYPE, 0, 82)
     self._send_b_mode_button = ButtonElement(True, MIDI_CC_TYPE, 0, 83)
     self._pads = ButtonMatrixElement(rows=[[ButtonElement(True, MIDI_NOTE_TYPE, 0, identifier) for identifier in row] for row in PAD_ROWS])
예제 #18
0
파일: EditSection.py 프로젝트: frankois/ni
 def __init__(self, *a, **k):
     (super().__init__)(*a, **k)
     is_momentary = True
     self.mikro_shift_button = ButtonElement(is_momentary, MIDI_CC_TYPE, 2, 80)
     self._do_shift_mikro.subject = self.mikro_shift_button
     self.shift_button = ButtonElement(is_momentary, MIDI_CC_TYPE, 1, 80)
     self._do_shift.subject = self.shift_button
     self.alt_button = ButtonElement(is_momentary, MIDI_CC_TYPE, 1, 82)
     self._do_alt.subject = self.alt_button
     self.mikro_shift = False
     self.shiftdown = False
     self.altdown = False
     self.edit_state = ES_NONE
     self._down_button = None
     self._action_set_quant.subject = SliderElement(MIDI_CC_TYPE, 2, 110)
     self._action_init_loop.subject = SliderElement(MIDI_CC_TYPE, 2, 111)
     self._nav_button = StateButton(is_momentary, MIDI_CC_TYPE, 0, 115)
     self._action_navigate.subject = self._nav_button
     self._copy_button = StateButton(is_momentary, MIDI_CC_TYPE, 0, 95)
     self._action_duplicate.subject = self._copy_button
     self._quantize_button = StateButton(is_momentary, MIDI_CC_TYPE, 0, 97)
     self._action_quantize.subject = self._quantize_button
     self._paste_button = StateButton(is_momentary, MIDI_CC_TYPE, 0, 96)
     self._action_new.subject = self._paste_button
     self._note_button = StateButton(is_momentary, MIDI_CC_TYPE, 0, 101)
     self._action_note.subject = self._note_button
     self._clear_button = StateButton(is_momentary, MIDI_CC_TYPE, 0, 103)
     self._action_clear.subject = self._clear_button
     self._nudge_button = StateButton(is_momentary, MIDI_CC_TYPE, 0, 100)
     self._action_nudge_button.subject = self._nudge_button
     self.action_time = False
     self.pad_action = False
     self.pad_wheel_action = False
     self.quantize = 5
     self.quantize_amount = 1.0
     self.initial_clip_len = 4.0
     self._focused_clip = None
     self._focused_c_index = None
     self._color_edit = False
     self.nav_index = 0
    def _setup_mixer(self):
        mute_solo_flip_button = ButtonElement(not IS_MOMENTARY, MIDI_CC_TYPE,
                                              0, 34)
        self._next_nav_button = ButtonElement(IS_MOMENTARY, MIDI_CC_TYPE, 0,
                                              37)
        self._prev_nav_button = ButtonElement(IS_MOMENTARY, MIDI_CC_TYPE, 0,
                                              38)
        self._strip_buttons = []
        mute_solo_flip_button.name = 'Mute_Solo_Flip_Button'
        self._next_nav_button.name = 'Next_Track_Button'
        self._prev_nav_button.name = 'Prev_Track_Button'
        self._mixer = SpecialMixerComponent(8)
        self._mixer.name = 'Mixer'
        self._mixer.set_select_buttons(self._next_nav_button,
                                       self._prev_nav_button)
        self._mixer.selected_strip().name = 'Selected_Channel_Strip'
        self._mixer.master_strip().name = 'Master_Channel_Strip'
        self._mixer.master_strip().set_volume_control(self._master_slider)
        self._sliders = []
        for index in range(8):
            strip = self._mixer.channel_strip(index)
            strip.name = 'Channel_Strip_' + str(index)
            strip.set_invert_mute_feedback(True)
            self._sliders.append(SliderElement(MIDI_CC_TYPE, 0, index))
            self._sliders[(-1)].name = str(index) + '_Volume_Control'
            self._sliders[(-1)].set_feedback_delay(-1)
            self._sliders[(-1)].add_value_listener((self._slider_value),
                                                   identify_sender=True)
            strip.set_volume_control(self._sliders[(-1)])
            self._strip_buttons.append(
                ButtonElement(IS_MOMENTARY, MIDI_CC_TYPE, 0, 9 + index))
            self._strip_buttons[(-1)].name = str(index) + '_Mute_Button'
            self._strip_buttons[(-1)].add_value_listener(
                (self._mixer_button_value), identify_sender=True)

        self._mixer.master_strip().set_mute_button(
            ButtonElement(IS_MOMENTARY, MIDI_CC_TYPE, 1, 17))
        self._mixer.set_strip_mute_solo_buttons(tuple(self._strip_buttons),
                                                mute_solo_flip_button)
 def __init__(self, c_instance):
     ControlSurface.__init__(self, c_instance)
     with self.component_guard():
         self.set_pad_translations(PAD_TRANSLATIONS)
         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)
예제 #21
0
 def __init__(self, *a, **k):
     (super(AudioClipEditComponent, self).__init__)(*a, **k)
     self._loop_start_slider = SliderElement(MIDI_CC_TYPE, 2, 60)
     self._action_loop_start.subject = self._loop_start_slider
     self._loop_end_slider = SliderElement(MIDI_CC_TYPE, 2, 61)
     self._action_loop_end.subject = self._loop_end_slider
     self._mark_start_slider = SliderElement(MIDI_CC_TYPE, 2, 62)
     self._action_mark_start.subject = self._mark_start_slider
     self._mark_end_slider = SliderElement(MIDI_CC_TYPE, 2, 63)
     self._action_mark_end.subject = self._mark_end_slider
     self._pitch_c_slider = SliderElement(MIDI_CC_TYPE, 2, 64)
     self._pitch_f_slider = SliderElement(MIDI_CC_TYPE, 2, 65)
     self._gain_slider = SliderElement(MIDI_CC_TYPE, 2, 66)
     self._action_pitch_c.subject = self._pitch_c_slider
     self._action_pitch_f.subject = self._pitch_f_slider
     self._action_gain.subject = self._gain_slider
     self._loop_inc_slider = SliderElement(MIDI_CC_TYPE, 2, 67)
     self._action_loop_inc.subject = self._loop_inc_slider
     self._loop_move_button = ButtonElement(False, MIDI_CC_TYPE, 2, 74)
     self._action_mv_loop.subject = self._loop_move_button
     self._loop_set_button = ButtonElement(False, MIDI_CC_TYPE, 2, 70)
     self._action_loop_toggle.subject = self._loop_set_button
     self._warp_set_button = ButtonElement(False, MIDI_CC_TYPE, 2, 71)
     self._action_warp_toggle.subject = self._warp_set_button
     self._zoom_scroll_button = ButtonElement(False, MIDI_CC_TYPE, 2, 73)
     self._action_scroll_mode.subject = self._zoom_scroll_button
     self.selected_clip_slot = None
     self.inc_index = 4
     self.loop_inc = INC_STEPS[self.inc_index]
     self.start_inc = INC_STEPS[self.inc_index]
     self.mv_loop = False
     self._on_pitch_c_changed.subject = None
     self._on_pitch_f_changed.subject = None
     self._on_gain_changed.subject = None
     self._scroll_mode = False
     self.update_selected_clip()
 def __init__(self, *a, **k):
     super(JogWheelSection, self).__init__(*a, **k)
     self._do_encoder_button.subject = ButtonElement(
         True, MIDI_CC_TYPE, 0, CC_JOGWHEEL_PUSH)
     self._do_encoder_touch.subject = ButtonElement(True, MIDI_CC_TYPE, 0,
                                                    CC_JOGWHEEL_TOUCH)
     self._do_encoder_slider.subject = SliderElement(
         MIDI_CC_TYPE, 0, CC_JOGWHEEL)
     self.__nav_left_button = IndexedButton(True, MIDI_CC_TYPE, CC_NAV_LEFT,
                                            0, (0, 127))
     self.__nav_right_button = IndexedButton(True, MIDI_CC_TYPE,
                                             CC_NAV_RIGHT, 0, (0, 127))
     self.__nav_up_button = IndexedButton(True, MIDI_CC_TYPE, CC_NAV_UP, 0,
                                          (0, 127))
     self.__nav_down_button = IndexedButton(True, MIDI_CC_TYPE, CC_NAV_DOWN,
                                            0, (0, 127))
     self._do_nav_left.subject = self.__nav_left_button
     self._do_nav_right.subject = self.__nav_right_button
     self._do_nav_up.subject = self.__nav_up_button
     self._do_nav_down.subject = self.__nav_down_button
     self._selected_track_change.subject = self.song().view
     self._clip = None
     return
예제 #23
0
def make_slider(cc_no, name):
    slider = SliderElement(MIDI_CC_TYPE, 0, cc_no)
    slider.set_feedback_delay(-1)
    slider.name = name
    return slider
예제 #24
0
    def __init__(self):

        self._midi_channel = 1
        self.main_faders = []
        self.encoder_groups = []
        self.encoder_buttons = []
        self.buttons = []

        #we are going to input this manually, so that it is easy to update later on:

        ##FADERS##
        self.main_faders.append(
            SliderElement(MIDI_CC_TYPE, self._midi_channel, 32))
        self.main_faders.append(
            SliderElement(MIDI_CC_TYPE, self._midi_channel, 33))
        self.main_faders.append(
            SliderElement(MIDI_CC_TYPE, self._midi_channel, 34))
        self.main_faders.append(
            SliderElement(MIDI_CC_TYPE, self._midi_channel, 35))
        self.main_faders.append(
            SliderElement(MIDI_CC_TYPE, self._midi_channel, 36))
        self.main_faders.append(
            SliderElement(MIDI_CC_TYPE, self._midi_channel, 37))
        self.main_faders.append(
            SliderElement(MIDI_CC_TYPE, self._midi_channel, 38))
        self.main_faders.append(
            SliderElement(MIDI_CC_TYPE, self._midi_channel, 39))

        ##ENCODERS##
        #group 1, pan controls#
        self.encoder_groups.append([])
        self.encoder_groups[0].append(
            EncoderElement(MIDI_CC_TYPE, self._midi_channel, 102,
                           Live.MidiMap.MapMode.absolute))
        self.encoder_groups[0].append(
            EncoderElement(MIDI_CC_TYPE, self._midi_channel, 103,
                           Live.MidiMap.MapMode.absolute))
        self.encoder_groups[0].append(
            EncoderElement(MIDI_CC_TYPE, self._midi_channel, 104,
                           Live.MidiMap.MapMode.absolute))
        self.encoder_groups[0].append(
            EncoderElement(MIDI_CC_TYPE, self._midi_channel, 105,
                           Live.MidiMap.MapMode.absolute))
        self.encoder_groups[0].append(
            EncoderElement(MIDI_CC_TYPE, self._midi_channel, 106,
                           Live.MidiMap.MapMode.absolute))
        self.encoder_groups[0].append(
            EncoderElement(MIDI_CC_TYPE, self._midi_channel, 107,
                           Live.MidiMap.MapMode.absolute))
        self.encoder_groups[0].append(
            EncoderElement(MIDI_CC_TYPE, self._midi_channel, 108,
                           Live.MidiMap.MapMode.absolute))
        self.encoder_groups[0].append(
            EncoderElement(MIDI_CC_TYPE, self._midi_channel, 109,
                           Live.MidiMap.MapMode.absolute))

        #group 2, send A controls#
        self.encoder_groups.append([])
        self.encoder_groups[1].append(
            EncoderElement(MIDI_CC_TYPE, self._midi_channel, 64,
                           Live.MidiMap.MapMode.absolute))
        self.encoder_groups[1].append(
            EncoderElement(MIDI_CC_TYPE, self._midi_channel, 65,
                           Live.MidiMap.MapMode.absolute))
        self.encoder_groups[1].append(
            EncoderElement(MIDI_CC_TYPE, self._midi_channel, 66,
                           Live.MidiMap.MapMode.absolute))
        self.encoder_groups[1].append(
            EncoderElement(MIDI_CC_TYPE, self._midi_channel, 67,
                           Live.MidiMap.MapMode.absolute))
        self.encoder_groups[1].append(
            EncoderElement(MIDI_CC_TYPE, self._midi_channel, 68,
                           Live.MidiMap.MapMode.absolute))
        self.encoder_groups[1].append(
            EncoderElement(MIDI_CC_TYPE, self._midi_channel, 69,
                           Live.MidiMap.MapMode.absolute))
        self.encoder_groups[1].append(
            EncoderElement(MIDI_CC_TYPE, self._midi_channel, 70,
                           Live.MidiMap.MapMode.absolute))
        self.encoder_groups[1].append(
            EncoderElement(MIDI_CC_TYPE, self._midi_channel, 71,
                           Live.MidiMap.MapMode.absolute))

        #group 3, send B controls#
        self.encoder_groups.append([])
        self.encoder_groups[2].append(
            EncoderElement(MIDI_CC_TYPE, self._midi_channel, 72,
                           Live.MidiMap.MapMode.absolute))
        self.encoder_groups[2].append(
            EncoderElement(MIDI_CC_TYPE, self._midi_channel, 73,
                           Live.MidiMap.MapMode.absolute))
        self.encoder_groups[2].append(
            EncoderElement(MIDI_CC_TYPE, self._midi_channel, 74,
                           Live.MidiMap.MapMode.absolute))
        self.encoder_groups[2].append(
            EncoderElement(MIDI_CC_TYPE, self._midi_channel, 75,
                           Live.MidiMap.MapMode.absolute))
        self.encoder_groups[2].append(
            EncoderElement(MIDI_CC_TYPE, self._midi_channel, 76,
                           Live.MidiMap.MapMode.absolute))
        self.encoder_groups[2].append(
            EncoderElement(MIDI_CC_TYPE, self._midi_channel, 77,
                           Live.MidiMap.MapMode.absolute))
        self.encoder_groups[2].append(
            EncoderElement(MIDI_CC_TYPE, self._midi_channel, 78,
                           Live.MidiMap.MapMode.absolute))
        self.encoder_groups[2].append(
            EncoderElement(MIDI_CC_TYPE, self._midi_channel, 79,
                           Live.MidiMap.MapMode.absolute))

        #group 4, send C controls#
        self.encoder_groups.append([])
        self.encoder_groups[3].append(
            EncoderElement(MIDI_CC_TYPE, self._midi_channel, 80,
                           Live.MidiMap.MapMode.absolute))
        self.encoder_groups[3].append(
            EncoderElement(MIDI_CC_TYPE, self._midi_channel, 81,
                           Live.MidiMap.MapMode.absolute))
        self.encoder_groups[3].append(
            EncoderElement(MIDI_CC_TYPE, self._midi_channel, 82,
                           Live.MidiMap.MapMode.absolute))
        self.encoder_groups[3].append(
            EncoderElement(MIDI_CC_TYPE, self._midi_channel, 83,
                           Live.MidiMap.MapMode.absolute))
        self.encoder_groups[3].append(
            EncoderElement(MIDI_CC_TYPE, self._midi_channel, 84,
                           Live.MidiMap.MapMode.absolute))
        self.encoder_groups[3].append(
            EncoderElement(MIDI_CC_TYPE, self._midi_channel, 85,
                           Live.MidiMap.MapMode.absolute))
        self.encoder_groups[3].append(
            EncoderElement(MIDI_CC_TYPE, self._midi_channel, 86,
                           Live.MidiMap.MapMode.absolute))
        self.encoder_groups[3].append(
            EncoderElement(MIDI_CC_TYPE, self._midi_channel, 87,
                           Live.MidiMap.MapMode.absolute))

        ##BUTTONS##

        #encoder buttons, all control groups, record buttons#
        self.encoder_buttons.append([])
        self.encoder_buttons[0].append(
            ButtonElement(True, MIDI_CC_TYPE, self._midi_channel, 56))
        self.encoder_buttons[0].append(
            ButtonElement(True, MIDI_CC_TYPE, self._midi_channel, 57))
        self.encoder_buttons[0].append(
            ButtonElement(True, MIDI_CC_TYPE, self._midi_channel, 58))
        self.encoder_buttons[0].append(
            ButtonElement(True, MIDI_CC_TYPE, self._midi_channel, 59))
        self.encoder_buttons[0].append(
            ButtonElement(True, MIDI_CC_TYPE, self._midi_channel, 60))
        self.encoder_buttons[0].append(
            ButtonElement(True, MIDI_CC_TYPE, self._midi_channel, 61))
        self.encoder_buttons[0].append(
            ButtonElement(True, MIDI_CC_TYPE, self._midi_channel, 62))
        self.encoder_buttons[0].append(
            ButtonElement(True, MIDI_CC_TYPE, self._midi_channel, 63))
        self.encoder_buttons[0].append(
            ButtonElement(True, MIDI_CC_TYPE, self._midi_channel, 64))

        #top row buttons, Track Enable Buttons#
        self.buttons.append([])
        self.buttons[0].append(
            ButtonElement(False, MIDI_CC_TYPE, self._midi_channel, 40))
        self.buttons[0].append(
            ButtonElement(False, MIDI_CC_TYPE, self._midi_channel, 41))
        self.buttons[0].append(
            ButtonElement(False, MIDI_CC_TYPE, self._midi_channel, 42))
        self.buttons[0].append(
            ButtonElement(False, MIDI_CC_TYPE, self._midi_channel, 43))
        self.buttons[0].append(
            ButtonElement(False, MIDI_CC_TYPE, self._midi_channel, 44))
        self.buttons[0].append(
            ButtonElement(False, MIDI_CC_TYPE, self._midi_channel, 45))
        self.buttons[0].append(
            ButtonElement(False, MIDI_CC_TYPE, self._midi_channel, 46))
        self.buttons[0].append(
            ButtonElement(False, MIDI_CC_TYPE, self._midi_channel, 47))

        #bottom row self.buttons, Record Self.Buttons#
        self.buttons.append([])
        self.buttons[1].append(
            ButtonElement(True, MIDI_CC_TYPE, self._midi_channel, 48))
        self.buttons[1].append(
            ButtonElement(True, MIDI_CC_TYPE, self._midi_channel, 49))
        self.buttons[1].append(
            ButtonElement(True, MIDI_CC_TYPE, self._midi_channel, 50))
        self.buttons[1].append(
            ButtonElement(True, MIDI_CC_TYPE, self._midi_channel, 51))
        self.buttons[1].append(
            ButtonElement(True, MIDI_CC_TYPE, self._midi_channel, 52))
        self.buttons[1].append(
            ButtonElement(True, MIDI_CC_TYPE, self._midi_channel, 53))
        self.buttons[1].append(
            ButtonElement(True, MIDI_CC_TYPE, self._midi_channel, 54))
        self.buttons[1].append(
            ButtonElement(True, MIDI_CC_TYPE, self._midi_channel, 55))

        #bottom self.buttons, purpose TBD#
        self.buttons.append([])
        self.buttons[2].append(
            ButtonElement(True, MIDI_CC_TYPE, self._midi_channel, 89))
        self.buttons[2].append(
            ButtonElement(True, MIDI_CC_TYPE, self._midi_channel, 90))
        self.buttons[2].append(
            ButtonElement(True, MIDI_CC_TYPE, self._midi_channel, 91))
        self.buttons[2].append(
            ButtonElement(True, MIDI_CC_TYPE, self._midi_channel, 92))
예제 #25
0
def make_slider(identifier, name='', channel=STANDARD_CHANNEL):
    return SliderElement(MIDI_CC_TYPE, channel, identifier, name=name)
def make_slider(identifier, name):
    return SliderElement(MIDI_CC_TYPE, 0, identifier, name=name)
예제 #27
0
def make_slider(channel, cc, name):
    element = SliderElement(MIDI_CC_TYPE, channel, cc)
    element.name = name
    return element
예제 #28
0
 def _init_maschine(self):
     self._jogwheel = JogWheelSection(self._modeselect, self._editsection)
     self.prehear_knob = SliderElement(MIDI_CC_TYPE, 0, 41)
     self.prehear_knob.connect_to(
         self.song().master_track.mixer_device.cue_volume)
     self._device_component.set_touch_mode(2)
def make_knob(channel, identifier, *a, **k):
    return SliderElement(MIDI_CC_TYPE, channel, identifier, *a, **k)
 def make_slider(identifier, name):
     return SliderElement(MIDI_CC_TYPE,
                          LIVE_CHANNEL,
                          identifier,
                          name=name)