DAW悪戦苦闘記

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

Jukedeck再訪

先週末に Sleepfreaks でAI作曲ツール・サービスの一つである Jukedeck が紹介されていた。ちょうど1年ほど前に私も同サービスを取り上げたことがあったので、懐かしさ(?)を感じつつも再度軽く振り返ってみることにしたい。機能その他仕様に関しては特に大きな変化はないように思われる。

なお、BGM程度の生成には使えそうだという結論は奇しくも私と同じ見解である。また生成結果の著作権の帰属が要注意である点は私の記事同様にきちんと指摘されている*1

sleepfreaks-dtm.com

daw-jones.hatenablog.com

Jukedekの残念なところはMIDIデータが落とせない点であるが、ベータ版のAPIを使えばMIDIデータも利用可能なようだ。ただし、まだ招待制の段階らしく、APIのアクセス・キーを申し込んだユーザ全員に解放されるわけではない。また、おそらく正式のプロダクト版リリースの時点で有償プランに移行する可能性が高いと想定される。

www.jukedeck.com

この種のAI作曲ツールは各社まだまだ試行錯誤中とはいえビジネスだから有償であることは一向に構わないが、個人的にはプラグイン・ソフトの形態でDAWとシームレスに連携できる製品を期待したい。ここを避けると結局DAWメーカーの方からバンドル形式でAI支援ツールなどを出してくる可能性が非常に高く、Waveform とか Studio One 4 などにはそういった萌芽がすでに見えている。

あと案外見過ごせないのが Logic Pro X / GarageBand(以下GB)で、正直言って初歩的な Jukedeck レベルのものであれば数年後にGBが機能追加していると考えられなくもない。というのも、リズム系の自動生成機能についてはすでに Drummer という形で実装されているからである(AIかどうかはともかく)。

*1:ロイヤルティ・フリーであっても買取以外は著作権はJukedek社に帰属する。現行プランでは著作権買取価格は1曲あたり$199である。この価格を高いと見るか安いと見るかはユーザの立場によって異なると思うが、プロ以外はハードルが高いだろう。

T7の新機能注目点 (Tracktion)

本年度MIDI検定1級の本番に重なったせいもあり、T6からT7へアップグレードしてから大して触らぬまま1ヶ月程度間が空いてしまったが、先日に新機能の概要をざっと把握する機会を得たので備忘録がてら簡単にまとめておこうと思う。

daw-jones.hatenablog.com

なお、T7の新機能や改善点の全容に関しては、以下の公式チュートリアル動画リストで網羅されているので、英語に抵抗がない人は参考にされたい。有償版は約2年前にリリースされているので簡単な機能紹介記事などはネット上にたくさん転がっているが、下記公式チュートリアルさえ見ておけば理解十分だろうと思う。

www.youtube.com

この中から特に個人的な注目機能としては、以下の2つに絞られる。

Clip Layer FX

オーディオ・クリップ単位の編集において、エフェクトやピッチ修正、オーディオ・ベンド編集(Tracktionでは"Warp Time"と呼ぶ)などを複数重ねて適用できるようになった。これはかなり強力な機能で、特許出願中とのことである。

www.youtube.com

Warp Time を含め、個別の編集機能の多くはT6でもすでに備わってはいたが、それらを重層的に合成できるようになったので、いろいろとユニークな加工編集ができると思われる。ただし、あまりやり過ぎるとちょっと修正を加えるだけでもCPUがフル回転する羽目になる。

因みに、"Warp Time"と同様のタイミング補正機能は Studio One Pro版にも搭載されているが、残念ながらPrime版では利用できない。意外なことに、GarageBand には同様の機能が入っている(知らない人は多いかも)。また、オーディオ・クリップ(イベント)単位のエフェクト (FX) 適用についても Studio One のPrime版では割愛されている。

LFO Modifier

トラックのボリューム/パンや、その他エフェクトのパラメータに対して、サイン波やノコギリ波等のプリセット波形を適用して自動制御する機能である。一般的なオートメーションの拡張機能といってよいだろう。UIが優れていて直感的に操作しやすい。

