メジャースケールは長音階。
成果物
Python.MusicTheory.ScaleIntervals.NameJA.201709241518
前回まで
- ClassPropertyを他のclassのclassmethodから参照するとプロパティとして見てくれない
- メタクラスを継承してsetattrによる再代入禁止とsys.modulesへのクラスインスタンス代入を共通化した
- readonlyな定数を音度、変化記号、ピッチクラスに実装した
- 音程から半音数を取得する
- Python音楽理論ライブラリの細かい点を修正した
- 音名から半音数(ピッチクラス)を取得する
- ピッチクラスとオクターブからMIDIノート番号を取得する
- MIDIノート名からMIDIノート番号を取得する
- 変化記号を各国の表記で取得する
- 音名を各国の表記で取得する
- 絶対オクターブ値(国際式,YAMAHA式)から相対オクターブ値(0〜10)を取得する
- 基音を設定、取得するクラスを作った
- 12平均律で周波数を取得する
- ピタゴラス音律で周波数を取得する
- 12平均律の基音クラスを弱参照するよう修正した
- 純正律で周波数を算出する
- 音階と音度からピッチクラスを取得する
- ScaleKeyクラスを作った
- ScaleKeyクラスをScaleの内部クラスとして作り変えた
- 音階と音度から音名を取得する
- Scaleクラス修正に伴い純正律クラスの修正をした
- ScaleIntervalsクラスをenum型に修正した
今回
要点は以下だけ。ほかのスケールにも和名っぽいのがあれば良かったのだが、ほとんどカタカナだった。
self.assertEqual('長音階', ScaleIntervals.GetName(ScaleIntervals.Major)) self.assertEqual('短音階', ScaleIntervals.GetName(ScaleIntervals.Minor)) self.assertEqual('和声的短音階', ScaleIntervals.GetName(ScaleIntervals.HarmonicMinor)) self.assertEqual('旋律的短音階', ScaleIntervals.GetName(ScaleIntervals.MelodicMinor))
テストコード | 項目数 |
---|---|
TestScaleIntervals.py | 3 |
TestScale.py, TestScaleKey.py | 15 |
テスト計169項目。
所感
Wikipediaをみると、メジャースケール系でも複数あるらしい。どうやって実装しよう……。