スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

プレーヤを操る

11/09/01初稿

 PC-Audioのプレーヤソフト操作に関して少々。


■プロセス優先度を操る

 Windowsでは、タスクマネージャから起動しているアプリケーションに該当するプロセスを右クリックすることで、そのプロセスの実行優先度を

  ・リアルタイム
  ・高
  ・通常以上
  ・通常
  ・通常以下
  ・低

の6段階に設定できます。と言っても「リアルタイム」は通常アプリでは設定できないようですが(強制的に「高」になる)。

 PC-Audioはこの設定によっても音が変わります。プレーヤソフト以外のプロセス優先度も関係するのでやっかいなチューニングですが、一応プレーヤソフトの優先度が決まったとします。が、起動のたびにタスクマネージャから設定変更するのは面倒です。
 それを解決するための手法「あらかじめ設定した優先度で起動するショートカット編集」がすでにweb上でいくつか紹介されていますが、コマンドを使う方法なのはまだしもそれがちょっとクセがあるコマンドのようです。そのあたりを改めて調べてみた結果を以下にまとめておきます。

 手法としては簡単です。結論を先に書きますと、対象アプリのショートカットのプロパティの「リンク先」の前に

   cmd /c start "タイトル" /優先度

と追記するだけです。cmdというコマンドの実態は「C:\Windows\System32\cmd.exe」ですが、上記のように入れるだけで自動的にパスは生成してくれます。もちろんフルパスを書き込んでも問題ないです。
 「/c」はこの処理が終わったらそれを行ったcmd.exe自体は終了させるオプションです。
 ちなみに、uLilithにはこの作戦は通用しないみたいです。

・タイトル?
 この書式は"タイトル"っていうパラメータをあえて入れているところがミソです。
 startコマンドは「そのあとにくる最初の""」を「自らのウィンドウのタイトル」と認識します(ウィンドウの左上に出るヤツですね)。そのため、"タイトル"を省略すると、「Program Files」といったスペースを含む実行パスを指定するために囲った""が最初にきてしまい、startコマンド自身のタイトルと見なされてしまって実行されないのです。
 スペースを使わないパス(""で囲わずに指定できる)にインストールし直したり、8.3形式のパス名を調べて""を外すっていう手もありますが、タイトルを設定した方がよろしいかと思います。どうせコマンドプロンプトウィンドウは一瞬ですので実害ありませんから。というか、""(無題)でも大丈夫ですし。
 実行プログラムに引数を渡す必要がある時にはさらなる罠があるようですが、本稿では省略します。

・優先度
 以下の通りです。

  REALTIME・・・「リアルタイム」優先度クラスでアプリケーションを起動します。
  HIGH・・・「高」優先度クラスでアプリケーションを起動します。
  ABOVENORMAL・・・「通常以上」優先度クラスでアプリケーションを起動します。
  NORMAL・・・「通常」優先度クラスでアプリケーションを起動します。
  BELOWNORMAL・・・「通常以下」優先度クラスでアプリケーションを起動します。
  LOW・・・「低」優先度クラスでアプリケーションを起動します。

 以上より、具体例としては以下のような書き方(追記の仕方)になります(あくまで一例です)。

   cmd /c start "" /high "C:\Program Files (x86)\foobar2000\foobar2000.exe"

・アイコン
 この書き換えを行うと、実際には元の実行プログラム(foobar2000など)のショートカットではなくコマンドプロンプトのショートカットになりますので、アイコンがコマンドプロンプトのものに変わってしまいます。foobar2000などではiconフォルダから適当なものを選ぶなどして修正しておくのもいいでしょう。
 おそらく元exeの中に元アイコンも含まれている(uLilithなど)と思いますのでそれを選択して復元してもいいですが、Windows純正としてはC:\Windows\System32フォルダ下にある「shell32.dll」や「wmploc.dll」「imageres.dll」といったDLLアイコンパックに含まれているヤツも結構それっぽいのではないかと思います。

