DAW悪戦苦闘記

DAWやMIDIを通じてDTMを楽しむ記録。MIDI検定試験にもチャレンジするなり。

Magentaによるメロディ生成 (4) コード進行の活用

前回記事の続編、というかおまけ。前回は単純に出だしの単音だけ与えてメロディを生成させてみたが、今回はコード進行の制約を与えるモデルを試用してみる。

daw-jones.hatenablog.com

使用するモデル

今回は、Melody RNN ではなく、Improv RNN を用いる。

このモデルは、伴奏のコード進行をモチーフとして与えると、そのコード進行に合わせたメロディを生成する。プロアマ問わず、コード進行をいわば補助輪として楽曲制作するケースは非常に多いだろうから、生成モデルとしてはおそらくこちらの方が実用価値が高いと思われる。

生成用コマンドの例

DockerからMagenta起動後、以下のようなimprov_rnn_generateコマンドを投入する(詳細は公式ページを参照)。

improv_rnn_generate \
--config=chord_pitches_improv \
--bundle_file=/magenta-models/chord_pitches_improv.mag \
--output_dir=/tmp/improv_rnn/generated \
--num_outputs=10 \
--primer_melody="[60]" \
--backing_chords="C G Am F C G Am F" \
--render_chords

コマンド・オプションについては、前回見たmelody_rnn_generateコマンドのそれとほぼ同じであるが、本コマンド特有のものとしては、

  • backing_chords: モチーフとして与えるコード進行はこれである。デフォルトでは1小節ステップでコード進行を文字列として記述する(ステップの長さは変えられるが詳細は割愛)。本例では、C/G/Am/F のコード進行を2回繰り返して合計8小節となる。
  • render_chords: 上記 backing_chords で与えた伴奏コードが生成結果のMIDIデータ(SMF)に追加される(後述)。

生成MIDIデータの中身

生成結果のSMFは、メロディと伴奏コード進行の2トラックから構成される。このうちの後者は、ユーザがコマンド・オプションから与えたコード進行そのものである。生成ファイルの一つをDominoで開いてみると、以下のようなMIDIデータが観察される。

f:id:daw_jones:20170924155904p:plain

生成メロディ

f:id:daw_jones:20170924160015p:plain

コード進行

想定される使い方

音楽的に心地よく美しいとされるコード進行は概ね決まっており、またコード進行それ自体には著作権はないため、そのようなモチーフをどこかから参照してMagentaに与えてみればよい。たとえば、下記サイトは参照先の一つである。

chords-map.net

すると、それなりのメロディ候補を無数に生成してくれる。あとは取捨選択の上で、ループ素材なども駆使してリズムに工夫を重ねれば、比較的短時間で一曲制作できてしまうのではないか。

先進的なコード進行ヘルパーとしては、Waveform の Pattern Generator などが代表例だが、そのような高級ツールが手元になくとも、Magentaで相当程度ニーズは満たされると思う。

www.youtube.com

Amper Music の使用感

以前書き留めた下記記事の続きのようなものではあるが、ちょっと気になっていた自動作曲サービスの Amper Music を触ってみての雑感を軽く書いておきたい。

daw-jones.hatenablog.com

なお、利用方法についてはすでに方々で紹介記事が書かれているので、この場でさらに屋上屋を架すような真似は止めておく。

個人的な使用感などを手短にまとめると、以下の通り:

  • 曲長については、Simpleモードでは30秒固定で融通が利かない。それ以上の長さの楽曲生成はProモード*1を使う。β版の現状ではProモードも無料試用可能だが、いずれ有償化必至と思われる。
  • 生成される楽曲をいくつか聴いてみると、コード進行ありきの印象が強い。主旋律がなくバッキングのみという感じの曲ばかりのように思う。裏返せば、単なるコード進行生成機と言えなくもない。
  • 生成結果はMP3またはWAVでしか落とせない。案の定MIDIはサポート外なので、自分のDAWに取り込んで独自のアレンジ加工は難しい。あくまでオーディオ素材のみ。
  • 生成結果をそのまま使うのであれば、簡単な劇伴または動画BGM用という印象。

*1:一般的なDAWのオーディオ編集UI同様の操作で生成断片を繋ぎ合わせる。

Magentaによるメロディ生成 (3) MIDIデータ生成

随分と間が空いてしまったが、前回の環境構築に引き続き、MIDIデータの生成を試してみる(かなりマニアックです)。

daw-jones.hatenablog.com

プリセットの学習済みデータ

有難いことに、Magentaには数千曲のMIDIデータを使って学習したモデル一式が添付されており、ユーザ独自のデータを学習させないのであれば、これらの学習済みモデルをそのまま流用することも可能である。

