本文整理汇总了Python中_Framework.SliderElement.SliderElement.send_value方法的典型用法代码示例。如果您正苦于以下问题:Python SliderElement.send_value方法的具体用法?Python SliderElement.send_value怎么用?Python SliderElement.send_value使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类_Framework.SliderElement.SliderElement
的用法示例。
在下文中一共展示了SliderElement.send_value方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: VUMeter
# 需要导入模块: from _Framework.SliderElement import SliderElement [as 别名]
# 或者: from _Framework.SliderElement.SliderElement import send_value [as 别名]
class VUMeter(ControlSurfaceComponent):
_active_instances = []
def __init__(self, parent):
ControlSurfaceComponent.__init__(self)
VUMeter._active_instances.append(self)
self.slider = None
self._parent = parent
self._vu_meter = None
self.frames = [0.0] * RMS_FRAMES
self.increments = CHANNEL_SCALE_INCREMENTS
self.top = CHANNEL_SCALE_MAX
self.bottom = CHANNEL_SCALE_MIN
self.multiplier = self.calculate_multiplier(self.top, self.bottom, self.increments)
self.current_level = 0
def disconnect(self):
VUMeter._active_instances.remove(self)
if self._vu_meter != None:
self._vu_meter.remove_output_meter_left_listener(self.observe)
self._vu_meter = None
def observe(self):
new_frame = self.mean_peak()
self.store_frame(new_frame)
self.level = self.scale(new_frame)
if self.level != self.current_level:
self.current_level = self.level
self.send_vu_value(self.level)
else:
None
def store_frame(self, frame):
self.frames.pop(0)
self.frames.append(frame)
def rms(self, frames):
return math.sqrt(sum((frame * frame for frame in frames)) / len(frames))
def mean_peak(self):
return (self._vu_meter.output_meter_left + self._vu_meter.output_meter_right) / 2
def scale(self, value):
if value > self.top:
value = self.top
elif value < self.bottom:
value = self.bottom
value = value - self.bottom
value = value * self.multiplier
return int(round(value))
def calculate_multiplier(self, top, bottom, increments):
return increments / (top - bottom)
def set_vu_meter(self, track):
self.set_led_slider(track)
self._vu_meter = self.song().tracks[track]
if self._vu_meter != None:
self._vu_meter.add_output_meter_left_listener(self.observe)
else:
None
def set_led_slider(self, track):
self.slider = SliderElement(MIDI_CC_TYPE, SLIDER_CHANNEL, track + 1)
def send_vu_value(self, level):
if level != None:
if level < 1:
None
else:
self.slider.send_value(level, True)
else:
None
def update(self):
pass
示例2: AudioClipEditComponent
# 需要导入模块: from _Framework.SliderElement import SliderElement [as 别名]
# 或者: from _Framework.SliderElement.SliderElement import send_value [as 别名]
class AudioClipEditComponent(CompoundComponent):
"""
classdocs
"""
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()
@subject_slot("value")
def _action_scroll_mode(self, value):
if value > 0:
self._scroll_mode = True
else:
self._scroll_mode = False
@subject_slot("value")
def _action_warp_toggle(self, value):
if value > 0:
if self.selected_clip_slot and self.selected_clip_slot.has_clip:
clip = self.selected_clip_slot.clip
if clip.is_audio_clip:
clip.warping = not clip.warping
self._warp_set_button.send_value(clip.warping and 127 or 0, True)
@subject_slot("value")
def _action_loop_toggle(self, value):
if value > 0:
if self.selected_clip_slot and self.selected_clip_slot.has_clip:
clip = self.selected_clip_slot.clip
clip.looping = not clip.looping
self._loop_set_button.send_value(clip.looping and 127 or 0, True)
@subject_slot("value")
def _action_loop_inc(self, value):
if not (value == 1 and 1):
inc = -1
val = self.inc_index + inc
self.inc_index = val >= 0 and val < len(INC_STEPS) and val
self.loop_inc = INC_STEPS[val]
self.start_inc = INC_STEPS[val]
self.canonical_parent.timed_message(2, "Loop Adjust: " + INC_DISP[val])
self.canonical_parent.show_message("Loop Adjust: " + INC_DISP[val])
@subject_slot("value")
def _action_mv_loop(self, value):
if value > 0:
if self.mv_loop:
self._loop_move_button.send_value(0, True)
self.mv_loop = False
else:
self._loop_move_button.send_value(127, True)
self.mv_loop = True
@subject_slot("value")
def _action_mark_start(self, value):
if self._scroll_mode:
scroll = value == 1 and 3 or 2
self.application().view.scroll_view(scroll, "Detail/Clip", False)
elif not (value == 1 and 1):
inc = -1
clip = self.selected_clip_slot and self.selected_clip_slot.has_clip and self.selected_clip_slot.clip
ls = clip.start_marker
le = clip.end_marker
ls = max(0, min(le - self.start_inc, ls + inc * self.start_inc))
clip.start_marker = ls
bars_to_measure(ls, clip.signature_denominator, clip.signature_numerator)
#.........这里部分代码省略.........