DQ4とDQ5のバトル曲からDeepLeaningを使って楽曲を生成してみた

DQ4DQ5のバトル曲からDeepLeaningを使って楽曲を生成してみました(*´Д`*)ノシシ


参考サイトはこちら↓
https://github.com/PyDataOkinawa/meetup017
サイトの内容は、来週(2016/09/17)行われるPyData.Okinawa #17 の準備アンド予習です(`・ω・´)


学習に使用したのは
1.DQ4のバトル曲
2.DQ4のラスボスバトル曲
3.DQ5のバトル曲
midiデータは約17年前に趣味で集めていたmidiデータ(耳コピされたもの)なので配布はご勘弁を。


できたのはこれ↓
DQ4+DQ5 BATTLE MUSIC GOOGLE MAGENTA LIMIXED 01
midi = http://d.hatena.ne.jp/yasuhallabo/files/2016-09-11_004222_1.mid
22秒より後がそれっぽい、かなw(*´Д`*)


・とりあえず何の調整も行わず、トレーニングデータも少ないので学習させるには難しかった気がしますねー(・ω・)
1と3はイントロからバトルっぽい曲なのですが、2は緩やかなペースで入る曲なので、ちょっと規則性を見出すのは難しいかと。


・序盤の音が少なく、音が拾えていない可能性はありそう
 ⇒ midiデータのため、わりと互換性がない事が多いので全部カバーするのは大変だと思う。
  元々学習データがWindows上で作られたデータのためWindowsで鳴らすとわりと原曲に近いのだが、
  Macで再生すると妙に音が外れることがある。


・楽器がピアノに全部まとめられてしまっている。
 ⇒ 元データはフルート、オーボエクラリネット、トランペット、トロンボーン、チューバ、ハープと
  いろいろな楽器が使われているので、パートごとに学習できるようになったらもっとそれっぽく学習できるかも
  しれない。


このあとPyData.Okinawaのオーガナイザーの大塚さんから、generate_melodies.shの以下の行をコメントアウトするとランダムで生成されると聞いたので、早速やってみました。

--primer_midi=${PRIMER_PATH}



デフォルトだと5種類出力されたので、似通ったものを省いて何個かUPしました。
出来たデータ2
DQ4+DQ5 BATTLE MUSIC GOOGLE MAGENTA LIMIXED 02
midi = http://d.hatena.ne.jp/yasuhallabo/files/2016-09-11_021307_2.mid
イントロからずっとデスピサロっぽい曲になりました(*´Д`*)
似たようなメロディの繰り返しに聞こえますが、ゲームはそういう曲が多いですし、途中から少し調子が変わったりして、こんなところも学習しているんだなー、と関心しました(*´Д`*)
デスピサロっぽい」というのが雰囲気だけで、完全に一致するものかというとそうでもなく、聴き比べてみると全く別ものなのが面白いです。


出来たデータ3
DQ4+DQ5 BATTLE MUSIC GOOGLE MAGENTA LIMIXED 03
midi = http://d.hatena.ne.jp/yasuhallabo/files/2016-09-11_021307_4.mid
テンポの遅い部分だけ学習したようなデータになっています。序盤は良くわかんない感じですが、20秒すぎくらいからちょっとテンポが速くなるパートがあります。
終盤に、またテンポの遅いメロディになっていますが、ちょっと不気味な調子になっており、デスピサロの曲調をちょっと学習したのかな?と思いました。


出来たデータ4
DQ4+DQ5 BATTLE MUSIC GOOGLE MAGENTA LIMIXED 04
midi = http://d.hatena.ne.jp/yasuhallabo/files/2016-09-11_021307_5.mid
イントロが高い音程から低い音程になっていくDQ5のイントロに近いように聞こえます。だがちょっと長いw
DQ4のバトル曲のイントロが同じように低い音程になっていくのと、ちょっと長いので、両方混ぜたような感じですかね。
イントロが終わると今度はデスピサロっぽい曲調にw カオスw


いやぁ〜、ディープラーニング面白いわ〜w
長さも曲調も違うデータを突っ込んだだけで、それっぽいまったく違うデータをあっという間に作るなんて凄すぎますね。
技術が進めばもっと本物っぽくなることでしょう。


それにしても、ディープラーニングで生成した楽曲の著作権ってどうなるんでしょうかねw(・ω・)
著作権やばそうだったら消しますw