OSCの入出力

AIと読む
全ドキュメントを1ファイルで(llms-full.txt)

OSC は、スマホのコントローラーアプリや TouchDesigner などの外部ソフトから SynapseRack を操作するための仕組みです。逆に、SynapseRack から外へ値を送ることもできます。

やり方は2通りあります。

やり方向いている場面
画面のUIに直接割り当てるレイヤーのOpacityや再生ボタンなど、既にあるUIをそのまま外から動かしたい
OSCノードを置く受け取った値をノードで加工したい/SynapseRackから値を送り出したい

まず有効にする

メニューバーの Setting → GlobalSettings → OSC

項目内容初期値
OSC Input受信のON/OFFOFF
Input Port受信ポート3170
OSC Output送信のON/OFFOFF
(ラベルのないドロップダウン)Localhost / Custom の切り替えLocalhost
Output Address送信先アドレス(Custom のときだけ表示)127.0.0.1
Output Port送信ポート3171

入出力はどちらも初期状態ではOFFです。 「送っているのに何も起きない」ときは、まず OSC Input がONになっているかを確認してください。

送信側のアプリには、SynapseRack を動かしているマシンのIPアドレスと Input Port の値を入れます。

Localhost に戻しても、入れた送信先アドレスは残ります。 隠れるのは入力欄だけです。手元に送り直したいときは Custom のまま 127.0.0.1 を入れ直してください。

この設定は プロジェクトではなくマシン側に保存されます(設定画面の下にも Saved on this machine, not in the project file と出ます)。 会場ごとにネットワークが変わっても、.synapse を持ち歩けば設定はそのマシンのものが使われます。

届いているか確かめる

OSC Monitor に受信したメッセージがそのまま並びます。 アドレスも型もここで確認できるので、うまく動かないときは最初にここを見てください。

画面のUIに割り当てる

MIDI と同じアサインモードの中で割り当てます。

  1. OSC Input をONにして、送信側から実際に信号を送っておきます
  2. メニューバーの Setting → MidiMapping でアサインモードに入ります
  3. 割り当てたいUIをクリックしてにします
  4. MIDI Inspector の OSC sources (click to assign): に、受信したアドレスが並びます
  5. その行をクリックすると割り当てられます

OSC sources の欄がある MIDI Inspector

行の書式は アドレス [引数の番号] (現在の値) です。 1つのメッセージに値が複数入っている場合は、値ごとに別々の行として並びます。

まだ何も受信していないときは Move an OSC control to detect its address... と出ます。 送信側のフェーダーを動かせばそのアドレスが出てくる、という探し方をします。

OSCは「動かしたら自動で割り当て」にはなりません。 MIDIはつまみを動かした瞬間に紐付きますが、OSCは常時大量の信号が流れうるので、 一覧から選ぶ方式になっています。

一覧は選択を変えるたびにリセットされます。 別のUIをクリックしたり、アサインモードを出入りすると空になります。 目的のアドレスが消えたら、送信側をもう一度動かせば出てきます。

一覧に出るのは数値として読める引数だけです。 小数・整数・真偽値は拾いますが、文字列やバイナリの引数は候補になりません。 溜まる候補は最大64件までです。

割り当てを消すときは、Mappings: の行の右端の × です。 詳しくは MIDIマッピング を参照してください。

値の効き方

送られてきた値はそのままUIへ渡されます。0〜1で送ればスライダーがそのまま動き、 ボタン・トグル系は 0.5 を下から上へ超えた瞬間に1回発火します。

OSCノードで配線する

Node EditorI/O カテゴリに、入出力それぞれ3種類ずつ用意されています。

ノード役割
OSCFloatInput受け取った小数を出力する
OSCIntInput受け取った整数を出力する
OSCBoolInput受け取った真偽値を出力する
OSCFloatOutput小数を送る
OSCIntOutput整数を送る
OSCBoolOutput真偽値を送る

どのノードにもアドレスを書き込む入力欄があります。 入力側はアドレスが完全に一致したメッセージの1つ目の値を読み、 出力側は入力された値が変わったとき(および Trigger が来たとき)に送信します。

型が合わないメッセージは無視されるので、小数を送っているつもりで 整数が届いている、というときは OSC Monitortype: を確認してください。

各ノードの詳しい仕様はノードリファレンスを参照してください。

関連

このページへのリンク

同じページを参照しているページ