def change_relative(self, value):
     if sign(value) != sign(self._relative_value):
         self._relative_value = 0.0
     self._relative_value += value
     if fabs(self._relative_value) >= self.STEP_SIZE:
         relative_position = int(sign(self._relative_value))
         self._relative_value -= self.STEP_SIZE
         return self._jump_relative(relative_position) != None
Beispiel #2
0
 def change_relative(self, value):
     if sign(value) != sign(self._relative_value):
         self._relative_value = 0.0
     self._relative_value += value
     if fabs(self._relative_value) >= self.STEP_SIZE:
         relative_position = int(sign(self._relative_value))
         self._relative_value -= self.STEP_SIZE
         return self._jump_relative(relative_position) != None
    def _limited_nudge_offset(self, steps, notes, nudge_offset):
        limited_nudge_offset = MAX_CLIP_LENGTH
        for x, y in steps:
            time_step = self._time_step(self._get_step_start_time(x, y))
            for note in time_step.filter_notes(notes):
                time_after_nudge = time_step.clamp(note[1], nudge_offset)
                limited_nudge_offset = min(limited_nudge_offset, abs(note[1] - time_after_nudge))

        return sign(nudge_offset) * limited_nudge_offset
Beispiel #4
0
    def _limited_nudge_offset(self, steps, notes, nudge_offset):
        limited_nudge_offset = MAX_CLIP_LENGTH
        for step in steps:
            time_step = self._time_step(self.get_step_start_time(step))
            for note in time_step.filter_notes(notes):
                start_time = note_start_time(note)
                time_after_nudge = time_step.clamp(start_time, nudge_offset)
                limited_nudge_offset = min(limited_nudge_offset, abs(start_time - time_after_nudge))

        return sign(nudge_offset) * limited_nudge_offset
    def _limited_nudge_offset(self, steps, notes, nudge_offset):
        limited_nudge_offset = MAX_CLIP_LENGTH
        for x, y in steps:
            time_step = self._time_step(self._get_step_start_time(x, y))
            for note in time_step.filter_notes(notes):
                time_after_nudge = time_step.clamp(note[1], nudge_offset)
                limited_nudge_offset = min(limited_nudge_offset,
                                           abs(note[1] - time_after_nudge))

        return sign(nudge_offset) * limited_nudge_offset
 def _apply_value_to_arrangement_property(self, property_name, value):
     factor = 0.25 if self.shift_button.is_pressed else 1.0
     delta = factor * sign(value)
     old_value = getattr(self.song, property_name)
     setattr(self.song, property_name, max(0.0, old_value + delta))
Beispiel #7
0
def to_sample_count(prev_value_getter, value, sample):
    truncation_func = ceil if sign(value - prev_value_getter()) > 0 else floor
    return clamp(int(truncation_func(value * sample.length)), 0, sample.length - 1)