学習済みのモデルとデータ一式は Bundle File (.magファイル)と呼ばれており、デフォルトの環境では/magenta-modelsディレクトリの下にあらかじめいくつか格納されている(下図参照)。特にattention.magbasic_rnn.mag、およびlookback_rnn.magの3種が代表的なものである。

f:id:daw_jones:20170917212732p:plain

生成モデル

生成モデルに応じていくつかのコマンドが用意されている。この中で実行例として最も頻繁に引用されるモデルは Melody RNN だと思う。今回もこのモデル・コマンドを使ってみる。他にも興味深いものとしては、コード進行ベースの学習モデルである Improv RNN などもあるが、後々試すこととしたい。

DockerによるMagentaの実行

前回記事でも触れた通り、ターミナルから以下のコマンド一行でMagentaの環境を立ち上げてLinuxの配下に入る。起動コマンドのオプション等詳細については、公式サイトの入門ページか、もしくはQiitaの記事などを参照されたい。

docker run -it -p 6006:6006 -v /tmp/magenta:/magenta-data tensorflow/magenta

ここで特に重要なのは-v(ボリューム)オプションで、ホスト側(Macなど)の/tmp/magentaディレクトリをDocker上のLinux環境下/magenta-dataディレクトリに同期(マウント)する。これで両者間でのデータのやりとりが可能となる。そうしないと、せっかく生成したMIDIデータがコンテナ終了後に消えてしまい、保存再生することができない。

MIDI生成コマンドとパラメータ

上記 Melody RNN モデルを使い、メロディのMIDIデータを生成するためには、生成コマンドmelody_rnn_generateを実行するだけでよい。蛇足ながらこのコマンドは、上述の通りにDockerからMagentaの環境を立ち上げた状態のLinux上で投入する。

melody_rnn_generate \
--config=lookback_rnn \
--bundle_file=/magenta-models/lookback_rnn.mag \
--output_dir=/magenta-data/lookback_rnn/generated \
--num_outputs=10 \
--num_steps=128 \
--primer_melody="[60]"

本コマンド詳細については、以下の公式ページより"Generate a melody"の節を参照。

github.com

コマンドに与えるパラメータに関しては、以下のQiita記事なども参考になるかと思う(前回に引き続いて再掲)。ただし、Magentaのバージョン改訂に伴い、生成コマンド自体は古くなっているので読み換える必要がある(いちいち都度ビルドしたりPythonスクリプトを指定実行するような煩わしさがなくなった)。

qiita.com

qiita.com

パラメータについて若干補足しておくと、

  • bundle_file: 本例では上述の学習済みプリセット・データを指定する。今回はやらないが、ユーザ独自の学習データを使う場合はその際に作成した Bundle File を指定してもよい。
  • output_dir: 本例の/magenta-dataディレクトリは、Magenta起動時のDockerコマンドでボリューム指定した場所と同じにする。サブディレクトリのlookback_rnn/generatedは自動的に作成される。生成されたMIDIデータ(SMF)はこのサブディレクトリに保存される。
  • primer_melody: 出だしのメロディを指定できる。ノート番号はMIDI規格の通りに中央ドを60とし、16分音符単位のステップ・シーケンスでリスト表記する。SMFを与えることも可能。本例ではC3単音のみ指定。したがって、生成データはすべてC3からスタートすることになる。

生成ファイル

本例ではパラメータ指定の通りに10個の生成結果(SMF)を所定のディレクトリに書き出す(下図参照)。DockerにてMagenta立ち上げ時のボリューム指定により、これらはすべてMac上の/tmp/magentaディレクトリに保存され、Dockerセッション終了後もそのまま消えないで残るが、念のために$HOME/Documents等ユーザ領域へコピーしておいた方がよいだろう。

f:id:daw_jones:20170917225227p:plain

生成MIDIデータの中身

生成結果の一つをDominoで開いてみると、以下のようなMIDIデータが観察される。

f:id:daw_jones:20170918125227p:plain

見ての通り、現バージョンではベロシティは表現手段として使われていない。学習結果を反映している手前、一応それなりのメロディにはなっており、まったくランダムなデタラメという感じではない。ただし生成結果が全部使い物になるというわけでもなく、10個生成したらこの中から使えそうなものだけ取捨選択するという運用になろう。

生成メロディのままではまともな楽曲として成立しないので、これをChordanaに入力し、伴奏アレンジを加えれば結構面白い制作物ができるかもしれない。なお、現状ChordanaはSMFをインポートできないので、大体ざっくりした感じでいいからキーボード手入力か鼻歌で入れてみるとよい。Chordanaとのコラボについてはまた後日実験してみたいと思う。