・タスクマネージャ
 「表示」の「列の選択」で「基本優先度」にチェックを入れると、優先度が常時表示されるようになります。


 同じアプリで複数の優先度のショートカットを作っておくと、聴き比べに便利です。

 この優先度、ウチのHDMI-Audio+foobar2000のUpsampling環境では結構変化あるようです。
 「プログラムとバックグラウンドの優先度」とも絡むようなのでマジやっかいですが…
 と言っても、もはや「どれがいいか」ではなくその時の気分やソースの特徴によって使い分けるパラメータにしてもいいのではと思います。優先度別ショートカット、やっぱり便利かも。


■プロセッサの関係を操る

 本項12/10/23追記。
 近頃のPCはマルチコア・マルチスレッドになっているものが大半ではないでしょうか。例えばQuadCore+HyperThreadingのCPUなら8個CPUがあることになっており、Windowsが自動的に処理を割り振ってくれます。しかし、「プレーヤに割り当てるCPUは1個の方がいい!」とか「3個が一番!」「CPU0とCPU3の組み合わせが最高!」というチューニングもアリかも知れません。
 そんな時も、タスクマネージャの右クリックで「関係の設定」をいちいち設定しなくても、startコマンドで指定可能です(Vista以降だそうです)。
 先の書式に「/affinity N」というオプションを追記するだけです。Nが割り当てるCPUを指定する数字です。16進数ですが、0xを付ける必要はないようです。
 例えば、スレッドが8個あるPCなら、8桁の2進数「00000000(下位bitが若いCPU)」のうちの使用するCPUの桁を1として、それを16進数で設定します。CPU0を使うなら「00000001」で、全部使うなら「11111111」でFFとなります。

  cmd /c start "" /high /affinity 3 "C:\Program Files (x86)\foobar2000\foobar2000.exe"

みたいになります。この場合はfoobar2000はCPU0とCPU1でを使って動作します。

 「start」についてもっと詳しく知りたい向きは「start /?」でMS謹製ヘルプをご参照ください。


■マルチメディアキーを操る

 Audio再生中はPC画面消してるんです(というかVGAケーブルを抜く)。ディスプレイが居間のプラズマTVってこともありますが、TVを接続しておくと音質に良くないと思うので(例のGND結合)。なので、画面を見なくても再生・停止などの基本操作ができるようにしておく必要があります。

 foobarやuLilithなどのプレーヤソフトはマルチメディアキーでの操作をおおむねサポートしていますが、K/Bによっては「stop」がなかったりしますし、何よりAudio再生時には無用のK/Bを繋いでおくのは気持ちいいものではありません。というかリモコンっぽくないし。
 そこで、普通のCDプレーヤのようなリモコンが使えたら便利~だと思いますが、実はできちゃうんですよね。

・PS3のBDリモコンを利用する
 Tsuuさんが公開(*)されている「BDRemote」というソフトを使うと、PS3用のBDリモコンの対応するキーでマルチメディアキーのコマンドがPCに入力できるようになります。とってもフツーのリモコンみたいに使えます。 あ、フツーじゃないですね。憧れのRFリモコンですもんね。赤外線とは違うのだよ、赤外線とは!
 オマケに、SLOW/STEPキーがありますのでfoobar2000なら1秒送り・戻しを登録することもでき、通常の早送り・巻き戻しを5秒にしておけば2種類の操作が可能になります。しかもこれらのキーは押し続けるとコマンド送出を続けるのでそれっぽい操作感になります。
 ShutdownやRebootも割り当てられますし、「ctl+alt+del」やEscキーもアサインできます。アプリケーションラウンチャにもなりますから工夫次第でいろんなことができるようになりますね。

*:http://www11.plala.or.jp/tsuutako/

 Tsuuさんありがとうございます。

 私は初代リモコンしか持っていませんが、2代目でも大丈夫みたいです。2代目ならFLASHキーも増えてるし、赤外線リモコン機能も付いてるのでディスプレイに使っているTVの制御もできるぞ。

 ←こちら現行品   ←こちら初代。

 マウスカーソルも操れますから、がんばればこれだけでプレーヤの起動やファイル(フォルダ)選択もできちゃいます。

 設定情報は「ドキュメント」の下に作られる「.bdremote」フォルダ下の「BDRemote.ini」です。お気に入りの設定したら別の場所に保存しておいた方がいいでしょう。

 14/11/13追記。マルチメディアキーだけになると思いますが、こんなの↓もあるんですね。

  ←試してはいませんがWindowsでも使えるそうです。

