Skip to content

Commit

Permalink
Set As First: Fix many corner-cases
Browse files Browse the repository at this point in the history
  • Loading branch information
L3337 committed Jan 2, 2023
1 parent 0f1a8c3 commit c918d05
Showing 1 changed file with 9 additions and 2 deletions.
11 changes: 9 additions & 2 deletions src/sglib/models/daw/sequencer.py
Original file line number Diff line number Diff line change
Expand Up @@ -153,17 +153,24 @@ def insert_space(self, a_start, a_length):
f_item.start_beat += a_length

def set_first_beat(self, beat):
if not self.items:
return
_min = min(x.start_beat for x in self.items)
offset = int(beat - _min)
for item in self.items:
item.start_beat += offset
markers = {(0, 2): self.markers[(0, 2)]}
for marker in self.markers.values():
for key in sorted(self.markers):
marker = self.markers[key]
if (marker.beat, marker.type) == (0, 2):
continue # don't move the first tempo marker
marker.beat += offset
if marker.type == 1:
if marker.beat < 0:
marker.beat = 0
if marker.type == 1: # Region marker
marker.start_beat += offset
if marker.start_beat < 0:
marker.start_beat = 0
tpl = (marker.beat, marker.type)
markers[tpl] = marker
self.markers = markers
Expand Down

0 comments on commit c918d05

Please sign in to comment.