www.youtube.com

これは Studio One で言えば、内蔵音源 Presence XT におけるモジュレーション・マトリックスの定義設定に該当すると思う。Presence XT ではLFOは2器搭載でサイン波などの波形も選択できるようになっているが、モジュレーション・マトリックスはやや使い勝手が悪い (daunting) 印象がある。

daw-jones.hatenablog.com

オーケストレーション入門講座

8月31日よりSleepfreaksでオーケストレーションの入門講座7回シリーズが始まったようで、これは来年以降のMIDI検定1級受験者にとっても結構助けになる参考資料ではないかと思う。

sleepfreaks-dtm.com

何度かこのブログでも書いたように、MIDI検定1級の課題曲は作編曲者の嗜好により生楽器主体のクラシック寄りな曲調ばかりなので、オーケストラ楽器の基本的な特徴や効果的なミックスダウンの方法などは必須の予備知識となっている。

daw-jones.hatenablog.com

私がやったように、過年度課題曲演習をやる中で自力でいろいろと資料を漁って勉強するというのも一つの方法ではあるが、上記のチュートリアルで専門家からオーケストラ音源を使った具体的な方法論を伝授されるのであれば、これ以上に効率的・効果的な学習方法はあるまい。残念ながら今年の1級受験には間に合わなかったが。

EDM等の一般制作においてはオーケストレーションなど一見関係なさそうに思いがちだが、アレンジや音作りへのヒントになる可能性はあるだろう。常識として習得しておいても損はないと思う。

2018年MIDI検定1級試験を振り返る (3) - 音色

以下記事の続き。最後の締めくくりとして、割と苦労した音源・音色について書き記す。

daw-jones.hatenablog.com

毎度お馴染みの西洋管弦楽器系については Studio One 付属の Presence XT サンプリング音色で十分対応可能であるが、今回楽曲で一番課題となったのは、龍笛と中国伝統楽器の扱いである。

龍笛および中国伝統楽器

オリエンタル楽器としては、主として雅楽で使われる龍笛と、中国伝統楽器の以下の2種類であった。

龍笛

Presence XT にはなく、またその他のプラグイン音源でもこの音色を保有していなかったので、止むを得ずピッコロで代用することにした。非常に高い音域を担うせいか、幸いなことに聴感上はほとんど同じような印象で、なんとか誤魔化せたと思われる。

なお、PresenceXT のピッコロのサンプリング音色には、ブツブツとリップ・ノイズのような雑音が若干混入しているため、ローパス・フィルター(Presence XT に音色パラメータあり)を適用して削り、丸みを出す。

二胡 (Erhu)

これはそのものずばりな音色が GarageBand にある。これをオーディオで書き出したものを再び Studio One に取り込んでミックスした。

揚琴 (Yangqin) または Dulcimer

今回個人的に一番苦心惨憺した音色である。他の受験者でもNI社のKontaktサンプラー音源等を保有していない人は非常に難しい工夫対応を迫られたのではないかと思う。

私は同音色を保有していなかったので、類似音色を合成することで対策を講じた。すなわち、ピアノ音色と、GarageBand にある古箏 (Guzheng) を混ぜ合わせる。幸い本曲では高域だけで鳴らしているために、結果としては当たらずと言えども遠からずな音色になったように思う。

しかしもし中低域で鳴らしているような楽曲だと代用が難しかった可能性がある。というのも、揚琴は中低域では一段とオリエンタルな雰囲気が加わり、なんとも言えない独特のエキゾチックな印象を抱かせるからである。私が言うのもなんだが、正直なところ高域ばかり使っている編曲はもったいない感じがした。

この楽器パートはトレモロを多用するが、ベロシティやボリューム変化で抑揚をうまく付けてあげないとシンセのように非常に機械的に聴こえる難点がある。この辺の調整には結構苦心した印象がある。

ドラム

譜面や制作規定書に明記はされていないのだが、編曲者コメントから類推するに、明らかに中国の打楽器を想定しているので、私は GarageBand の Chinese Kit 音色で差し替えた。ただし、これ単独だと線が細い印象があったため、通常のドラムキット音色を微かに上乗せ合成した。

