def __init__(self, monochrome=False, *a, **k): super(ModeSelector, self).__init__(*a, **k) is_momentary = True self._monochrome = monochrome self._scene_mode = SceneMode(0) self._clip_mode = StudioClipMode(1) self._pad_mode = PadMode(2, monochrome) self._drum_mode = DrumMode(2, monochrome) self._control_mode = ControlMode(2, monochrome) self._pad_mode.set_alternate_mode(self._drum_mode) self._drum_mode.set_alternate_mode(self._pad_mode) self._tracks_assign = TrackAssign() self._arm_mode = TrackArmMode(self._tracks_assign) self._solo_mode = TrackSoloMode(self._tracks_assign) self._stop_mode = TrackStopMode(self._tracks_assign) self._mute_mode = TrackMuteMode(self._tracks_assign) self._select_mode = TrackSelectMode(self._tracks_assign) self._xfade_mode = TrackXFadeMode(self._tracks_assign) self._color_select_mode = MaschineColorSelectMode(5) self._mode = self._clip_mode self._return_mode = None def create_button(ccval, channel=0): return StateButton(is_momentary, MIDI_CC_TYPE, channel, ccval) self._scene_mode_button = create_button(112) self._clip_mode_button = create_button(113) self._pad_mode_button = create_button(114) self._select_button = create_button(117) self._solo_button = create_button(118) self._mute_button = create_button(119) self._xfade_button = self.canonical_parent.create_gated_button(84, 5) self._stop_button = self.canonical_parent.create_gated_button(94, 16) self._arm_button = self.canonical_parent.create_gated_button(83, 0) self._solo_button = StateButton(False, MIDI_CC_TYPE, 0, 118) self._clip_mode_button.send_value(127, True) self._select_clip_mode.subject = self._clip_mode_button self._select_scene_mode.subject = self._scene_mode_button self._select_pad_mode.subject = self._pad_mode_button self._select_arm.subject = self._arm_button self._select_solo.subject = self._solo_button self._select_stop.subject = self._stop_button self._select_xfade.subject = self._xfade_button self._select_mute.subject = self._mute_button self._select_select.subject = self._select_button self._arm_exclusive_button = create_button(51, 2) self._action_arm_exclusive.subject = self._arm_exclusive_button self._solo_exclusive_button = create_button(52, 2) self._action_solo_exclusive.subject = self._solo_exclusive_button self._scene_mode_button.send_value(0, True) self._clip_mode_button.send_value(1, True) self._pad_mode_button.send_value(0, True) self._mode._active = True return
def __init__(self, note_repeat=None, *a, **k): super(ModeHandler, self).__init__(*a, **k) self._note_repeat = note_repeat self.nr_index = 6 self._note_repeat.repeat_rate = 1.0 / CFG_REPEAT_FREQUENCIES[ self.nr_index] * 4.0 def create_button(ccval, channel=0, cname=None): button = StateButton(True, MIDI_CC_TYPE, channel, ccval, name=cname) button.last_value = 0 return button self._note_repeat_button = create_button(CC_NOTE_REPEAT_BUTTON, 0, 'Note_Repeat_Button') self._do_note_repeat.subject = self._note_repeat_button self._scene_mode_button = create_button(CC_SCENE_BUTTON, 0, 'Scene_Mode_Button') self._clip_mode_button = create_button(CC_PATTERN_BUTTON, 0, 'Pattern_Mode_Button') self._pad_mode_button = create_button(CC_PAD_BUTTON, 0, 'Pad_Mode_Button') self._keyboard_mode_button = create_button(CC_KEYBOARD_BUTTON, 0, 'Keyboard_Mode_Button') self._track_mode_button = create_button(CC_MIKRO_GROUP_BUTTON, 0, 'Track_Mode_Button') self._level_mode_button = create_button(120, 0, 'Level_Mode_Button') self._select_clip_mode.subject = self._clip_mode_button self._select_scene_mode.subject = self._scene_mode_button self._select_pad_mode.subject = self._pad_mode_button self._select_keyboard_mode.subject = self._keyboard_mode_button self._select_track_mode.subject = self._track_mode_button self._select_level_mode.subject = self._level_mode_button self._solo_button = create_button(CC_SOLO_BUTTON, 0, 'Solo_Button') self._mute_button = create_button(CC_MUTE_BUTTON, 0, 'Mute_Button') self._select_button = create_button(CC_SELECT_BUTTON, 0, 'Select_Button') self._handle_solo_button.subject = self._solo_button self._handle_mute_button.subject = self._mute_button self._handle_select_button.subject = self._select_button self._clip_mode = SessionMode() self._scene_mode = SceneMode() self._pad_mode = PadMode() self._drum_mode = DrumMode() self._track_mode = TrackMode() self._level_mode = LevelIndicatorMode() self._pad_mode.fitting_mode = self.fitting_mode self._drum_mode.fitting_mode = self.fitting_mode self._mode_group = MG_CLIP self._clip_mode.button_index = CLIP_MODE self._scene_mode.button_index = SCENE_MODE self._pad_mode.button_index = PAD_MODE self._drum_mode.button_index = PAD_MODE self._track_mode.button_index = TRACK_MODE self._level_mode.button_index = LEVEL_MODE self._clip_mode.enter_action = self.enter_clip_mode self._scene_mode.enter_action = self.enter_scene_mode self._pad_mode.enter_action = self.enter_pad_mode self._track_mode_button.send_value(7) self._mode = self._clip_mode self._selected_track_change.subject = self.song().view self._detail_clip_changed.subject = self.song().view self._defer_action = None self.__selected_track = self.song().view.selected_track if self.__selected_track: self.__on_track_color_changed.subject = self.__selected_track else: self.__on_track_color_changed.subject = None self.nr_frq = CTRL_TO_FREQ[4][1] self._note_repeat.repeat_rate = 1.0 / self.nr_frq * 4.0 self._track_color = toHSB(self.song().view.selected_track.color) return