This is a suggestion for things to consider while implementing chords. Chord notation should be about more than just printing pretty chord symbols or tablature. And it should be about more than being able to play back those chords in a musically sensible way. It seems to me that a program being offered in 2016 should be “harmonically aware” in a way that makes the composer/arranger’s job easier, faster, and more error-free.
My comments will be in the context of jazz because jazz is often expressed with explicit chord symbols, but the concepts can apply to many types of music.
In jazz composition, very frequently we start with a melody and then create parallel harmony lines that are based off the melody. We can do a third above, a 4th below, “drop 2”, or many different “formula” voicings. Notation programs have helped in a small way by allowing us to copy the melody line, then nudge an entire passage up or down some number of notes DIATONICALLY (i.e. within the current scale). That can be a fairly quick way to work, but only if the current tonality is compatible with the current key signature.
For example, take a passage with a key signature of C major using the following chords:
CM, Am, Dm, G7, CM
If the nudging is diatonic relative to the C major scale, that works out pretty well. There may be few notes that would require individual adjustment.
But that is not how most jazz music works. It is much more likely to see something like:
CM, Dbdim, Dm7, Ebdim, E7, A7, Dm, Db7(b5b9), CM
In such a progression, it makes absolutely no sense to use the C major scale as the basis for diatonic movement. Indeed, there is a good scale corresponding to most of the common chord symbols, and THAT SCALE is what should be used for diatonic nudging whenever the chord information is provided. If such a solution were in place, if I entered an appropriate melody that fit the above chords, it would be quick and easy to get musically correct harmonies in place.
I don’t know of any notation program that does this today, although Finale provided a Band-in-a-box auto harmonizer plug-in that did essentially the same thing (although it could create voicings of 2-6 voices with one click.) Sadly Finale V25 deleted that plug-in. I could live without the plug-in if the notation program were harmonically aware as described above.
I offer this as food for thought. This probably goes beyond the concept you have in mind for chord entry. I suggest your design of chord support should take this into account so that you lay the groundwork for an overall better solution.