やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

Audio

基音を設定、取得するクラスを作った

音律クラスで周波数を算出するために使う予定。

絶対オクターブ値(国際式,YAMAHA式)から相対オクターブ値(0〜10)を取得する

オクターブの表現を内部で統一する。

Pythonで共通の任意な親クラス、関数、変数名を持った、別名定義クラスをDRYに書きたい。(クラスインスタンスでなくクラスオブジェクト)

タイトルが伝わりにくい。試行錯誤しまくったログ。

音名を各国の表記で取得する

C#→嬰ハのように取得する。再代入禁止のdict, OrderedDictも作成した。

変化記号を各国の表記で取得する

#→嬰のように取得する。

MIDIノート名からMIDIノート番号を取得する

A#4→70のように変換する。

ピッチクラスとオクターブからMIDIノート番号を取得する

(0, 2)→(0+(2*12))→24など。

音名から半音数(ピッチクラス)を取得する

C#→1。

Python音楽理論ライブラリの細かい点を修正した

ちょっと気になる点を修正して完成度UP。

音程から半音数を取得する

音度も変更。int型を受け付けるようにした。

readonlyな定数を音度、変化記号、ピッチクラスに実装した

やりたかったことができた。

PitchClassのテストコードを書いた。

仮テスト。

Pythonで変化記号を実装し、音度から半音数を取得する

#5は半音8つ分、など。

Pythonで半音数からピッチクラスと相対オクターブを取得する。

Pythonに戻ってきた。

C#で音名からピッチクラスを取得する

半音数ではなくピッチクラス。0〜11を超えても0〜11に循環させる。

C#で音程から半音数を取得する

P1,m3などの音程。

C#で音度からピッチクラスを取得する(異なる変化記号を用いると例外発生)

foreachで文字チェックした。

C#で音度からピッチクラスを取得する(複音程に対応した)。

正確には「第一音からの半音数」を取得する。取得値をvとしたとき、(v % 12)とすればピッチクラスを取得できる。

C#で変化記号を定義し、音度からピッチクラスを取得する(複音程に未対応)。

#1, b2, #3 , ♭4, +5, -6, などの音度表現に対応。ただし単音程(1〜7)まで。

C#で音度からピッチクラスを取得する(変化記号に未対応)。

Pythonからの移植を試み始める。

和音名(ChordName)から構成音を音程名(IntervalName)で取得する

量があるので別リポジトリにした。

和音データを増やした

データの間違いもあったので修正した。

カシオSA-46を購入した

2017-08-30時点で¥3052。ACアダプタ¥2042。約¥5100。

和音(和声音)データをTSVファイル化し、コードネームで取得できるようにした

成果物 Python.Audio.PowerChord.201709021656 前回 和音(和声音)パターンを29用意した 所感 同じものを指す別名が多すぎるので絞った。

和音(和声音)パターンを29用意した

Wikipediaにあった和声音パターンを網羅した。

MIDIコントローラを調べてみた

買う価値はあるか。

ソフトシンセmonobristolをインストールする

40種類ものシンセをエミュレートする。

Linuxにシーケンサをインストールする

ステップ入力ができればリズム感なくてもイケるはず。しかし、音を出すところまで到達できず……。

JACKオーディオサーバーをインストールする

DAW、ブラウザ、プレーヤでそれぞれ音声出力するため。

Linuxで音を鳴らす(ソフトシンセ+仮想MIDIキーボード)

新たにハードを購入せず、PCとキーボードだけで音を出す。