В своих статьях Организация качественного вывода звука на компьютере, а также Как вернуть качественный звук в Windows 7 — побитовый вывод, аппаратные эффекты я упоминал некий шум, который микшер привносит в аудио поток. И сегодня мне наконец удалось вычислить природу этого шума. Шум этот — не что иное, как дезер и появляется он только в 16-битном режиме. Т.е. все звуки, даже 16-битные преобразовываются звуковой подсистемой в 32 бита с плавающей точкой, а затем, в процессе понижения разрядности до 16 бит, к сигналу подмешивается этот самый дезер. Всё бы хорошо — при 24-битном источнике дизеринг здесь просто необходим - но вот дело в том, что даже при 16-битном формате исходного аудио, оно всё равно выполняется преобразование 16->32fp->16 с подмешиванием 1-битного шума, что сужает динамический диапазон примерно на 6 дБ. Вот, обратите внимание на исходный спектр 16-битного сигнал и результирующий при прогоне через WASAPI shared:
Благо, практически все звуковые карты сегодня поддерживают 24-битный вывод — дизеринг просто не понадобится и не будет включаться. Однако, в случае отсутствия поддержки, для побитового воспроизведения 16-битного материала можно воспользоваться выводом в режиме exclusive — в обход обработчиков WASAPI.
А для 24-битных же карт можно быть спокойным — если вы отключите все эффекты, звук не будет подвергаться никакой обработке, даже в режиме shared. И что касается ресемплера WASAPI (resampler MFT) — как показала практика, он также вполне сносного качества. Так что не так страшен волк, не так страшна звуковая подсистема Windows Vista/7/8...
Информация от спонсора
UpSale: повышение продаж. Если Ваш бизнес расширяется, приходится работать с большим количеством клиентов, Вам просто необходимо иметь базу данных клиентов. Специально для Вас актуальные клиентские базы данных соберет Апсейл. Удобная структуризация данных, создание базы данных потенциальных клиентов и многое другое — всё это предлагает UpSale.
Захотел повторить Ваш эксперимент:
почему-то не получается записать файл при конвертировании.
Он создается нулевого размера (вижу в директории), а после нажатия кнопки abort сразу де стирается.
Все делал строго по Вашему видео.
В чем может быть моя ошибка?