タグ「Art-net」を含む投稿[102件](5ページ目)
ここ数日は本業で手一杯でした。ライトアップの施工があったのですが、建物の窓を光らせたいとのことで専用の行燈を製作してました。
簡単な作りではあったのですが思った以上に時間がかかり、徹夜して間に合わせたのはいいですが、その余波で心身共にキツイここ数日。
8月のお盆明けからの大連チャンでしたが、この後3月中旬までは緩い日程なので、各種製作や開発を進めて行けそうです。
同時にイロイロ進めますが、とにかくArt-Netエンジンを完成させたい。
Art-Netエンジンとは、Art-Netを受信し、Merge、In-Delay、Patch、Out-Curve、Out-Delayを施し、Art-Netとして送信するデバイスドライバの様なモジュールです。ユーザーインターフェースなどは別途製作ですが、これが完成すれば求めることの半分は完成です。
そのためにC言語を学習しているワケですが、ポインタ、構造体、共有メモリ、マルチプロセスの基本が見えてきましたので、これからしばらくはArt-Netの要であるscoketを試そうと思います。C言語でscoketを扱う情報は高位者による高位者向けの高度な物ばかりですが、幸いPythonでの前例がありますので、これをC言語に置き換える方向で読み解いていこうと思います。
学習を進めれば進める程「ライブラリの使い方はmanとヘッダーファイルを読めば分かるだろ!」という圧を強く感じますが、この感覚が自分にとっても当たり前になるように精進したいものです。
#C言語 #本業 #[Art-Net]
簡単な作りではあったのですが思った以上に時間がかかり、徹夜して間に合わせたのはいいですが、その余波で心身共にキツイここ数日。
8月のお盆明けからの大連チャンでしたが、この後3月中旬までは緩い日程なので、各種製作や開発を進めて行けそうです。
同時にイロイロ進めますが、とにかくArt-Netエンジンを完成させたい。
Art-Netエンジンとは、Art-Netを受信し、Merge、In-Delay、Patch、Out-Curve、Out-Delayを施し、Art-Netとして送信するデバイスドライバの様なモジュールです。ユーザーインターフェースなどは別途製作ですが、これが完成すれば求めることの半分は完成です。
そのためにC言語を学習しているワケですが、ポインタ、構造体、共有メモリ、マルチプロセスの基本が見えてきましたので、これからしばらくはArt-Netの要であるscoketを試そうと思います。C言語でscoketを扱う情報は高位者による高位者向けの高度な物ばかりですが、幸いPythonでの前例がありますので、これをC言語に置き換える方向で読み解いていこうと思います。
学習を進めれば進める程「ライブラリの使い方はmanとヘッダーファイルを読めば分かるだろ!」という圧を強く感じますが、この感覚が自分にとっても当たり前になるように精進したいものです。
#C言語 #本業 #[Art-Net]
ランチャーに行く前にscoketの基本動作の確認かな?
受信したArt-Netパケットをそのまま送信する実験。
これが求める機能の基本ですから確認せんといかん。
#[Art-Net] #C言語
受信したArt-Netパケットをそのまま送信する実験。
これが求める機能の基本ですから確認せんといかん。
#[Art-Net] #C言語
現場が早く終わったので、開発用のRaspberryPiをノートパソコンのVSCodeと繋いでおきました。ここまでしておけば比較的身軽に開発が出来ます。
本格的に開発を進めましょう。
C言語でのsocketについて調べてみましたが、PythonのscoketライブラリはC言語のsocketをほぼそのまま橋渡ししているだけみたいです。引数の書式にわずかな違いはありますが、ほぼ同様に使えそうです。Art-Netを受信してそのまま転送する処理から試しましょう。
#C言語 #[Art-Net]
本格的に開発を進めましょう。
C言語でのsocketについて調べてみましたが、PythonのscoketライブラリはC言語のsocketをほぼそのまま橋渡ししているだけみたいです。引数の書式にわずかな違いはありますが、ほぼ同様に使えそうです。Art-Netを受信してそのまま転送する処理から試しましょう。
#C言語 #[Art-Net]
Art-Netエンジンの構成を整理していますが、そういやプロセス間通信はどうしましょう。
PythonではmultiprocessingのQueueが予想以上に遅くて使い物になりません。便利なんですけどね。
ネットの情報ではPipeや共有メモリが速いとあります。ですが、socketもQueueより速そうなレポートが多く見受けられます。
実験してみないとわかりませんが、速度が足りるならsocketにした方が将来性があります。なぜなら、内部でのプロセス間通信も別プロセッサとの協調動作も設定するIPアドレスとポートが違うだけで全く同じプログラムで実現可能だからです。Pipeや共有メモリよりもsocketはシンプルで扱いやすいので速度が十分なら尚更です。
Art-NetとEtherNetを共用するのは避けた方が良さそうですが、ローレベルのハードウェアを扱いやすいRaspberryPiと計算能力が高いPCを組合せば得意分野を活かして良い結果を出せるような気がします。もし調光卓を考えるならこの方法は必須かもしれません。もちろん、Art-NetエンジンそのものをPCに実装するのもアリでですけど。
これまではQueueベースで書いてきましたが、タプルをバイナリ化してsocketで通信する方法から試してみましょう。
#Python #[Art-Net]
PythonではmultiprocessingのQueueが予想以上に遅くて使い物になりません。便利なんですけどね。
ネットの情報ではPipeや共有メモリが速いとあります。ですが、socketもQueueより速そうなレポートが多く見受けられます。
実験してみないとわかりませんが、速度が足りるならsocketにした方が将来性があります。なぜなら、内部でのプロセス間通信も別プロセッサとの協調動作も設定するIPアドレスとポートが違うだけで全く同じプログラムで実現可能だからです。Pipeや共有メモリよりもsocketはシンプルで扱いやすいので速度が十分なら尚更です。
Art-NetとEtherNetを共用するのは避けた方が良さそうですが、ローレベルのハードウェアを扱いやすいRaspberryPiと計算能力が高いPCを組合せば得意分野を活かして良い結果を出せるような気がします。もし調光卓を考えるならこの方法は必須かもしれません。もちろん、Art-NetエンジンそのものをPCに実装するのもアリでですけど。
これまではQueueベースで書いてきましたが、タプルをバイナリ化してsocketで通信する方法から試してみましょう。
#Python #[Art-Net]
現場もホール資料の作成も一息つきました。
終わっていませんが、自分の領分に区切りが付いて投げたところなのでしばらくは少しサボれます。
なので、Art-Netエンジンを再開しています。
基本的な機能の製作は済んでいるので最適化をします。常にそれなりの負荷で動くモジュールなので可能な限り動作負荷を軽減し例外エラーも出にくくしたいからです。
特に処理の順位とタイミングの精査が重要です。無駄な繰り返し処理を極力減らし、やるべきことは適切に実行させるのです。パッと見はスマートでも順位が最適じゃないとか、状況確認のIF文が無駄に実行されていたりするのはよくあることです。自然な流れで実際の処理量をどれだけ減らせるかが勝負です。
改めてフローを書いています。実験段階ではフローを書かず処理が成立するかコマンドを試しながら思いつきで書くことが多いのですが、最適化をするには分割した部分を並べ直して見直すのがいいようです。いわゆるフローチャートを書くのではなく、付箋に要素を書いてホワイトボードに並べるブレインストーミングみたいな作業です。一人作業なのでパソコンの中でやってますけど、LibreOfficeのドローがこの作業では使いやすいですね。
時間も開発費も乏しいところですが、出来るだけ多くの製品を作りたいものです。
#[Art-Net]
終わっていませんが、自分の領分に区切りが付いて投げたところなのでしばらくは少しサボれます。
なので、Art-Netエンジンを再開しています。
基本的な機能の製作は済んでいるので最適化をします。常にそれなりの負荷で動くモジュールなので可能な限り動作負荷を軽減し例外エラーも出にくくしたいからです。
特に処理の順位とタイミングの精査が重要です。無駄な繰り返し処理を極力減らし、やるべきことは適切に実行させるのです。パッと見はスマートでも順位が最適じゃないとか、状況確認のIF文が無駄に実行されていたりするのはよくあることです。自然な流れで実際の処理量をどれだけ減らせるかが勝負です。
改めてフローを書いています。実験段階ではフローを書かず処理が成立するかコマンドを試しながら思いつきで書くことが多いのですが、最適化をするには分割した部分を並べ直して見直すのがいいようです。いわゆるフローチャートを書くのではなく、付箋に要素を書いてホワイトボードに並べるブレインストーミングみたいな作業です。一人作業なのでパソコンの中でやってますけど、LibreOfficeのドローがこの作業では使いやすいですね。
時間も開発費も乏しいところですが、出来るだけ多くの製品を作りたいものです。
#[Art-Net]
ソフトウェアを書く時間はありませんが、Art-Netパッチのハードウェアの基本方針を考えています。必須事項はEtherNetが独立して2系統あることです。
RaspberryPiには1系統しかありませんので増設が必要です。USBで増設してもいいのですがスッキリしているとは言えません。
そういや、RaspberryPiCM4はPCIeX1を出しています。4BではUSB3.0のアダプタに接続されていて表に出ていませんが、CM4ではUSB3.0が無い代わりに出ています。これにEtherNetアダプタを取り付けたらいいかなと。
通常のPCIeX1コネクタでもいいし、M.2で使われるNGFFコネクタ(M-key)でもいい。汎用性ならPCIeX1で、小型化を考えるならNGFFかな?いずれにしてもMACアドレスの取得を考えるとチップだけ使うより既製品のネットワークカードを使うのがよいでしょう。現実的には通常のPCIeX1ロープロファイルでIntelチップを使うデュアルタイプがよろしいかな?
#[Art-Net] #RaspberryPi
RaspberryPiには1系統しかありませんので増設が必要です。USBで増設してもいいのですがスッキリしているとは言えません。
そういや、RaspberryPiCM4はPCIeX1を出しています。4BではUSB3.0のアダプタに接続されていて表に出ていませんが、CM4ではUSB3.0が無い代わりに出ています。これにEtherNetアダプタを取り付けたらいいかなと。
通常のPCIeX1コネクタでもいいし、M.2で使われるNGFFコネクタ(M-key)でもいい。汎用性ならPCIeX1で、小型化を考えるならNGFFかな?いずれにしてもMACアドレスの取得を考えるとチップだけ使うより既製品のネットワークカードを使うのがよいでしょう。現実的には通常のPCIeX1ロープロファイルでIntelチップを使うデュアルタイプがよろしいかな?
#[Art-Net] #RaspberryPi
Art-Netエンジンが全く進みません。頭を全振り出来るまとまった時間が取れないのです。
#[Art-Net]
#[Art-Net]
急に入ったライトアップを仕込んできました。
例年年末に実施している仕込みで色を変えたものです。
今回は単色なので灯体のプレイバック機能で十分ですが、ライトアップ特化した卓が欲しいなと。何月何日何時からシーンの何番を実行するとプログラム出来るものです。
DMXレコーダー系は実尺での取り込みが必要なのでイヤ。
DAS-Lightの上位機種にはカレンダー機能がありますが、明かり作りの操作感が肌に合わないのでイヤ。
設備系は高価だし明かり作りが面倒なのでイヤ。
そういや、今作っているArt-Netパッチを拡張すればよくね!?
エフェクトエンジンを搭載するにはあと100年くらいかかりそうですが、単純なステップタイプの卓を作るのはそれほど難しく無いと思います。シーケンスの実行トリガに日時、シーンの実行トリガに経過時間を設定出来るものとする。チェイスはシーンのループ処理がしやすいことで対策。贅沢を言い始めたらキリがありませんが、単純なステップタイプのシーケンスにライトアップで便利なちょい機能を加える考え方です。
高度なことをするなら高度な卓を使えばいいのですし、今困っている簡単そうで簡単に出来ないことに特化したモノであればいい。私の要望は、LEDスポットに内蔵されたシーン機能がプログラムしやすくて実行の日時指定が出来ればいいレベルです。「LEDカラーミックススポットを使ったライトアップで、何年何月何日何時何分何秒から指定したパターンが実行できるシンプルな卓」とします。
決して、MAやAVOにカレンダー機能を搭載したモノな物は目指さない。「MAなら簡単にでき・・・」とか言う輩はMAを使えばいいのです。
#[Art-Net]
例年年末に実施している仕込みで色を変えたものです。
今回は単色なので灯体のプレイバック機能で十分ですが、ライトアップ特化した卓が欲しいなと。何月何日何時からシーンの何番を実行するとプログラム出来るものです。
DMXレコーダー系は実尺での取り込みが必要なのでイヤ。
DAS-Lightの上位機種にはカレンダー機能がありますが、明かり作りの操作感が肌に合わないのでイヤ。
設備系は高価だし明かり作りが面倒なのでイヤ。
そういや、今作っているArt-Netパッチを拡張すればよくね!?
エフェクトエンジンを搭載するにはあと100年くらいかかりそうですが、単純なステップタイプの卓を作るのはそれほど難しく無いと思います。シーケンスの実行トリガに日時、シーンの実行トリガに経過時間を設定出来るものとする。チェイスはシーンのループ処理がしやすいことで対策。贅沢を言い始めたらキリがありませんが、単純なステップタイプのシーケンスにライトアップで便利なちょい機能を加える考え方です。
高度なことをするなら高度な卓を使えばいいのですし、今困っている簡単そうで簡単に出来ないことに特化したモノであればいい。私の要望は、LEDスポットに内蔵されたシーン機能がプログラムしやすくて実行の日時指定が出来ればいいレベルです。「LEDカラーミックススポットを使ったライトアップで、何年何月何日何時何分何秒から指定したパターンが実行できるシンプルな卓」とします。
決して、MAやAVOにカレンダー機能を搭載したモノな物は目指さない。「MAなら簡単にでき・・・」とか言う輩はMAを使えばいいのです。
#[Art-Net]
久しぶりにArt-Netエンジンを書く時間が取れそうです。
丁度よい冷却期間になったのか、そもそもの修正点を思いつきました。
そもそもというのは処理の全体像のことです。Art-Netを受信して、パッチ処理などをして、送信するワケですが、これらの処理を無駄なく適切なタイミングで行うことはとても大切なので、それを目指して書き直しをするのです。偉そうな言葉を使うなら「最適化」です。
正直言いますと大きな無駄を見つけたのです。何しろ経験豊富の真逆ですから、設計書を書いてコーディングして・・・なんて上品な製作は出来ません。思い付いて書いては実験、思い付いて書き直しては実験を繰り返すので、付け焼刃の繰り返しで各所に歪みやら無駄が溜まるのです。一応機能するようになったら全体の見直しをするのはいつものことですけど、3歩進んで2歩下がるを繰り返す自分の様は残念です。つーても、誰かが書いてくれるワケでも添削してくれるワケでもないので仕方ありません。
全体の直しはあるとしても、作業の要はスタックフェーダーへの対応です。
ちょっと前まではスタックフェーダーのシーンデータをエンジン内に持たせ、別プロセスからマスター値を送り込んでエンジン内で出力値の計算をさせるイメージでしたが、エンジンの処理がやたら重くなるし拡張性も低いのでやめます。Art-Net受信値とMIXする一意のデータをエンジンに送り込むことにし、シーンデータを持つのもマスター値による出力値の計算もスタックフェーダ間のMIXも別プロセスにさせることにします。こうすれば、将来的に卓へ拡張してもArt-Netエンジン自体の変更は不要です。
#[Art-Net]
丁度よい冷却期間になったのか、そもそもの修正点を思いつきました。
そもそもというのは処理の全体像のことです。Art-Netを受信して、パッチ処理などをして、送信するワケですが、これらの処理を無駄なく適切なタイミングで行うことはとても大切なので、それを目指して書き直しをするのです。偉そうな言葉を使うなら「最適化」です。
正直言いますと大きな無駄を見つけたのです。何しろ経験豊富の真逆ですから、設計書を書いてコーディングして・・・なんて上品な製作は出来ません。思い付いて書いては実験、思い付いて書き直しては実験を繰り返すので、付け焼刃の繰り返しで各所に歪みやら無駄が溜まるのです。一応機能するようになったら全体の見直しをするのはいつものことですけど、3歩進んで2歩下がるを繰り返す自分の様は残念です。つーても、誰かが書いてくれるワケでも添削してくれるワケでもないので仕方ありません。
全体の直しはあるとしても、作業の要はスタックフェーダーへの対応です。
ちょっと前まではスタックフェーダーのシーンデータをエンジン内に持たせ、別プロセスからマスター値を送り込んでエンジン内で出力値の計算をさせるイメージでしたが、エンジンの処理がやたら重くなるし拡張性も低いのでやめます。Art-Net受信値とMIXする一意のデータをエンジンに送り込むことにし、シーンデータを持つのもマスター値による出力値の計算もスタックフェーダ間のMIXも別プロセスにさせることにします。こうすれば、将来的に卓へ拡張してもArt-Netエンジン自体の変更は不要です。
#[Art-Net]
Art-Netパッチに使おうと買ってみた8吋のオープンフレームモニタが入荷しました。