譜面上シンバル連打の指定がある小節は銅鑼の音色に差し替えている。おそらく編曲者の意図としてはその通りなのだろうと想定する。因みに銅鑼の連打音色は上記の Chinese Kit に含まれている。

ミックスダウン

今回課題曲は、どちらかと言えば高域で鳴らすパートが多く、そのまま素で混ぜ合わせると、干渉し合って棘が出たりノイジーな感じが否めなかった。管楽器などは適度にローパス・フィルターを適用するなどして幾分まろやかに仕上げることもした。

抑揚表現が重要ポイントとなるクラシック系楽曲であることから、マスター含めてほとんどコンプレッサーは掛けないで編集し、ダイナミックレンジ維持を重視する。

受験対策めいた話

1級の楽曲は生楽器のシミュレートに偏重しているため、どういう方法であれ(有償無償を問わず)生楽器音源をある程度充実させておいた方が対応しやすい。

もっとも、Macユーザは GarageBand の付属音源で相当程度カバーできるからあまり心配は要らないかもしれない。自主制作におけるジャンルの守備範囲にもよるが、この辺はできるだけ無償音源で対応した方が賢明であろう。音源対策が必要と言いつつも、MIDI検定のためだけに高価な音源を導入するのは費用対効果の面から正当化できないだろうから。

逆に冨田勲ばりに敢えて全パートをシンセ音色でアレンジしてしまうという手もなくはないが、2次審査でどういう評価を受けるかは知りません(苦笑)。

2018年MIDI検定1級試験を振り返る (2) - MIDIデータ

以下記事の続きで、先日終了した本年度MIDI検定1級試験を振り返る。今回は、同検定の本丸とも言える譜面解釈やMIDIデータの打ち込みに焦点を絞る。

daw-jones.hatenablog.com

前回指摘した通り、本年度課題曲は比較的音数が少なかったのと、それに加えて9割方レガートの音運びであるせいで、ほとんどのノートを音価100%のままゲートタイム無修正で済ませたという事情も手伝い、打ち込み作業自体は非常に楽であった。

譜面解釈の要注意箇所

今回の楽曲で譜面解釈の観点から肝になると思われた表現は、以下の2点に絞られると思う。

ハープのアルペジオ

アルペジオについては以前に下記記事で書いた通りである。なお、ギターの例ではあるが、公式ガイドブックのp.228にも同様の概説が掲載されている。

daw-jones.hatenablog.com

1次審査上は、発音タイミングについては出だし最初の音のみ、ピッチについては全構成音でチェックされると思われる。ここは上例の通りに各構成音の下から(ルートに近い方から)発音タイミングを徐々にずらしていかないとアルペジオにならないので、横着して和音で入れるなどするとレギュレーション違反に引っかかるはずである。

トレモロ

トレモロは、単音のトレモロと2音間トレモロの2種類が出現する。単音トレモロは過年度課題曲演習で何度か取り上げた通りで、今回特筆すべき点はない。

daw-jones.hatenablog.com

その一方で、2音間トレモロは(確証はないが)おそらく今回初登場ではないだろうか。解釈・展開方法については、以下の楽典.comの解説を参考にした。例えるならば、結果としてトリルに似た表現となる。

楽典:略記法

移調楽器

今回楽曲ではクラリネット(Bb)が移調楽器に該当する。実音であるMIDIノートは記譜より2半音下げて入れることになる。私は過年度課題曲演習で体験済みだったので今回慌てずに対応することができた*1。上述のアルペジオトレモロもそうだが、やはり過去作品で何度か演習しておけば本番で焦らずに済む。

daw-jones.hatenablog.com

その他にはオクターブ調整が必要な楽器が2種類あった。すなわち、龍笛は1オクターブ上げて、コントラバスは1オクターブ下げて入力する。

コンティニュアス・データについて

