diff --git a/ziffers/classes/root.py b/ziffers/classes/root.py index 5522699..df05d2d 100644 --- a/ziffers/classes/root.py +++ b/ziffers/classes/root.py @@ -125,6 +125,14 @@ class Ziffers(Sequence): for val in self.evaluated_values if isinstance(val, Event) ] + + def total_duration(self) -> float: + """Return total duration""" + return sum([val.duration for val in self.evaluated_values if isinstance(val, Event)]) + + def total_beats(self) -> float: + """Return total beats""" + return sum(self.beats()) def beats(self) -> list[float]: """Return list of pitch durations as floats""" diff --git a/ziffers/classes/sequences.py b/ziffers/classes/sequences.py index dfdc043..9e6d103 100644 --- a/ziffers/classes/sequences.py +++ b/ziffers/classes/sequences.py @@ -334,6 +334,7 @@ class Subdivision(Sequence): if isinstance(item, Event): if duration is not None: item.duration = new_d + item.beat = new_d*4 yield item