オープンフレームモニタは単体で使うモニタではなく機器に内蔵するためのモニタです。無骨ですが、取付金具やネジ穴があって筐体作りには向いています。
今後の確認次第ですが、いい感じだと思います。
当初使おうと思った公式の7吋ディスプレイは16:9の800x480ドットです。表示される文字の大きさは老眼にも優しく丁度いいのですが、情報量が不足な上に16:9は表が読みにくい感じがします。
8吋の800x600が希望だったのですが、取り扱い店が少なく将来的な入手に不安を感じるので、取り扱いが多い8吋の1024x768を選びました。
文字が小さい気もするのですが、512スロットを1画面に表示出来そうなのは悪くありません。かなり進んだ老眼には見えない文字サイズになりそうですが、ムービング卓の画面を読める人基準で考えます。明日は我が身ですけど(笑
先ほどまでこのモニタを仮に立てておく脚を3D-CADで描いてました。帰宅したらプリントです。
つか、現場の音源のフォーマット変換(m4a→wav)がなかなか終わらなくてそのヒマつぶしをしているところですが・・・
#[Art-Net]

オープンフレームモニタは単体で使うモニタではなく機器に内蔵するためのモニタです。無骨ですが、取付金具やネジ穴があって筐体作りには向いています。
今後の確認次第ですが、いい感じだと思います。
当初使おうと思った公式の7吋ディスプレイは16:9の800x480ドットです。表示される文字の大きさは老眼にも優しく丁度いいのですが、情報量が不足な上に16:9は表が読みにくい感じがします。
8吋の800x600が希望だったのですが、取り扱い店が少なく将来的な入手に不安を感じるので、取り扱いが多い8吋の1024x768を選びました。
文字が小さい気もするのですが、512スロットを1画面に表示出来そうなのは悪くありません。かなり進んだ老眼には見えない文字サイズになりそうですが、ムービング卓の画面を読める人基準で考えます。明日は我が身ですけど(笑
先ほどまでこのモニタを仮に立てておく脚を3D-CADで描いてました。帰宅したらプリントです。
つか、現場の音源のフォーマット変換(m4a→wav)がなかなか終わらなくてそのヒマつぶしをしているところですが・・・
#[Art-Net]