TDAbleton

TDAbletonは、TouchDesignerをAbleton Liveと緊密にリンクするためのツールです。 Abletonセットで行われる、ほぼすべての表示と設定完全にアクセスできます。 TDAbletonシステムには、双方向通信用の多数のコンポーネント、カスタムコンポーネント、機能を構築するためのフレームワークが含まれています。
TDAbletonはAbletonのMIDIリモートスクリプトシステムと、必要に応じてMax for Live(M4L)デバイスを介して動作します。 TouchDesignerとの通信は、OSC経由(UDP使用)です。 完全にネットワーク対応であるため、TouchDesignerをAbletonと別のマシンで実行することも可能です。
参照:TDAbleton System Components, Creating Custom TDAbleton Components、TDAbletonCompBaseExt Extension

はじめに
システム要求
  • Ableton Live 9.7.2以降。
  • Max for Live 7.3.3以降。 (注:Max 7.3.3にはMIDIピッチベンドバグがあります。7.3.4を使用してください!)
  • TDAbletonは、TouchDesignerバージョン099 2018.28070以降のバージョンにインストールされています。 TDAbletonバージョンがTouchDesignerバージョンより古い状態になると、機能しない場合があります。
TDAbletonシステムのインストール
  1. TouchDesignerのHelpメニューでBrowse Samplesを選択し、TDAbletonフォルダーを入力して、Samples / TDAbletonフォルダーを開きます。
  2. TouchDesignerフォルダーをAbleton Remote Scriptsフォルダーにコピーします
    Windows標準インストールの場合
    \ ProgramData \ Ableton \ Live x.x \ Resources \ MIDI Remote Scripts \
    Mac標準インストールの場合
    / Contents / App-Resources / MIDI Remote Scripts /

このフォルダの場所と詳細については、Abletonの「サードパーティのリモートスクリプトをインストールする方法」を参照してください。

Ableton Liveのセットアップ
  1. Ableton Liveを起動します。
  2. TouchDesigner Remote Scriptフォルダー(上記でコピーしたフォルダー)をLiveのブラウザーサイドバー(左側)のPLACESセクションにドラッグします。 Liveでこの新しいフォルダーを選択すると、ブラウザー(右)にTDA MIDI.amxdおよびTDA Master.amxdデバイスが表示されます。
  3. OptionsメニューのAbleton preferencesを開き、左側のLink MIDIタブを選択します。 いずれかのControl SurfaceのドロップダウンでTouchDesignerを選択します。 入力と出力をNoneに設定する必要があります。
  4. ライブセットをリロードします。
TouchDesignerのセットアップ、接続の確認
  1. パレットのTDAbletonセクションに tdAbletonPackage.tox があります。 これをプロジェクトにドロップします。 Ableton Liveに接続していない場合、エラーが発生します。
  2. Ableton LiveとTouchDesignerが同じコンピューターで実行されている場合、ネットワーク設定は必要ありません。 異なるコンピューターで実行されている場合、Liveのアドレスに接続するようにTouchDesignerを設定する必要があります。 tdAbletonPackage / tdAbleton コンポーネントで、Ableton AddressパラメーターをAbleton Liveを実行しているコンピューターのネットワークアドレスに設定します。
  3. tdAbletonコンポーネントに切断エラーフラグがない場合、接続は成功しています。 (エラーメッセージが表示されるか、接続されていない場合は、以下のトラブルシューティングセクションを確認してください。)
  4. abletonSongコンポーネントの Add TDA Master Device ****パラメーターを使用して、LiveセットのマスタートラックにMaster Maxデバイスを追加します。 TDAbletonの一部の機能はこれがなくても機能しますが、機能は制限されます。
TDAbletonのアップデート

