Piano Chords on White Keys Backstory [which is not true]

A piano is set up like this:



However, on my piano, all of the black keys are broken!

I still want to be able to play some chords on my broken piano though.

In music, a chord is a group of notes that are played together. To allow for input of chords, I will first define what a semitone is.

What is a semitone?

A semitone is the smallest distance in Western music. If you look at the top part of the piano, you see that you can usually move from a black key to a white key, or vice versa; however, between B and C and E and F there is no black key.

What is a chord?

For the purposes of this challenge, we define a chord as a bunch of notes with a certain number of semitones between them. For example, let's take a took at a 4-3-3 chord starting on C (for music people, this is a V7 chord in F major). We start at C. We count up 4 semitones: C#, D, D#, E. The next note is E, and we count 3 semitones up after that: F, F#, G. The next note is G, and we count 3 semitones up after that: G#, A, Bb. So, we get C-E-G-Bb. Yay! But wait... Bb is a black key and those are broken... However, if we start from G, we get G-B-D-F! Yay!

Input

Input is given as a list of integers in any reasonable format. This represents the chord as described above.

Output

Output should be a list of notes on which I can start to only need to use white keys. This can also just be a string of all of the up to 7 notes because all of the keynames will be one character. You must be able to handle having an empty output as well.

Test Cases

input -&gt; output // comments
4 3 -&gt; C F G // this is a major triad
3 4 -&gt; D E A // this is a minor triad
4 3 3 -&gt; G // this is the major-minor seventh chord
3 3 3 -&gt; [empty output] // this is the diminished-diminished seventh chord. All of them use black keys
4 4 -&gt; [empty output] // this is an augmented triad
3 3 -&gt; B // this is a diminished triad
1 -&gt; B E // this is just a minor second
11 -&gt; C F // this is just a major seventh


Other specs


Standard Loopholes forbidden
You may assume that the input has at least one integer
You may assume that all of the integers are non-negative and less than 12 (because the piano repeats every 12 notes)
Output may be in any order


Winning Criteria

The shortest valid submission as of April 15th will be accepted.
MATL, 31 bytes
Thanks to Jonathan Allan for a correction.
'BAGFEDC'&quot;GYs12X\110BQX@YSYsm?@

Try it online! Or verify all test cases.
Explanation
The pattern 2 2 1 2 2 2 1 specifies the intervals between consecutive white keys. The program uses a loop that applies all cyclic shifts to this basic pattern, in order to test each key as a potential lowest note of the input chord. For each shift, the cumulative sum of the pattern is obtained. For example, for B as potential lowest note, the pattern has been shifted to 1 2 2 1 2 2 2 and its cumulative sum is 1 3 5 6 8 10 12.
Now, to see if this can support a 4 3 3 chord we compute the cumulative sum of the chord intervals, which is 4 7 10; reduce it via 1-based modulo 12 (an interval of 14 would give 2); and check if those numbers are all members of the allowed values 1 3 5 6 8 10 12. That's not the case in this example. Had it been the case, we would output the letter B.
The correspondence between cyclic shifts and output letters is defined by the string 'BAGFEDC'. This indicates that 'B' (first character) corresponds to a cyclic shift by 1; 'A' (second character) corresponds to a cyclic shift by 2 etc.
'BAGFEDC'  % Push this string
&quot;          % For each character from the string
  G        %   Push input array
  Ys       %   Cumulative sum
  12X\     %   1-based modulo 12, element-wise (1,12,13,14 respectively give 1,12,1,2)
  110BQ    %   Push 110, convert to binary, add 1 element-wise: gives [2 2 1 2 2 2 1]
  X@       %   Push current iteration index, starting at 1
  YS       %   Cyclic shift to the right by that amount
  Ys       %   Cumulative sum
  m        %   Ismember. Gives an array of true of false entries
  ?        %   If all true
    @      %     Push current character
           %   End (implicit)
           % End (implicit)
           % Display (implicit)