- The interval would likely get inputted as one argument
- You can take Double Diminished/Diminished/Minor/Perfect/Major/Augmented/Double Augmented as -2/-1/a/b/c/1/2, where
a
,b
,c
are different, zero or non-integer - You can take Double Diminished/Diminished/Minor/Perfect/Major/Augmented/Double Augmented as -3/-2/-1/0/1/2/3
- Same applies to output
- You needn't handle invalid input like "Diminished 1st", "Major 4th" or "Perfect 2nd".
Minor 2nd + Major 3rd = Perfect 4th
Major 2nd + Major 2nd = Major 3rd
Major 3rd + Major 3rd = Augmented 5th
Augmented 2nd + Augmented 3rd = Triple Augmented 4th
Double Diminished 6th + Double Diminished 7th = 5 Times Diminished 12th
Augmented 1st + Minor 2nd = Major 2nd
or testing friendly,
[m,2]+[M,3]=[0,4]
[M,2]+[M,2]=[M,3]
[M,3]+[M,3]=[1,5]
[1,2]+[1,3]=[3,4]
[-2,6]+[-2,7]=[-5,12]
[1,1]+[m,2]=[M,2]