私はポートミキサーを中心としたAudacityのバグを修正しようとしています。出力/入力レベルは、portmixerのmacバージョンを使用して設定できますが、必ずしもそうではありません。私はportmixerのウィンドウコードをデバッグしてそこで動作させようとしています。IAudioEndpointVolume :: SetMasterVolumeLevelScalarでUSB/Firewireオーディオインターフェイスのマスターボリュームを設定できないのはなぜですか?
IAudioEndpointVolume :: SetMasterVolumeLevelScalarを使用してマスターボリュームを設定すると、オンボードサウンドは正常に動作しますが、RME Fireface 400などの外部USBまたはFirewireインターフェイスを使用すると、ウィンドウのサウンドコントロールに反映されますが、出力ボリュームは変更されませんそのデバイス用のパネル、およびシステムミキサーにも表示されます。
また、システムミキサー(タスクバー内)のマスタースライダーを変更しても効果はありません。サウンドカードは、システムが指示するレベルに関係なく、同じ(フル)レベルを出力します。出力レベルを変更する唯一の方法は、ハードウェア開発者がカードに与えるカスタムアプリケーションを使用することです。
IAudioEndpointVolume :: QueryHardwareSupport関数はENDPOINT_HARDWARE_SUPPORT_VOLUMEを返すので、これを実行できるはずです。
この動作は、多くのデバイスで入力と出力の両方に発生します。
これはおそらくウィンドウのバグですか?
これを回避するには、出力をエミュレート(スケーリング)することができますが、機能的には同じではないため好ましくありません。オーディオインターフェイスにスケーリングを行う方がよい。
おそらく、このデバイスは標準のWindowsメソッドを実際に実装していないのかもしれません。ベンダーのアプリケーションをデバッグし、それが何をしているのかを調べることができます。おそらくカスタムコマンドなどを送信している可能性があります。 – Luke
これはデバイス間で再現可能ですか?これは、1つのデバイスにのみ固有のハードウェアのバグかもしれません。 – blueberryfields
はい、この影響を受けるデバイスが多数あり、その動作は再現可能です。 –