ついにうちのDeathAdderさん(マウス)がチャタリングを起こし始めたよ・・・
鉄は熱いうちに打てということなのでチャタリング抑制ソフトを作ってみた。Chattering Blocker。
トレイに常駐してマウスおよびキーボードのチャタリングをブロックする。
なお、自分のチャタリングマウスをサンプルとして調整したので環境によっては効果が薄いかもしれない。
そもそもはInputWireに実装したもののスピンオフで、防止したいボタンやキーのみに特化したもの。
InputWireとの併用時はInputWire側のチャタリング防止をOFFにした上で防止対象に割り当てをしないこと。

img180527_01.png
メインウィンドウ

チャタリング防止ソフトといえば他にも2つほどフリーソフトで存在しているけど、それらは通知ブロックのために
グローバルフックDLLを使っている。そのため外部DLLの読み込みを許さない厚いプロテクトのプロセスには
効果が期待できない。(Battle EYEとかXIGNCODE3とかHackShieldとかのゲーム系)
また、タイマー精度を変更したりもするのでWindows全体に影響が及んでしまう。
Chattering Blockerは別の手段でチャタリング防止を行うのでどのプロセスにも効果が乗るはずだ。
そもそも自分が使えないと意味ないからね・・・

このソフトにホイールを指定した場合、ゆるゆるホイール対策としても動作する。
初動1カウントを破棄するようになるのでちょっとしたことでスクロールが暴発する場合にも有効だと思う。
管理者権限で動作するためWindowsと合わせて自動起動する場合は同梱のバッチファイルを使う。
詳しくはreadme.txtを読んで欲しい。

ダウンロード


[2018/05/29]
ファイルを新しいものに差し替えました。
OutputWireの影響でタイマー精度が上がっていたためメッセージ処理の調整に問題があったようです。

2018.05.27 09:55 | プログラム | トラックバック(-) | コメント(-) |

以前より度々記事に書くことのあったサウンドデバイスの切り替え問題。
「既定のデバイス」を切り替える方法では対応していないアプリで音が消えてしまったり
ハード側での切り替えではスピーカーとヘッドホンの音量を独立して設定できない問題があった。
今回はデバイス切り替え問題に決着をつけるべく、この前作ったVBRedirectをさらに発展させてこんなソフトを作ってみた。
個人的には脱EqualizerAPOに近い使い道になっているかもしれない。
副次的に切り替え以外のトリッキーな使い方もできるようになったので後半でご紹介。

img180501_01.png
OutputWire


●このソフトでできること

・既定のデバイス/通信デバイスの設定
・音量のアップ/ダウン/指定/他デバイスに揃える
・ミュートのオン/オフ/トグル
・音量のリンク(2つのデバイスの音量とミュートがシンクロする)
・出力のコピー(指定デバイスからも同時再生させる)/VSTプラグインでの加工

img180501_02.png
実装済みの動作一覧

これらをホットキーに割り当ててマクロ的に実行できるようにしようというもの。
個人的な用途のために作ったものなのでかなりニッチなものであることは否めない・・・。
VSTプラグイン対応は完全にオマケでVST3対応は面倒なのでパス。
VSTプラグインといえばEqualizerAPOでも使用できるものの、デバイスが持つAPOを上書きしないといけない上に
32bit版プラグインは使用できず、実際の動作はAudioDG.exeで行われるので設定ソフトからは波形入力されず
インジケーターが動かない問題が。

img180501_03.png
VSTプラグイン対応

自分の使い方で例を挙げよう。
スピーカー出力Aとヘッドホン出力Bを切り替えたい。ただしヘッドホン出力Bは既定の通信デバイスB2も使いたい。
そんな場合は以下のようになる。
※前回記事で扱ったVB-Cableのデバイスを使用

[Startup]
①VB-Cableを規定のデバイスにする

[スピーカー]
①VB-Cableを規定の通信デバイスにする
②Aの音量をVB-Cableの音量にコピー
③VB-CableとAの音量操作をリンクさせる
④VB-Cableへの出力をAにコピーする

[ヘッドホン]
①B2を既定の通信デバイスにする
②Bの音量をVB-Cableの音量にコピー
③VB-CableとBの音量操作をリンクさせる
④VB-Cableへの出力をBにコピーする

他にもこんな用途を考えてみる
・普通に出力を分岐させてヘッドホンとスピーカーの同時出力
・マイクから仮想デバイスへ出力コピーしてVST効果で加工、仮想録音デバイスをアプリに指定させボイスチェンジャー化
・SoundBlasterから出力コピーしてコピー先でスカウトモードを使う (出力コピーはコピー元のAPO効果を付与できる)

夢が広がるなぁ・・・
仮想デバイスや未接続な光出力デバイス、ディスプレイ側でミュートにしたHDMIサウンドなど実際に音が出ないデバイスを
経由させて普段使いのデバイスに出力コピーすることで、Sonic StudioやAcoustic Engineといった専用ソフトウェアのAPOを
上書きすることなくVST効果を乗せられる。どうしてもVSTプラグインを使いたいんだって人にも良い手段を提供できそうだ。


●このソフトの細かい仕様と制限
箇条書きで手抜きをさせてもらうけれど・・・
・StartupプロファイルはOutputWire起動時に自動実行される
・出力コピーおよび音量リンクはそれぞれ1つしか維持できない
・出力コピーは 出力デバイス→出力デバイス または 入力デバイス→出力デバイス が可能。前者が低遅延
・出力コピーはコピー元とコピー先両方のAPO効果を受ける
・音量リンクはAとBどちらがどちらでも動作は同じ
・VSTプラグインの効果は出力コピー先にしか乗らない
・VSTプラグインはプロファイル共通扱い
・VSTプラグインはOutputWireと同じbit版しか読み込めない
・VST処理は64bit版のほうが32bit版より2倍以上軽い。
・VST処理は2chプラグインであっても7.1ch出力全てに効果を乗せる
・入力と出力のチャンネル数が異なるプラグインの動作は未定義

等々。
出力コピーや音量リンクが1つなのは実装が面倒なのもあるけれどループバックが怖いから。
簡単に言うとスピーカーにマイクを近づけてハウリングが起きるのと同じで、ループが出来上がると
無限増幅でデバイスにどんな影響があるかわからない。
どうしても出力コピーを2系統使いたい場合はVBRedirectと併用する手もある。
(本当はVBRedirectを置き換えるためのソフトでもあるわけだけど・・・)


●ダウンロード
こちらからどうぞ。32bit/64bit同梱。
VBRedirectと同じく、WASAPIの自動コンバート機能を使うためWindows10でしか動かないので注意。


[2018/05/02]
いくつかのプラグインの動作不良を改善。
他にも不定期で改良していくのでページ右上のバージョンをチェックしていただければ。

img180501_04.png
お気に入りのTDR Novaの操作がまともにできるようになった。
音の成分をリアルタイムで見ながらいじれるイコライザ。知識がなくてもいじりやすいUI。ステキ。
OutputWireのVSTウィンドウはOKを押さない限り設定を保存しないので、いじりすぎて不満が出たときは
Cancelすることで以前の設定に戻すことが可能。とにかくいじって体感して覚えていくのだ。

2018.05.01 19:27 | プログラム | トラックバック(-) | コメント(-) |