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.
Currently, the harmonizer tends to pick the same starting chord voicing for any progression in a scale - i.e. C Major -> C5 E4 G3 C3
We should encourage the harmonizer to explore at least 2 options off the start or evaluate the initial voicing in context as it is difficult to evaluate the initial voicing alone without context of where we are trying to go.
Likely we cannot force the program to explore at least two voicings at each chord except perhaps as a final wrapper around the lazy iterator
This also should help with #44 (or the sister issue of forcing jumps in interior parts when they get two far from the soprano)
Currently, the harmonizer tends to pick the same starting chord voicing for any progression in a scale - i.e. C Major -> C5 E4 G3 C3
We should encourage the harmonizer to explore at least 2 options off the start or evaluate the initial voicing in context as it is difficult to evaluate the initial voicing alone without context of where we are trying to go.
Likely we cannot force the program to explore at least two voicings at each chord except perhaps as a final wrapper around the lazy iterator
This also should help with #44 (or the sister issue of forcing jumps in interior parts when they get two far from the soprano)