すべてのTDAbletonコンポーネントには、TDAbletonページにバージョン番号があります。 パレットおよびフォーラムコンポーネントのバージョン番号と照合して、最新版があるかどうか確認できます。 最新のアップデートは、TDAbletonのフォーラムスレッドのトップエントリから入手できます。 インストール手順を参照することもできます。
また、新しいTouchDesignerをインストールすると、新しいバージョンにアップグレードされます。

  1. 上記の「TDAbletonシステムのインストール」に従って、アップデートされたTouchDesigner Remote ScriptをAbleton Remote Scriptsフォルダーに再びコピーし、Liveセットを再起動します。
  2. プロジェクトの tdAbletonPackageを削除します。
  3. 新しい tdAbletonPackageをパレットからプロジェクトにコピーします
  4. tdAbletonPackageのtdAbletonコンポーネントで、Update Ableton Compsパラメーターをパルスします。

重要:いずれかの場所からインストールする場合、セット内のTouchDesigner Maxデバイス(名前はTDA_で始まります)を個別に保存した場合は、新しいバージョンに置き換える必要があります。 セット内のデバイス名の上にマウスを置いたときに下部のAbleton info バーに表示されるパスを見ることで、現在のフォルダー(MIDI Remote Scripts/TouchDesigner内)を使用しているかどうかを確認できます。 また、TDA Demoセット内のデバイスはそこを指していないため、Abletonセットをそのファイルに基づいている場合は交換する必要があります。 セット内のデバイスを再作成するか、セットのファイル構造内のファイルを置き換えることができます。

一般的な Ableton のタスク

以下は、Ableton Liveで一般的に使用されているデータと、TDAbleton内でのデータを受信している箇所です。

  • Scene情報
    abletonSong コンポーネント、song / info / triggered_scene および song / info / last_started_scene チャンネル。コールバック経由でも利用できます。
  • タイム情報
    abletonSong コンポーネント、song / info / bars 、 song / info / beats 、 song / info / sixteenths 、 song / info / time チャンネル。注:Include Time Data パラメーターは On にする必要があります。
  • キューポイント(タイムラインロケーター)
    abletonSong コンポーネントの LastLocatorPassedプロパティ。コールバック経由でも利用できます。
  • 出力レベル
    abletonTrack コンポーネント。
    … / output_meter_left、… / output_meter_right、… / output_meter_level チャンネル。注:Ableton Live Object Modelのバグのため、これらはAbletonインターフェイスでメーターが表示されている場合にのみ更新されます!また、Include Audio DataパラメーターはOnにする必要があります。
  • Trackスロット情報
    abletonTrack コンポーネント。
    channels … / playing_slot_index 、 … / fired_slot_index 。
  • Clip情報
    abletonTrack コンポーネント。out_clips DAT出力。Include Playing Clip Data パラメーターがOnの場合、 abletonTrack のCHOP出力にはクリップタイムとループ情報も表示されます。
  • デバイスのパラメータ値
    abletonParameter または abletonChainParameter コンポーネント。
  • Ableton コントロールパラメータ(Undoステップは作成されません)
    abletonParameterコンポーネント。
  • MIDI データ
    abletonMIDI コンポーネント。
  • クリップ内のMIDI ノート
    abletonClipSlotコンポーネント。
  • オーディオ レベル
    abletonLevel コンポーネント。トラックごとのレベルデータが統合され、フィルターと組み合わせてスペクトル分析が可能です。
  • Rackマクロデータの送受信
    abletonRack コンポーネント。パラメータデータを受信する最もスムーズな方法です。
  • Ableton Liveセットの一部を無視する
    TouchDesignerが接続されている場合、大きなセットの読み込みと変更が遅くなることがあります。セットの一部を無視するには、トラックにTDA_IgnoreおよびTDA_Ignore_MIDIデバイスを追加します。これらのデバイスからデバイスチェーン内のすべてのものは、TDAbletonでは無視されます。
TDAbleton の機能

TDAbletonの基本を学ぶ最も簡単な方法は、提供されているデモを解析することです。 開始するには、/ Samples / TDAbletonフォルダーのTDAbletonDemo.toeファイルを実行します。(TouchDesignerのHelpメニューからBrowse Samplesを選択します)。 同じフォルダーにAbleton Live用のTDADemo Liveセットがあります。 そのフォルダー内で、TDADemo Set.als Ableton Setを開きます。 Ableton Liveで再生ボタンを押すと、TouchDesignerデモのTDAbleton ComponentsでCHOPデータの変化がすぐに表示されます。 そうでない場合は、Ableton Liveを適切にセットアップしてください。(Getting Startedの章を参照)

