ArtNetMerger スタッフ用ガイド — 使い方と AI 利用

複数の送り元から来る Art-Net を、送り元ごとに見分けて合成し、1 本にして送り直す社内アプリ / 版 2026-10-17(ビルド 26 10/17 11:46)/ スタッフ限定・社外に出さないこと

このガイドで分かること
  1. 動画で見る
  2. 何のアプリか(なぜ要るか)
  3. 起動とスタートメニュー
  4. 画面の見方
  5. 送り元を選ぶ(有効/無効・新しい送り元・来ていない送り元)
  6. 合成のしかた(HTP / LTP / 単独)と使い分け
  7. 送り先と受信口(同じ PC の Visualizer へ渡す)
  8. 困ったとき
  9. AI から使う(HTTP API と状態ファイル)

資料: このページの PDF 版 / 編集用 Word 版

0. 動画で見る

ArtNetMerger 使い方ガイド公開準備中

使い方ガイド(5 分 57 秒・音声つき・字幕あり)

  1. 何のためのアプリか・画面の見方
  2. 2 台を HTP で合成 → 受信モニター(ArtNetMonitorM5)に合成結果が届く
  3. 送り元の有効/無効・LTP・単独と優先の入れ替え(来なくなったら次の順位へ)
  4. 来なくなった送り元・同じ PC の Visualizer へ渡すとき・AI から使う

動画は同じパソコンの中(127.0.0.1)だけで、試験用の送り元 3 台から受信ポート 6464 へ送り、合成した結果を 127.0.0.1:6454 の ArtNetMonitorM5 で見ています。操作はすべて HTTP の窓口(127.0.0.1:55700)から行い、マウスは使っていません。音声: VOICEVOX:No.7

1. 何のアプリか

卓や再生機など、同じユニバースを複数の機器が送ってくると、受け側(LjStudio の単独 Visualizer)は「最後に届いた 1 枚」で上書きするだけなので、届くたびに値が入れ替わってちらつきます。ArtNetMerger はその前に置く中継です。

使い方の例: 卓 2 台(メイン/バックアップ)の切り替えは「単独」、卓 + 別の再生機の重ね合わせは「HTP」。

そのほか、次のことを自動でします。

2. 起動とスタートメニュー

スタートメニューの「ArtNetMerger」を開きます。1 台の PC で起動できるのは1 本だけです(2 本目を開くと「既に起動しています」と出ます)。

HTP で 2 台を合成中の画面
図 1 U0 を HTP で 2 台合成中、U1 は 1 台の画面(この例は試験用に、受信 127.0.0.1:6464 → 送り先 127.0.0.1:6454 で動かしたもの。黄色い枠は動画の目印。下の空いた所は詰めてある)

初めて起動すると、既定値で「動作中」になります(受信 0.0.0.0:6454(すべての口)、送り先 127.0.0.1:6454)。窓の位置・大きさ、受信口、送り先、送り元ごとの有効/優先順、ユニバースごとの合成のしかた、動作中か停止中かは、閉じるときに覚えて、次も同じ状態で始まります(exe と同じフォルダの config.json)。

3. 画面の見方

番号つきの画面
図 2 画面の各部(番号は下の表)
番号部品役目
1受信 / ポートArt-Net を受ける口。「0.0.0.0(すべての口)」、この PC の各 IP、「127.0.0.1(この PC の中だけ)」から選ぶ
2送り先 / ポート合成した結果を送る先。既定は同じ PC(127.0.0.1)。IP は直接打ち込める(履歴 12 件)
3▶ 開始 / ■ 停止受信と合成を始める/止める。受信・送り先を変えたら「適用」を押す
4動作の表示動作中なら「受信 … → 送り先 …」が緑で出る。停止中は灰色
5設定の行「新しい送り元を有効で迎える」「雑音除去」「来なくなったら外す(ms。既定 2000)」「来ていない送り元を消す」
6ユニバース表ユニバース(U)ごとに、合成のしかた(ここで選ぶ)・合成中の台数(合成中 / 来ている送り元)・送出 fps・送出数・値が 0 でない ch の数(非0)・出力 ch1-16。送っていないユニバースは灰色で「(送っていない)」
7送り元表送り元 × ユニバースの 1 行。有効(チェック)・U・優先・送り元・名前・状態・fps・受信数・捨て(雑音除去で捨てた数)・最終(最後に届いてからの時間)・非0・ch1-16。「名前」は相手が ArtPollReply を返したときだけ出る
8▲ 優先を上げる / ▼ 優先を下げる選んだ送り元の優先順を動かす(「単独」のときに効く)
9いちばん下の帯受信数・「自分の送出を無視」の数・HTTP の口。エラーがあれば先頭に★で出る

