VideoSender

VideoSender

DAW-to-Video Parameter Bridge VST3 Plugin

DAWのパラメーター(float値・トグル・BPM・MIDI)をRGBピクセルにエンコードし、 Spout2経由でリアルタイムに映像ストリームとして送信するVST3プラグインです。
DRAW TOKYO 2026ライブのためだけに制作しました。 Ableton LiveとUnity(VJ)の間でデータを共有するため、 MIDIやOSCではなく映像という経路を選んだことがこのプラグインの核心です。

なぜ映像で送るのか

OSCやMIDIによるネットワーク送信と比べたときの利点:

  • 同期が確実:DAWのオーディオバッファと映像フレームが同期する
  • チャンネル数が多い:32ch(うち12chが汎用パラメーター)
  • 特別なネットワーク設定が不要:Spout2はPC内共有、HDMIは物理線1本

出力仕様

出力フレームは 1920×1080px・RGBA 8bit。 データが入っているのは 左上の 512×64px だけです。残りは全て黒。

1920×1080 フレーム
┌─────────────────────────────────────────────┐
│ ←── 512px ──→ │                             │
│ ┌────────────┐ │                             │
│ │   データ   │ 64px                          │
│ └────────────┘ │        (残りは全部黒)      │
│                │                             │
└─────────────────────────────────────────────┘
  ↑ここだけ読む(x=0〜511, y=0〜63)

X軸がチャンネルに対応し、チャンネル幅は16px(全32ch × 16px = 512px)です。
Y軸は全行同じ値が繰り返されます。読む際は y=32(中央)が安定します。

チャンネルマッピング

chX座標内容エンコード
ch0〜ch11x=0〜191汎用 float(0.0〜1.0)グレースケール(R=G=B)
ch12x=192〜207BPM(0〜300)グレースケール
ch13x=208〜223Beat Flashy=0行のみ R=255 → 次フレームで 0
ch14x=224〜239MIDI ch1 トリガーNoteOn中=白、NoteOff後=黒
ch15x=240〜255MIDI ch1 音程R=G=B = noteNumber × 2
ch16x=256〜271MIDI ch2 トリガー〃
ch17x=272〜287MIDI ch2 音程〃
ch18x=288〜303MIDI ch3 トリガー〃
ch19x=304〜319MIDI ch3 音程〃
ch20x=320〜335MIDI ch4 トリガー〃
ch21x=336〜351MIDI ch4 音程〃
ch22〜ch31x=352〜511予約(黒)—

値のエンコーディング

  • 汎用 float(ch0〜ch11):R = G = B = (uint8)(value × 255)。グレースケール。
    Unity側は pixel.r(0.0〜1.0)を読むだけで復元できます。
  • BPM(ch12):R = G = B = (uint8)(bpm / 300 × 255)。
    Unity側は pixel.r × 300 で実BPMを復元。
  • Beat Flash(ch13, y=0行):ビートの頭で R=255、次フレームで R=0。エッジ検出でタイミングを取ります。
  • MIDIトリガー(ch14/16/18/20):NoteOn中=白(R=G=B=255)、NoteOff後=黒。
  • MIDI音程(ch15/17/19/21):R = G = B = noteNumber × 2(0〜127 → 0〜254)。
    Unity側は pixel.r × 255 ÷ 2 でノートナンバーを復元。

接続方法

Spout2(PC内・推奨)

VideoSender プラグイン → Spout送信(名前: "VideoSender")
Unity 側: Klak Spout パッケージで受信

HDMI(物理出力)

プラグイン UI の「HDMI Output」ボタン
→ 2画面目にフルスクリーン表示
→ AJA U-TAP HDMI → USB 3.0
→ Unity がウェブカメラとして認識(WebCamTexture)

DRAW TOKYO 2026 での使い方

本番では ch0〜ch3 と ch12 に yoxtretch のパラメーターを、 ch14〜ch21 にドラムマシン/シーケンサーからのMIDI信号を割り当てました。

chyoxtretchパラメーター
ch0TRIGGER(グラニュラー処理のON/OFF)
ch1Ratio(タイムストレッチ倍率 1〜12×)
ch2GrainSize(512〜16384 smp)
ch3HOLD(グレイン位置フリーズ)
ch12BPM(DAWのテンポをそのまま送信)
ch14〜ch21Kick / Snare / Break / Melody(MIDI ch1〜4)

動作環境

  • 形式:VST3
  • 対応OS:Windows 11
  • ビルド:JUCE 7.x + CMake 3.22 以上 + Visual Studio 2022
  • Spout2受信側:Klak Spout(Unity)
  • HDMI受信側:AJA U-TAP HDMI + WebCamTexture(Unity)