・多機能マウスを利用する
 PS3のリモコンを使う手は、当然ながらPC側にBluetooth環境を整えなければなりません。マウスもBluetoothでまとめる手もありますが、そうでない場合はI/Fが2個以上必要になります。
 「音質のためには極力デバイスは少ない方がいい」という考え方もあると思いますので、PC-Audioにおいて最低限必要であろうマウスをリモコンに兼用する方法を考えてみます。

 まず、Audio再生で必要になるファンクションは以下の6種類かと思います。

 ・再生/一時停止
 ・停止
 ・次のトラック
 ・前のトラック
 ・早送り
 ・巻き戻し

 で、これらをマウスユーティリティでボタンにアサインしてやればいいワケですが、アサイン後も通常のマウスとして使える必要がありますので、最低限、右/左クリックとホイールを除いて6個以上のボタンを持つマウスが必要になります。
 普通の多機能マウスは

 ・ホイールボタン
 ・ホイール右スクロール
 ・ホイール左スクロール
 ・進む
 ・戻る

だと思いますので、残念ながらあとひとつ足りません。ゲーム用などなら山ほどボタン付いてますが、結構値が張ってしまいます。といって1ファンクションだけあきらめるのもキモチワルイです。
 そこで結構盲点なのがLogicoolのM705(今は705rみたいですが何が違うのかはよく解りません)。
 親指の下に部分にもうひとつボタンがあって、デフォルトで「再生/一時停止」機能が割り当てられているのです。これならボタンの数はクリアです。



 さて、では、どのようにコマンドをアサインすればよいでしょう。
 例えばfoobar2000では、K/Bの操作はプレーヤ操作にアサイン出来ますが、マウスの「戻る」や「進む」などはアサインできないみたいです。
 そこで、Windowsの標準ショートカット動作を利用し、プレーヤ側のアサインとLogicoolのユーティリティ「SetPoint」の合わせ技を考えてみます。

 できるかぎり通常のマウス動作が保てるのが望ましいですので、マウスボタンの動作と同じK/Bショートカットがないか捜します。すると、「進む」「戻る」は対応するK/Bショートカットがあるようです(ホイールとかスクロールなどは発見してませんが、あんまり拘りはないのでいいかなと)。
 例えば「戻る」はWindowsのK/Bショートカットでは「Alt+←」です。ですので、SetPointで「戻る」ボタンに「Alt+←」を割り当てて同じ動作とし、foobar2000の設定で「Alt+←」を「次のトラック」に割り当てればOKです。なんで「戻る」が「次のトラック」なのか? は、操作感覚の好みの問題です。
 こうすることで通常のマウス動作として「戻る」「進む」ボタンの機能も残せます。
 この調子で例えば以下のようなアサインを行うと、M705は立派なマウス兼Audioリモコンに変身します。

   ボタン・・・・SetPoint・・・・foobar2000
 ・親指下ボタン・・・デフォルトのまま・・・「再生/一時停止」
 ・ホイールボタン・・・「↓」・・・「停止」
 ・ホイール右スクロール・・・「→」・・・「早送り」
 ・ホイール左スクロール・・・「←」・・・「巻き戻し」
 ・進む・・・「Alt+→」・・・「前のトラック」
 ・戻る・・・「Alt+←」・・・「次のトラック」

 ただし、foobar2000ではデフォルトで「進む」は「次のトラック」、「戻る」は「前のトラック」として動作するようですので、ボタン動作に違和感がない場合は設定不要です。

 ちなみにfoobar2000の「Global hotkey」にチェックを入れたキーは、foobar2000が非アクティブでも効くようになります。
 13/01/20追記:「Portable Mode」でインストールしている場合、K/Bショートカット設定は「Configuration\Core.cfg」をコピーすれば引き継げました。

foobarKB.jpg


 また、Logicoolの「Unifying」に対応したK/Bを利用すると、ひとつのドングルでマウス(リモコン兼用)とK/Bが接続できます。USB機器と認識されるハズですので、おそらくBIOS操作も大丈夫では。

         




 SetPointのバグがちょっと不安ですけどね(苦笑)。

