So a few month ago I started working on this side-porject aiming to create a simple ear training tool that was really unique in that 99% of other tools that I found online used interval recognition or absolute pitch, while what I was looking for was a more "functional" method (if there is a more correct term please let me know) that requires you to identify the scale degree of the note rather than its distance from the previous one.
I preferred this method because it felt like the most natural to me (just my subjective opinion), and I made a lot of progress using it. And now I'm looking to add chord recognition to my app. However there's just one tiny problem: I'm not sure how to classify all chords (functionally - by their role in the key). With the 12 chromatic tones it was easy: it was either a tonic, supertonic, mediant... or easier yet: I, II, III... As for the offscale tones, I'd just add a b or # to the roman numeral.
With chords however, things get tricky when we want to classify all the chords with regard to a given key. The 7 diatonic chords, can simply classified by their root tone degree, but what about chords that don't quite fit into the scale? They could be anything (from a functional perspective), as secondary dominant from a related key, a minor chord played major just to tease the listener...
So in general there are 12 tones x 2 qualities (at least major or minor to keep things simple) that need some sort of function (at least one per chord) assigned to them that the user could rely on to answer.
While I know my fair share of theory, I am by no means an advanced musician in that regard. Does music theory have a name or explanation for every chord function possible in a given context? If not, I'm sure all of us tend to interpret an A major (or F minor or Bb minor...) played in a C major context the same way even if it's not a very common thing we hear in music.
TLDR: Does music theory have a name for all possible chord functions for every key chord combination possible (beyond the 7 diatonic functions, including those that seemingly make no sense)? If not how else would you classify chords (root + quality doesn't seem quite sufficient to me but if you think it's the best way to go let me know)
Links (If you're interested):
the web application I'm working on is FreeEarTrainer.org. feel free to try it out and maybe tell a friend, but it's still not exactly polished. Check out the settings at the bottom. You can answer faster using the keyboard (Z, X, C, V...). Sadly it doesnt' work on iPhone's Safari, and I didn't find time to fix it.
a similar application is "Fucntional Ear Trainer" which wasn't available on mobile or web when I first started my project, but now is (on Android at least, their website is miles.be).
UPDATE: hadn't had much time to polish up the tool (will occasionally experience bugs when you change keys, requires you to hit the reset button) nor add chord recognition functionality, but I did wrap it in an android app with the same name "FreeEarTrainer.org" for those who are curious to try. The site is also not compatible with Safari (tested With Firefox and Chrome).