#5
は半音8つ分、など。
成果物
Python.MusicTheory.Pitch.201709131811
前回まで
やりたいこと
音楽理論などにおける音高の表現方法を相互変換したい。
項目|英名|型|例 ----|ーーー-|--|-- 周波数|Frequency|float|440.0(Hz) 音程|Interval|int|-1,0,1,2,...半音数。12で1オクターブ。 PitchClass|PitchClass|0〜11。C〜Bの12音。 OctaveClass|OctaveClass|0〜10。PitchClassと組み合わせることで周波数を算出できる。 音名|Key|str|C,C#,Db 変化記号|Accidental|str|♯/♭(#/b, +/-) 音程|Interval|P1,m3,a5 音度|Degree|1,#2,b3 ノート番号|NoteNumber|0〜127。C0〜G9。MIDI規格における音高ID。 ノート名|NoteName|C0,C#0,D0,...[音名][変化記号][オクターブ]の組合せ。
これらはすべて音高を意味する。たとえばC#5
などのテキストを周波数に変換できれば、サイン波など何らかの波形生成の引数として渡せる。最後にPyAudioで再生するという目算。
今回
表題のとおり。音度から半音数を得る。前回のやつに半音数を渡せばピッチクラスと相対オクターブを得られる。
所感
現状、classのpropertyが作れなくて妥協している。何とかしたい。