「状態」の列は 4 種類です。合成中(出力に使われている)/ 待機(来ているが、いまは使われていない。「単独」で優先が下の台など)/ 無効(チェックが外れている)/ 来ていない(2 秒以上届いていない)。

4. 送り元を選ぶ

有効 / 無効

送り元表の左端のチェックで切り替えます。無効にすると、その送り元の値は出力から消えます(すぐ反映)。チェックは送り元 × ユニバースごとです。

有効のチェックを外した状態
図 3 U0 の先頭の送り元(127.0.0.1:50101)のチェックを外した状態。状態は「無効」になり、ユニバース表の「合成中」が 2/2 から 1/2 に減って、出力は残った 1 台(127.0.0.1:50102)の値だけになった

新しい送り元の扱い

初めて見る送り元は、「新しい送り元を有効で迎える」(既定オン)に従って、最初から有効で並びます。オフにすると、新しい送り元は無効で並ぶので、チェックを入れるまで出力に混ざりません(現場で知らない機器が増えても混ざらないようにしたいとき)。

送り元の見分けかた

相手の IP で見分けます。送信元ポートが 6454 以外のときは「IP:ポート」で別の送り元にします(同じ PC の 2 つのアプリが別々に送るとき用。卓や Node はふつう 6454 から送るので IP だけになります)。送り元のアプリを起動し直して送信ポートが変わると、別の送り元として並び、古い行は「来ていない」になります。

来ていない送り元を消す

来なくなった送り元が灰色になった状態
図 4 U1 の送り元(127.0.0.1:50103)が止まったところ。2 秒たつと「来ていない」(灰色)になり、U1 は「(送っていない)」になる。最終は 20 秒前

「来ていない送り元を消す」ボタンは、10 秒以上届いていない送り元を一覧と覚えから消します。「来なくなったら外す」の時間(既定 2000ms。100〜60000)は、出力から外す時間で、消す時間とは別です。

5. 合成のしかた

ユニバース表の「合成」の欄で、ユニバースごとに選びます(U ごとに別のしかたにできます)。

しかた動き向いている使い方
HTP(大きい方)ch ごとに、有効で来ている送り元のうちいちばん大きい値を出す卓 + 別の再生機など、重ねて使う
LTP(最後に動いた方)ch ごとに、最後に値が動いた送り元の値を出す(同時なら大きい方)後から触った側を優先したいとき
単独(優先 1 台)有効で来ている送り元のうち、優先順がいちばん上の 1 台だけを通す。その台が来なくなったら、次の順位へ自動で切り替わるメイン/バックアップの卓の切り替え
U0 を LTP にした状態
図 5 U0 を LTP にした状態(U1 は HTP のまま)。ユニバースごとに別のしかたにできる

単独と優先順(▲▼)

送り元表で行を選び、▲ 優先を上げる / ▼ 優先を下げるで順位を入れ替えます。「優先」の列の 1 がいちばん上です。「単独」では、1 位が「合成中」、ほかは「待機」になります。

単独で優先を入れ替えた後の画面
図 6 U0 を単独にして、下にいた送り元(127.0.0.1:50102)を▲で 1 位にしたところ。表の並びも入れ替わり、1 位が「合成中」、元の 1 位は「待機」。出力は 1 位の値になる
LTP の注意: LTP は「値が動いた時刻」で決めます。送り元が 512ch ぜんぶを送り続けてくる場合、後から来た送り元の 0 も「その時刻に動いた値」になることがあります。意図した結果にならないときは、HTP か単独を使ってください。

6. 送り先と受信口

受信と送り先の設定欄
図 7 受信と送り先の設定欄。受信・送り先のどちらかを変えたら「適用」を押す(動いているときは自動で開き直す)

同じ PC の Visualizer へ渡す

ArtNetMerger の送り先は既定の 127.0.0.1:6454 のままにして、Visualizer を次のように起動してこの PC の中だけで受けさせます。

LjStudio.App.exe --form LJSVISUALIZER --bind 127.0.0.1
「すべての口」で受けさせない: Visualizer をすべての口で受けさせると、卓からの生の Art-Net も Visualizer へ直接届き、合成した意味がなくなります。送り先が 127.0.0.1:6454 のとき、窓の下の帯にも同じ注意が出ます。

ポートを分ける

