From 545ae1f92a365936ec255d55fb20903a0c1b5914 Mon Sep 17 00:00:00 2001 From: Miika Alonen Date: Mon, 6 Mar 2023 21:22:37 +0200 Subject: [PATCH] Added beat to events --- ziffers/classes/items.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/ziffers/classes/items.py b/ziffers/classes/items.py index 924fc6c..fc961df 100644 --- a/ziffers/classes/items.py +++ b/ziffers/classes/items.py @@ -46,9 +46,10 @@ class Meta: elif getattr(self, key) is None: local_value = self.local_options.get(key, False) if local_value: - setattr(self, key, local_value) - else: - setattr(self, key, value) + value = local_value + setattr(self, key, value) + if key == "duration": + setattr(self, "beat", value * 4) def dict(self): """Returns safe dict from the dataclass""" @@ -132,11 +133,16 @@ class Event(Item): """Abstract class for events with duration""" duration: float = field(default=None) + beat: float = field(default=None) def get_duration(self): """Getter for duration""" return self.duration + def get_beat(self): + """Getter for beat""" + return self.beat + @dataclass class Rest(Event): @@ -171,7 +177,6 @@ class Pitch(Event): key: str = field(default=None) scale: str | list = field(default=None) freq: float = field(default=None) - beat: float = field(default=None) def __post_init__(self): super().__post_init__() @@ -198,10 +203,6 @@ class Pitch(Event): """Getter for octave""" return self.octave - def get_beat(self): - """Getter for beat""" - return self.beat - def get_pitch_class(self): """Getter for pitche""" return self.pitch_class