つい先日、YouTubeで「機械学習を駆使して曲を作る」といった内容の動画を見つけました。気になったので今回は実際にやってみてその過程を記録しました。DTMerや興味のある方の参考になればと思います。
Magentaとは
「機械学習を音楽や芸術の領域で活用する」という研究をしているGoogle社のプロジェクトです。(→Magenta)
今回使っていくのはMagentaが出している[Magenta Studio]というアプリです。使ってみたところUIがわかりやすく直感的な操作が可能でした。
導入
動作環境
自分はmacユーザーで動作環境は以下の通りです。
MacBook Pro (13-inch, 2020) メモリ16GB,IntelCore
macOS Big Sur バージョン11.01
(2021/2/15)
MagentaStudioをインストール
https://magenta.tensorflow.org/studioにアクセスし
[Standalone Applications]をクリック自分のOSに合う方を選択して、zipファイルをダウンロードします。
900MBぐらいの容量で、数分以内にはダウンロードできるかと思います。
zipファイルを解凍し、フォルダを開くと中に5つアプリが入っているはずです。
これでMagentaStudioのインストールは完了です。
これらのアプリではMIDIファイルを取り扱います。「DTM環境がバッチリ整っているよ」という方はしばらく読み飛ばして大丈夫です。
DAWソフトの準備
このアプリを扱うためにはMIDIファイルの読み込み、書き出しができるDAWソフトを準備しておく必要があります。
音楽制作を始めてみようと考えている方は、この機にStudio OneやCubaseを買ってみてはいかかがでしょうか。オーディオインターフェースを買うと無料でDAWソフトがついてくるものもあるので、ぜひ探してみてください。
また、無料のDAWソフトもあるので、お試しであればフリーで全く問題ないと思います。windows環境の方にはcakewalkをおすすめします。自分は試していませんが、調べた限りではMIDIファイルの書き出しに対応しているようなのでぜひやってみてください。
mac環境では、購入時からインストールされているガレバンことGarageBandがとても便利なDAWソフトです。非常にわかりやすい見た目で、自分も頻繁に使っていました。
しかし、残念なことにどうやらガレバンは直接MIDIへの書き出しに対応していないようです。
どうにかならないか試行錯誤していたところ、ネットに方法が紹介されていました。素材としてリージョンをループライブラリに追加し、aifファイルとして一度書き出し、GB2MIDIというフリーソフトを経由してMIDIに変換するというものです。
実際に自分も試してみました。
Apple Loopsはデフォルトだと下のディレクトリに入るみたいです。
~ユーザー名/ライブラリ/Audio/Apple Loops/User Loops/SingleFiles
ダウンロードし、いざGB2MIDIを使ってみようとしたらソフトを起動することができませんでした。古いソフトのためOSに対応していなかったのかと思います。
さて、困ったどうしようと行き詰まりました。
LogicProではMIDIの書き出しができるそうだったので私はこの機に購入しました。なかなか高い金額ですが、前から気になっていたので良いきっかけではあったかと思います。APPLEの教育機関向けPro Appバンドルで購入しました。ガレバンとUIがほとんど変わらないため抵抗なく使うことができ非常に快適でした。
わざわざ購入しなくとも、LogicPro90日間無料体験があるみたいです。なので、macでやってみたいという方は、この無料体験を使ってみる、もしくはmac対応のフリーDAWソフトを探すのが良いと思います。
また、5つのアプリのうちGenerateのみMIDIを読み込まずに、見本なしで自動でメロディやドラムロールをMIDIファイルに書き出してくれます。ガレバンもMIDIの読み込みには対応しているので、Generateの自動生成を試すことはできるはずです。
Magenta Studioを使ってみる
ようやく本題に入ります。今回は5つのうちの2つのアプリをご紹介します。残りの3つはぜひ試して見てください。
Generate
まず、最初にご紹介するのはGenerateです。
機能は至って単純で、アプリを起動していくつか設定をするだけで自動でメロディもしくはドラムロールを作ってくれるというものです。
一番上のDrumsとMelodyでどちらを出力させるか決め、次のOutput LocationのChoose folderからMIDIファイルを書き出す場所を指定します。
さらにその下のVariationsのつまみは出力するMIDIの個数です。上の写真では8に設定されているので、この状態では8つの異なるドラムロールが生成されます。
Temperatureはいじくってみたところ音数や複雑さといったところのようです。
「It can be used to produce more random outputs by increasing the temperature」とあるので、生成の際はTemperatureを適度にいじってあげると良いと思います。
ドラムロール
・Temperature1.0で生成
1番と4番なんかはオーソドックスで使いやすそうな感じですね。
3番は逆に癖があってかっこいい感じがします。2番はあまり使わないかなぁ…
・Temperature2.0で生成
最高の2.0まであげたら音数が増えすぎてごちゃごちゃした感じになりました。シンバルの主張が強すぎるような気がします。
Temperatureを1.0程度にしておけば、制作でも普通に使っていけそうです。
メロディ
12番は上手く利用できそうな感じがしますね。それぞれ全く違うテイストのメロディになっているのも興味深いです。作曲中にメロディで詰まったときは自動生成して良さそうな部分を抽出してみてもいいかもしれません。
Continue
Continueは自分が作ったメロディやドラムロールの続きを作ってくれるというアプリです。
一番上のDrumsとMelodyでどちらを出力させるか決めます。
その下のInput LocationのChoose fileから続きを作らせたいMIDIファイルを指定します。
Variationsのつまみは出力するMIDIの個数です。
Lengthは追加する続きの長さです。あまりLengthの値を上げすぎるとエラーがでました。元のMIDIファイルの長さなどに関係があるかもしれません。
メロディ
このメロディの続きを作ってもらいます。
1番は着地している感じはありませんが、さらに続きを作るための着想になりそうですね。他のは微妙な気がします。
続きの長さが短すぎたかもしれないので、Lengthを長めにして生成させてみました。
8番はちょっと修正するだけで結構使えるかもしれません。
ドラムロールに比べるとメロディの方の生成はまだまだかなという感触ですが、作曲中のヒントとして使えば、意外な気付きに繋がって面白いかもしれませんね。
さいごに
ここまでお付き合いくださりありがとうございました。機械学習での自動生成もなかなか実用的になっていて驚きました。作曲中にアイディアに詰まったら頼ってみると良いものが生まれるかもしれませんね。参考になっていれば幸いです。
自分は「ラムダ技術部 / Yoidea」さんの動画をきっかけにMagentaを知りました。自分でやるのは面倒だけど、使っているところを見てみたいという方は下の動画をおすすめします。