IEC国際標準規格となったMIDI

先日郵送されてきたMIDI検定2級1次試験案内のカバーレターには、MIDIが本年6月にIECの国際標準規格として認定された旨が書き添えられていた。メディアではまったく報じられなかったので、初めて知った次第。

webstore.iec.ch

 

MIDI検定の案内ページでも概説されているように、MIDIはもともと日米の楽器メーカーが電子楽器業界の標準規格として立ち上げた民間仕様に始まるが、その後のインターネットの興隆やスマホ等新たなデバイスの登場発展に伴い、他標準化団体へのMIDI採用の働きかけや、より広汎な標準規格としての地位向上をAMEI/MMAが主体となり精力的に取り組んできた経緯がある。一見地味ではあるが、今回のIEC標準規格承認もそのような取り組みの一環として結実したものである。今後はWeb標準APIやIoTなどの分野でも国際標準として堂々浸透していく道が拓けたと言えるだろう。

AMEI経産省の後押しもあってIEC標準化に本格的に着手しだしたのは2010年頃らしく、その辺の事情に関しては AMEI News Vol.43 (PDF) に詳しい。特に新興国市場での各国独自仕様の乱立を懸念して先手を打つという狙いがあった模様である。明記はされていないが、おそらく中国の動向が念頭にあったことは想像に難くない。実質的にはMIDI1.0規格書がそのまま標準仕様として認められたということのようであり、現行仕様からの変更修正は(今のところ)ないと聞く。また、現時点で末端ユーザに直接の影響があるというわけではない。

AMEI/MMAとしては7年越しの地道な活動がようやく実り、MIDI30年の歴史の中でも大きなメルクマールとなったことは間違いないであろう。日米連合とはいえ、実態としては日本の大手楽器メーカーの発言力が大きいだろうから、どちらかと言えば国際標準化交渉を苦手とする日本メーカーにとっては久しぶりの(?)明るい話題ではなかろうか。

MIDI検定2級1次試験の受験申し込み始まってます

昨年末に3級を受験した関係で、本日AMEIより平成29年度第19回MIDI検定2級1次試験の受験案内および受験料の払込取扱票(いわゆる郵便振込用紙)が郵送されてきた。この夏はMIDI検定1級の実技演習を休止していたせいでうっかり忘れていたが、出願期間はちょうど1週間前の9月4日よりすでに始まっていたことに初めて気づく。何を隠そう、私も今回受験予定の身である。

受験申し込み消印有効期限は10月31日まで、とまだ全然余裕はあるが、受験者が集中する首都圏の出願者は希望の会場を押さえるためになるべく早期に手続きしてしまった方がよいかもしれない。それ以外の地方受験者はそう慌てる必要はないと思うが*1

実は私はすでに2級の1次・2次双方の受験対策は終えてしまっており*2、その際書いた下記記事でも触れたとおり、1次・2次両方合わせて概ね6ヶ月かかっている。その経験に基づけば、初級者は今から準備したとしても来年2月の2級2次までなんとか間に合う可能性はある。当然上級レベルの受験者であれば、もっと短い準備時間で済む。いずれにせよ1次の方は、イベントリスト問題を除いて楽勝レベルなので、1ヶ月もあれば準備あるいは復習可能であろう。

daw-jones.hatenablog.com

*1:ここ数年の傾向として、2級1次受験者数は例年全国で150名にも満たない。それもおそらく大半は首都圏、特に東京在住者あることは想像に難くない。

*2:もちろん再度の復習が必要であることは言うまでもなく。

Tracktion 6 新機能概要メモ

Tracktion 6(以下T6)が無償版になったので、早速前バージョン5よりアップグレードして主たる新機能をざっと確認してみたので備忘録として簡単にメモ書きしておく。

daw-jones.hatenablog.com

 

T6無償公開前後からおそらくTracktionを検索キーワードにして本ブログを訪問しているアクセスが激増しているようで少々驚いた。国内では言うまでもなく Cubase あるいは Studio One ユーザが多数を占めており、UIが一癖あるTracktion(およびWaveform)は非常にマイナーな存在に過ぎないと思っていたが、無償または安価な割には高機能ゆえ、徐々に愛用者を増やしているのかもしれない。もともとTracktion関連の日本語資料は皆無と言っていいほど乏しいため、本記事含めて多少とも役に立てれば幸いである。

なお、新機能概要については、以下の公式チュートリアルを参照。基本はこれに沿って個人的に関心がある点などを簡単に書き添えておく。

www.tracktion.com

Step Clip

