昨年も似たような記事書きましたが、当時はChatGPTをメインで使ってた思うけど最近は事情がすっかり変わってきました。まず、昨年10月くらいからGoogle社のGeminiの精度が上がって、おっ?っとは思ったんだけどGoogle Sheetsの関数いじらせても時々間違うし、プログラミングもChatGPTと同じくらい行けるかなと思ったけど、意外と向き不向きあるみたいで(勿論どのAIに対しても全方位で攻めてるわけではないのであくまでも僕の環境という視点ですね、画像生成には興味がないので)。そうこうしてるうちにAnthoropic社のClaudeが使いやすくなって、今年に入って段々ChatGPTは使わなくなり、そう言えばGemini最後に使ったのいつだろう?みたいな感じになった4月中旬なんです。
海外のポッドキャストで聴いた話だけど、Google社内ではGemini以外のAIは使うなというお達しが出てるらしく、Claudeの上昇指数に気が付くのが遅れたらしい(ほんとかなw?)。これ聞いて思い出したのが昔(と言っても10年前だけど)マイクロソフト社がWindows MobileとかWindows Phoneというスマホ作ってたんだけど、その時も社内でApple社のiPhone禁止令が出てて開発スタッフはライバルの進歩の速さをなかなか体感できずに終わったという話があったけどそれを思い出しちゃったなあ(一部は都市伝説ねw でもそういう社内文化は確かにあったらしい、、、)
というわけで結局今はほぼ99%Claudeだけしか使ってないんです。そして先月の確定申告の時期はCoworkに働いてもらって資料の整理が爆速で終わってしまいました。昨年の確定申告はChatGPTに手伝ってもらったけど、クオリティもスピードも昨年とは比較にならなかったですね。
とまあそういう話はそれくらいにして今はAI(Claudeね)を何に使っているかというと、特に4月9日にMaxプランが登場してからは、前からこんなプラグインがあったらいいのになあ〜と考えてたプラグインを仕事の合間(正確には仕事してる裏で)作っています。
少しプラグインの開発環境のJUCEについて書きますね。2014年にLAに引っ越したらどこのカフェに行ってもラップトップでプログラミングしてる人が2〜3人は居るような環境に感化されて、それまでKontaktのスクリプトや時々このコラムでも紹介しているようなApple Scriptを書いたりはしていたんですが、もうちょっとマジで勉強する事にしたんです。ワークショップに行ったりもしましたが、まあ〜専門家ではない僕が英語で未知の分野の授業を受けるのは相当無理があって(すぐに友達になった子がLinux使いだったんで、英語的なプログラミングの考え方の基本はその子から教えてもらった)、ネットでちまちま勉強するスタイルでしたけどね(笑)。
JUCEはオーディオアプリケーション/プラグイン開発で使われている定番フレームワーク。公式サイト下部の採用企業リストの顔ぶれからも業界スタンダードであることが分かる。
JUCEがMacでも開発環境が整って、ROLI(SeaboardとかLightpad Blockを売ってた会社ね)がJUCEを買収してJUCEのコミュニティが安定&活発に。ADC(Audio Developer Conference)というJUCEが主催する年次カンファレンスが、2015年から最初はロンドンで毎年開かれるようになってネット上でも(YouTube含む)資料が手に入りやすくなったんです。
と僕もやる気だけは上がる一方で、JUCEで使用する言語がC++なんですが、これが難しいんです。一応本職作曲家だしね、それくらいの言い訳してもいいよね、、、
例えば音楽用のプラグインを作るにはあちこちの変化がリニアではすまないので、”いい感じの”カーブを描かなきゃいけないわけです。JUCEではskewというパラメータがあるんです。英語の意味は”ゆがめる”です(知ってた?)これを使って
↑の説明、NormalisableRange(最小値, 最大値, ステップ, skew)
こんな書き方するんですが、fはfloatの略でMIDIコントローラー作る時も使うんだけど、32bitの浮動小数点の意味ですね。ちなみにfつけないと64bitになります。
とまあ簡単ではないわけですよね(笑)。そしていつの間にかMIDIコントローラー程度はちまちま作ってましたけど、プラグインの開発からは距離が出来てしまったんですね、、、
と話がどんどん長くなりますが、現在はClaudeに手伝ってもらって自分用に使いやすいプラグインを作っています。さらに僕はNuendoを使っているので以前もこのコラムに書きましたが、VST3のプラグインの敷居が下がったので自分でプラグイン作って自分で試すにはバッチリな環境なわけであります!
これをProToolsでやろうとするとAvid社とデベロッパー契約をしなきゃいけないんで、まあ手続きすればいいんだけどちょっと面倒なんですよね。でもProToolsのオンラインバウンスとオフラインバウンスがビット精度で同一なのはそういう野良プラグインを許さない会社のアティチュードから来ているので、悪い事ではないと思っています。
具体的なプラグインの作り方はここでは言及しません。いくらClaudeにプラグインのコードを書いてもらってもどのみちMacのターミナルを使わなければいけないんですが、僕の周囲の作曲家やミュージシャンでターミナルコマンドを打てる人って数えるほどしかいないし、一旦ターミナルでMacの挙動を調整したり(例えばマウスの移動スピードはターミナルからコマンドを打つとシステム設定以上のスピードにできる)、ターミナルを使うということは「Undoのない世界」に足を踏み入れることだし、パスの指定ミスるとフォルダ全部とか下手するとサンプリングライブラリー全部消えました、みたいな世界線に一発で飛ぶので僕に責任が及ぶ形で扱いたくないわけです(笑)
作ってみたかったら自己責任でClaudeに聞いてね。ただし無料プランのSonnetではちょっと無理かも、、、改訂とか修正を重ねいく時に長いコードの一貫性が保てなくなるので、Opusをたくさん使えるMaxプランとかはいいかも、、、
できたその日から速攻で毎日使ってるプラグインを二つ紹介します。
まず劇伴と言えばディレイ(?)です。以下の機能が欲しくて作ったディレイプラグインです。
1)WET成分はできるだけ上げたくないけど(他の楽器をマスキングしてしまう原因になるので)、でもディレイとしてちゃんと聞こえたい、、、そのためにDAWのセッションに基づいたディレイタイム(付点8分とかね)から10ms〜30ms程度ずらす。ということをしょっちゅうやっていたのですが(ジャストだと他の楽器のタイミングと重なる確率が格段に上がるので、余計マスキングの原因になるから)それを手早くできるようにする。
2)モジュレーションで揺らすとオケなかで目立つのでこれもWET成分を控えめにするのに効果あるんです。そのLFOのDepthとRateも現場で実際使う範囲のパラメータにしたい(こんなに揺らすことないんですけど、というプラグイン以外と多いのw)
3)特にエピック系のリズムの中ではディレイ音のローが邪魔になることもよくあるので、ディレイ音にローパスとハイパスのフィルターを各ディレイ別々に設定する。それと似たようなことなんですけど、PingPongディレイの二発目からローカットしたいこともよくあるんですよね。
4)ディレイ音をLFOでパンニングする。または、ディレイが発生する度にパンニング位置をランダムに変化させたい(それもローパス&ハイパス込みで)。
5)ディレイ音のアタックを削りたい。
6)PingPongディレイともう一つか二つ独立したディレイが必要。
7)ディレイ音を目立たせるためにノイズを微妙に足したい。これは昭和世代のハードウエア体験から来てるんですが、昔のテープディレイとかハードシンセにかけるコーラスとか、機材所以のノイズも混みでディレイやモジュレーションがかかるんで効果が深かったんですよ。そのためにノイズを付けて、そのノイズのアマウント量も調整したいと。
という欲張りなディレイを作りました。少しずつJUCEに触れてきた経験で役に立ったのはこのプラグインで使っているノイズでUniformとGaussianという2種類のノイズが選べるように僕から指示を出せたことですね。皆んなが馴染みのあるノイズといえばホワイトノイズとかピンクノイズだと思うけど、これらのノイズだと周波数帯域がフラットすぎたりハイが落ちすぎてたりするので、ハードウエア由来のノイズとしては不自然なんです。特にGaussianは振幅の分布が中央値によっているので空気感やアナログ感出すなら適しているんです。これらのノイズのゲイン量もプログラミングでもともとかなり小さめにしているので、このスナップショットでかなりノイズ大きそうな設定に見えると思いますけど、実際は実践的な範囲に収まってます。

あと、入力段にも独立してローパスとハイパスを付けているのもかなり実践的でしょw?
長くなったので二つ目のプラグインは次回紹介します。そしてCluadeにプログラミングしてもらうにしても、書き出しの方法が大きくは2通りあるのでできるだけミュージシャンフレンドリーな書き出し方をClaudeにしてもらう指示の仕方も紹介します。
※プラグイン自作/利用等の各種作業で生じるいかなるトラブルも責任は負いかねます。自己責任ということを踏まえてご参考としてくださいませ。作成過程にターミナルで作業する際、コマンド内容を理解せず使用すると、意図せぬファイルの削除やシステム変更につながる可能性もあります。信頼できないソースからコピーしたコマンドの実行などにより情報流出等のリスクも存在するためご注意ください。