TDA Master デバイス

TDADemoセットのMasterトラックには、TDA Master デバイスがあります。 このデバイスは、LiveがTouchDesignerに接続されているかどうかを示し、Liveセットにいくつかのマスター設定を適用できます。 TouchDesignerにはLiveにロードされたファイル名にアクセスする方法がないため、Song IDは、曲を識別するために使用する数値フィールドを提供します。 TDA MASTER デバイスの名前は、TouchDesignerで読み取り可能なテキスト名として使用されます。 Ableton Portは、TouchDesignerリモートスクリプトがTouchDesignerからメッセージを受信するために使用するネットワークポートです。 Max In Portは、TDA MaxデバイスがTouchDesignerからメッセージを受信するために使用するネットワークポートです。
ヒント:abletonSong コンポーネントの Add TDA Master Device パルスパラメーターを使用して、TDA Masterデバイスをライブセットに追加できます(以下を参照)。

TDAbleton コンポーネントの詳細

TDAbletonコンポーネントの基本構造を見るために、abletonSong1を例として紹介します。

Ableton Liveからのデータ受信

オペレータビューアに表示されるデータは、Ableton Live Setの現在の状態を反映しています。 タイムデータを反映した複数のチャネル(例:song / info / beats)と、さまざまな状態を反映したチャネル(例:song / info / play)を確認できます。 Liveから受信するデータは通常CHOPデータで、nullSong CHOPのように、TDAbletonコンポーネントからオペレータを配線することでアクセスできます。 circle1 SOPのパラメーターを見て、受信データをビジュアルで使用する方法例を確認してください。 Liveの一部のデータはDAT形式で提供され、コンポーネントの出力から同様にアクセスできます。
場合によっては、受信データがコールバック経由で届くことがあります。 この例は、abletonSong1_callbacks DATにあります。 Pythonコールバックはこのガイドの説明範囲を超えていますが、Pythonの知識がある場合は、このDATを調べると、 locatorByCallback およびsceneByCallbackのtextTOPを設定する方法例が明らかになります。

Ableton Liveへのデータ送信

Abletonに送信されるデータは通常、パラメータを介して送信されます。 abletonSong1 のAbleton Songパラメータページに移動すると、Liveセットの対応する値を設定するPlay、Loop、およびTempoパラメータが表示されます。 abletonChainコンポーネントは、CHOP export を使用して送信パラメーターを自動的に変更し、それによってLiveの値を変更する例を示しています。
これらのパラメーター値は、Auto Sync Pars To CHOP トグルがオンになっている場合にのみ、受信するLiveデータで最新の状態に保たれます。 特定の場合に自動同期がTouchDesignerとAbletonの間でエコーの変更を引き起こす可能性があるため、このオプションが提供されます。

Live セットのナビゲーション

Ableton Live Object Model(またはLOM)は、トラック、デバイス、パラメーター、シーンなどを含むAbleton Live Setのすべての側面を参照します。LiveObject Modelの詳細については、LOM PythonリファレンスおよびLOM Max For Liveリファレンスを参照してください。

ここでは、例としてabletonParameter1を例に紹介します。

ほとんどのTDAbletonコンポーネントは、セットの特定部分を参照するために作られています。 例えば、abletonSong1はLiveセット全体のデータを表示します。abletonParameterコンポーネントは、単一のAbletonデバイスパラメーターの値を取得、設定するために使用します。 コンポーネントのパラメーターを見ると分かるように、これはTrack:1 Muugy、Device:Pitch、Parameter:Pitchを参照するように設定されています。 Ableton Liveでそのデバイスに移動すると、そのピッチ値がTouchDesignerでミラーリングされていることが分かります。