本年度は抑揚表現が非常に大事な楽曲であったため、音量の変化をどう実現するかが一つの課題となる。いくつか方法はあるのだが、今回私は CC#11 Expression は使わずに Presence XT のパラメータである Gain のオートメーションと、トラック・ボリュームのオートメーションを組み合わせて編集してみた。

ここで Gain オートメーションを使う利点は以下の3点である:

  • CC#11と異なり、いちいちモジュレーション・マトリックスを定義する必要がない。
  • デフォルト値が真ん中の64になっており、音量上げ下げの相対位置を把握しやすい。CC#11だとデフォルトがゼロ値なので*2その辺の尺度解釈が難解になり、フェーダーの音圧レベルとの関係もわかりにくい。
  • カーブ・データは各MIDIイベントに紐付いたCC#7のデータとなるので*3、編集画面上でMIDIイベントごとコピペしやすい。すなわち、類似箇所に対して抑揚表現一体でイベントをコピーできる。これはCC#11と同じ。

ただし、1次審査用のSMFでは不要となるため*4、後で Domino などを使って手動削除する必要があった(その方が無難)。

f:id:daw_jones:20180823163245p:plain

f:id:daw_jones:20180823163341p:plain

ピッチベンド

ピッチベンド・チェンジについては、私は今回はまったく不使用であった。譜面上にスクープなどの指示が一切なかったので、少なくとも1次審査上は不要であると判断した。逆に下手に入れると思わぬ減点を食らう懸念がある*5

2次審査対策としては、強いて言うなら龍笛(およびその他の管楽器)はピッチベンドで音程変化させるとよりリアルな感じになりそうなところもあるにはあったのだが、聴感上ほとんど区別がつかない可能性もあり、結局譜面通りに音符ノートで入れた。ここは時間的な制約も考慮して判断を下す。

セットアップ・データ

各トラックのボリュームとパンは制作レポートの参考例通りに入れた。どうせ審査には関係ないので考えるだけ時間の無駄だという判断である。

また2級実技では定義されるリバーブとコーラスについては特に要請がないため、私は一切指定なしでデフォルトに委ねた。これらをセットアップで入力した場合、制作レポートにいちいち定義値を記入する必要があるかもしれず、かえって面倒臭いことになる。

なお、今回は珍しくも特定トラック(Jingle Bell)のみセットアップ・データなしの指示があった。これは Drums と共にチャネル10の指定になっており、Drumsの方で両者共通のセットアップ・データを送信するからである。

ノート・データの見直し方法

全ノートの正誤チェックに関しては、私は GarageBand のスコア機能を援用した。これについては下記記事でも書いたことがある。

daw-jones.hatenablog.com

この記事でも書いたように、ピアノロール上でのチェックはとても視認性が悪いので、作業非効率に加えて肝心なミスそれ自体の見落としリスクが高い。一方でスコア化した場合、単に見比べるだけで譜面との一致・不一致が一目瞭然となり、あっという間に検証できた。

*1:クラリネット(Bb)の移調は2016年課題曲でも出現した。

*2:Studio One ではそうなっているようである。他の音源やDAWだと異なる可能性がある。

*3:したがって、Studio One から GarageBand 等他のDAWにインポートしても捨てられずに残り、きちんと再生される。

*4:MIDI標準の流儀として、楽曲途中の抑揚表現はCC#7ではなくCC#11を使うことが通例となっているため。1次審査ではコントロール・チェンジは評価対象外だから放置しても問題はないが、一応念のために削除した。

*5:一般規定として、譜面指示があるところ以外はピッチベンドを使用してはならないというルールになっている。

2018年MIDI検定1級試験を振り返る (1) - 全体総括

先日の20日本年度第10回MIDI検定1級試験の制作期間が終了した。私もこの度受験・作品提出に臨んだ一人であり、体験者の端くれとして今回の課題曲と制作過程に関して3回に分けて振り返ってみることにしたい。合否は2ヶ月先の10月中下旬頃に到るまで不明の状態であるが、今後受験を検討される方の参考になれば幸いである。

オリエンタルな曲調が初登場

