オクターブの表現を内部で統一する。
成果物
Python.MusicTheory.Pitch.OctaveClass.201709211208
前回まで
- ClassPropertyを他のclassのclassmethodから参照するとプロパティとして見てくれない
- メタクラスを継承してsetattrによる再代入禁止とsys.modulesへのクラスインスタンス代入を共通化した
- readonlyな定数を音度、変化記号、ピッチクラスに実装した
- 音程から半音数を取得する
- Python音楽理論ライブラリの細かい点を修正した
- 音名から半音数(ピッチクラス)を取得する
- ピッチクラスとオクターブからMIDIノート番号を取得する
- MIDIノート名からMIDIノート番号を取得する
- 変化記号を各国の表記で取得する
- 音名を各国の表記で取得する
今回
MIDIでオクターブを表現する方式は主に以下の3つがある。国際式が最も一般的と思われる。
方式 | 範囲 |
---|---|
国際式 | -1〜9 |
YAMAHA式 | -2〜8 |
ゼロ式 | 0〜10 |
今回はすべてゼロ式に揃えるための小さな関数を作った。
所感
思うような実装ができなかった。各方式を独自のクラスにしたほうがいいと思ったのだが。