🗐 電装工芸日記 - 舞台照明機器の製作とか -

能登半島地震で被災された方々にお見舞い申し上げます。

or 管理画面へ

タグ「タイムコード」を含む投稿[52件]

Icon of admin
 LtcPlayer 0.2.2βです。
 細かいバグを修正しました。
「VLC media player」のインストールを推奨します。入れなくても動きますが、入れた方がいいみたい。

#タイムコード
Icon of admin
 VLC が入っていて Python を入れていないパソコンが一台あったので exeファイルを試してみました。
 問題なく動きます。
 python-vlc は VLC を入れていなくても動くハズですが、入れておいた方がいいのかもしれません。

 VLC をアンインストールして試す手もありますが、DLL などが残る可能性もあるので、一度 VLC に触れたパソコンはインストール済みと思うしかありません。
 いずれにしても、VLC のインストールを推奨することにしましょう。
「VLC media player」
 とても便利なアプリです。特にこだわりがなければ、デフォルトアプリとしてもお勧めする一品です。

#Python #タイムコード
Icon of admin
 pyinstaller でexeファイルを作ってみましたが環境によって微妙な不具合が出ます。原因は不明ですが、pyinstaller の操作手順かもしれません。
「PyinstallerでPythonプログラムをexe化する手順書(Windows編)」
 上記を参考に作った exeファイルは自分の環境では問題なく動いたのですが、ここに一工夫加えてみようと思います。
 仮想環境での実行が推奨されていますが、pyinstaller 自体も仮想環境にインストールするべきなのかもしれません。別の先達情報にはその様に書かれている物があります。
「PyInstallerを使ってみた」

追記
 作業手順のオレメモ。
 仮想環境に pyinstaller を入れての実行の方が良いようです。
作業ディレクトリに移動
> cd <作業ディレクトリ>
pipenv をインストール
> pip install pipenv
pipenv で使う python のバージョンを指定
> pipenv --python 3.9
pipenv(仮想環境)を開始
> pipenv shell
仮想環境にpyinstaller をインストール
> pipenv install -d pyinstaller
必要なライブラリをインストール
> pipenv install pyserial
> pipenv install PySimpleGUI
> pipenv install python-vlc
・・・etc
ビルドする
> pyinstaller ltcplayer.py --clean --noconcole --onefile
・・・数分で終わる。
作業ディレクトリ内の distフォルダ内 に ltcplayer.exe が出来ている。

終了なら仮想環境のshellから抜ける
> exit
仮想環境を削除
> pipenv --rm

作業ディレクトリは Python のソースコードがある階層でもいいのだけれど、
ゴチャゴチャするので私は一つ下の階層で作業をしています。
ソースコードがある階層で
> mkdir env
> cd env
> pyinstaller ..\ltcplayer.py --clean --noconcole --onefile
相対パスでソースコードを一つ上の階層として呼びます。
お好みですけど。


#Python #タイムコード
Icon of admin
 実行ファイル化した LTC Player 0.2.0β の処理負荷は5~7%です。十分に軽いと言えます。
 しばらくは本業を頑張らないといけませんが、その本業で使って細かいバグを見つけていきましょう。

#タイムコード #Python
Icon of admin
 Python でファイル保存するには次の方法がお手軽みたい。
「pythonでlistをファイルに保存し、読み込む方法(numpyも同様!)」
 上記内の「pickleを使用する方法(おすすめ!)」です。
 ここでは list を保存する方法として書かれていますが tuple でもOK。もちろん、list や dict を含む異なる型をテキトウに突っ込んだ tuple でもOK。Python で一つの変数として扱える状態にしてから pickle.dump でファイルに入れれば何でもいいみたい。読出しは load すれば pickle.dump する直前の状態で変数に格納されます。変数のまんま保存し変数のまんま読み出せるイメージです。
 やりたいことは list 型のセットリストと諸々のステータスの保存/読出しです。これらを tuple にまとめれば一括で扱えるみたいです。
 ファイル保存は手続きが面倒ってイメージがありましたが、これは楽チンです。

 追加オレメモ。
「Pythonでファイル、ディレクトリ(フォルダ)の存在確認」
「Pythonでディレクトリ(フォルダ)を作成するmkdir, makedirs」
「Python ファイルのコピーと移動」
 こういった基本的なことが凄く簡単なのは Python のすばらしさ。
 この様な操作を整理しているのは、データを他のパソコンに持って行く前提で、音源ファイルをセットリストファイルと同じフォルダに置きたいからです。

 pyinstaller を使って実行ファイル化(.exe化)してみました。この状態にすると Python をインストールしていないパソコンでも動きます。操作は簡単ですし中身を隠せていいかも。
 モノは試しにアップしてみました。Windows11の64bitでしか試していませんが、64bitならWindows10でも動くと思われます。
 LtcPlayer
 セットリストの保存機能が未実装のβ版です。モノ好き大好き自己責任でお楽しみください。
 LTC の出力には専用インターフェースが必要です。これが無ければ単なる音楽プレーヤーです。
 専用インターフェースのことを LTC Generator と呼んでいますが販売するかは検討中です。ノンクレーム返品可で少数販売でしょうか?手作りなので数を作れませんしサポートしきれませんし。

