It's pretty self explanatory.
As this is supposed to be a basis for a teaching tool, involving functional harmony is mandatory. That's the whole point of this patcher anyway, else I'd be using an Nslider.
This is related to the "two conditions" thread from before, you can see how I solved it here. Basically converted n|#|b symbols to integers, summing the result and using a dictionary in coll to call out the right accidental.
Few quirks I'm trying to work out:
- I've not implemented a mechanism for setting the right octave. That means above the root E, all triads will appear as 1st order inversions. Which is a tad annoying. Still working my way through it... While implementing interpretation of 9 separately is a matter of labour, im still wrapping my head around how to build a correct chord from the root.
- I have no idea why, but when changing the number of notes used in a chord (Chord 4 and 5), you have to click the chord twice. When the number is the same and accidentals change, you don't have to. I have no idea why is that.