読了目安:約6分
Studio Oneのエフェクターを、文章の指示でAIに動かしてもらう仕組みを作っています。まだ開発途中ですが、ドラムのEQとコンプを任せたテストでは、参考曲にかなり近い音になりました。
10月10日の夜、テストで使ったのはZeddの「Stay」のドラムです。Studio Oneの画面には、変更の履歴がこう残りました。
- 19:19:46 ドラムにNeutron 4のEQを挿す(理由:Stayのドラムの帯域バランスに寄せるため)
- 19:20:12 114Hzを-3dB、370Hzを+3dB、1.35kHzを+1.5dB、10.3kHzを+3dB
- 19:20:19 Neutron 4のコンプを追加(理由:Stayよりクレストが約5dB大きいため)
- 19:20:34 スレッショルドを0から-6dB、レシオを2から3、アタックを20msから10ms、リリースを100msから80ms
ドラムに最初のプラグインを挿してから最後のつまみを回すまで、48秒です。この間の操作はすべてAI(AnthropicのClaude)が行い、理由の欄もAIが自分で書いています。同じ時間に、シンセの耳に刺さる3.5kHzを削り、マスターのピークを抑えるリミッターも挿していました。
聴いてみて、びっくりしました。EQとコンプだけなのに、Stayのドラムとかなり近い質感になっていたからです。
この記事では、その裏で何が起きているのかを、なるべくタネを明かす形で書いてみます。
作ろうと思ったきっかけ:いつも同じエフェクトを挿している
曲をもっとたくさん作りたい、というのが出発点です。
自分のミックスを振り返ると、使うエフェクトはだいたい決まっています。ドラムにはこのEQとこのコンプ、シンセにはこれ。毎回同じ道具を、毎回ゼロから回している。だったら、ここは仕組みにできるはずだと思いました。
狙いは、全部をAIに任せることではありません。つまみを回す作業はAIに渡して、私は「これでいいか」の判断と、最後の微調整だけをする。そうすれば、ミックスの時間が減るだけでなく、判断1回あたりの質も上げられるのではないか。浮いた時間は、曲を聴くインプットにも、曲を作るアウトプットにも回せます。
ただ、作り始めてすぐに、壁が4つあることが分かりました。
壁1:AIには耳がない
いちばん根本的な問題です。AIは音を聴けません。「もう少し抜けを良くして」と頼んでも、今どう鳴っているのかが分からない。
そこで、役割を分けました。**測るのはプログラム、判断するのはAI**です。
各トラックに挿したプラグインが、流れている音を常に測っています。測るのは、音の高さを31の帯域に分けたときの各帯域の量、音量(LUFS)、ピークの鋭さ(クレストファクター)、アタックの立ち上がりの速さなど。参考曲も同じものさしで測っておき、両方の音量をそろえてから、帯域ごとの差を出します。
AIに渡すのは音ではなく、この「差」の数字です。実際のテストでは、こんな要点が出ていました。
- クレストファクターが参考より5.5dB大きい(ピークが立っている/圧縮が弱い)
- 減衰が参考より短い:53ms/参考133ms
これを読んだAIが「ピークが立ちすぎているから、コンプで密度を上げよう」と判断して、冒頭の操作になったわけです。人間のエンジニアが耳で感じている「なんか暴れてる」「詰まってない」を、数字に置き換えて渡しているイメージです。
ちなみに、音声そのものは外に送っていません。送るのは数字だけです。
壁2:Studio OneはAIに操作口を開けていない
次の問題は、AIがどうやってエフェクターのつまみに触るかです。
Studio Oneには、外部のプログラムからインサートのエフェクターを自由に操作する入り口がありません。画面のボタンの位置を覚えさせてクリックさせる方法もありますが、バージョンが変わったら一発で壊れます。
そこで、**自分でプラグインを1本作り、その中に他のプラグインを入れる**ことにしました。
Studio Oneから見ると、各トラックには「AI Mix Wrapper」という私の自作プラグインが1本挿さっているだけです。でもその中には、Neutron 4のEQやコンプなど、手持ちの好きなプラグインを最大8個まで直列につないで入れられます。入れ子になったマトリョーシカのような構造です。
外側が自作なので、中のプラグインのつまみは全部、自分のプログラムから読み書きできます。VST3やAUの形式であれば、メーカーを問いません。私のMacに入っているプラグインを数えたら758本ありました。原理的には、このどれでもAIに動かしてもらえます。「任意のエフェクター」と言えるのは、この構造のおかげです。
各トラックのWrapperは、裏で動く「ハブ」という小さなプログラムに集まります。ハブが全トラックの状態をまとめて、AIが使える道具(MCPという共通の規格)として差し出す。だから「キックとベースの被りを直して」のように、トラックをまたいだ指示も届きます。
チャット欄は、マスターに挿す「AI Mix Master」というもう1本の自作プラグインの中にあります。Studio Oneの画面の中で、文章を打てばそのまま指示になります。
壁3:つまみの名前が意味不明
中に入れたプラグインのつまみを読み出してみると、AIが困る名前がたくさん出てきました。
たとえばNeutron 4のコンプは「C1 B1 Threshold」。これはまだ推測できる方です。Native InstrumentsのSolid EQは、つまみの値を「何Hzか」「何dBか」という表示で返してくれません。プログラムから見えるのは0から1の間の数字だけで、0.5が何Hzなのかが分からない。これでは「100Hzを少し削って」が実行できません。
これを解決したのが「プロービング」という仕組みです。名前は大げさですが、やっていることは地道です。
1. プラグインの今の設定のコピーを、Studio Oneとは別の場所で立ち上げる
2. ピンクノイズと、0.25秒ごとの打撃音を流す
3. つまみを1つずつ段階的に動かし、出てくる音がどう変わったかを測る
Solid EQのハイパスのつまみなら、0.5は134Hz、0.8は330Hz、というような対応表ができます。さらに「このつまみを上げると低域が削れる」「このつまみは音量に効く」といった効き方も記録して、ファイルに保存しておきます。
人間が初めて触るプラグインで、つまみを回しながら音の変化を聴いて覚えるのと同じことを、測定でやっているわけです。コピーで試すので、ミックス中の音は変わりませんし、仮にプラグインが落ちてもStudio Oneは巻き込まれません。
壁4:AIの言うことを、そのまま信用しない
最後の壁は、技術というより設計の考え方です。AIは、ときどき間違えます。いきなりEQで+15dB持ち上げたり、出力のつまみを最大にしたりされたら、スピーカーも耳も危ない。
なので、AIの指示は必ず関所を通るようにしました。
- **1回の変更量に上限を置く**。EQのゲインは1回±3dBまで、コンプのスレッショルドは±6dBまで、レシオは1.5倍まで
- **危ないつまみはロックする**。出力ゲイン、ドライ/ウェット、リミッターの天井などは、私が解除しない限りAIは触れない
- **悪化したら勝手に戻す**。参考曲との差が、変更前より広がったら自動で元に戻し、理由をAIに返す
- **全部を記録し、A/Bと取り消しを付ける**
冒頭のEQの数字が「-3dB」「+3dB」、コンプが「-6dB」と、上限ぴったりの値ばかりだったのは偶然ではありません。AIは上限を知っていて、そこまでは攻めてくる。でも1回でそれ以上は動かせないので、聴いてからもう一歩進むかどうかを決めるのは、人間の側になります。
一方で、関所が効きすぎた跡も見つかりました。ドラムのEQで、AIは114Hzのバンドの形を「Analog Low Shelf」から「Proportional Q」に切り替えようとしていました。ところが関所は、この切り替えも「1回に動かせる量」で制限してしまい、選択肢を1つ進めただけの「Bell」で止めていたのです。履歴を読み返すまで、私も気づいていませんでした。結果的に音は良かったのですが、AIの狙いどおりではなかったわけです。選択肢を切り替えるタイプのつまみは扱いを分ける必要がある、というのが今回の宿題です。
最終判断は私の耳です。どれだけ数字が参考曲に近づいても、良い音だとは限りません。A/Bボタンを押して聴き比べ、違うと思ったら戻す。ここは仕組みにしないと最初から決めています。
余談:Neutron 2の数字を読んでいた頃
以前、Neutron 2のAIが出した設定を「答え」として読んでいた話を書きました。AIが組んだEQの数字を見て、なぜここを削ったのかを考える。その繰り返しで、ミックスを覚えてきました。
今回の仕組みでは、AIがNeutron 4のつまみを回しています。立場が少し入れ替わったようで、おもしろいなと思っています。
ただ、やっていることは昔と同じかもしれません。履歴に残る「理由」の欄は、あの頃に私が自分で考えていた「なぜ」を、AIが先に書いてくれているものです。私はそれを読んで、納得できるかどうかを判断しています。
ちなみに、この仕組み自体のプログラムも、Claude Codeという開発用のAIと一緒に書いています。仕様書のタイトルは「AIミックスプラグイン 仕様書(Claude Code向け)」です。AIに作らせたプラグインで、AIにミックスさせている。書いていて少し笑ってしまいました。
まだできないこと:目標は「参考曲のフォルダを渡すだけ」
開発はまだ途中です。今できないことも正直に書いておきます。
- **参考曲の下準備が手作業**。今は、参考曲を事前に別のツールで測っておく必要があります
- **Studio Oneのフェーダー、パン、センドは触れない**。プラグインの外側にあるものは、仕組み上操作できません
- **Pro EQなどの内蔵エフェクトは入れられない**。Studio Oneの内蔵エフェクトは単体のプラグインファイルになっていないためです
- **サイドチェーンは未対応**。キックに合わせてベースを抑える、といった使い方は、今はWrapperの外で組みます
- **「温かい音」のような言葉を、まだ数字に変換できない**。言葉と測定値の対応を、自分の好みとして少しずつ貯めていく仕組みを次に作る予定です
最終的に目指しているのは、参考曲のmp3やwavが入ったフォルダを指定するだけで、AIが勝手にその曲を聴きに行き、それを参考にミックスまで組んでくれる状態です。自分でアレンジした曲なら、たいてい頭の中にリファレンスがあります。その音源さえ用意しておけば、1発で近い質感のミックスが出てくる。私は、そこから先の判断と微調整に集中する。
歌ってみたのMIX依頼では、参考曲は1曲がいちばん伝わると書きました。人間のMIX師さんに伝わりやすい渡し方は、どうやらAIにとっても伝わりやすいようです。
48秒で組まれたドラムを聴きながら、次はスネアだけ戻してみようか、と考えている時間が、今いちばん楽しい作業になっています。


