Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TSKaigi Sendai 2026 - さよなら独自環境。TypeScriptでAblet...

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →
Avatar for teamLab teamLab PRO
November 01, 2026

TSKaigi Sendai 2026 - さよなら独自環境。TypeScriptでAbleton(DAW)を自動化する楽しさ

このスライドは TSKaigi Sendai 2026の登壇に使用したスライドのアーカイブになります。

チームラボでは、フロントエンドエンジニアを募集しています。
少しでも、チームラボにご興味をお持ち頂けましたら、採用ページをご覧頂けますと幸いです。
https://www.team-lab.com/recruit/

Avatar for teamLab

teamLab PRO

November 01, 2026

More Decks by teamLab

Other Decks in Technology

Transcript

  1. 自己紹介 Mori Yuichi 森 祐一 所属| チームラボ パッケージチーム フロントエンド班 ❏

    ❏ © teamLab Inc. 初めてのカンファレンス登壇です ドキドキ 今年から作曲を始めました 2
  2. 目次 ❏ そもそも「Ableton Live」 とは? ❏ 「自動化」のこれまで ❏ 「Ableton Extensions

    SDK」の登場 ❏ TSで自動化してみる ❏ まとめ © teamLab Inc. 4
  3. Ableton Extensions SDK 登場 26年6月、Ableton Live 12.4.5 Suite(ベータ)にて、公式の JS/TS SDKが追加された。

    ❏ ❏ Node.jsベースで動作 私たちが普段書いている TypeScript / JavaScript で、Abletonを直接動かせる 👉 エンジニアにとってチャンス 到来では ✨ 公式サイトより © teamLab Inc. 12
  4. TSで自動化してみる // 鳴る確率を取得できた音の中から、100%未満のものを抽出 const targets = clip.notes.filter(({ probability })) =>

    { 🎶 配列処理で鳴る確率をチェック ❏ // 未取得の値は判定から除外 filterで、確率が100%未満の音 を抽出。 if (!probability){ return false; ❏ } 0%も確認対象。取得できない 値は除外して別途集計 // 音の鳴る確率は0~1。0%は含み、100%は除外 return probability >= 0 && probability < 1; } © teamLab Inc. 22
  5. TSで自動化してみる /** 鳴る確率のチェック結果を、3種類の型で表す */ 🏯 判定結果を型で安全に扱う type ProbabilityCheck = |

    { kind: "pass" } // 100% | { kind: "warning"; probability: number } // 100%未満 | { kind: "unchecked" }; // 未取得 ❏ ❏ /** 100%未満の結果を、表示用の文字列に変換する */ function describe(result: ProbabilityCheck) { if (result.kind === "warning" ) { 対象外・確認対象・ 未検査をUnionで表現 kindから、結果に応じた データを参照する return `発音確率:${result.probability * 100}%`; } } © teamLab Inc. 23