DTM板よりもこっち向きの質問だと思いますのでこっちで質問します。

アメリカ人の友達がギターコードを表示するプログラムを組もうとしています。
そこで問題なのが、(皆さんご存知だと思いますが)
異名同音(例えばC#とDbは同じ音)があるので
enumでどう表現すればよいのか分からない、ということです。

彼はプログラマーとして働いているのでenumの使い方は熟知してます。
自分は音楽専門でenumは授業で習ったくらいです。
僕はenumを使わずにC=1, C# or Db=2 , D=3, D# or Eb=4, E=5, ... B=12という感じで
割り振ったらどうか、と素人考えで助言したのですが
転調などを考えるとenumの方が良いそうです。
うむ、確かに納得ですが…。

皆さんはこういうプログラムのときはどのように処理してるのでしょうか?
なるべく実際に音楽関連のソフトを組んだ経験のある人に答えていただきたいです。
彼には借りがあるので、どうかよろしくお願いします。

P.S. …ま、そう言い出すとそのうちダブルシャープ、ダブルフラットも
扱わないといけなくなるはずですが今は考えないということで。