This isn’t really something Scale
should do as its just a list of number that holds no internal state. It might be better to make a PhraseGenerator
class, then call cycle on it. Might look like…
PhraseGenerator(asc: Scale.major, desc: Scale.min, rootMidi: 38)
.cycle(ambitus:[ 36, 52 ], starting: 36)
This way, your aren’t adding to the class library, which should be avoided because things might change or you might get name collisions with the core class library or other quarks, and it allows you to add many other methods to be called on PhraseGenerator, e.g., sequence, rand, etc…