What to do when 1 key is pressed, what to do when 2 keys are pressed etc?
when 1 key down: only transpose, scale as it was before, as proposed.
when 2 keys down: lower key is transpose key, upper key does ….? This is sort of limbo, one suggestion is to use the method mostly known as "easy chord" mode or something like that (as mentioned earlier), where 2 keys are enough to set a major, minor, major 7th and minor 7th chord.
when 3 keys down: extrapolate scale from available keys. This can be tricky because inversion of chords can lead to different scale naming eg. C-Eb-Gb = C dim and Eb-Gb-C = Eb minor 6 (source Logic).
when 4 or more keys are down:
a extrapolate scale as above or ..
b are you sure you don’t want an arpeggiator instead?
Thoughts, when a scale is found, does this mean that:
a the root is also the transpose key OR …
b no, we always use the lowest note as transpose key?
I can see benefits for both ways.
There’s also a difference between chromatic transpose (mostly used) and diatonic or scalar transpose (transpose, but keep notes in same scale).