今回の楽曲は黄河をイメージした中国風なモチーフの作品*1で、作曲者は大浜先生、編曲者はおなじみ外山先生という初の組み合わせである。これは10回記念の例外なのかどうか、今後も作編曲者ペアの課題曲となるのかどうかは不明である*2

昨年度はラテン音楽がモチーフだったので、偶然ではあるが2年続けてエスニック・ミュージックがテーマとなった。ひょっとしたら2020年の東京五輪開催年には日本のエスニシティ、つまり邦楽とか音頭などの土着音楽がテーマとして取り上げられるかもしれない。まぁこれは私の勝手な妄想ですが。

少なかったボリューム

今回は16パート(トラック)、全部で41小節と格段にボリュームが少なく、スコアも4ページしかなかった。ページ数的には過去最少だったのではないか。

どうやら1級課題曲はその再生時間を2分30秒前後に統一しているようで、本曲はBPM=66*3と非常にゆったりペースであったために総小節数が抑えられた格好である。

この点は私を含めて本年受験者はとてもラッキーだったと思う*4。おかげで私は週末の10日から12日まで3日程度でほぼ完成することができた*5

GarageBandに救われる

今回の制作ではGarageBandに非常に助けられた一面があった。具体的には、MIDIデータのスコア化によるチェック検証と音色差し替えであるが、長くなるので詳細は追って記すことにしたい。

音色については、GarageBandの付属音源に含まれる二胡と中国打楽器キットがなければ苦しい事態に陥っていた可能性が高い。以前も指摘したことがあるのだが、GarageBandはまったく侮れない無償DAWだと痛感した次第である。

daw-jones.hatenablog.com

1次審査突破は容易だとは思うが...

MIDI検定1級の合否については1次審査で大方決まってしまう配点基準であることは周知の事実である。今回は上述の通り全体的に音数が少なく、また不協和音や臨時記号もほとんどない譜面であったため、アウトになる可能性は低いという感触は持っている。

2級実技でMIDIデータの見直しをサボった私もさすがに今回は2回見直したので大丈夫だとは思うものの、忘れた頃にやってくる10月中下旬の結果発表まではなんとも不安なままである。これだけ色々と書いておいて落第なら正直恥ずかしいですが。しかし約2万円の受験料もばかにならないのでなんとか1回でパスしたいところである。ともかく神経使って疲れたので当面は忘れていたい気分だ。

*1:主旋律はどこかで聴いたことがあるような割と凡庸な(!)フレーズの印象。なんとなくホルストの惑星組曲「ジュピター」中盤あたりの有名なメロディに似た感じがなくはなかった。

*2:昨年までは外山先生が単独で作編曲を手掛けていたと思われる。

*3:終盤でリタルダントによるテンポ変化あり。

*4:逆に例えば2017年楽曲は非常にボリュームが多かった。この種の当たり外れは如何ともし難いのだが、協会はもう少し年毎のムラをなくす配慮があってもよさそうなものだ。

*5:その後の見直し編集に伴い実際に提出したのは20日締め切り日ギリギリではあったが。

Courseraの機械学習入門講座雑感 (2)

前回記事の続き。今回は講義の中身に関して具体的な気づきなどを書いておこうと思う(ややマニアックです)。

daw-jones.hatenablog.com

講義内容に関して気になったところなど

Back Propagation

これが難解だという感想はよく見かけるのだが、要は計算がややこしいだけであって、基本的な考え方自体は割と単純だと思う。合成関数の偏微分が幾重にも入れ子になっている関係上数式の処理がやたらに煩雑なだけではなかろうか。

これは本講座ではきれいに整理された結果を簡潔明瞭に提示してくれているので、プログラミング課題ではその結果通りにコーディングすれば問題はなく、また実務レベルでは導出過程まで逐一なぞる必要はなかろう。結果の導出が気になる人は以下の資料などが参考なると思う:

Machine Learning Cheatsheet — ML Cheatsheet documentation

SVM

SVMの基本コンセプトそれ自体は大変わかりやすい解説がなされるが、その一方で kernel trick の説明はやや不十分に感じた。非線形性対応のための高次元写像というkernel関数の役目と援用理由についてちょっと説明不足で、一体何をやろうとしているのか趣旨がよくわからない、という印象を受ける。

