見出し画像

【Claude AI】一瞬でMax for Live開発ができる時代になった!

今日、Delay & Reverb Time CalculatorというサイトをMax Audio Effectとして使えたら便利だなと考え、アイディアをClaudeに投げたら、まさかのmaxpatファイルとjsuiスクリプトファイルを勝手に生成してくれてしまった。1日かけて試行錯誤して作る予定が5分で終わったのです。
無料でダウンロードできます!ぜひお使いください。

作ったもの:Delay & Reverb Time Calculator

音楽制作をしている人ならご存知の「BPMに同期したディレイ・リバーブタイムの計算」。

  • 今のBPMで1/4音符は何ms?

  • ホールリバーブのプリディレイは?

  • ドット音符やトリプレットは?

毎回計算サイトを開くのが面倒で、「これをAbleton Live上で常時表示できるM4Lデバイスにしたい」と思ったのが始まりでした。

目標スペック

  • Live の BPM を自動取得してリアルタイム更新

  • Reverb:Hall / Large Room / Small Room / Tight Ambience の4サイズから1つ選んで PRE-DELAY・DECAY TIME・TOTAL REVERB TIME を表示

  • Delay:1/1〜1/512の10種から1つ選んでNORMAL・DOTTED・TRIPLETのms&Hzを表示

  • Abletonのデバイスビューに収まるサイズで表示

開発の流れ

Step 1:参考画像を渡してお願いする

まず、ウェブで見つけた計算表のスクリーンショットをClaudeに貼り付け、「これと同じものをMax for Liveで作って」と伝えました。

するとClaudeは画像を読み取り、数値の法則性を自分で解析し始めました。

画像から数式を逆算して、コードに落とし込むロジックを自分で導き出したのです。これは正直、驚きました。

Step 2:2つのファイルが生成される

Claudeが出力したのは2つのファイル。

① DelayReverbCalc.js(jsuiスクリプト)

Max for Liveの jsuiオブジェクトで動くJavaScript。mgraphics APIを使って表をゼロから描画します。BPMはLiveの LiveAPI を通じて200msごとに自動ポーリングしようとしたそうですが、うまくいっていなかったのでMax for Liveの plugsync~ オブジェクトを通じてLiveのトランスポート情報を取得しました。

javascript(うまくいってない)

function loadbang() {
    liveAPI = new LiveAPI("live_set");
    pollTask = new Task(function () {
        var t = parseFloat(liveAPI.get("tempo"));
        if (!isNaN(t) && t > 0 && Math.abs(t - bpm) > 0.005) {
            bpm = t;
            mgraphics.redraw();
        }
    }, this);
    pollTask.interval = 200;
    pollTask.repeat();
}

② DelayReverbCalc.maxpat(Maxパッチ)

Max独自のJSON形式のパッチファイル。

Step 3:「全部表示すると収まらない」→ UI設計を変更

最初のバージョンは全データを一覧表示するものだったが、「画面に収まらないかも」と気づき、方針を転換。

「1つ選んで表示する方式にして、インレットを2つ追加して選択できるようにしてほしい」

するとClaudeは inlets = 3 でインレット数を宣言し、inlet グローバル変数でどこから信号が来たかを振り分けるコードを書いてくれました。

javascript

inlets  = 3;   // BPM / Reverb選択 / Delay選択

function msg_float(v) {
    if (inlet === 0) { bpm = v; }
    else if (inlet === 1) { reverbIdx = Math.round(v); }
    else if (inlet === 2) { delayIdx  = Math.round(v); }
    mgraphics.redraw();
}

Step 4:169pxの壁

「Abletonのデバイスビューに収まる高さを調べて」と聞くと、Claudeは即座に公式ドキュメントを検索し、

「Live devices の高さは固定で 169px です」(Cycling '74 公式ドキュメント)

https://docs.cycling74.com/userguide/m4l/live_userinterfaces/

という答えを持ってきました。

現行デバイスは220px超。即座に全レイアウトを計算し直し、169px以内に収まるよう再設計してくれました。

まとめ

通常であれば、M4Lのドキュメントを読み漁り、mgraphics APIの使い方を調べ、JSONパッチ形式を理解し…と1日かかっても不思議ではない作業。

Claude AIは「アイデアを持つ人」と「それを実装できる環境」の間にある壁を、劇的に低くしてくれたように感じました。

Max for Liveに限らず、「こんなツールがあったらいいな」というアイデアを、今すぐ形にできる時代になったのだということを、今回の体験で強く実感しました。

あなたのアイデア、Claudeに話しかけてみては?

改めまして、ダウンロードはこちらから↓


いいなと思ったら応援しよう!