Not_coding

Sometimes it might be better not to code…

notes = [*'A'..'G'].flat_map {|n|
  'BE'[n] ? n : [n, "#{n}#/#{n == 'G' ? 'A' : n.next}b"]
}.rotate(3)

p notes
# => ["C", "C#/Db", "D", "D#/Eb", "E", "F", "F#/Gb", "G", "G#/Ab", "A", "A#/Bb", "B"]