#タイムコード #Python
Icon of admin
 LTC Player は「オイラ、最初からこうだよ」と言わんばかりの顔で動いています。嬉しいようなちょっとムカつくような。

#タイムコード #Python
Icon of admin
 LTC Player はセットリストの保存以外は完成した様子です。0.2.0βとしました。
 バグや設計ミスはあると思うのですが、これ以上は使ってみないと分からないような気がします。
 LTCについて、MAdot2の場合ですが、無信号から受信開始まで0.3-0.5秒かることへの対策として停止タイムの数フレーム前を数フレームリピートしていますが、他の卓の挙動の検証も必要です。

#タイムコード #Python
Icon of admin
 とある中堅企業さんの労働組合さんの納涼祭でした。お盆もとうに過ぎているのに納涼祭?とか思ったりしますが、中堅の工場はお盆前後が忙しいので時期をずらすのはアリアリでしょう。勤務日数が少ない8月を乗り切ったぞー!ってヤツも含まれていそうです。
 そんな現場でしたが、MAdot2 を使ったので LTC Player のランニングテストも同時に実施。本番でこんなことをするのは不謹慎ちゃ不謹慎ですが、LTC が途切れることなく受信されるかを確認するには丁度よい。普段なら卓をずっと眺めていることは難しいですが、目の前の卓を操作するのが仕事なら無理はありません。LTC で卓を動かすのでははく長時間の認識のテストですから時計を表示するのと同じ。LTC のデータが間違っていたり途切れたりして卓が止まることはまずありません。なんでかんで MA の製品ですから。
 8時間ほど実施しましたが問題は発生セズ。バグではなく設計(デザイン)のミスを見つけたので今後対策しますが、音源に沿った LTC で止まることなく卓がカウントを刻むのは気持ちがイイ。
 プレイリストの保存機能も構成しなければなりませんし、修正もまだまだありますが、間違いなく β版 に昇格しています。この達成感と安堵感は暑さという調味料以上にビールを美味しくしてくれています。オタク冥利とはこのことでしょうか。

#タイムコード #Python
Icon of admin
 LTC Player & LTC Generator を α版 から β版 に昇格しました。主要な機能が搭載されたって意味です。
 プレイリストの保存やバグ潰し、細かい調整はこれからですが、音の再生に沿った LTC が出力され、それを拾って卓が動きます。音のポジションを飛ばしてもそれに沿った LTC が出ます。フレーム値が飛んだ時の挙動は卓次第ですが、一時停止も先送りもしなければとても素直に動きます。何度再生しても同じ結果が出ます。そうでないと困るのですが、これぞ期待した機能であります。
 ただしmp3などの圧縮データではパソコンによって再生のクセが違い、音アタマとオシリの挙動が一定しません。メロディ続きでトラックが分かれている音源では問題になりそうです。圧縮データだからでしょうが、VLC のライブラリに頼り切っている私にはどうすることも出来ません。非圧縮のデータ形式の wav では正常なので音源のデータ形式を制限した方がいいですね。Windowsならwav、MacintoshならAIFFってことです。
 なんでかんで5,000行もあるソースコードになりました。本業を後回しに書いていたのは間を空けると細かいことを忘れてしまうからです。自分なりに読みやすく書きましたので正常に動くところまでやっておけば読み返して戻ることも出来ますが、障害を残したまま間を空けると次の作業で障害を思い出すのに時間がかかるのです。
 一応の区切りが付きましたので、一旦お休みというか本業にアタマを戻してプレイリストの保存方法などを検討していこうと思います。

#タイムコード #Python
Icon of admin
 初期構成の段階ですが、LTC Player & LTC Generator の融合が出来ました。
 PLAYボタンを押すと曲と共に LTC がカウントされ、卓(MAdot2)が認識します。まだまだ課題と見えない問題は多いと思いますが、峠を越えた心持ちです。
 処理負荷はWindows7世代のミドルレンジパソコンで20%前後です。まぁまぁでしょう。

 ここ2日間はEoCとコレばっかりやっていたので本業がヤバイですけど、祝杯を上げてもいいかもしれません。
 この後は考えをまとめて構造を整理します。

#タイムコード #Python

■当面の課題

桜のライトアップの季節です。花粉症の季節でもあります。
自分は平気ですが、花粉症の部下は死にそうな顔をしています。

編集

■全文検索:

複合検索窓に切り替える

■複合検索:

  • 投稿者名:
  • 投稿年月:
  • #タグ:
  • カテゴリ:
  • 出力順序:

■日付検索:

■カレンダー:

2023年9月
12
3456789
10111213141516
17181920212223
24252627282930

■カテゴリ:

■最近の投稿:

最終更新日時:
2024年4月24日(水) 18時16分16秒