短絡的にMusic::Chordと名づけました。いろいろやばい気がします。
これは、OSのAPIを叩いて音声を再生するとかそんなすばらしいものではなくて、構成音からコードネームとかを得るとか、そういった用途に使います。
しかし、肝心のコードネーム識別はまだできていないのです。
"b"をフラット、"#"をシャープとして扱っています。
require "music/chord" cmin = Chord.new "C", "Eb", "G", "Bb" # ぜんぶtrue cmin.minor? cmin.has_7th? # ほかはfalse cmin.major? cmin.has_9th? cmin.has_11th? cmin.diminished? cmin.augemented?
これを使うと和音の比較や分類ができます。だからなんだ、ってかんじですけど。