やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

C#で音度からピッチクラスを取得する(複音程に対応した)。

正確には「第一音からの半音数」を取得する。取得値をvとしたとき、(v % 12)とすればピッチクラスを取得できる。

成果物

GitHubCSharp.MusicTheory.Degree.NextOctave.201709111013

開発環境

前回まで

課題

  • 変化記号の定義クラスがあるのに、別のクラスではそれを参照せずに正規表現をつくっている
  • Accidental.GetPitch()の実装がスマートでない気がする
    • foreach(AccidentalType a in [Flat, Sharp]) { a.GetValue (accidental); }としてもカッコ悪い
      • どう実装すべきかわからない
  • +-#b♯♭1のように異なる変化記号も併用できてしまう
    • ++1など同一の記号を連続する使い方のみに限定したいが、スマートな実装方法が見つけられなかったので放置する

所感

書式チェックの方法が正規表現だけで完結できるのが望ましいのだが……。