05AB1E, 3535 31 bytes
A7£ÀÀSD¤«s.•4hθîÈÁhƒÏ‰Aȇ{V&8•#DIk•íƒò=Z•¦S+è馄fbKDIk•íƒò=Z•¦S+è
Try it onlineTry it online or verify all test casesverify all test cases.
.•4hθîÈÁhƒÏ‰Aȇ{V&8•
A # Push compressedthe stringlowercase "calphabet
db7£ d eb e f gb g ab a bb b"
# Only leave the first 7 letters: "abcdefg"
ÀÀ # SplitRotate it onright spacestwice: "cdefgab"
S # Convert it to a list of characters
D D # Duplicate it
¤ # Push the last character (without popping): "b"
« # Append it to each in the copy:
# ["cb","db","eb","fb","gb","ab","bb"]
s.ι # Swap, and interleave the lists:
# ["cb","c","db","d","eb","e","fb","f","gb","g","ab","a","bb","b"]
¦ # Remove the first ("cb")
„fbK # As well as the "fb"
# ["c","db","d","eb","e","f","gb","g","ab","a","bb","b"]
D # Duplicate it
Ik # Get the index of the input in this list
•íƒò=Z• •íƒò=Z• # Push compressed integer 1000055007500
¦ ¦ # Remove the leading 1: "000055007500"
S S # Convert it to a list of digits
+ + # Add the earlier index to each
è è # Use that to 0-based modular index into the list of notes
# (after which the result is output implicitly)
See this 05AB1E tip of mine (sections How to compress strings not part of the dictionary? andsection How to compress large integers?) to understand why .•4hθîÈÁhƒÏ‰Aȇ{V&8• is "c db d eb e f gb g ab a bb b" and •íƒò=Z• is 1000055007500.