ScaleIntervalsクラスをenum型に修正した
それに伴いScaleクラスを修正した。
成果物
Python.MusicTheory.ScaleIntervals.201709241350
前回まで
- ClassPropertyを他のclassのclassmethodから参照するとプロパティとして見てくれない
- メタクラスを継承してsetattrによる再代入禁止とsys.modulesへのクラスインスタンス代入を共通化した
- readonlyな定数を音度、変化記号、ピッチクラスに実装した
- 音程から半音数を取得する
- Python音楽理論ライブラリの細かい点を修正した
- 音名から半音数(ピッチクラス)を取得する
- ピッチクラスとオクターブからMIDIノート番号を取得する
- MIDIノート名からMIDIノート番号を取得する
- 変化記号を各国の表記で取得する
- 音名を各国の表記で取得する
- 絶対オクターブ値(国際式,YAMAHA式)から相対オクターブ値(0〜10)を取得する
- 基音を設定、取得するクラスを作った
- 12平均律で周波数を取得する
- ピタゴラス音律で周波数を取得する
- 12平均律の基音クラスを弱参照するよう修正した
- 純正律で周波数を算出する
- 音階と音度からピッチクラスを取得する
- ScaleKeyクラスを作った
- ScaleKeyクラスをScaleの内部クラスとして作り変えた
- 音階と音度から音名を取得する
- Scaleクラス修正に伴い純正律クラスの修正をした
今回
Intarvals
でなくIntarvals.value
に変更した。(enumの仕様)
https://docs.python.jp/3/library/enum.html
テストコード | 項目数 |
---|---|
TestScale.py, TestScaleKey.py | 14 |
TestScaleIntervals.py | 2 |
テスト計167項目。
所感
ScaleIntervalsの型チェック(内包された属性か否か)ができるようになった。