推 krrvincent : Windows是走DS之後送進DAC 10/27 00:59
→ krrvincent : DAC的數位音量是另一回事 10/27 01:00
Windows 10 目前的 APIs
Top level APIs
The top level APIs are used for application development. These APIs
are in currently in use and supported.
43~
These older APIs are deprecated.
DirectShow
DirectSound
PlaySound
Windows.Media.MediaControlContract
Low level APIs
These lower level APIs are recommended for audio streaming.
WASAPI (High performance, but more complicated)
IXAudio2 (Typically used for games)
MIDI
DS 已經是歷史留存為相容,M$都不推薦使用了。Windows Shared Mode、Exclusive
Mode 所使用的 API 都是 WASAPI,只差在路徑有沒有繞過 Windows Audio Engine 的
混音與效果。
https://docs.microsoft.com/en-us/windows/win32/coreaudio/images/fig1.jpg
https://docs.microsoft.com/zh-tw/windows/win32/coreaudio/images/devices.jpg
音訊流(PCM)跟音量控制是分開的。
In contrast, the EndpointVolume API automatically finds the hardware volume
control for the client. Second, if the endpoint device does not implement a
hardware volume control, a DeviceTopology client must implement a volume
control in software.
Software Volume Control Support
In Windows Vista and later, software volume support is provided for audio
hardware that does not include and amplifier with an associated physical
volume control.
當 Audio 硬體不支援硬體音量控制 Windows 才會啟用軟體控制。
當 Audio 裝置的硬體音量控制也就是 physical volume control 可用,Windows 的主
音量控制就會連結至 DAC 中的音量控制。
推 avalonworld : 推 10/27 03:43
推 djboy : 推 10/27 07:17
推 goldie : 推 10/27 10:23
推 krrvincent : 推 長知識了 10/27 14:11
補充個 Windows 10 USB Audio 2.0 Drivers
Architecture
https://docs.microsoft.com/en-us/windows-hardware/drivers/audio/images/usb-2-0-audio-arch.png
如果硬體支援就會使用 WaveRT(WASAPI 中的 pull mode),這是個 cyclic buffer
也就是環形緩衝區,使用 DMA 需雙方(PC&USB)能同時共享同一個記憶體緩衝區。
如果硬體(DAC 的 USB Controller)不支援或相容性有問題就只能使用乒乓緩衝區。
Windows 提供的 USB Audio 2.0 Driver 有支援 Mute Control & Volume Control。
所以只要 USB DAC 有支援 Hardware Volume Control,Windows 就能通過 USB 發送
interrupt data messages 控制該 USB DAC 裝置的音量。
推 newwer : 所以說若使用foobar wasapi獨佔還是可以調右下音量 10/28 00:36
→ newwer : 是正常的囉?這是代表我繞過pc端軟體調節但外接dac 10/28 00:37
→ newwer : 的線路設計讓我還是可以從電腦端調音量? 10/28 00:38
→ newwer : 實際試了windows音量+dac旋鈕音量的各種組合 10/28 00:39
→ newwer : 我是聽不出甚麼差別,有感覺也是心理作用的成分較大 10/28 00:40
是的、走 WASAPI 獨佔但 Windows 音量控制可用就表示你的音效設備是支援 Hardware
Volume Control。
反之不能用就表示該裝置不支援,因為 Software Volume Control 的路徑在 Shared
Mode 這邊。
如果是 Software Volume Control 的確是會有細節損失的問題特別是在高頻部分。
但除非把數位音量下調的很低不然的話是很細微的。
※ 編輯: Oswyn (220.129.12.77 臺灣), 10/28/2019 12:07:29