正確には「第一音からの半音数」を取得する。取得値をv
としたとき、(v % 12)
とすればピッチクラスを取得できる。
成果物
CSharp.MusicTheory.Degree.NextOctave.201709111013
開発環境
- Linux Mint 17.3 MATE 32bit
- MonoDevelop 4.0.12
- mono 3.2.8 (Debian 3.2.8+dfsg-4ubuntu1.1)
前回まで
- http://ytyaru.hatenablog.com/entry/2018/10/10/000000
- http://ytyaru.hatenablog.com/entry/2018/10/11/000000
課題
- 変化記号の定義クラスがあるのに、別のクラスではそれを参照せずに正規表現をつくっている
Accidental.GetPitch()
の実装がスマートでない気がするforeach(AccidentalType a in [Flat, Sharp]) { a.GetValue (accidental); }
としてもカッコ悪い- どう実装すべきかわからない
+-#b♯♭1
のように異なる変化記号も併用できてしまう++1
など同一の記号を連続する使い方のみに限定したいが、スマートな実装方法が見つけられなかったので放置する
所感
書式チェックの方法が正規表現だけで完結できるのが望ましいのだが……。