
Сообщение от
ZugDuk
Я про то, нафиг разрабы плеера, как ты пишешь, юзают майкрософтовскую софтовую регулировку, когда своя все равно реализована (иначе бы в asio ничего не регулировалось). По моему это бред. А кстати с чего ты это взял ? Вычитал где то ? Где ?
В свое время пытался написать врапер DirectShow плагинов для фубара, поэтому разбирался с DS filter graph.(Правда от этой затеи я в дальнейшем отказался, VST врапер оказался на порядок проще.)
Вот, например, про регуляторы громкости:
http://www.hydrogenaudio.org/forums/...howtopic=73027
For output devices that do not support a gain control, foobar2000 will apply a gain to the audio data before it is sent to the output. If you want bit-perfect output, keep the volume setting in foobar2000 at 0 dB.
Видно так уж исторически сложилось - DirectSound самый распространенный интерфейс. Если есть gain control у конечного устройства - его и используем. Нет - тогда уже пересчитываем сэмплы. Если вспомнить ранние версии винампа, то там при выводе в WaveOut регулятор самого винампа синхронно двигал ползунок виндового микшера. Самим винампом тогда ничего не пересчитывалось. Это уже позже из-за воплей пользователей "не трожьте виндовый микшер", сделали возможность программной регулировки, убогой, кстати. За скорость боролись, округляли значения отбрасыванием дробной части. Как там сейчас обстоят дела в винампе - не скажу, давно им не пользуюсь.
Кстати в wine под линуксом, для 32-битного потока не работает регулятор громкости в фубаре (ну не дошли руки у разрабов вайна до реализации 32битных DS фильтров, да они пока и не заявляют такую возможность).
Offтопик:
Вообще, раз зашла речь, в линуксе с качеством звука не всё так радужно, как трезвонят на всех углах. ALSA имеет целочисленную архитектуру. Т.е. клиппинг, накапливание ошибок округления, и прочие радости присутствуют в полном объеме, так ещё есть и откровенные ляпы в реализации самих алгоритмов. Кому интересно - могу тиснуть пару-тройку обзоров, но не в этой ветке
Социальные закладки