各TDAbletonコンポーネントは、パラメータメニューを使用してLIVE Object Modelをナビゲートします。 例えば、ReturnsおよびMasterを含むすべてのトラックがTrackパラメーターで参照されます。 トラックを選択すると、使用可能なデバイスがDeviceパラメーターで参照され、以降も同様に参照されます。 他の例を見るには、単一のトラックを参照する abletonTrack1 コンポーネントと、インストゥルメントラックなどのサブチェーン内のAbletonデバイスパラメーターへのアクセスを提供するabletonChainParameter1コンポーネントを参考にしてください。
注:abletonParameter1 の Value Send パラメーターを変更することで、Abletonのピッチ値を変更できますが、これにより、そのパラメーターのAbletonの自動化が無効になることに注意してください。 これは、自動同期が必ずしも望ましいとは限らないもう1つの例です。

MIDIデータ

abletonMIDI1コンポーネントにはユニークな機能があります。MIDIデータをAbleton Liveから取得するにはAbleton LiveにMax For Liveデバイスが必要です。 各abletonMIDIコンポーネントは、Liveの特定のTDA MIDIデバイスに接続されています。 Abletonセットで1 Muggyトラックを参照すると、TDA MIDIデバイスが表示されます。

LiveセットのTDA MIDIデバイスは、abletonMIDI コンポーネントのAdd TDA MIDI Device ****パラメーターを使用してTouchDesignerから作成する必要があります。 コンポーネントのTrackパラメータでトラックを選択してAdd TDA MIDI Deviceボタンを押すだけです。
TDAbleton MIDI機能の詳細については、abletonMIDIの章を参照してください。

MIDIの受信

TDA MIDIデバイスは、トラックに基づいて、TouchDesignerにMIDIデータを送信します。 たとえば、Pitchデバイス(Abletonトラックの左側)を変更することによって作成されたMIDIノートの変更がTouchDesignerに反映されます。

MIDIの送信

TDA MIDIデバイスは、Ableton LiveにMIDIコマンドの送信にも使用できます。 これを確認するには、abletonMIDI1コンポーネントの左にあるsableNoteボタンとpitchBendスライダーを使用します。

TDAbleton Rack デバイス

TouchDesignerからLiveのパラメーター値を制御および参照する最もスムーズな方法は、abletonRackコンポーネントとそれに対応するLiveのMaxデバイスを使用することです。 これらのRackは、abletonRackコンポーネントのパルスボタンを押してLiveに作成することが出来ます。 例えば、デモセットの2 Muggyトラックのデバイスチェーンを見てください。

TDA Rackデバイスは、TouchDesignerとRackマクロ間でデータを送受信する最初のチェーンに特別なMaxデバイスを備えた標準のAbleton Live Rackを含むLiveプリセットです。 上記スクリーンショットでは、このMaxデバイスはTDA_Rack_OSC です。 ほとんどの場合、このデバイスとやり取りする必要はありませんが、受値と送値のオン/オフコントロールがあります。
これらのラックを使用するための一般的な手順は、パラメーターを制御または参照したいLiveデバイスをRackに入れることです。 次に操作したいパラメーターをRackマクロにマップします。 これにより、これらのパラメーターと対応するabletonRackデバイス間の高速接続が設定されます。 詳細については、abletonRackの章を参照してください。

TDAbleton Packageの使用方法

tdAbletonPackage では、左上に tdAbleton Masterコンポーネントが表示されます。 このコンポーネントは、Ableton Liveへの接続を維持し、通常、接続が完了したら変更する必要はありません。
他のTDAbletonコンポーネントは、Abletonとの間でリアルタイムデータを送受信します。 これらのコンポーネントを使用するには、 tdAbletonPackage からプロジェクトにコンポーネントをコピーします。 これらはCHOPチャンネルを使用してAbleton Liveからデータとコンポーネントを設定するカスタムパラメータを受信し、Liveへパラメータを送信します。 各コンポーネントについては、TDAbleton System Componentsの章を参照してください。
TDAbletonシステムは、カスタムコンポーネントを作成する機能も提供します。 詳細については、Creating Custom TDAbleton Componentsの章を参照してください。

プロジェクトのセットアップ

