ベースライン生成に活用?mono_rnnの用途についての解説追加 | 音楽ディープラーニングライブラリーMagentaでの自動作曲

先日音楽ディープラーニングライブラリーMagentaの新しいモデル
mono_rnn
についてお知らせしましたが
https://canplay-music.com/2019/03/06/mono-rnn/
それに関して続報です。

これまでのbasic_rnnが狭いレンジの音域のみでの生成をしていたのに対し、新しいmono_rnnはmidiの全ノートピッチ(0〜127)での生成を可能にしているとの事でした。

果たしてこれが何を目指しての事か?
問題はむしろ音域から大きく外れる事ではないか?、、、
などと色々な推測をしていましたが、開発者とユーザーとの間でこの様なやりとりがあった様です。

I am using a primer_midi file that contains all available MIDI notes from 0-127, however after the MIDI file is generated it shows that it is truncating the incoming MIDI notes from C3 to B5 (48 to 83). This issue occurs on all three models of the Melody_RNN (basic, attention, lookback).
This means that the Melody is constrained to a narrow range, and therefore cannot be used to generate a bassline.

「0〜127の全てのMIDIノートを生成用のMIDIファイル(Prrimer MIDIファイル)として使用しているのですが、生成されるMIDIファイルは48〜83(C3からB5)に限られてしまっています。
これはMerody_RNNの全ての3つのモデル (basic, attention, lookback)に共通です。
これでは音域が狭いため、ベースラインを作る事ができません。」
※画像参照

という様な質問があったとの事。
質問者はベースライン生成に使用したいのですね。
確かにcanplayの実験でも(授業や研究会でも発表していますが)、ベースの音域にあたる部分はDAWでオクターブを1〜2下げて対応していました。

これにMagenta開発者が早速対応

I added a new model config called mono_rnn that uses the full range.

「全ての音域を使用できる新しいモデルmono_rnnを追加しました」


これによりベースライン(の音域での)生成が可能になった、
という事の様です。

ついでと言ってはなんですが、Magentaのモデルのコードを確認したところ

DEFAULT_MIN_NOTE = 48
DEFAULT_MAX_NOTE = 84

とあり、確かにノートピッチ48から開始の3オクターブ対応となっている様です。

mono_rnnの用途が今ひとつ理解できなかったのですが、なるほどベースラインの作成に使用できるのかもしれません。

という事で早速実験。

生成用のMIDIファイル(primer midi)をC1(12)からC2(25)開始に設定して生成しました。
(面白い)ベースラインができるはず。
(音源はSyntonikのTB303クローンです)
下記が生成結果の動画です。

う〜ん、、、
どうやら生成用のMIDIファイルのピッチ範囲がC1~C2にも関わらず、生成ファイルが普通にC3~C4中心になってしまっています。

ベースラインではない、、、、

しかしながら今回はメロディー生成用の(上手く行っている)方法で生成したのでもう少し研究・実験が必要かもしれません。

そもそもモデル自体を完全ベース用にする必要もあるはずです。

AI自動作曲、AI音楽生成用のモデルファイルの作成方法、学習の方法もAI自動作曲プログラミングコースで学習できます

https://canplay-music.com/ai-course-2/

それにしてもAIをまるでミュージシャンやクリエーターのメンバーの用に使用して音楽を創り上げていく”AI音楽プロデューサー”的制作方法。
かなり新しい試みではありますが楽しいです。
未来の音楽制作のあるジャンルとして確立されていくのでしょう。
その一端を担えれば光栄と思い日々実験を続けています。