musescore/MuseScore — pull request #337 by MarcSabatella (2013-05-07 14:33:24+00:00)
Title: 4443 flexible chord names

Adds more flexible chordname parsing. If the user types a chord that does not exactly match one of the predefined chord id's, the parser attempts to find a match of parsed forms. Thus, Cmi7, Cm7, Cmin7, C-7 etc will all be recognized as matching, since they all parse to mean "C minor seventh". Chords are still displayed according to the rendering rules attached to the matched chord id. If the user goes back to edit an already entered chord, the text is populated with the first "name" field from the chord description file.

Allowing multiple names per chord id was already one step in the direction of more flexible chordname entry. But the parser eliminates the need to exhaustively list every possible variation of every single chord in every single chord description file. It also gives us a framework that can be extended to eventually allow MuseScore to work more directly from the parsed form. That would allow chords to be transposed, output to MusicXML, and rendered reasonably even if they don't match a predefined chord id.