AIにAbletonプラグインを作らせた話
Abletonでコード進行を打ち込むたび、同じことを思ってた。「キーに合わせて、ボタン一発でコードをクリップに書き込んでくれるやつ、無いの?」
調べると有名どころはある。ScalerもRipchordも優秀。でもどれも「自分で鍵盤を押して鳴らす」型で、欲しかった「自動で打ち込んでくれる」とは微妙に違う。そして何より、既製品は機能が固定されてる。使ってて「ここもっとこうしたい」と思っても、足せない。
だったらAIに作らせればいいのでは?——と思って2日間やってみたら、想像より遥かにちゃんとしたものができた。この記事はその記録。Live 12の隠れ機能「MIDIツール」の使い方と、AIチームで開発を回すときの3原則を持ち帰ってもらえる構成にした。
できたもの
「SAKUNOVA Key Chord Generator」というMax for Liveツール。Live 12のクリップに対して、こういうことをする。

キー/スケール追従:クリップのScale設定を読んで、スケール外の音が絶対に出ないコード進行を自動生成
進行24種:王道4536、カノン進行、小室系、ジャズの2-5-1など。さらに自分の進行をJSONで8個まで登録できる
リズム10種:全音符ベタからシンコペ、アルペジオ上行/下行/往復まで
🎲DICEボタン:進行・リズム・ボイシング・テンションを全部一発ランダム。「何も考えずに押してインスピレーションを拾う」ためのボタン
CHORD / LEAD / BASSの3モード:同じ進行エンジンでコード・単音リード・ベースラインを出し分け
ヒューマナイズ(ベロシティ強弱・タイミング微ゆらぎ)、ボイスリーディング、シード固定(気に入ったガチャ結果を番号で復元)
意外と知られてないLive 12の「MIDIツール」
このツール、トラックに挿すデバイスじゃない。Live 12にはクリップ専用の生成AI…ではなく生成「枠」がある。
MIDIクリップをダブルクリックしてClip Viewを開く
左側の「Tools」タブを開く
「Generate」のドロップダウンに、標準のSeed/Stacksに混ざって自作ツールが並ぶ
パラメータをいじってApply → ノートがクリップに書き込まれる
自作ツール(.amxd)の配置先はここ。
~/Music/Ableton/User Library/MIDI Tools/Generators/罠:公式マニュアルには「Max Generators」というフォルダ名も書かれているが、少なくとも手元のLive 12.4では、Generateパネルの一覧に出るのは「Generators」の方だった。実際に動いている公式Pack・サードパーティ製ツールのファイルの場所をLiveのデータベースから逆引きして、ようやく気づいた。
自分の進行を登録するJSONはこんな形式(.amxdと同じフォルダに置く)。
[
{ "name": "Komuro 6-4-5-1", "degrees": [5, 3, 4, 0] },
{ "name": "251", "degrees": [1, 4, 0] }
]`degrees`は0始まりの度数。`[5,3,4,0]`なら6-4-5-1、つまり小室進行。
開発は事件の連続だった
白状すると、2日間まっすぐ進んだわけじゃない。事件簿を3つ。
事件1:「押しても何も起きない」。最初の版を納品したら「本当にこれプラグインなのか?」と言われた。原因は、MIDIツールはブラウザからダブルクリックしても何も起きないのが正常だったこと。トラックに挿す物じゃなく、クリップのGenerateパネルから使う物。作った側が使い方の導線を説明していなかった。
事件2:「UIが切れてる」。自動テスト159項目が全部緑なのに、実機ではUIがパネルから切れて見えなかった。AIは横640pxでUIを設計していたが、実際のGenerateパネルは幅約150pxの縦長サイドバー。公式ツールの.amxdファイルを5個解剖して実寸(幅150〜153px・高さ147〜208px)を測り、縦長に全面作り直した。「テストが通ってる」と「実機で使える」は別物。
事件3:「直したはずの機能が消えてる」。実装AI(Codex)が作った新版を、別のAI(Claude)にレビューさせたら「前の版で入れた重複ノート除去が、新しいコードから黙って消えている」を検出した。2,400ケースの敵対テストを独自に走らせて、1,310ケースで実際に音が重なることまで実測してきた。実装した本人のセルフレビューは、この退行を見逃していた。
AIチームの回し方・3原則
この2日で固まった原則がこれ。
実装と逆の頭脳でレビューさせる。同じAIに書かせて同じAIにレビューさせると、同じ盲点を共有する。CodexとClaudeを交差させたら、お互いに相手の見逃しだけを正確に拾った。
UIは実装前に「契約書」を書かせる。コントロールの種類・座標・挙動を数値で固めたUX契約書をデザイナーAIに先に書かせ、実装はそれに従うだけにする。「実装しながらUIを考える」を許すと事件2が再発する。
実機で確認していないことは信じない。最終版は自動テスト223項目(静的検証+実行モデル検証)が通っているが、それでも「Generateパネルに表示されるか」「クリップに書き込めるか」は人間が実機で見るまで確定しなかった。AIの「完了しました」は「静的に矛盾がないことを確認しました」と翻訳して聞く。
背景——なんで作ったか
そもそもの動機はこれだった。
自分にあったもの作れたらアップデート可能だし、色々使ってて「したいこと」を追加できる
既製品を買わなかった理由は完成度じゃなくて、育てられるかどうか。実際、開発中に一番仕様を良くしたのは、途中で出た率直なダメ出しだった。
LENGTHの長さがバラバラなのきもいな。UIとかもどっちも切れてるし……適当すぎる。あともっとバリエーション増やしたい
この「きもい」の一言から、全リズムパターンでノートの端を小節境界にぴったり揃える端処理仕様が生まれた。そして完成間際にぽろっと出た一言、
ボタン押したらランダムにコードとか入力してくれるものあるといいかもね
これが🎲DICEボタンになった。仕様書のどこにも無かった機能が、使ってる中の独り言から生まれる。ツールを育てるって、たぶんこういうこと。
次は、このツールで作った曲やStrudelライブコーディングとの合わせ技も記事にしていく予定。