ここは実務上それほど深く掘る必要はないとは思うが(通例使用するkernel関数は概ね決まり切っているので)、他の教科書をあたるか、またはネット上にわんさか転がっているチュートリアル動画や入門資料等を参照する必要がある。たとえば、以下のQuoraの資料などが参考になった:

What is the kernel trick?

PCM(主成分分析)

本講座では共分散行列から変数合成のためのウェイト・ベクトルを導出する方法が提示されており、これを特異値分解 (SVD; singular value decomposition) と呼んでいる。しかし他の教材では、共分散行列を経ずに元の特徴変数行列Xを直接分解して求める方法をSVDと呼称し、共分散行列のUV行列分解を固有値分解と呼ぶような例もある(こちら方が一般的であろうか)。ここは他書をあたるときにややもすれば混乱する可能性があると感じた。

あと、行列の添字とかタイポらしき混乱が少々あって、特徴変数行列Xの値を次元縮約して変換する数式の説明が若干わかりにくい。UV分解の結果、行列Uからk列抜き出してウエイト行列Wとして解釈すると X*W で新しい合成変数が m x k 行列として求まることがわかれば問題ないのだが。

なお、主成分分析が固有値問題に帰着することの証明・解説は割愛しているので、その辺をもう少し深掘りしたい人は別の資料をあたって理解する必要がある。個人的には以下の記事が参考になった:

blog.aidemy.net

異常値検知 (anomaly detection)

ここでは正規分布確率密度関数上の各一点をあたかも確率値のごとく解釈した使い方があり、ちょっと違和感を覚えたのだが実務的には問題ないということだろうか。本来確率は積分値で与える(定義される)はずなので、理論的に正当化できるのかどうか私にはわからず。この辺は一般的な統計仮説検定と分布の考え方や使い方が異なるように思う。

今後学習すべき領域(本コースでは足りないところ)

機械学習の基本理解と土台は本講座で十分過ぎるぐらい十分だと思う。ニューラルネットについてもいわゆる多層パーセプトロンまではカバーされるので、もっと高度なディープ・ラーニング手法を学習する出発点としてふさわしいレベルと内容である。

とは言うものの、一方で割とよく使われる方法・ツール等で割愛されたものも少なくない。これらは必要に応じて別の講座や教科書などで補足学習する必要があろうかと思う。

Pythonプログラミング

Octaveは研修やプロトタイピングならばともかくも、今日では実務で使われることはまずないようで、どういうパッケージを使うかも含めてPythonコーディングによる機械学習の実践演習が別途必要になってくる。

古典的な機械学習アルゴリズムやデータの前準備処理などについては scikit-learn が定番で、ディープ・ラーニングについては Keras を使用したプログラミングが標準的かと思う*1

Naive Bayes

ナイーブ・ベイズは非常に単純でひょっとしたら小中学生でも理解できるんじゃないかと思うぐらいだが(言い過ぎか)、テキスト解析ではいまだによく使われると聞いたことがある。

ベイズはさらに掘り下げるとベイズ統計学の広大な領域に踏み込むことになるが、データ・サイエンス一般では必須科目かもしれない。PyMC3 などのパッケージを使ったプログラミング講座があれば是非受講してみたいものである。

決定木 (Decision Tree)

特にその発展形でもあるアンサンブル学習の random forest は実務では頻繁に使われるようなので、実務家は勉強しておく必要はあろう。個人的にも非常に興味がある分野ではある。

ニューラルネットの発展とディープ・ラーニング

現在の花形であることは言わずもがな。音楽においても、MIDIデータのみならず音声・オーディオ解析でいろいろ応用の余地があるところでとても興味深い。

周知の通り、昨年夏に試用した Magenta の土台にもなっている。時系列データへの応用に適した RNN (Recurrent Neural Network) は Magenta でも使われており、音楽データの解析では盛んに使われているようである。

*1:バックエンドは Tensorflow とか CNTK などが代表的なものである。