DMXServer: フルカラー照明を手軽に使おう

作成日: 2010/06/15  最終更新日: 2010/06/20



◆はじめに

DMX512(以下,DMX)は,舞台照明/演出装置を制御するためのRS485 互換の通信規格です.DMX システムは,さまざまなDMX デバイス,それらを制御するためのDMX コントローラ,およびパソコンと接続するための通信インタフェース(以下,DMX インタフェース)から構成されます(図1, 図2).DMX デバイスは,フルカラーLED 照明から特殊な演出装置(e.g. フォグマシン/バブルマシン)まで多岐にわたっており,特に色彩や雰囲気を演出する本格的な照明環境の構築に適しています.

DMXServerは,DMXデバイスの動作テストに便利なGUIと,TCPサーバーを一体化したソフトウェアです(図3).TCPソケット経由でシンプルなテキストメッセージを送信するだけで,DMXデバイスを手軽に制御することができます.また,DMXコントローラの操作を検出することも可能です.

MobiServerで紹介するさまざまなミドルウェア群と組み合わせることで,実世界のさまざまな機器をシンプルな方法で手軽に操作することが可能です.

図1 DMX対応 フルカラーLED照明の外観
(左: Alklite製 OCTOPOD75WH,右: American DJ製 P36 LED

図2 DMX インタフェースの外観
(Daslight製 DVC2 128-M
   

図3 DMXServerのスクリーンショット
(左:初期状態,右:フルカラーLED照明(American DJ P36)を追加した状態)





◆ダウンロード

  • DMXServer.zip
    実行ファイルです.事前に.Net Framework2.0以上をインストールしておく必要があります.Windows2000/XP/Vista/7上で動作するはずです.詳しくは下記のインストールを参照してください.
  • DMXServerSource.zip
    ソースコードです.Visual Studio .NET 2008 を用いて,C#で書かれています.
  • DMXドライバ
    Daslight製のUSB-DMXインタフェース用のドライバなどのダウンロードページです.こちらからもダウンロードできます.
  • 不具合・要望などは下記メールアドレスまでご連絡ください.

◆ライセンス

プログラムのソースコードは修正済みBSDライセンスに従って配布します.完全に無保証です.

◆インストール

プログラムを実行する前に,Microsoft .NET Framework再頒布パッケージ (23.7 MB) をインストールしておく必要があります.

これらのインストールが完了後,DMXServer.zipを解凍し,DMXServer.exeをダブルクリックすればプログラムが起動します.



◆使い方

1. インタフェースへの接続と切断

PCにDMXインタフェースを接続後,フォーム下部の「接続」ボタンを押します.終了時には「停止」をクリックします.設定の「最大チャンネル数」は,DMXインタフェースの仕様に応じて設定します.今回紹介したDVC2 128-Mでは,128チャンネルまでとなります.

-
2. デバイスの追加

DMXデバイスの名前を任意にテキストボックスに入力します.次に,開始チャンネル,及び使用チャンネルをプルダウンメニューからそれぞれ選択し,最後に「追加」ボタンを押します.開始チャンネルは各DMXデバイス背面のDIPスイッチなどで設定します.

-

3. デバイスの制御

デバイスを追加すると,以下のようなGUIが表示されます.スライダーを動かすことで,各チャンネルに該当するDMXデバイスの機能をコントロールできます.

-
◇その他の使い方
ネットワーク経由の使い方はMobiServerのページや以下の通信仕様を参考にしてください.


◆通信仕様

ここでは,基本的な通信仕様について説明します.

基本的なコマンド構成

DMXServerの各コマンドの,基本的な構成は,以下のようになります.

DMX,<CommandType>,<DeviceName>,<ChannelNumber>[,...]

  • <CommandType>は以下の3種類
    • Attach
    • Detach
    • Out
  • <DeviceName>は任意のDMXデバイス名か「Direct」
  • <ChannelNumber>は任意のDMXチャンネル番号
DMXServer→クライアント
  • DMX,Attach,<Name>,<StartChannel>,<EndChannel>
    • DMXデバイス<Name>がDMXチャンネル<StartChannel>〜<EndChannel>として登録された.
      ※<Name>は一意の識別名.<StartChannel><EndChannel>は1〜512の整数.
    • e.g.) DMX,Attach,Lamp1,1,6
  • DMX,Dettach,<Name>
    • DMXデバイス<Name>が削除された.
      ※<Name>は一意の識別名.
    • e.g.) DMX,Dettach,Lamp1
クライアント→DMXServer
  • DMX,Out,<Name>,<RelativeChannel>,<Data>
    • DMXデバイス<Name>の<RelativeChannel>番目のチャンネル出力を<Data>に変更する.
      ※<Name>は一意の識別名.<RelativeChannel>は1〜n(<EndChannel>-<StartChannel>)の整数.<Data>は1〜256の整数.
    • e.g.) DMX,Out,Lamp1,1,128
  • DMX,Out,Direct,<AbsoluteChannel>,<Data>
    • チャンネル<AbsoluteChannel>に接続されているDMXデバイス/ポートを<Data>に変更する.
      ※<AbsoluteChannel>は1〜512の整数.<Data>は1〜256の整数.
    • e.g.) DMX,Out,Direct,25,128
※その他の仕様(参考)

その他の基本仕様は以下のようになります.(全てのMobiServerに共通です.)

  • 送受信文字列は全てASCIIテキスト形式.
  • コマンドは「デリミタ」で指定した行区切り子("\r\n","\r","\n","\0")のいずれかで区切られる.
  • コマンド内の各要素は指定した項目区切り子(",", "\t")のいずれか で区切られる.

また,クライアントからコマンドを送信する際の注意事項は以下のようになります.

  • コマンドにミスがあった場合は無視される.(エラーは返さない.)
  • 各コマンドは厳密に指定する必要がある.
    • 大文字/小文字は区別される.
    • スペースを入れない.
  • <ChannelNumber>, <Data>は各コマンド毎に適切な範囲を指定する.
 




◆参考URL
  • SoundHouse
    - DMX関連デバイス(照明,インタフェース,コントローラ他)を多数販売しているオンラインShopです.
  • DMX512 (Wikipedia)
    - DMX512規格の解説がされています.
  • Daslight
    - DMXインタフェース/ソフトウェアを製作しているメーカーのWebページです.
  • Dashard.dll Manual
    - Daslight製/互換のDMXインタフェースを制御するためのDLLの仕様がまとめられています.


[MobiServer]