これまで見てきたように、TDAbletonは、TouchDesignerがやり取りするLive Object Model毎に個別のコンポーネントを用意します。 すべてのオブザーバをセットアップするには、必要な分だけtdAbletonPackageからTDAbletonコンポーネントをコピーして、適切にセットアップします。 通常のように、重複するデータにSelect CHOPを使用すると、コンポーネントを重複して作成するよりも効率的です。

注意事項
  • 最重要事項:

システムは、同じトラック上または同じチェーン内の重複した名前のデバイスと重複した名前のデバイスによって混同されます。 場合によっては、有効なTouchDesignerチャンネル名に変換された後の同じ名前にも当てはまります。 TDAbletonは、重複する名前を見つけると警告ダイアログをポップアップし、重複する名前を自動的に変更するオプションを提供します。 この動作は、tdAbletonマスターコンポーネントのReport Duplicate Namesパラメーターで設定します。

  • TouchDesignerによって制御されているAbletonパラメーターは、値が別の値によって制御されている場合によくあるように、Abletonインターフェイスで無効になりません。 TouchDesignerがAbletonパラメーター値を変更すると、その値のAbletonオートメーションはAbletonインターフェイスでのみ復元できます。

重要:TouchDesignerからAbletonの値を変更すると、Abletonに元に戻すステップが作成され、値がLiveに常にストリーミングされている場合に元に戻す機能が破壊される可能性があります。

  • TDAbletonがLiveに接続されていないときにAbleton Liveオブジェクトの名前が変更された場合、TDAbletonが再接続されると接続が切断されます。 TDAbleton接続中に名前の変更が発生した場合、接続は適切に維持されます。
  • Compメニューを介して選択されたAbletonパラメーターは、Abletonで整数であっても常にデータをfloat値としてレポートします。
  • TDAbleton Rackデバイスを使用する場合、マクロ名にスペースを使用できません。
トラブルシューティング

TDAbletonはOSCを介してAbleton LiveのPythonリモートスクリプトにリンクされており、Pythonリモートスクリプトは低レベルのシステムを介してAbletonアプリにリンクされているため、トラブルシューティングは少し難しい場合があります。 問題がある場合、最も重要なツールはTextportです。 ほとんどのエラーはそこで報告されるため、トラブルシューティング中は必ず開いておいてください。

TDAbletonの最も一般的な問題は、接続に関するものです。 最も単純な接続テストは、tdAbletonマスターのPingパラメーターです。 それを押すと、テキストポートに応答が表示されます。 そうでない場合、tdAbletonのアドレスまたはポート設定が正しくない可能性があります。 マスターを含むすべてのTDAbletonコンポーネントには、Connectパラメーターがあります。 オンとオフを切り替えると、接続がリセットされ、多くの場合、問題に関する有用なエラーメッセージが出力されます。

接続していない場合は、Abletonポート(Live MasterトラックのTDA_Masterデバイス上)がAbleton Port パラメータ(TouchDesignerのtdAbletonコンポーネント上)と一致している事を確認してください。 一致している場合、システムで実行されている他の何かとOSCの競合が発生している可能性があります。 両方を別の一致する番号に変更します。 残念ながら、OSCポートが使用されているかどうかを判断する方法はないため、これは試行錯誤によって行わなければなりません。

それでも接続しない場合は、外部テキストエディターとTouchDesignerの他のサブプロセスを閉じてみてください。 何らかの理由で、OSCポートをこれらのサブプロセスに関連付けることができ、アプリケーションが閉じられるまでポートは再び開きません。

TDAbletonは、TouchDesignerリモートスクリプトからテキストポートにエラーを送信します。 ほとんどの場合、これで十分ですが、Abletonログファイルを確認する必要がある場合があります。 ログファイルを確認する方法はAbletonヘルプページを参照してください。 また、tdAbletonにはAbleton Log Fileパラメーターがあり、このパラメータでログの保存場所を設定して、TouchDesigner内のログの表示を取得するためにOpen Log Fileパラメーターをパルスできます。

ヒント:Log TDA Debug Msgsパラメーターは、Abletonのログファイルの詳細なデバッグをオンまたはオフにします。 このパラメータがオフの場合、エラーと最も基本的な情報のみがAbletonログに記録されます。