タグ「タイムコード」を含む投稿[53件](6ページ目)
Linux上のC言語でLTCの波形を起こせたらと思ったのですが、処理能力の総量は余裕タップリなものの、Art-Netエンジンを作った際に感じた挙動ムラから想像するに許容範囲を越える波形ムラが起こりそうです。LinuxはOSそのものや他のモジュールに引っ張られて100~300usecくらい待たされることがあるのですが、LTCの波形を起こすのにこの条件はよろしくありません。RTOSを使わないなら普通のことですけどね。
ならばLTCを起こすところにはPICを使ったらいいかな?適材適所?
LinuxからUARTなどでフレーム情報を送ってPICでLTCを生成するのです。2~4フレーム分くらいPICにバッファすればLinux側に動作ムラがあっても安定した波形を出すと思われます。
差動バイフェーズで信号を反転する時間ピッチは25fpsで250usecです。29.97fpsではなく25fpsとしているのは、PALのレートなのでLTC対応の演出機器は100%対応するし、何よりも計算がしやすく誤差も出にくいために当面の試作には良いかなと。250usecは32MHzのPICで2,000命令相当の時間です。これだけあれば大概ことは1フェーズ分実行出来ます。実行周期はTMR1やTMR2による周期割込みを使えばPICのクロック素子相当の精度を得られます。
求める精度は、周期が0.001%未満、差動バイフェーズの立ち上がり立下り精度が5%未満です。無理は無さそうです。
書いてて思ったのですが、こんなLTCジェネレーターをこれまでに作らなかった自分が不思議。
#タイムコード #PIC #電子工作
ならばLTCを起こすところにはPICを使ったらいいかな?適材適所?
LinuxからUARTなどでフレーム情報を送ってPICでLTCを生成するのです。2~4フレーム分くらいPICにバッファすればLinux側に動作ムラがあっても安定した波形を出すと思われます。
差動バイフェーズで信号を反転する時間ピッチは25fpsで250usecです。29.97fpsではなく25fpsとしているのは、PALのレートなのでLTC対応の演出機器は100%対応するし、何よりも計算がしやすく誤差も出にくいために当面の試作には良いかなと。250usecは32MHzのPICで2,000命令相当の時間です。これだけあれば大概ことは1フェーズ分実行出来ます。実行周期はTMR1やTMR2による周期割込みを使えばPICのクロック素子相当の精度を得られます。
求める精度は、周期が0.001%未満、差動バイフェーズの立ち上がり立下り精度が5%未満です。無理は無さそうです。
書いてて思ったのですが、こんなLTCジェネレーターをこれまでに作らなかった自分が不思議。
#タイムコード #PIC #電子工作
PythonならVLCを簡単に扱えそうですが、C言語で扱うのはちょっと難しそうです。
ネットには先達の情報が少なく、VLCライブラリのヘッダーファイルを読んでも理解不能。ヘッダーファイルには更なるヘッダーファイルが記述してあり、そのヘッダーファイルの中にも更なるヘッダーファイルがあります。どこまで深いのかわからんくらいです。プロトタイプ宣言と思わしき記述もゴリゴリのC++なので何がどうなっているのか追いかけられません。高度で大きなアプリケーションですから簡単ではないのです。
当面はPythonでの実装を目指し、C言語での実装を夢見るってところでしょうか。
となると、Pythonでタイムコードの生成をするのがカギになるかもしれません。
Pythonで安定したLTCの波形を生成するのは厳しそうなのでMIDI-TimeCodeにするのが現実的でしょうか。MIDIは9600bpsのUARTですからPythonでも余裕を持って作れます。ただ、音源操作と照明操作の場所が離れているとMIDIでは接続が難しいので、音声信号として送れるLTCが望みです。MIDIをRS485に変換すればいいって話もありますけどね。
C言語でLTC生成のPythonライブラリを作るのがいいのでしょうか。PythonライブラリをC言語で書いたことはありませんが、C言語のライブラリとして成立していれば比較的簡単な記述でPythonライブラリが作れるそうです。
#タイムコード
ネットには先達の情報が少なく、VLCライブラリのヘッダーファイルを読んでも理解不能。ヘッダーファイルには更なるヘッダーファイルが記述してあり、そのヘッダーファイルの中にも更なるヘッダーファイルがあります。どこまで深いのかわからんくらいです。プロトタイプ宣言と思わしき記述もゴリゴリのC++なので何がどうなっているのか追いかけられません。高度で大きなアプリケーションですから簡単ではないのです。
当面はPythonでの実装を目指し、C言語での実装を夢見るってところでしょうか。
となると、Pythonでタイムコードの生成をするのがカギになるかもしれません。
Pythonで安定したLTCの波形を生成するのは厳しそうなのでMIDI-TimeCodeにするのが現実的でしょうか。MIDIは9600bpsのUARTですからPythonでも余裕を持って作れます。ただ、音源操作と照明操作の場所が離れているとMIDIでは接続が難しいので、音声信号として送れるLTCが望みです。MIDIをRS485に変換すればいいって話もありますけどね。
C言語でLTC生成のPythonライブラリを作るのがいいのでしょうか。PythonライブラリをC言語で書いたことはありませんが、C言語のライブラリとして成立していれば比較的簡単な記述でPythonライブラリが作れるそうです。
#タイムコード
PythonでVLCライブラリを使えば映像や音声に関して今やりたいことは全て出来そうです。
VLCは映像や音声の類は何でも再生出来る便利なアプリですが、コマンドラインでも使えるし、プログラムを書くためのライブラリとしても機能します。Windowsはもちろん、MacでもLinuxでも動きます。
懸案の再生時間の取得ですが、再生のためにはファイルをVLCモジュールに読み込んでインスタンスにするのですが、インスタンスからget_time()を取ると現在の再生ポジションをmsecの値で得られるようです。得た値の扱いはよく考えねばなければなりませんが、途中から再生しても適切なタイムコードを出せそうです。
ついでにTASCAM系のプレイバックも協調動作させますか。比較的単純なシリアル信号で動きますから、CDなどを同時スタート出来ればバックアップになります。
もちろん、PythonのライブラリがあるならC言語のライブラリもあると思われます。Pythonで書いとけばプラットホームを選ばないので、このツールはC言語で書くよりいいのかもしれないけど。
開発する時間がないので当面棚上げですが、ノンビリ研究していきましょう。
追記
C言語のライブラリーはlibvlc、includeは<vlc/vlc.h>だそうです。
映像を表示せず音声だけの出力も明示的に指示出来るようです。
#タイムコード
VLCは映像や音声の類は何でも再生出来る便利なアプリですが、コマンドラインでも使えるし、プログラムを書くためのライブラリとしても機能します。Windowsはもちろん、MacでもLinuxでも動きます。
懸案の再生時間の取得ですが、再生のためにはファイルをVLCモジュールに読み込んでインスタンスにするのですが、インスタンスからget_time()を取ると現在の再生ポジションをmsecの値で得られるようです。得た値の扱いはよく考えねばなければなりませんが、途中から再生しても適切なタイムコードを出せそうです。
ついでにTASCAM系のプレイバックも協調動作させますか。比較的単純なシリアル信号で動きますから、CDなどを同時スタート出来ればバックアップになります。
もちろん、PythonのライブラリがあるならC言語のライブラリもあると思われます。Pythonで書いとけばプラットホームを選ばないので、このツールはC言語で書くよりいいのかもしれないけど。
開発する時間がないので当面棚上げですが、ノンビリ研究していきましょう。
追記
C言語のライブラリーはlibvlc、includeは<vlc/vlc.h>だそうです。
映像を表示せず音声だけの出力も明示的に指示出来るようです。
#タイムコード