I have an algorithm to determine a chord's name. A chord is a set of notes, like
A B C. I'd like to improve the algorithm and have several questions.
- A chord and all of its inversions can be resolved to the same name, yes? So
C E G,
C G E,
E C G,
E G C,
G C E,
G E Care all the
- If a notes collection has the same notes, can we throw duplicates away? So
A B Cand
A B B Cand
A A B C Care all just
A B C?
- Does that work for adjacent notes only? Are
A B C Aand
A B Cthe same chords or different ones?
- Am I right that all inversions of a chord is a collection of all permutations of the chord's notes (which gives us
n!possible permutations)? Or we can reduce somehow the number of possible variants?
I see many people are trying to know additional details about the algorithm instead of just answering my simple questions. Thanks @Andy Boner for the answer!
Well, here answers on your questions (that have no relation to my post so we're all just wasting our time, but... why not?):
- Yes, the same notes (well, pitches) can designate multiple chords names. In this case I just return all detected names. My algorithm returns a collection of names, not a single name.
- I wrote "My current algorithm works fine for users needs" and the question has appeared: "could you add a description of these assumed needs in the question?". Well, those needs are not "assumed", they are real ones that have been satisfied several years ago. The problem now is how I can improve performance of the algorithm (the task has been raised from this user's message). That's why I've asked the questions above.
So I don't ask how to build the algorithm, what music theory details are exist around the chord theory and so on. I have specific questions and want answers on them only.
Anyway I got the information I needed. Thank you!