フォーラム › TuneBrowser › TuneBrowser.luaの使い方について
-
投稿者投稿
-
2018-11-25 06:05 #4632you参加者
Tikiさん、おはようございます。
TuneBrowserがluaをサポートしているのが過去のフォーラムのやり取りで分かり、TuneBrowser.luaというスクリプトファイルも見つけました。
ただ私自身がluaにあまり明るくないので、どのように使用していいのかが分からず…お手数ですが、ご教授頂けますでしょうか。
やりたい事としては、楽曲再生開始時に曲名を引数として外部EXEかバッチファイルを起動したいのですが、TuneBrowser.luaのコメントを見ると、各コールバック関数から「command」と「command line」のペアを返せというような記述がありましたので、OnPlayback関数で試しに、1つ目の文字列に起動したいEXEまたバッチファイルのパスを、2つ目の文字列に適当な引数を記述して返してみたりしたのですが、うまくいきませんでした。
そもそも使い方が間違っているのは間違いなさそうなのですが、軽くで構いませんので、使い方を教えて頂けますと幸いです。
2018-11-25 17:31 #4637Tikiキーマスターこんにちわ。
luaの話なんてしましたっけ? と思ったら、たしかにひとこと触れていますね。(^^; よくお気づきになりましたね。
luaの対応は、そのひとこと以外は公開していませんでした。以前は個人的な用途として、使用するDACに合わせてアンプを自動制御するような処理に使っていたのですが、再生環境も変わり、わたし自身も使用しなくなっていて、ときおりどうしようかなと思いつつも、そのままにしていました。
youさんにはluaスクリプトの使い方をご質問いただいているのですが、もうすこしちがう話をさせてください。luaはある特定の業界ではよく使われているようなのですが、全体としてはマイナーです。luaを使用することにしたのは、TuneBrowser内にインタープリタを内蔵できる (ユーザに別途 動作環境を用意してもらう必要がない) からなのですが、2010年当時とは趨勢も変わっていて、なにか外部スクリプトをサポートするにしても、luaではなくべつの形態がいいのかなと思ったりもします。luaの特徴のひとつは、luaスクリプト内から制御元のプログラムの内部データにアクセスできるようにできることなのですが、結局その機構は用意していませんし。
さて、ご質問の件なのですが、残骸用のようなもので恐縮なのですが、わたしの手許に残っていたスクリプトの一部は次の通りです。
function OnPlayback(strType, strDevice, strTune) if string.find(strDevice, "Mytek") ~= nil then return "command", "irusbcs \"Mytek XLR\"" elseif string.find(strDevice, "OPPO") ~= nil then return "command", "irusbcs \"OPPO XLR\"" elseif string.find(strDevice, "Chord") ~= nil then return "command", "irusbcs \"Chord XLR\"" elseif string.find(strDevice, "TEAC") ~= nil then return "command", "irusbcs \"TEAC\"" end return "", "" end
再生開始時に、TuneBrowserが利用しているデバイス名に合わせて、”irusbcs” というプログラムに引数を渡して、入力を切り替えさせています。
戻り値の “command” はコマンド実行を指示するもので、現在のところこの “command” しかサポートしていません。”command” 以外を返すと, なにもしません。
(youさんにかぎらず) もしすこし長い目でお付き合いいただけるようであれば、こうした外部スクリプト/プログラム連携を充実させていきたい気持ちはありますので、なにかあれぱぜひご意見、ご質問いただければと思います。
2018-11-26 00:17 #4641you参加者こんばんわ。
ご説明ありがとうございます。
おかげさまでluaスクリプト経由で外部アプリケーションを起動する事が出来ました!luaの特徴のひとつは、luaスクリプト内から制御元のプログラムの内部データにアクセスできるようにできることなのですが、結局その機構は用意していませんし。
例えば表示に関する制御を行うホスト関数を公開してもらう事とかも可能でしょうか?
個人的に曲の再生中と停止中でプレイヤービューのピン留めのON/OFFを切り替えたりとかできたらいいなあと思ったりしているのですが。(youさんにかぎらず) もしすこし長い目でお付き合いいただけるようであれば、こうした外部スクリプト/プログラム連携を充実させていきたい気持ちはありますので、なにかあれぱぜひご意見、ご質問いただければと思います。
TuneBrowserとはこれからも長い付き合いになる予定ですので(その分今後もTikiさんには色々とお手数お掛けする事になるかもしれませんが…)、ぜびぜひそのあたりも強化して頂けるとうれしいです。
私も今後積極的に利用してみて、何かあればご相談させていただこうかと思います。2018-11-26 22:05 #4643Tikiキーマスターこんばんわ。
コマンド動作したようで、よかったです。(^^)
個人的に曲の再生中と停止中でプレイヤービューのピン留めのON/OFFを切り替えたりとかできたらいいなあと思ったりしているのですが。
もし大きな期待をさせてしまったとしたら、すいません。そのようなきめ細かい制御を用意しようとか、そういう構想はありませんでした。m(__)m
もともとの発想は、わたし自身が使っていた外部ツールとか、luaに言及したトピックにあったtwitterのような外部サービスとの連携を、すべてTuneBrowser内部に作り込んでいたのでは、とても追いつかないなというものでした。
せっかくアイデアいただいたのに、すいません。その辺の温度感というか、イメージをあわせていくのは、意外とむずかしいかもしれませんね…。
2018-11-26 22:08 #4645BREEZE参加者很好的软件。即使没有中文还是在使用,喜欢它的声音。在中国的论坛我看到多次这款软件的身影。希望后续能考虑加入中文支持将会大受中国用户喜爱~~
2018-11-27 20:28 #4658TikiキーマスターGoogleで翻訳:
非常に良いソフトウェア。 中国語がない場合でも、私はまだそれを使用し、それを好きです。 私は中国のフォーラムでこのソフトウェアを何度も見てきました。 私はフォローアップが中国のユーザーに大いに愛される中国のサポートに参加すると考えられることができることを願って~~
BREEZEさん、こんばんわ。 BREEZEさんは翻訳でここを見ておられると思いますので、日本語で書いていいですか?
TuneBrowserについて好意的に書いていただき、ありがとうございます。光栄です (^^)。もしかしてBREEZEさんは、わたしを中国のフォーラムにお誘いいただいているのでしょうか? わたしは中国語ができませんし、いまはここでの発言で手一杯で、他のフォーラムでのフォローは残念ながらできそうにありません。
それから、今後もしなにかご発言されるとしたら、ここはluaスクリプトのトピックですので、新しいトピックとしてご発言をお願いします。
よろしくお願いします。
2018-11-27 22:17 #4668you参加者こんばんわ。
スクリプトの方で細かい制御をすることが構想外なこと承知しました。
よくよく考えれば、そこに力を入れていくと結局のところfoobar2000のような方向性になっていきますもんね;今自分が考えているやりたいことは外部アプリケーションとの連携で実現できますし、今後もその方向で色々と機能を充実させていただければうれしいです。
あと、ついでにUWP版の素早いリリースありがとうございます。
この速さなら今後はデスクトップ版に嫉妬せずにすみそうです!(笑)2018-11-28 20:58 #4683Tikiキーマスターこんばんわ。
この件は、まあゆっくりとお願いします。おそらく改善できるとしても、かなり先になると思いますので…。
「ついで」の話にさらにコメントしてしまいます。先ほどUWP版4.7.1の申請を行いました。UWP版はクラッシュするとマイクロソフトの開発者向けサイトでその状況がある程度わかるのですが、どうも4.7.0で初期化中(?)にクラッシュする事例が多発しているようです。youさんのところでは問題ないですか?
推定原因に基いてその件だけを対処した版を、リリースします。いつもとは逆ですが、問題の起きているUWP版を先に出して、その後デスクトップ版のリリースを行う予定です。
2018-11-28 21:30 #4684you参加者こんばんわ。
UWP版4.7.0にしてから何度か立ち上げ直したりしていますが、今のところはクラッシュしていませんね。
何か環境によるものなのかもしれませんね。あ、あとこのトピックに関しては私の目的は達成できていますので、いつでも閉じて頂いて問題ありません。
2018-11-28 23:39 #4689you参加者いつでも閉じてくださいとか言っておきながら申し訳ありません…、ちょっともう一だけつ仕様の確認をさせてください。
TuneBrowser.luaのOnPlayback関数ですが、「停止状態から再生ボタンを押す」で再生された場合は関数が呼ばれるのですが、「曲A再生終了→曲B再生開始」と「曲Aを再生中→次の曲へボタンを押して曲B再生開始」で次の曲へ移った場合は関数が呼ばれないみたいなのですが、こちらは仕様でしょうか?
2018-11-29 22:01 #4697Tikiキーマスターこんばんわ。
UWP4.7.0の件はご確認ありがとうございます。そうですよね、もし起動しないクラスの問題があれば、ここでご指摘が挙がっているだろうとは思いました。今回はマイクロソフトの対応が早く、昨日申請して、すでに公開されています。現在のところは大丈夫そうなので、デスクトップ版も正式版としてリリースしました。
それで、luaの呼ばれるタイミングですが、現在のところはデフォルトのファイルにある
- OnPlayback (再生開始)
- OnPlayerChanged (プレイヤーの変更)
- OnSampleRateChanged (サンプルレートの変更)
の3つだけです。(^^;
すぐに、とはいかないかもしれませんが、追加を検討しましょうか?
2018-11-29 23:29 #4699you参加者こんばんわ。
さっそくUWP版4.7.1に更新しました。
もし起動しないなどの不具合に遭遇した場合は、別途報告しますね。luaの呼ばれるタイミングについてはOnPlaybackは楽曲毎の再生開始タイミングで呼ばれるものと拡大解釈しておりました;
すぐに、とはいかないかもしれませんが、追加を検討しましょうか?
全く急ぎでもなんでもありませんので、楽曲毎の再生開始時に呼ばれる関数を追加して頂けたならうれしいです!
2018-11-30 08:39 #4700hiro参加者Tikiさん、おはようおざいます。
Tikiさんが言われるようにクラッシュする事例が多発するなら、このサイトにもっと事例が上がっていると思います。
TuneBrowserを使い始めて結構な日数が経ちますが私は一度もクラッシュした事は無いですね。
非常に安定していて感謝しています。
-
投稿者投稿
- このトピックに返信するにはログインが必要です。