StrayCurrent
← すべての記事

AbletonのExtensions APIとHarmonybeam

Abletonの新しいExtensions SDKが、Harmonybeamのローンチ直前に登場した。なかなか面白いタイミング。


Abletonが今週、新しいExtensions SDKを公開した。ちょうどこちらがHarmonybeamのローンチ準備をしているところだったので、タイミングとしてはかなり面白い。新しいAPIは、Max for Liveでこちらがずっと回避したり工夫したりしてきた問題にかなり近いところを狙っているように見える。特に、クリップを読み取って書き換える部分だ。

HarmonybeamはMax for Liveデバイスとして考え始めた。MaxにはもちろんLiveとの基本的な連携がある。MIDI入力、デバイスの状態管理、そういうものだ。コード支援ツールを作るなら、以前はMIDIやクリップを実用的に扱える場所はほぼそこしかなかった。実際には、Maxが持っているシンセシス方面の機能を全部必要としているわけではないのだけれど。

ただ、Extensions SDKはMIDIを扱うための別の入口を開けた。

Abletonの説明では、ExtensionsはLiveと並行して動くオプションのツールで、Set内の右クリックメニューから呼び出せる。トラック、クリップ、パラメータ、オートメーション、MIDIノート、デバイス、テンポなどを読み書きできる。Abletonが一緒に出したサンプルも、その性格がよく出ている。ブレイクビーツのスライサー、画像からMIDIを作るツール、譜面表示、Paulstretch、クリップ名のリネーム、Liveへノートを書き戻す小さなゲームまである。要するに、Setやその中身に対して動くワークフローツールを、公式に近い形で作れるようになったということだ。

Max for Liveは、インストゥルメントやエフェクトを作るにはすごく強い。信号の流れの中に常駐する、生きたパッチを作る場所としては今でも素晴らしい。一方で、作業がもっと編集寄りになると少し窮屈になる。たとえば、このクリップを調べる、ノートを理解する、中身を書き換える、まとめて名前を変える、素材を移動する、選択したものに一回だけ変換をかける。今でもある程度はできるが、クリップAPIがかなり不器用だったり、タイミングの問題があったり、簡単なアイデアが妙に遠回りになる落とし穴があったりする。Extensions APIなら、このへんはだいぶ楽になりそうだ。

Harmonybeamにとって当然出てくる問いは、ではこれをExtensionとして作るべきなのか、ということになる。今のプラグインは、従来のコードプラグインと同じように、トラック上に常駐するデバイスとして作っている。進行を入力し、ボイシングを選び、同期しているクリップにそのまま使えるMIDIを書き込む。この機能を、右クリックでクリップを選んだときだけ開くモーダルウィンドウに移すことも理屈の上ではできる。今のExtensions APIの入口は基本的にそこだからだ。ただ、その形にすると、ウィンドウを開き直すまでコードブロックが見えなくなる。

それでも、Harmonybeamの一部はExtensionとしてかなり相性が良い。少なくとも、将来的な別モードとしては自然だと思う。MIDIクリップを右クリックして、Harmonybeamにリハーモナイズさせる。声部連結を整える。コード名を付ける。バリエーションを作る。そういう一回きりの処理だ。複数のコード進行を、それぞれ別のクリップとしてきれいに管理するのもやりやすくなる。

SDKがJavaScriptとTypeScriptベースで、Node上で動くのもこちらには大きい。HarmonybeamのフロントエンドとMaxブリッジはすでにJSで書いているし、プラグイン開発ではMaxのビジュアルパッチャー環境が必ずしも必要ではない。むしろ邪魔になることもある。Maxでちゃんとしたロジックを書けるのは確かだが、実際の製品をビジュアルパッチャーの中でデバッグしたことがある人なら、普通のコードベースで作業するのと同じだとは言わないはずだ。

もちろん、Extensionsには現時点で大きな制約もある。まだパブリックベータで、Live 12 Suite 12.4.5以降が必要だし、常駐するデバイスというより手動で呼び出すコンテキストメニューのアクションに近い。Ableton自身も、ExtensionsをMax for Liveとは別のものとして位置づけている。Maxはインストゥルメント、エフェクト、シグナルチェーンのための深いクリエイティブなパッチング環境。ExtensionsはSetのデータやワークフローに触るツール。その分け方はかなり筋が通っている。つまり、Extensionsは今のHarmonybeamをそのまま置き換えるものではない。

なので、当面は何も変わらない。HarmonybeamはMax for Liveプラグインとして出す。Live 10までの互換性を確保できるからだ。ただ、この新しいAPIはかなり注目しておきたい。クリップ操作にもっときれいで広いアクセスをくれるなら、いずれ自然な補助レイヤーになるかもしれない。即時に触れる音楽的なインターフェースはMaxで、クリップに対する素早い処理はExtensionsで。そういう分担はかなりあり得る。

HarmonybeamがAbleton Liveでのコード進行作りをどう助けるのか、もう少し詳しく見てみる。

Harmonybeamを見る