<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
	<title><![CDATA[ タグ「タイムコード」を含む投稿［54件］ - 電装工芸日記 - 舞台照明機器の製作とか - ]]></title>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi</link>
	<description><![CDATA[ 今年は開発案件を進めたい ]]></description>
	<language>ja</language>
	<copyright>Copyright 2026</copyright>
	<lastBuildDate>Mon, 20 Apr 2026 06:10:27 +0900</lastBuildDate>
	<generator><![CDATA[ <!-- てがろぐ Version: -->Powered by <a href="https://www.nishishi.com/cgi/tegalog/" target="_top">てがろぐ</a> Ver 3.4.0 ]]></generator>
	<!-- BEGIN ENTRIES -->
	<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　秋口に大規模な花火大会の仕事を請けたと社長の鼻息が荒い。 ]]></title>
	<description><![CDATA[ 　秋口に大規模な花火大会の仕事を請けたと社長の鼻息が荒い。<br />　売り上げは大きいので良いことですが問題はダイムコード。音に合わせて花火を打ち上げるのですが、この音で花を咲かせたいとなれば点火のタイミングは花火の挙動から逆算したところにあります。この対策に今どきの花火師さん達はタイムコード(LTC)を使います。音源のLchに音楽、RchにLTCを入れてそれを制御(点火)のキーにするのです。困ったことに、タイムコード(LTC)を理解してない人が多すぎ。アナログ音声信号としてデジタル信号を構成しているってことを全くわかってない。<br />　差動バイフェーズなので音声信号として-4～4dBで渡せば済むのでハイパス・ローパスフィルタとコンプレッサをかけてノイズ除去をすればいいのですが、その理屈を理解してもらえない。<br />　フィルムにフレームの番地を与えるために発祥した技術ですが、そもそもがわかってないので伝わらない。<br />　伝送方式である差動バイフェーズ(差動マンチェスター)は1980代にパソコンのデータをカセットテープに保存した様式と同じなのですが、デジタルも結局はアナログって思考が無い人にどうやって説明したものでしょう。システムレイヤーって概念がわかれば伝わりやすいことですが思ったより難しいことのようです。<br /><br />追記<br />　ChatGPT に差動バイフェーズやLTCのことを質問したらとてもわかりすい回答を得られました。<br />　私もLTCについて本体ページに書いていますが、AIにここまでやられたら記事をまとめる必要を感じなくなったりして(笑<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> -- Posted by 電装工芸 〔672文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=1082</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=1082</guid>
	<category>tegalog</category>
	<pubDate>Tue, 24 Jun 2025 20:43:30 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　LtcPlayer 0.2.2βです。 ]]></title>
	<description><![CDATA[ 　<a class="url" href="https&#58;//owncloud.densokogei.jp&#58;8080/index.php/s/Isu9B9QxC6vY2b1" target="_blank" title="https&#58;//owncloud.densokogei.jp&#58;8080/index.php/s/Isu9B9QxC6vY2b1">LtcPlayer 0.2.2β</a>です。<br />　細かいバグを修正しました。<br />「VLC media player」のインストールを推奨します。入れなくても動きますが、入れた方がいいみたい。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> -- Posted by 電装工芸 〔100文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=709</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=709</guid>
	<category>tegalog</category>
	<pubDate>Wed, 06 Sep 2023 12:37:40 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　VLC が入っていて Python を入れていないパソコン… ]]></title>
	<description><![CDATA[ 　VLC が入っていて Python を入れていないパソコンが一台あったので exeファイルを試してみました。<br />　問題なく動きます。<br />　python-vlc は VLC を入れていなくても動くハズですが、入れておいた方がいいのかもしれません。<br /><br />　VLC をアンインストールして試す手もありますが、DLL などが残る可能性もあるので、一度 VLC に触れたパソコンはインストール済みと思うしかありません。<br />　いずれにしても、VLC のインストールを推奨することにしましょう。<br /><a class="url" href="https&#58;//www.videolan.org/vlc/index.ja.html" target="_blank" title="https&#58;//www.videolan.org/vlc/index.ja.html">「VLC media player」</a> <br />　とても便利なアプリです。特にこだわりがなければ、デフォルトアプリとしてもお勧めする一品です。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> -- Posted by 電装工芸 〔322文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=707</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=707</guid>
	<category>tegalog</category>
	<pubDate>Mon, 04 Sep 2023 11:38:36 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　pyinstaller でexeファイルを作ってみましたが… ]]></title>
	<description><![CDATA[ 　pyinstaller でexeファイルを作ってみましたが環境によって微妙な不具合が出ます。原因は不明ですが、pyinstaller の操作手順かもしれません。<br /><a class="url" href="https&#58;//qiita.com/nal_dal_dere/items/95e173068af399e61981" target="_blank" title="https&#58;//qiita.com/nal_dal_dere/items/95e173068af399e61981">「PyinstallerでPythonプログラムをexe化する手順書（Windows編）」</a> <br />　上記を参考に作った exeファイルは自分の環境では問題なく動いたのですが、ここに一工夫加えてみようと思います。<br />　仮想環境での実行が推奨されていますが、pyinstaller 自体も仮想環境にインストールするべきなのかもしれません。別の先達情報にはその様に書かれている物があります。<br /><a class="url" href="https&#58;//qiita.com/TakamiChie/items/8dba8459343db898b335" target="_blank" title="https&#58;//qiita.com/TakamiChie/items/8dba8459343db898b335">「PyInstallerを使ってみた」</a> <br /><br />追記<br />　作業手順のオレメモ。<br />　仮想環境に pyinstaller を入れての実行の方が良いようです。<br /><small class="decorationS"><span class="decorationF deco-code">作業ディレクトリに移動<br />&gt; cd &lt;作業ディレクトリ&gt;<br />pipenv をインストール<br />&gt; pip install pipenv<br />pipenv で使う python のバージョンを指定<br />&gt; pipenv --python 3.9<br />pipenv(仮想環境)を開始<br />&gt; pipenv shell<br />仮想環境にpyinstaller をインストール<br />&gt; pipenv install -d pyinstaller<br />必要なライブラリをインストール<br />&gt; pipenv install pyserial<br />&gt; pipenv install PySimpleGUI<br />&gt; pipenv install python-vlc<br />・・・etc<br />ビルドする<br />&gt; pyinstaller ltcplayer.py --clean --noconcole --onefile<br />・・・数分で終わる。<br />作業ディレクトリ内の distフォルダ内 に ltcplayer.exe が出来ている。<br /><br />終了なら仮想環境のshellから抜ける<br />&gt; exit<br />仮想環境を削除<br />&gt; pipenv --rm<br /><br />作業ディレクトリは Python のソースコードがある階層でもいいのだけれど、<br />ゴチャゴチャするので私は一つ下の階層で作業をしています。<br />ソースコードがある階層で<br />&gt; mkdir env<br />&gt; cd env<br />&gt; pyinstaller ..\ltcplayer.py --clean --noconcole --onefile<br />相対パスでソースコードを一つ上の階層として呼びます。<br />お好みですけど。</span></small><br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> -- Posted by 電装工芸 〔1039文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=706</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=706</guid>
	<category>tegalog</category>
	<pubDate>Sat, 02 Sep 2023 17:34:54 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　実行ファイル化した LTC Player 0.2.0β の… ]]></title>
	<description><![CDATA[ 　実行ファイル化した LTC Player 0.2.0β の処理負荷は５～７％です。十分に軽いと言えます。<br />　しばらくは本業を頑張らないといけませんが、その本業で使って細かいバグを見つけていきましょう。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> -- Posted by 電装工芸 〔118文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=704</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=704</guid>
	<category>tegalog</category>
	<pubDate>Wed, 30 Aug 2023 13:06:09 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　Python でファイル保存するには次の方法がお手軽みたい… ]]></title>
	<description><![CDATA[ 　Python でファイル保存するには次の方法がお手軽みたい。<br /><a class="url" href="https&#58;//www.robotech-note.com/entry/2016/10/01/180840" target="_blank" title="https&#58;//www.robotech-note.com/entry/2016/10/01/180840">「pythonでlistをファイルに保存し、読み込む方法(numpyも同様！)」</a> <br />　上記内の「pickleを使用する方法（おすすめ！）」です。<br />　ここでは list を保存する方法として書かれていますが tuple でもＯＫ。もちろん、list や dict を含む異なる型をテキトウに突っ込んだ tuple でもＯＫ。Python で一つの変数として扱える状態にしてから pickle.dump でファイルに入れれば何でもいいみたい。読出しは load すれば pickle.dump する直前の状態で変数に格納されます。変数のまんま保存し変数のまんま読み出せるイメージです。<br />　やりたいことは list 型のセットリストと諸々のステータスの保存/読出しです。これらを tuple にまとめれば一括で扱えるみたいです。<br />　ファイル保存は手続きが面倒ってイメージがありましたが、これは楽チンです。<br /><br />　追加オレメモ。<br /><a class="url" href="https&#58;//note.nkmk.me/python-os-exists-isfile-isdir/" target="_blank" title="https&#58;//note.nkmk.me/python-os-exists-isfile-isdir/">「Pythonでファイル、ディレクトリ（フォルダ）の存在確認」</a> <br /><a class="url" href="https&#58;//note.nkmk.me/python-os-mkdir-makedirs/" target="_blank" title="https&#58;//note.nkmk.me/python-os-mkdir-makedirs/">「Pythonでディレクトリ（フォルダ）を作成するmkdir, makedirs」</a> <br /><a class="url" href="https&#58;//python.softmoco.com/basics/python-file-copy-move.php" target="_blank" title="https&#58;//python.softmoco.com/basics/python-file-copy-move.php">「Python ファイルのコピーと移動」</a> <br />　こういった基本的なことが凄く簡単なのは Python のすばらしさ。<br />　この様な操作を整理しているのは、データを他のパソコンに持って行く前提で、音源ファイルをセットリストファイルと同じフォルダに置きたいからです。<br /><br />　pyinstaller を使って実行ファイル化(.exe化)してみました。この状態にすると Python をインストールしていないパソコンでも動きます。操作は簡単ですし中身を隠せていいかも。<br />　モノは試しにアップしてみました。Windows11の64bitでしか試していませんが、64bitならWindows10でも動くと思われます。<br />　<a class="url" href="https&#58;//owncloud.densokogei.jp&#58;8080/index.php/s/Isu9B9QxC6vY2b1" target="_blank" title="https&#58;//owncloud.densokogei.jp&#58;8080/index.php/s/Isu9B9QxC6vY2b1">LtcPlayer</a><br />　セットリストの保存機能が未実装のβ版です。モノ好き大好き自己責任でお楽しみください。<br />　LTC の出力には専用インターフェースが必要です。これが無ければ単なる音楽プレーヤーです。<br />　専用インターフェースのことを LTC Generator と呼んでいますが販売するかは検討中です。ノンクレーム返品可で少数販売でしょうか？手作りなので数を作れませんしサポートしきれませんし。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> -- Posted by 電装工芸 〔1033文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=703</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=703</guid>
	<category>tegalog</category>
	<pubDate>Wed, 30 Aug 2023 10:56:35 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　LTC Player は「オイラ、最初からこうだよ」と言わ… ]]></title>
	<description><![CDATA[ 　LTC Player は「オイラ、最初からこうだよ」と言わんばかりの顔で動いています。嬉しいようなちょっとムカつくような。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> -- Posted by 電装工芸 〔79文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=702</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=702</guid>
	<category>tegalog</category>
	<pubDate>Wed, 30 Aug 2023 09:46:32 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　LTC Player はセットリストの保存以外は完成した様… ]]></title>
	<description><![CDATA[ 　LTC Player はセットリストの保存以外は完成した様子です。0.2.0βとしました。<br />　バグや設計ミスはあると思うのですが、これ以上は使ってみないと分からないような気がします。<br />　LTCについて、MAdot2の場合ですが、無信号から受信開始まで0.3-0.5秒かることへの対策として停止タイムの数フレーム前を数フレームリピートしていますが、他の卓の挙動の検証も必要です。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> -- Posted by 電装工芸 〔206文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=700</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=700</guid>
	<category>tegalog</category>
	<pubDate>Tue, 29 Aug 2023 13:34:53 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　とある中堅企業さんの労働組合さんの納涼祭でした。お盆もとう… ]]></title>
	<description><![CDATA[ 　とある中堅企業さんの労働組合さんの納涼祭でした。お盆もとうに過ぎているのに納涼祭？とか思ったりしますが、中堅の工場はお盆前後が忙しいので時期をずらすのはアリアリでしょう。勤務日数が少ない８月を乗り切ったぞー！ってヤツも含まれていそうです。<br />　そんな現場でしたが、MAdot2 を使ったので LTC Player のランニングテストも同時に実施。本番でこんなことをするのは不謹慎ちゃ不謹慎ですが、LTC が途切れることなく受信されるかを確認するには丁度よい。普段なら卓をずっと眺めていることは難しいですが、目の前の卓を操作するのが仕事なら無理はありません。LTC で卓を動かすのでははく長時間の認識のテストですから時計を表示するのと同じ。LTC のデータが間違っていたり途切れたりして卓が止まることはまずありません。なんでかんで MA の製品ですから。<br />　８時間ほど実施しましたが問題は発生セズ。バグではなく設計(デザイン)のミスを見つけたので今後対策しますが、音源に沿った LTC で止まることなく卓がカウントを刻むのは気持ちがイイ。<br />　プレイリストの保存機能も構成しなければなりませんし、修正もまだまだありますが、間違いなく β版 に昇格しています。この達成感と安堵感は暑さという調味料以上にビールを美味しくしてくれています。オタク冥利とはこのことでしょうか。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> -- Posted by 電装工芸 〔599文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=698</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=698</guid>
	<category>tegalog</category>
	<pubDate>Sun, 27 Aug 2023 00:44:56 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　LTC Player & LTC Generator を … ]]></title>
	<description><![CDATA[ 　LTC Player & LTC Generator を α版 から β版 に昇格しました。主要な機能が搭載されたって意味です。<br />　プレイリストの保存やバグ潰し、細かい調整はこれからですが、音の再生に沿った LTC が出力され、それを拾って卓が動きます。音のポジションを飛ばしてもそれに沿った LTC が出ます。フレーム値が飛んだ時の挙動は卓次第ですが、一時停止も先送りもしなければとても素直に動きます。何度再生しても同じ結果が出ます。そうでないと困るのですが、これぞ期待した機能であります。<br />　ただしmp3などの圧縮データではパソコンによって再生のクセが違い、音アタマとオシリの挙動が一定しません。メロディ続きでトラックが分かれている音源では問題になりそうです。圧縮データだからでしょうが、VLC のライブラリに頼り切っている私にはどうすることも出来ません。非圧縮のデータ形式の wav では正常なので音源のデータ形式を制限した方がいいですね。Windowsならwav、MacintoshならAIFFってことです。<br />　なんでかんで5,000行もあるソースコードになりました。本業を後回しに書いていたのは間を空けると細かいことを忘れてしまうからです。自分なりに読みやすく書きましたので正常に動くところまでやっておけば読み返して戻ることも出来ますが、障害を残したまま間を空けると次の作業で障害を思い出すのに時間がかかるのです。<br />　一応の区切りが付きましたので、一旦お休みというか本業にアタマを戻してプレイリストの保存方法などを検討していこうと思います。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> -- Posted by 電装工芸 〔693文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=697</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=697</guid>
	<category>tegalog</category>
	<pubDate>Fri, 25 Aug 2023 18:43:39 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　初期構成の段階ですが、LTC Player & LTC G… ]]></title>
	<description><![CDATA[ 　初期構成の段階ですが、LTC Player & LTC Generator の融合が出来ました。<br />　PLAYボタンを押すと曲と共に LTC がカウントされ、卓(MAdot2)が認識します。まだまだ課題と見えない問題は多いと思いますが、峠を越えた心持ちです。<br />　処理負荷はWindows7世代のミドルレンジパソコンで20%前後です。まぁまぁでしょう。<br /><br />　ここ２日間はEoCとコレばっかりやっていたので本業がヤバイですけど、祝杯を上げてもいいかもしれません。<br />　この後は考えをまとめて構造を整理します。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> -- Posted by 電装工芸 〔268文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=696</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=696</guid>
	<category>tegalog</category>
	<pubDate>Wed, 23 Aug 2023 19:34:15 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　LTC Player から LTC Generator を… ]]></title>
	<description><![CDATA[ 　LTC Player から LTC Generator を制御するモジュールを本格的に書き始めました。<br />　ハードウェアを作った３ヶ月前の自分が何を考えていたか整理しつつ、bytes と bytearray を用いてシリアル通信の再構築です。<br />　USB-Serial 変換の FT232RL には LTC Generator であるとマークを埋め込みたいのですが、FT Prog では書き換わっていても、Python で読むとシリアルナンバーくらいしか書き換えが反映しません。排他処理が出来ればいいのでコレでもいいのですが腑に落ちません。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> -- Posted by 電装工芸 〔286文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=692</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=692</guid>
	<category>tegalog</category>
	<pubDate>Tue, 22 Aug 2023 09:00:27 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　先週末、LTC Generator の関数を書いてました。… ]]></title>
	<description><![CDATA[ 　先週末、LTC Generator の関数を書いてました。モード値とタイムコード値から送信のバイナリを起こす関数です。<br />　この作業で Python の変数の型である bytes と bytearray の違いようやくわかりました。<br />　突き詰めたらどちらもバイトデータの羅列ってのが第一条件なんですが、コマンドで数値を処理するなら bytearray にしといた方が楽で、デバイスが送受信で扱うのは最終的に bytes ってだけでした。<br />　とかく serial、socket を扱うなら bytes と bytearray がわかってないと不便。bytes にしなくても送信は出来るのですが文字コードの悪魔がちょっかいを出してくるので便利機能に頼るにしても自力で bytes まで持っていくつもりで書いた方がいいし、受信はどこまで行っても bytes なので避けて通れません。アセンブラに慣れきってしまった自分にとって「バイナリのデータが読めるとホッコリするよねぇ～」なんです。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> -- Posted by 電装工芸 〔456文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=688</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=688</guid>
	<category>tegalog</category>
	<pubDate>Fri, 18 Aug 2023 01:13:26 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　ディナーショーの現場です。 ]]></title>
	<description><![CDATA[ 　ディナーショーの現場です。<br />　仕込めてしまえは空き時間多め。<br /><br />　LTC の時間値を扱う関数を書き上げました。<br />・msec からフレーム数得る物<br />・フレーム数から LTC の時間値を得る物<br />・時間値をインクリメント(+1)する物<br />・時間値を減算する物<br />　以上４つです。<br /><br />　上３つは当たり前でも減算が必要か？って思われるかもしれませんが、卓がLTCを再認識するのに0.5秒くらいかかることへの対策に使います。試したのは MAdot2 ですが、LTCを停止すると認識が落ちますのでLTCを再開してもすぐには動作しません。ファーストCUEが遅れることになるので困ります。ところが2-3フレームを折り返し繰り返せば認識を維持しつつ進行を止めることが出来るのでコノ状態を Pause 処理にしようと思うのです。故に、現在値に対する減算が必要なのです。<br />　具体的には再開の頭フレームのマイナス１フレームからマイナス３フレームを繰り返して待機状態とします。マイナス何フレームで繰り返すのが適切かは卓に寄って違う可能性がありますので今後検証したいと思います。<br /><br />　この後は LTC Generator 本体のファームウェアの手直しです。制御コマンドを少し増やしたいかなと。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> -- Posted by 電装工芸 〔547文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=686</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=686</guid>
	<category>tegalog</category>
	<pubDate>Fri, 11 Aug 2023 20:57:38 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　29.97fp-NDF の場合、単位時間あたりのフレーム数… ]]></title>
	<description><![CDATA[ 　29.97fp-NDF の場合、単位時間あたりのフレーム数は 29.97fps で 勘定は 30fps の NDF と同じです。<br />　・・・ってことが頭の中で混乱しました。<br />　29.97fps-NDF はタイムコードの時間勘定が増えるため値の進みが遅くなります。<br />　こういった「増えると減る」みたいな関係は挙動の理解がややこしい。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> -- Posted by 電装工芸 〔174文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=685</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=685</guid>
	<category>tegalog</category>
	<pubDate>Thu, 10 Aug 2023 10:51:38 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　次の２つの関数を作成しました。 ]]></title>
	<description><![CDATA[ 　次の２つの関数を作成しました。<br />・時間値をフレーム数に変換<br />・フレーム数からタイムコード値に変換(30・29.97・25・24fpsNDF、29.97fpsDFをサポート)<br />　29.97fpsでは±１フレームの誤差が出ますが、他のfpsの様にキリ良く計算出来ないからです。演出機器を動かすなら29.97fps以外を使った方がいいと思います。<br />　ドロップフレーム(DF)の処理はパズルでした。規則は単純ですが、計算式だけで解を得られない数の置き換えは思った以上に難儀します。<br />　この後は LTC Player から得られる時間値からタイムコード値を自動でカウントし続けるモジュールを作ります。すでに試作品があるのでそれを参考にします。ここでもDFが面倒な課題となります。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> -- Posted by 電装工芸 〔344文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=684</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=684</guid>
	<category>tegalog</category>
	<pubDate>Wed, 09 Aug 2023 21:45:56 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　LTC のフレーム値の計算で悩む。 ]]></title>
	<description><![CDATA[ 　LTC のフレーム値の計算で悩む。<br />　ノンドロップフレームなら簡単ですが、29.97fpsドロップフレームではそうもいきません。実時間とタイムコードの値が合うのは１時間ごと、つまり途中は実時間とズレるのです。タイムコードは映像のフレームに時間形式のナンバリングを与える手法であって実時間を表す物ではありませんので仕方ありません。ズレがあるとしてもフレームナンバーをゼロからカウントするのは何も問題ありませんが、不特定の時間値からカウントされる場合に漠然とした疑問があるワケです。<br /><br />　困っていても仕方がないので条件を整理しましょう。<br />　10分単位で考えてみます。<br />　30fpsなら10分で18,000フレームです。29.97fpsドロップフレームは10分の間に18カウントを落としますので17,982フレームです。フレーム長の伸縮比1.001を掛けますと17,999.92となり、時間差は0.08フレームです。秒に直すと0.0026秒くらいの誤差です。そんなに大きな値ではありませんねぇ。見た目にわかる人は皆無ですからあんまり気にしなくてよくね？<br />　となると、基準点(時毎もしくは10分毎)からのフレーム数を出し、このフレーム数からタイムコード値を得ればいいんでないか？大げさな感じもしますが、時間値で計算すると奇妙な繰り下がりが発生して計算が面倒だからです。30fpsの24時間分のフレーム数は 2,592,000 ですから32bitの整数でも十分管理出来ます。時間からフレームの枚数目を得る関数とフレームの枚数目から時間を得る関数を作っておけばどうにでもなりそう。<br />　ここまでやれば、都度の誤差は人が感知出来ないレベルに収まると思います。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> -- Posted by 電装工芸 〔731文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=683</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=683</guid>
	<category>tegalog</category>
	<pubDate>Tue, 08 Aug 2023 17:30:24 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　昨日書いたpython-vlcが別なPCでも再生出来るか、… ]]></title>
	<description><![CDATA[ 　昨日書いたpython-vlcが別なPCでも再生出来るか、mp3以外のフォーマットも再生出来るかチェックしました。<br />　もちろんVLCで再生する物は問題なく再生出来ますが、VLCのアプリで再生するよりも音の締まりと広がりが良いように聴こえる。。。<br />　何が違うんでしょう！？<br /><br />　音源再生アプリ(LTC Player)には一般的な音源プレーヤーにはあまり無い機能を付けます。<br />１）音源毎に音量設定<br />２）再生開始点、終了点の設定<br />３）曲の終わりで止めるか曲続きか。曲続きなら曲間秒数も設定。<br />４）処理が許せば、指定秒数からの F.I/O も実装。可能ならクロスフェードも実装。<br />　ダンスイベントですと音源の音量がマチマチですし、前後の無音(白身)がやたら長い物があったりするからです。<br />　通常は事前に音量と白身を調整して現場に臨むのですが、あったら便利かなと思う機能です。<br />　あとは、先日も書きましたが、raspberryPi pico を使ってプログラムマブルキーボードを作って外部スイッチにします。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> -- Posted by 電装工芸 〔466文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=653</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=653</guid>
	<category>tegalog</category>
	<pubDate>Thu, 15 Jun 2023 11:45:17 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　LTC Generator は卓に繋いで２０時間以上正常に… ]]></title>
	<description><![CDATA[ 　LTC Generator は卓に繋いで２０時間以上正常に連続動作しています。PCとのやりとりの都合で手直しはありますが、基本的な機能はこれで完成とします。<br />　python-vlcでの音出しも方向性が見えましたので、あと必要な要素はPC上のソフトウェアです。<br />　Pythonのウィンドウマネージャーはtkinterが一番ベタな選択肢です。Python標準ですから安定性が期待出来ますし、WindowsでもMacOSでもLinuxでも同じソースで動きます。もっと書きやすくデザイン性に優れたウィンドウマネージャーもあるそうですが、何が違うのかよくわからないですし、基本過ぎるモノに慣れれば便利な物も使えるでしょうから、当面はtkinterを勉強してみます。つか、目に見えないところで動作するソフトウェアばかり書いてきたので画面作りは苦手です。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> -- Posted by 電装工芸 〔388文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=652</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=652</guid>
	<category>tegalog</category>
	<pubDate>Thu, 15 Jun 2023 10:12:57 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　python-vlc で音源を流す試験をしました。 ]]></title>
	<description><![CDATA[ 　python-vlc で音源を流す試験をしました。<br />　単に再生するだけなら簡単。<br />　ちょっと難儀したのは再生終了を確定する処理。再生後自動的にリセットされませんので、再生が終了したことを確認して後処理をしないといけません。<br />　vlc.MediaPlayer.is_playing()は再生中かどうかを把握出来ますが、これだけでは再生が終了したフェーズかわかりません。オレフラグ(下記ではis_playing)を併用して再生前か再生後かを判別します。再生後ならstop()を実行します。きちんとstop()しないともう一度再生が出来ないpython-vlc。<br />　下記は再生終了を確定する試験として繰り返し再生するモノです。<br /><br /><small class="decorationS"><span class="decorationF deco-code"># -*- coding&#58; utf-8 -*-<br /><br />import time<br />import vlc<br /><br />def play() &#58;<br />　# 音声ファイルを定義<br />　play_music = ( &#91; vlc.MediaPlayer() &#93; )<br />　try &#58;<br />　　play_music&#91;0&#93;.set_mrl( &apos;C&#58;/音源.mp3&apos; )<br />　except &#58;<br />　　return -1<br />　# 再生ボリューム設定<br />　play_music&#91;0&#93;.audio_set_volume( 60 )<br />　# フラグ定義<br />　is_playing = 0　　# 再生実行済みフラグ<br /><br />　# Main Loop<br />　while True &#58;<br />　　try &#58;<br />　　　# 予備睡眠<br />　　　time.sleep( 0.0001 )　　# Ctl-Cの反応を良くするのに少しsleepを入れるといい<br />　　　# 停止中<br />　　　if( play_music&#91;0&#93;.is_playing() == 0 ) &#58;<br />　　　　# 未開始で停止中<br />　　　　if( is_playing == 0 ) &#58;<br />　　　　　play_music&#91;0&#93;.play()<br />　　　　　while ( play_music&#91;0&#93;.is_playing() == 0 ) &#58;　# 再生状態が確定するまで待つ<br />　　　　　　time.sleep( 0.001 )<br />　　　　　play_music&#91;0&#93;.set_time( 0 )<br />　　　　　is_playing = 1<br />　　　　# 再生終了で停止中<br />　　　　else &#58;　　　# if( is_playing == 1 ) &#58;<br />　　　　　play_music&#91;0&#93;.stop()　　# 再生終了を宣言してインスタンスをリセットする 主にこれをやりたいがための処理<br />　　　　　is_playing = 0<br />　　　# 再生中<br />　　　else &#58;<br />　　　　pass　　　# 再生中に行う処理は書いていないのでとりあえずpass<br /><br />　　# Ctl-Cで終了<br />　　except KeyboardInterrupt &#58;<br />　　　play_music&#91;0&#93;.stop()<br />　　　break<br />　return 0<br /><br />if __name__ == &quot;__main__&quot; &#58;<br />　play()<br /><br /></span></small><br /><br />　python-vlc便利過ぎ。<br /><br />追記<br />　vlc.MediaPlayer.get_length()とvlc.MediaPlayer.get_time()を使って再生が最後まで行ったかチェックしました。<br />　何曲か試しましたが、概ねlengthの-0.1～-0.2秒で終了しています。vlc.MediaPlayer.get_time()は取得単位の1msecで厳密にカウントされているモノでも無さそうなので表示上の誤差かもしれません。トラック別で音繋がり場合は少し不安がありますが、音のお尻には1-2秒の余白があるのが一般的ですし、そこまで突き詰めるシステムではありませんのでいいかなと。<br />　画面作りをやって LTC Generator と合わせれば完成が見えてきそうです。<br />　ウィンドウマネージャーはPython標準のtkinterを使う勉強をしています。書式は違いますが、考え方はHTMLとCSSを使ったweb画面作りに酷似していますので、方言的に翻訳が出来れば何とかなりそうです。ただ、ボタン操作や画面の更新をオブジェクト指向のイベント処理(割り込み)で書くので少し面倒ですし、LTC Generator の制御やvlcの部分はバックグラウンドの常駐処理にしたいのでウィンドウ制御とは別スレッドとなり手間がかかるかも。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> -- Posted by 電装工芸 〔1857文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=650</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=650</guid>
	<category>tegalog</category>
	<pubDate>Wed, 14 Jun 2023 22:01:04 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　LTC Generator のLTC信号を卓(MA dot… ]]></title>
	<description><![CDATA[ 　LTC Generator のLTC信号を卓(MA dot2)が認識しました。<br />　ただ、同じ値を送り続けても認識しません。LTCを入力してから認識するまで１秒弱かかるので、カウントを進めずに信号を認識し続ける方法が欲しいのです。<br />　試しに数フレームの繰り返しを組んでみたところ認識し、数フレームの繰り返しを一定回数行ってから抜ける様にしたところ期待する結果を得ました。<br />　最初のCUEポイントのマイナス数フレームの位置で2-3フレームの繰り返し待機をし、トリガが立ったらそれを抜ける考え方で良さそうです。<br />　ともかく、卓が認識したので一安心です。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> -- Posted by 電装工芸 〔283文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=648</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=648</guid>
	<category>tegalog</category>
	<pubDate>Wed, 14 Jun 2023 11:24:09 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　LTC Generator は30fpsも他のfpsと同様… ]]></title>
	<description><![CDATA[ 　LTC Generator は30fpsも他のfpsと同様の誤差でした。時間の勘定に期待値が出たので PIC のファームウェアは一応の完成とします。あとは、卓が認識するかです。<br />　今後はPC側のアプリケーションの製作です。Pythonベースでvlcライブラリを使い、LTCとVLCは同時スタートの疑似シンクです。VLCの現在時からLTCを生成することは難しいからです。途中スタートではLTCの現在時からVLCの開始時を補正して合わせる様にします。<br />　音声ファイルはプレイリストとしてまとめ、スタートタイム、エンドタイム、ボリューム、連続再生、曲間時間などを個別に設定出来る様にします。複数の音声ファイルを並列で再生する用途は想定しませんので、１トラックのわかりやすいモノを目指します。もちろん、LTCのタイムが被らない様にチェックする機能も大切です。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> -- Posted by 電装工芸 〔385文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=647</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=647</guid>
	<category>tegalog</category>
	<pubDate>Wed, 14 Jun 2023 07:01:55 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　LTC Generator は24fpsも他のfpsと同様… ]]></title>
	<description><![CDATA[ 　LTC Generator は24fpsも他のfpsと同様の誤差に収まりました。現在稼働中の30fpsも確認出来れば LTC Generator はヒト段落です。<br />　本業もそこそこ忙しくなってきたので工作に使える時間は限られますが、LTC Player まで出来るだけ早く到達したいところです。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%49%43" class="taglink" title="PIC">#PIC</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> -- Posted by 電装工芸 〔162文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=645</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=645</guid>
	<category>tegalog</category>
	<pubDate>Tue, 13 Jun 2023 18:31:08 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　LTC Generator は29.97fpsも25fps… ]]></title>
	<description><![CDATA[ 　LTC Generator は29.97fpsも25fpsと同等の誤差でした。30fpsと24fpsも同等に収まればPICのファームウェアは完成とします。<br />　比較に使っている時計はカタログスペックで月差±15秒。１日あたり0.5秒の誤差とみなせます。基準にするには十分でしょう。<br />　「卓がLTCとして認識するか」を早々に確認したいですね。これが一番重要です。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> -- Posted by 電装工芸 〔189文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=643</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=643</guid>
	<category>tegalog</category>
	<pubDate>Tue, 13 Jun 2023 11:45:05 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　LTC Generator のタイマーを修正してみました。 ]]></title>
	<description><![CDATA[ 　LTC Generator のタイマーを修正してみました。<br />　８時間経過で約１秒ズレていますが、以前より良くなっていますし、SMPTEが求める精度には十分収まっています。何よりも比較に使っている時計の精度がどこまでなのかわかりませんからこんなもんでしょう。<br />　PICに与えている水晶発振子の精度は30ppmですから(ppmは100万分の１を表す単位なので比率だと0.00003)、１日(86,400秒)あたり±2.592秒の誤差がありえます。実測値は想定される誤差相当なのでソフトウェアは間違ってなさそうです。<br />　現在値以上を求めるなら、ソフトウェアの修正ではなく個体差に対する補正となりそうですし、もっと精度の高い発振子を使うべき話です。<br />　補正計算が無い25fpsでテストしていますが、補正計算が入る他のfpsも同等に収まればいいでしょう。<br /><br />　秋月電子通商さんで手に入る高精度な発振子は最高で1ppmです。高精度に越したことはありませんが、ここまで必要か、これで十分か、30ppmに比べてメリットがあるかは別問題です。<br />　求めているのは数分間の音楽の時間座標を表す信号です。卓がエラーを出さない条件を満たし、目視でズレを感じない繰り返し精度があればいいのです。高精度の時計や放送用の基準を作っているワケではありませんから、無制限に高精度を求めても意味がありません。十分に使えて低価格も大切な精度です。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%49%43" class="taglink" title="PIC">#PIC</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> -- Posted by 電装工芸 〔618文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=642</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=642</guid>
	<category>tegalog</category>
	<pubDate>Mon, 12 Jun 2023 07:41:47 +0900</pubDate>
</item>

	<!-- END ENTRIES -->
</channel>
</rss>

