Skip to content

Commit 878ac1e

Browse files
committed
Offsets for TimeSpecification and Sequence.
1 parent ee3b75e commit 878ac1e

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

midi.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -544,6 +544,9 @@ def ppn(self):
544544
else:
545545
return self.specification.division.pps / self.tempo.bps * 4
546546

547+
def __repr__(self):
548+
return 'TimeNode(note={note})'.format(note=self.note)
549+
547550

548551
class TimeSpecification(list):
549552
def __init__(self, nodes=list(), *, division=None):
@@ -601,6 +604,11 @@ def events(self, *, track=None):
601604
event.time.note = node.note
602605
event_list.append(event)
603606
return event_list
607+
608+
def offset(self, time):
609+
for node in self:
610+
node.note += time.note
611+
self._update_cumulative()
604612

605613
def append(self, object):
606614
if not isinstance(object, (Time, TimeNode)):
@@ -1368,6 +1376,11 @@ def track(self, track):
13681376
events.append(event)
13691377
return events
13701378

1379+
def offset(self, time):
1380+
for event in self:
1381+
event.time += time
1382+
self.specification.offset(time)
1383+
13711384
def sort(self, *, key=None, reverse=False):
13721385
if key == None:
13731386
def meta(event):

0 commit comments

Comments
 (0)