johnameyer / harmony-ts

This library generates four-part chorales in the style of Bach given any number of constraints and enabled features. However, it also can be used as a general music-theory library.
https://johnameyer.github.io/harmony-ts/
Apache License 2.0
3 stars 0 forks source link

Reduced progression complexity and chained expansions #64

Closed johnameyer closed 3 years ago

johnameyer commented 3 years ago

Resolves #27 and possibly #26

Still to address:

johnameyer commented 3 years ago

Still thinking about chained expansions - especially how to make it efficient, and how we might consider allowing for multiple inversions of a prefix chord (e.g. V/V V65/V V)

johnameyer commented 3 years ago

I think it makes sense to out-scope looping chained expansions for the meantime since the engine wouldn't have a great way of handling the resultant infinite loops within the expansion framework (like how we handle through progressions). For now we'll handle the efficiency question by reducing the search space more aggressively (e.g. checking whether the terminal will match at offsets of 1, 2, 3, etc.)