DeepComposer使ってみる

この記事は株式会社ナレッジコミュニケーションが運営する[ Amazon AI by ナレコム Advent Calendar 2020 ](https://qiita.com/advent-calendar/2020/knowcom-amazonai)の 16日目にあたる記事になります。

今回はDeepComposerを使用し、簡単な編曲を行ってみます。
元となる曲ですが、既に準備されているサンプルを使用します。

## DeepComposerとは
DeepComposer は Generative AI を楽しみながら学べる、機械学習を搭載した世界初のキーボードです。
・敵対的生成ネットワーク(GAN)モデルのトレーニングと最適化を通して、オリジナルの音楽を作曲
・2019年の AWS re:Invent で発表
・物理的なキーボードだけではなく、仮想キーボードを用いて、どこでも作曲・学習可能
・実機の価格は 99 ドル

#### 今回の記事で使う機材
DTMソフトはlogic pro Xを使用します。
midi鍵盤はAWS公式のものではなく市販のものですが、コンソール上で正常に演奏できる事を確認しました。

## 実際に使ってみる
AWSコンソールのDeepComposer内より「Music studio」を選択すれば最短でDeepComposerの機能を試す事ができます。
今回はこのMusic studioから生成できるもので簡単な楽曲を作成してみようと思います。
さっそく既存で用意されているサンプルよりトルコ行進曲を題材にします。
「Extend input melody」でトルコ行進曲にサンプルメロディ以外のパートを自動的に生成します。
Jazz、Pop、Rock、Symphonyなどの既にトレーニングされたモデルからジャンルを選ぶ事が可能です。
今回はRockを選択。

サンプルとなったピアノを元に、ドラム、ギター、ベース、パッドの4パートが自動生成されました。
![DC_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/954355/7b932ffa-c4a1-4d2e-1bb2-9dc864ad1c64.png)

画面上部「Download composition」よりMIDIデータでダウンロードする事が出来る為、こちらからダウンロードし、ここから自前のDTMソフトへ読み込み、簡単な修正を行っていきます。

修正前の全体は以下のようになっていました。
<blockquote class="twitter-tweet"><p lang="und" dir="ltr"><a href="https://t.co/usMpPoliBn">pic.twitter.com/usMpPoliBn</a></p>&mdash; ABC (@ABC47696092) <a href="https://twitter.com/ABC47696092/status/1338860620414734336?ref_src=twsrc%5Etfw">December 15, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

リズムに統一感がないのと、エフェクトも何も加工されていないので少し聞きづらいですね‥
これから1パートずつ分析と修正を行い、曲のパートとして聞きやすいように加工していきます。

##### ■piano
まずは基本となるpianoパートですが、こちらサンプルそのままですのでmidiノートは特に修正していません。
音色はアコースティックなピアノ音源とエレクトリックピアノを準備しました。
![Logic pro_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/954355/98d956dc-36a8-a00b-6f22-78c236210b31.png)

※midiノートとは
MIDI（ミディ、Musical Instrument Digital Interface）
電子楽器の演奏データを機器間で転送・共有するための共通規格になります。
ノートとは、どの場所でどの音の高さかなどの情報です。

##### ■drum
ドラムパートに関してもエレクトリックな音源へ差し替えをしました。
midiノートの無駄な重複を削除し、小説頭の認識が間違っていたので全体を1拍後ろへずらしました。
<blockquote class="twitter-tweet"><p lang="und" dir="ltr"><a href="https://t.co/rutLrS1k0F">pic.twitter.com/rutLrS1k0F</a></p>&mdash; ABC (@ABC47696092) <a href="https://twitter.com/ABC47696092/status/1338863498302873603?ref_src=twsrc%5Etfw">December 15, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

##### ■guiter
ギターパートはまず全体的なヨレが目立ったのでmidiノート全体に16分のクオンタイズを行い、多すぎるmidiノートを一部削除しました。
音色はギターのままで残したかったですが、馴染みが悪かったためマリンバの音色へ変更。
リズムの雰囲気が分かりづらい為、リズミカルに演奏されるように、付点のディレイを設定しました。
<blockquote class="twitter-tweet"><p lang="und" dir="ltr"><a href="https://t.co/LbJ1hWNE7o">pic.twitter.com/LbJ1hWNE7o</a></p>&mdash; ABC (@ABC47696092) <a href="https://twitter.com/ABC47696092/status/1338863580016349191?ref_src=twsrc%5Etfw">December 15, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

※クオンタイズとは
MIDIシーケンサの機能の一つで演奏データのタイミングのズレを補正する効果の事。

##### ■bass
ベースは基本的には単音の楽器だと思いますが生成されたものには、和音が多く含まれていたので不要なmidiノートを削除しました。
<blockquote class="twitter-tweet"><p lang="und" dir="ltr"><a href="https://t.co/mCssZwlGId">pic.twitter.com/mCssZwlGId</a></p>&mdash; ABC (@ABC47696092) <a href="https://twitter.com/ABC47696092/status/1338863685205336064?ref_src=twsrc%5Etfw">December 15, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

##### ■pad
修正なしの状態でも使えそうでしたが、一応クオンタイズし、音色をさらに丸いものへ変更しました。
<blockquote class="twitter-tweet"><p lang="und" dir="ltr"><a href="https://t.co/TWk86no6Tz">pic.twitter.com/TWk86no6Tz</a></p>&mdash; ABC (@ABC47696092) <a href="https://twitter.com/ABC47696092/status/1338863751831797761?ref_src=twsrc%5Etfw">December 15, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

## ■簡単に構成を作ってみる
上記、修正した各パートをそれっぽく並べてみました。
<blockquote class="twitter-tweet"><p lang="und" dir="ltr"><a href="https://t.co/EAGfSQQFtf">pic.twitter.com/EAGfSQQFtf</a></p>&mdash; ABC (@ABC47696092) <a href="https://twitter.com/ABC47696092/status/1338863831531937795?ref_src=twsrc%5Etfw">December 15, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

以下、DTMの画面。
緑のトラックがオリジナルでオレンジのトラックが編集後のトラックになります。
![Logic pro_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/954355/07b240f4-0294-16a6-f2b1-3c7de7c45b28.png)

## ■まとめ
サンプルメロディから拡張したての状態では、様々なノイズがあり聞きづらかったですが少し整えるだけでしっかり音楽になっている事がわかりました。
今回は既存のモデルを使用しましたが、トレーニングした独自のものを使用する事はもちろん可能です。
midiが不自然な位置に配置されない、また不協和音を発生させないようトレーニングできれば、作曲の一部アイディアとしても機能させる事が出来るのではと思いました。