Some fixes
This commit is contained in:
@ -322,7 +322,7 @@ class Sequence(Meta):
|
|||||||
if item.has_children:
|
if item.has_children:
|
||||||
yield from items.evaluated_values
|
yield from items.evaluated_values
|
||||||
else:
|
else:
|
||||||
yield items
|
yield item
|
||||||
else:
|
else:
|
||||||
yield from item.evaluate_tree(options)
|
yield from item.evaluate_tree(options)
|
||||||
elif isinstance(item, Cyclic):
|
elif isinstance(item, Cyclic):
|
||||||
@ -366,12 +366,11 @@ class Sequence(Meta):
|
|||||||
yield from _resolve_item(item, options)
|
yield from _resolve_item(item, options)
|
||||||
|
|
||||||
def _euclidean_items(euclid: Item, options: dict):
|
def _euclidean_items(euclid: Item, options: dict):
|
||||||
"""Repeats items with the same random values"""
|
"""Loops values from generated euclidean sequence"""
|
||||||
euclid.evaluate(options)
|
euclid.evaluate(options)
|
||||||
for item in euclid.evaluated_values:
|
for item in euclid.evaluated_values:
|
||||||
yield from _resolve_item(item, options)
|
yield from _resolve_item(item, options)
|
||||||
|
|
||||||
|
|
||||||
def _update_options(current: Item, options: dict) -> dict:
|
def _update_options(current: Item, options: dict) -> dict:
|
||||||
"""Update options based on current item"""
|
"""Update options based on current item"""
|
||||||
if isinstance(current, (OctaveChange, DurationChange)):
|
if isinstance(current, (OctaveChange, DurationChange)):
|
||||||
@ -625,7 +624,7 @@ class Subdivision(Sequence):
|
|||||||
has_children: bool = field(default=False, init=False)
|
has_children: bool = field(default=False, init=False)
|
||||||
|
|
||||||
def evaluate(self, options):
|
def evaluate(self, options):
|
||||||
self.evaluated_values = list(self.evaluate_tree(options))
|
self.evaluated_values = list(self.evaluate_tree(options.copy()))
|
||||||
self.evaluated_values = list(self.evaluate_subdivisions(options))
|
self.evaluated_values = list(self.evaluate_subdivisions(options))
|
||||||
return self
|
return self
|
||||||
|
|
||||||
@ -637,16 +636,13 @@ class Subdivision(Sequence):
|
|||||||
if isinstance(item, Subdivision):
|
if isinstance(item, Subdivision):
|
||||||
self.has_children = True
|
self.has_children = True
|
||||||
yield from item.evaluate_subdivisions(self.local_options)
|
yield from item.evaluate_subdivisions(self.local_options)
|
||||||
elif isinstance(item, Sequence):
|
|
||||||
yield from item.evaluate_tree(self.local_options)
|
|
||||||
elif isinstance(item, Cyclic):
|
elif isinstance(item, Cyclic):
|
||||||
yield item # Return the cycle
|
yield item # Return the cycle
|
||||||
elif isinstance(item, Modification):
|
|
||||||
self.local_options = self.local_options | item.as_options()
|
|
||||||
elif isinstance(item, Rest):
|
elif isinstance(item, Rest):
|
||||||
yield item.get_updated_item(self.local_options)
|
yield item.get_updated_item(self.local_options)
|
||||||
elif isinstance(item, (Event, RandomInteger)):
|
elif isinstance(item, Pitch):
|
||||||
yield Pitch(pitch_class=item.get_value(), kwargs=self.local_options)
|
item.duration = self.local_options["duration"]
|
||||||
|
yield item
|
||||||
|
|
||||||
|
|
||||||
@dataclass(kw_only=True)
|
@dataclass(kw_only=True)
|
||||||
@ -804,13 +800,13 @@ class Euclid(Item):
|
|||||||
for i in range(self.length):
|
for i in range(self.length):
|
||||||
if booleans[i]:
|
if booleans[i]:
|
||||||
value = onset_values[on_i % onset_length]
|
value = onset_values[on_i % onset_length]
|
||||||
on_i+=1
|
on_i += 1
|
||||||
else:
|
else:
|
||||||
if self.offset is None:
|
if self.offset is None:
|
||||||
value = Rest(duration=options["duration"])
|
value = Rest(duration=options["duration"])
|
||||||
else:
|
else:
|
||||||
value = offset_values[off_i % offset_length]
|
value = offset_values[off_i % offset_length]
|
||||||
off_i+=1
|
off_i += 1
|
||||||
|
|
||||||
self.evaluated_values.append(value)
|
self.evaluated_values.append(value)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user