2声の自動生成

4声は悲惨だが2声の対旋律付けなら酷いレベルではない・・・とおもう。 ドフェミファソファミレの繰り返しのバスに対してソプラノの対旋律を生成した(両方生成する事もできる)。

www.youtube.com

G7でファ→ミの限定進行など和声っぽい音の動きが見られた。

ハ長調ではなくて旋法(ドリアとか)だと面白いのだけど、印刷物含めデータが多くないので、いずれ。

f:id:biones:20160307215903j:plain

上の画像の台形の音の音程について、(前の和音のMIDI距離,ソプラノの増分,テノールの増分)を特徴量としている。 この例だと(17,1,2)というベクトル。 探索方法はとりあえずで、焼きなまし法。 ドレミファソラシドという旋律とドの初期音からこのスケールを導くためにはひとつ前の和音も考慮すればいい(未実装)。

4声にしたときに、縦の響きについては流石に(台形の特徴量で)線形だとダメで(この特徴量だとG7の時は2度がOKみたいな状況からXORパターンがでてくると思われるから)、

(1)台形を一つふやす(4C3通り)
(2)カーネル法を使う

もっそり実験しようと思います。

3/23追記 1classSVM(と各種カーネル)でも4声は微妙。特徴量の次元が台形だけでも510次元,手持ちの課題を全部入力しても500和音程度にしかならないので(6000円の解答集を買えば3000和音くらいにはなる?)、実際の楽譜を使えるような方法に切り替えたほうがいいのだろうか。 転移音(和声外の音)や、4声(+旋律)→5声→3声みたいに特徴量の次元が不定で、そういうデータを上手く扱う方法はないのだろうか(ノンパラメトリックベイズとか、RNN?)。

kernelPCA(500→10〜200次元くらいまで落とす)→kmeans でも微妙。教師なし学習の検討はできないので、相変わらず生成して私の耳で検証(楽で良いのだが)。異常検知の本とか買うと良いのだろーか。。。 いや、多分和声の解答集を買う事ですね。。。。