diff --git a/ziffers/classes.py b/ziffers/classes.py index b034c43..7f032f9 100644 --- a/ziffers/classes.py +++ b/ziffers/classes.py @@ -345,6 +345,8 @@ class Sequence(Meta): yield from _normal_repeat(item.evaluated_values, repeats, options) elif isinstance(item, RepeatedListSequence): repeats = item.repeats.get_value(options) + while isinstance(repeats, Cyclic): + repeats = item.repeats.get_value(options) if isinstance(repeats, Pitch): repeats = repeats.get_value(options) yield from _generative_repeat(item, repeats, options) diff --git a/ziffers/spec/ziffers.lark b/ziffers/spec/ziffers.lark index 03de3d5..d629bac 100644 --- a/ziffers/spec/ziffers.lark +++ b/ziffers/spec/ziffers.lark @@ -42,7 +42,7 @@ // Repeats repeat: "[:" sequence ":" [number] "]" - repeat_item: (pitch_class | list | random_integer | cycle) ":" number + repeat_item: (pitch_class | list | random_integer | cycle | rest | subdivision) ":" number // List list: prefix* "(" sequence ")"