更新: 2026-08-31 19:54
← LJ資料目録に戻る

LjRun — 音楽に同期して動くDMX照明再生エンジン

限定公開ページ / 公開日: 2026-08-03
このページは検索エンジンに登録しない設定です。URLを知っている人は閲覧できるため、機密情報や顧客の個人情報は掲載していません。

これは何か

LjRunは、老舗の舞台照明制御ソフト「Martin LightJockey」が持つ「Media Player機能」(音楽の再生位置に合わせて照明のキューを自動で切り替える仕組み)を、現代のWindows環境でそのまま動かせるように作り直した再生専用エンジンです。

音源を再生しながら、その再生位置そのものを時計として使い、あらかじめ決めたタイムテーブル(「この時刻になったらこの照明キューを出す」というリスト)を進めます。音楽と照明が別々のタイマーで動いているのではなく、音の再生位置そのものが照明の進行を直接動かしているため、ズレが蓄積しません。

デモの内容

LjRun 実行中の画面
実際に動作中のLjRun。
  • 現在行 4/14 — 14ステップのタイムテーブルのうち、いま4番目を実行中
  • クロック: audio — 音源の再生位置を時計として使っている状態
  • delta_ms: 0 ms — 音源の再生位置と照明タイムテーブルの位置のズレ。常に0ms付近を維持
  • ログ欄に実際の発火記録(t=4.05s 行4 2 "LS1 01 HONOU"など)が時系列で残る
ログに出てくるキュー名は実演で使われた照明キューの内部名(社内的な呼び名)で、個人情報や顧客の特定につながる情報は含まれません。

使っている音源について

デモで流れている音楽は、既存の楽曲を一切使わず、その場でサイン波とクリック音を合成しただけの完全自作音源です(著作権上の問題を避けるため)。4秒ごとに音程が変わり、切り替わりの瞬間に低音のアクセント音を鳴らすことで、「ここでキューが切り替わった」ことが聞いてすぐ分かるように設計しています。照明側は実際のショーデータ(実演で使われた本物のキュー)を発火させているため、DMX側は本物のデータです。

録画

実際に動いている様子を録画したものはこちらです。

LjRun 音楽同期デモ 実演動画 ▶
LjRun 音楽同期デモ 実演動画

技術的なポイント(開発の経緯)

当初、音源再生には .NET標準のWPF MediaPlayerクラスを使っていましたが、これは内部でレガシー版のWindows Media Playerコンポーネントを必須とする古い設計でした。このコンポーネントが入っていないWindows 11環境では、音が鳴らないまま「一見動いているように見えて実際には固まっている」という気づきにくい不具合が発生することが分かりました。

この問題を、音声再生の仕組みをNAudio(Windowsの音声出力を直接扱う、レガシーコンポーネントに依存しないライブラリ)へ全面的に置き換えることで解決しました。実際に約5分の実ショーデータをフル尺で再生し、最初から最後までズレ0msのまま完走することを確認しています。

まとめ