本アップグレード最大の目玉機能の一つ。この Step Clip 自体はT5から備わっていたが、T6よりようやくベロシティとゲートタイムの調整機能などが加わって大幅に強化された。リズム制作では素のMIDI打ち込みよりも遥かに効率的だろうと思う。

また、同一クリップ上で複数音源を組み合わせてパターンを組むことも可能となった。これは rack filter (Studio One の Multi-instrument 機能にほぼ相当)を拡張することで実現しているが、システムが自動的に配線設定するため、ユーザはややこしい設定の中身を意識する必要はない。

ベロシティについては、キックやスネア等各パート(チャネル)毎の全体の基準ベロシティは0-127値で、各ノートの強弱は0-100%値で編集するようになっている。チャネル毎の一括調整機能は結構便利だと思う。

オーディオ機能強化

基本のオーディオ編集機能も強化され、T5より進歩したが、この辺は正直言って他DAWにやっと追いついたというレベルだと思う。しかしすべて無償で使える。

Pitch-fade

オーディオ・クリップのフェードイン・アウト機能をピッチにまで拡張したもの。いわゆるDJターンテーブルのような効果をもたらす。これは Studio One にはなかったのではないか(確証ないが)。

オーディオ・クリップの結合

複数のオーディオ・クリップを一つのクリップに統合できるようになった。しかしこれはあって当然とも思える機能で、T5までなかった(?)ことが不思議なぐらい。

Warp Time

オーディオ・クリップのタイミング補正編集機能。あるいはオーディオのクオンタイズを可能にする機能と言ってよい。ただし、T6では手動調整のみのようなので、あまり長いクリップの編集は難しい。おそらく Studio One で言う所の Audio Bend 機能に該当すると思われるが*1、Studio One は自動的にtransientを分析してクオンタイズまでやってのける。

エフェクトやミックス関連

使いやすくなったオートメーション

オートメーションは、ドラッグ&ドラップで目的とする効果を簡単にオートメーション・トラックへ適用できるようになった。これは個人的には Studio One のオートメーションUIよりも使いやすい感じがする。

automation remapping は、楽曲のテンポ修正後もオートメーション変化点の相対的なタイミングを保持する機能だが、これはむしろあって当然。

Compressor Side-chain

実はT5では存在しなかったサイドチェイン機能。やっと他DAWに追いついたと言える。もっとも、rack filter の拡張で実現しているため、他DAWに比して若干とっつきにくい印象はある(すぐ慣れるが)。T6付属の純正コンプレッサー以外で対応可能かどうかは未確認。

その他ユーティリティ

Plugin Organizer

多数のプラグインをフォルダー別に整理カスタマイズしてメニュー表示できるようになった。これも最初からあって不思議はない機能。ただし、まだサムネイル表示まではできない(確かWaveform以降)。

Track Tags

各トラックをタグ付けしてグルーピングし、表示・非表示を簡単に切り替えることができるようになっている。トラック数が非常に多い場合は編集作業で重宝すると思う。これもあって当然の機能という感じはする。この辺のUIは Studio One の方が一日の長があって洗練されている。

*1:残念ながら無償のPrime版ではサポートされておらず。

Tracktion 6 が無償版になった

昨日たまたま Tracktion の本家サイトをチェックしていたら、Tracktion 6 (以下T6)が無償提供され始めたことを発見して驚いた。以下の記事でもレポートされているが、まだ日本のメディアでは報じられていないようである。なお、既存登録ユーザは通知メールが届いていると思う。

bedroomproducersblog.com

でも考えてみれば、毎年夏の終わりから秋にかけては、各社ともアップグレードやバーゲンセール祭りで販促をかけることが定例化しているため、昨年来の無償バージョンである Tracktion 5 (以下T5)がそろそろ引退してT6に交代することは想定の範囲内ではある。 

新規機能概要などについては、以下の公式チュートリアルのページを参照(私もこれから追々確認する途中)。

www.tracktion.com

アップグレード上の注意点など

unlockして無制限使用するには、ユーザ登録が必須である。T5ユーザは、T6のインストーラーを落としてインストールすると上書きインストールされるが、ユーザ設定などはそのまま引き継ぐので心配ない。

ざっと見たところ、メインの編集UIに関してはT5とまったく変化がないと言ってよい。おまけにアプリケーション・フォルダー中のパッケージ名は旧バージョンの Tracktion 5 のままなので*1、果たして正常に更新されたのかどうか不安になるが、アプリケーションのアイコンが色付きで若干変更になっていることと、T6起動後に Projects タブ左下の Help > About ページからバージョンを確認すれば問題ないことがわかると思う(下図参照)。

f:id:daw_jones:20170904201021p:plain

f:id:daw_jones:20170904201101p:plain

*1:Mac版の場合。