・マウス操作をキーにアサインする
 本項13/04/06追記。
 キーボード操作ができないソフトウェアや、同じソフトの中でもキーでは操れない(マウスでクリックしないとダメな)ボタンがあったりしますよね。キー割付ですべて操作できずマウスクリックも必要、となると画面をずっと消しておくことができません。
 例えばPlayPcmWin(4.0.46.0)ではNEXT:次の曲(>>)・PREV:前の曲(<<)はキーアサインされていませんので、このままだとトラックを進めたり戻したくなった場合、画面表示してマウスでクリックが必要になります。
 仕方ないってあきらめてしまいそうなところですが、なんとかなっちゃうのがPC-Audioの凄いところ。「マウス操作をそのままキーに割り当ててしまう常駐ユーティリティ」を使えば解決です。
 例えば、ウチでは「KeyBoard Butler」というフリーソフトを使わせていただいています。作者さまありがとうございます。

KeyboardButler.jpg

 こういう設定(座標は適当な例です)すれば、PlayPcmWinがアクティブな時キーボードのLeft(←)やRight(→)がPlayPcmWinの「<<」「>>」ボタンに割り当てられた状態になります。具体的には、キーボードのLeftやRightキーを押すと自動的に「マウスカーソルを指定した座標に移動して左クリックする」というスクリプトになってます。
 ただし、マウスの移動は絶対座標で制御されますので、操作するアプリの狙いのボタンの表示場所は固定する必要があります。必ずどこかの角に寄せておくというカンジになりますが、一番簡単なのは「全画面表示」にすることでしょう。
 キーで操作できるようになればこっちのもの。上記の例でBDリモコンを使う場合なら、PREVとNEXTにLeftとRightを割り当てればOK。もちろん多機能マウスへの割り当ても可能でしょう。
 これでPlayPcmWinの「<<」も「>>」もBDリモコンや多機能マウスで操作できるようになりました。
 ひとつのキーで複数の操作がキーマクロとして実行されますので、工夫次第でいろんな自動化ができそうです。

 なお、Windows8ではデフォルトでIMEがONになってますので、そのままだとリモコンから「P」とか入れても変換待ちになってしまうので反応しません(マルチメディアキーの時は関係なかったけれど、文字キーだと問題に)。IMEはデフォルトでOFFになるようWindows8の設定を変更しておいた方がいいでしょう。


■オンスクリーンキーボードを操る

 本項12/10/16追記。
 そんな大仰なものでもないですけど、WindowsにはXP以降標準でいわゆるソフトウェアキーボードが付いています。
 こんなカンジ↓

screebKB.jpg

 在処はWindows7では「C:\Windows\System32\osk.exe」です。ショートカットを作っておけば一発起動(ツールバーの「TabletPC入力パネル」からもいけますが)。
 どうせチューニング時の簡単な入力しかしないのであれば、敢えてハードウェアキーボードを準備しなくても良いかも知れませんね。
 もちろんOS起動中にしか使えませんけど。

 12/11/11追記:Windows8では「タッチキーボード」が追加されています。「タスクバー」を右クリックして「ツールバー」の中の「タッチキーボード」にチェックを入れるとタスクバーにアイコンが追加されます。


メインメニューへ

テーマ : オーディオ
ジャンル : 趣味・実用

ERIへようこそ

Author:らかせ
 「最新記事」または「メインメニュー」からどうぞ

・ファイルへの直接リンク以外はリンクフリー(連絡不要)です
・一応、拍手にコメント(非公開)付けられるようにしてあります
・DB的に利用しており、過去記事もガシガシ書き換えています。特に「最新記事」は初稿から一週間くらいは直してることが多く、大幅に変わっちゃうことも。ご了承ください
・ということもありますし、記すまでもないですが無断転載(ファイル含む)はご遠慮ください
・引用の考え方については「007:諸事」をご参照ください
・アフィリエイトはAmazonのみです
・ハイパーリンクは当Blog記事のみです(054:節電記事のみ例外)

最新記事
カテゴリ
検索フォーム
FC2カウンター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。