受信口と送り先のポートは、変えられます。ほかのアプリが 6454 を使っているときなどは、ArtNetMerger の受信を別のポート(例 6464)にして、送り元をそのポートへ送らせる、送り先も別のポート(例 6465)にして、受け側もそのポートで待たせる、というように分けます。受信口を「すべての口 0.0.0.0」にするか、特定の IP にするかも、ここで選びます。

受信と送り先を同じポート・同じ PC にしても、自分の送出を拾って暴走することはありません(下の帯の「自分の送出を無視」に数が出ます)。

7. 困ったとき

症状見るところ・直しかた
送り元表に何も出ない/下の帯の「受信」が 0 のまま「停止中」になっていないか(▶ 開始)。受信の口とポートが、送り元の送り先と合っているか。受信口を 127.0.0.1 にしていると、他の PC からは届かない。ほかのアプリが同じポートを先に使っていると「★」のエラーが出る
送り元が出ているのに Visualizer が光らない送り先のポートと IP を確認(「動作中 受信 … → 送り先 …」の緑の表示)。ユニバース表で、そのユニバースが「(送っていない)」なら、有効で来ている送り元が無い(チェック・「状態」を確認)。Visualizer を --bind 127.0.0.1 で受けさせているか
送り元が一覧から消えず増えていく送り元のアプリを起動し直すと送信ポートが変わり、別の送り元として並ぶ。「来ていない送り元を消す」で整理する
送り元が急に「来ていない」になる2 秒(「来なくなったら外す」の時間)届かないと外れる仕様。送り元の機器・ネットワークを確認。時間を伸ばすこともできる
「捨て」の数が増える雑音除去が、壊れたフレームを送り元ごとに捨てた数。ときどき増えるだけなら問題ない。増え続けるなら、その送り元の機器やケーブルを疑う。切りたいときは「雑音除去」のチェックを外す
「自分の送出を無視」の数が増える送り先が自分の受信口と同じため、自分が送ったものが戻ってきたのを捨てている。正しい動作で、送り元の行には出ない
LTP で意図しない値になる5 章の注意。HTP か単独に切り替える
起動すると「既に起動しています」と出るすでに 1 本動いている(タスクバー・最小化を確認)

8. AI から使う

ArtNetMerger は、AI(Claude Code など)が読み取って操作できます。人が画面を触るのと同じことが、HTTP でできます。動画の操作もすべてこの方法で行っています。

状態を読む(ファイル)

1 秒ごとに e:\tmp\ai_artnetmerge\ へ出ます。

ファイル内容
latest.txt人と AI が読む要約。送り元ごとの有効・状態・fps・受信数・捨て数・ch1-16、ユニバースごとのモード・送出数・出力 ch1-16
status.json同じ内容の構造化データ(httpPort に HTTP の実ポート)
README_AI.txtAI 向けの操作の説明

操作する(HTTP API)

127.0.0.1:55700(使用中なら 55701〜55705。実ポートは status.json の httpPort)。GET でも POST でも同じに動きます。この PC の中からだけ使えます。

パス内容
/status送り元・ユニバース・合成結果の一覧
/start /stop受信と合成を始める/止める
/source?key=<IP または IP:ポート>&universe=0&enabled=0|1送り元の有効/無効
/move?key=…&universe=0&dir=up|down優先順を上げる/下げる
/mode?universe=0&mode=htp|ltp|single合成のしかた
/dest?ip=127.0.0.1&port=6454送り先
/bind?ip=0.0.0.0&port=6454受ける口(動いていれば開き直す)
/options?newEnabled=0|1&glitch=0|1&timeoutMs=2000&maxFps=44各種設定
/forget?olderMs=10000来なくなった送り元を一覧と覚えから消す
curl -s "http://127.0.0.1:55700/status"
curl -s "http://127.0.0.1:55700/mode?universe=0&mode=single"
curl -s "http://127.0.0.1:55700/source?key=127.0.0.1:50191&universe=0&enabled=0"
curl -s "http://127.0.0.1:55700/move?key=127.0.0.1:50192&universe=0&dir=up"

key には、送り元表の「送り元」の文字(IP、または IP:ポート)をそのまま入れます。まだ来ていない送り元を指定すると、エラー(404)が返ります。

AI への頼み方の例

止まっているときや再ビルドは、AI が tools/restart_app.ps1 -AppName ArtNetMerger で強制停止 → ビルド → 起動できます(開発担当の作業です)。

ArtNetMerger 2026-10-17 / スタッフ限定。図と動画の画面は、127.0.0.1 の中だけで試験した画面です(図は動画の録画から切り出したもの)。