Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 17

Тема: Как вернуть качественный звук в Windows 7 — побитовый вывод, аппаратные эффекты (EAX и пр.)

  1. #1
    UGEX Support Аватар для banana
    Регистрация
    13.09.2009
    Адрес
    Россия
    Сообщений
    546

    По умолчанию Как вернуть качественный звук в Windows 7 — побитовый вывод, аппаратные эффекты (EAX и пр.)

    О звуковых подсистемах

    Windows XP


    Тут схема звуковой подсистемы примерно следующая:


    В данном случае через интерфейс DirectSound ПО имело прямой доступ к аппаратным ресурсам звуковой карты — микширование, преобразование частоты дискретизации, различные эффекты (включая 3D позиционирование) — в общем, всё, что было необходимо, как для музыки/фильмов, так и для игр.
    Конечно, были свои проблемы, в частности с микшером Windows (неточная регулировка громкости, принудительная некачественная передискретизация всего и вся до 48 кГц), но они вполне легко обходились с помощью Kernel Streaming (тот самый поток, идущий мимо kmixer), а иногда даже с помощью хороших драйверов (у Creative например таковые появись только в линейке X-Fi. На аудиокартах Audigy микшер ведет себя не вполне адекватно, но, при желании, справиться с этим не сложно).


    Windows Vista, 7


    И вот, жили наши энтузиасты-звукари, горя не знали, но тут подоспела новая ОС от Microsoft, которая конечно же обязана была содержать кардинальные изменения (и не так уж важно, в какую сторону).
    Таким образом, в рамках новой концепции абстракции от оборудования, Windows Vista, кроме всего прочего, получила полностью переработанную подсистему ввода/вывода звука. И конечно же, переработали её не самым лучшим образом.
    Вот, какой вид она приняла в этот раз:



    API — Application Programming Interface
    APO — Audio Processing Object
    CPT — Cross Process Transport
    KST — Kernel Streaming Transport

    Теперь поясню. Суть такова: все программы, заточенные под вывод на DirectSound и ничего не знающие о новом интерфейсе, подключаются к WASAPI в общем режиме (WASAPI Shared), далее происходит следующее:
    Составляющие WASAPI (используя только ресурсы центрального процессора), выполняют все нужные (и не очень) преобразования:

    1. Приведение звуковых потоков от разных приложений к одному виду (указанному в настройках Windows) — т.е. к одному количеству каналов, частоте дискретизации, глубине квантования.
    2. Микширование потоков.


    Плюс к этому надо добавить возможность наложения в процессе обработки программных эффектов (алгоритмы которых заложены в драйверах звуковой карты). Например, для звуковых карт Creative X-Fi есть убогая эмуляция эффекта CMSS-3D.
    Качество всех этих обработчиков, само собой, не самое высокое.
    Далее всё это отправляется через Kernel Transport на звуковую карту.
    Теперь давайте попытаемся объективно оценить преимущества и недостатки новой системы:

    + базовые возможности обработки для звуковых карт не умеющих обрабатывать звук «своими силами»
    + поддержка на входе практически любого формата аудио — многоканальное аудио с частотой дискретизации до 192 кГц и глубиной квантования до 32-bit float
    + повышенная стабильность (спорное утверждение, в принципе)

    — принудительный некачественный ресемплинг
    — микширование каналов без эффектов окружения (или же они очень примитивны)
    — сужение динамического дипазона (особенно в режиме 16 бит)
    — отсутствие доступа к аппаратному DSP, т.е. потеря всего его функционала, включая эффекты EAX в играх (в т.ч. и на картах, где EAX эмулировался программно — так как в WASAPI такого понятия даже нет нет)
    — щелчки, хрипы и прочие последствия связанные с использованием ресурсов ЦП.

    Как видно, больше всего не повезло компьютерным меломанам и геймерам.
    Люди же, не особо интересующиеся тем, что происходит со звуком на пути к звуковой карте — возможно даже получат определенное улучшение (хотя, опять же, им скорее всего всё равно — лишь бы работало)
    А теперь, о том как преодолеть большинство из вышеперечисленных проблем, ибо, к великому несчастью, с выходом так любимой многими Windows 7, Microsoft никакой революции в плане звука нам не устроила.


    Меломанам: точный вывод звука

    1. Как я писал выше, большинство приложений для вывода звука в Windows 7 (хотят они того, или нет) используют режим WASAPI Shared. Но есть и другой режим — WASAPI Exclusive. Если руководствоваться блок-схемой, то в этом режиме отбрасывается всё, что лежит между Application Programming Interface и Kernel Streaming Transport — грубо говоря, звук идет непосредственно от приложения через интерфейс WASAPI на звуковую карту.
    Но надо сделать замечание: так как в этом режиме отключен микшер WASAPI, а к микшеру звуковой карты доступа всё равно нет (ибо нет DirectSound), при использовании приложением эксклюзивного режима, воспроизведение любого другого источника через WASAPI становится невозможным.
    Но, так или иначе, мы получаем по-битовый вывод аудио на звуковую карту.

    2. Есть и другой способ. Если ваша звуковая карта имеет родной драйвер ASIO — вам крупно повезло. ASIO функционирует совершенно отдельно от WASAPI, так что, при прослушивании музыки системные звуки не будут отключаться — потоки ASIO и WASAPI будут микшироваться самой звуковой картой.
    Вывод: если ваш драйвер ASIO не вызывает сомнений, используйте его.
    Да, чуть не забыл — ASIO4ALL использовать нежелательно — как и Kernel Streaming, в этой ОС он работает очень нестабильно (судя по всему, из-за того, что другие звуки, идущие через WASAPI, периодически блокируют Kernel Transport).

    Теперь непосредственно к делу.

    Конечно же, для прослушивания музыки я рекомендую foobar2000 с плагином ASIO Output или WASAPI output support — ни за что другое ручаться я не могу.

    Любителей AIMP я разочарую — WASAPI Exclusive не предполагается даже в AIMP3 beta (только Shared), а ASIO в нем пока что сильно хромает (не умеет выставлять правильное количество каналов вывода, что приводит к нехорошим результатам).

    Пользователям Winamp могу предложить плагины ASIO output Plugin или даже такое: OpenAL Output — кстати, еще один способ обхода WASAPI (видно из блоксхемы).


    Для кинолюбителей: о видеоплеерах

    C видеоплеерами ситуация практически аналогичная. Нам необходимо вывести звук на карту в первозданном виде. Особенно это важно, если вы хотите выполнить преобразование многоканального звука в стерео с использованием аппаратных эффектов вроде CMSS-3D в Creative X-Fi (объемное звучание в наушниках или стерео колонках). Для этого звук должен поступить на звуковую карту в многоканальном виде. Но вот беда: WASAPI в общем режиме преобразовывает каналы до кол-ва указанного в настройках Windows. Но даже если вы укажите там, скажем, 5.1, — этот параметр синхронизируется с настройками драйвера звуковой карты, и DSP не будет преобразовывать звук — так как сигнал на входе соответствует по кол-ву каналов настройкам. Т.е. тут принцип таков: в настройках драйвера звуковой карты должна стоять реальная конфигурация подключенного устройства воспроизведения (наушники, АС), а звук на карту должен поступать не измененным.
    И так, тут нам опять понадобится WASAPI Exclusive. Я бы посоветовал использовать Media Player Classic HomeCinema в связке с DirectShow фильтром ReClock (только для 32-битного MPC), который, кроме всего прочего, умеет выводить звук на WASAPI Exclusive.

    Геймерам: трехмерное позиционирование, EAX

    Да, введение новой звуковой подсистемы, несомненно, вызвало негодование у многих геймеров, в т.ч. у счастливых обладателей высокотехнологичных звуковых карт от Creative.
    И так, для тех, кто, может быть, еще не в курсе: выход найден — OpenAL. Эта библиотека имеет доступ ко всему, что касается аппаратных эффектов трехмерного позиционирования источников звука и т.н. Environmental Audio Extension — вплоть до версии 5.0.
    Кроме того, что продвинутые разработчики таких игр, как например S.T.A.L.K.E.R: Call of Pripyat построили движки своих игр на OpenAL, для остальных игр, рассчитанных на DirectSound, было разработано две программы, преобразующих вызовы DirectSound в OpenAL:

    * Creative ALchemy (последняя на момент написания статьи версия) для карт Audigy и X-Fi от Creative
    * и даже 3D SoundBack для карт Realtek HDA, которые, кстати говоря, поддерживают EAX 2.0 (хоть и программно)


    Выводы


    И так, вот вроде бы мы имеем всё, чего нам так не хватало сразу после перехода с Windows XP на Windows 7. Конечно, не без лишней мороки, но, что делать — такие уж задачки подкинула нам фирма Microsoft.

    Источник: http://habrahabr.ru/blogs/sound_and_music/115092/
    Последний раз редактировалось banana; 08.03.2011 в 15:42.

  2. #2
    UGEX Support Аватар для banana
    Регистрация
    13.09.2009
    Адрес
    Россия
    Сообщений
    546

    По умолчанию

    Пару комментариев от себя. Всё же меломаны и звукачи используют профессиональные звуковые карты и в основном MacOS, поэтому большинство им ничего проделывать не будет нужно. По кинолюбительству сказать ничего не могу, не отношусь к этой группе людей, но всё же я считаю что удобнее смотреть кино на FullHD телевизорах или проекторах с хорошей звуковой системой, которая не требует каких-то настроек на аппаратной или программном уровне. Для гейминга - у меня Realtek HDA, но устанавливать 3D SoundBack я не стал, поскольку те игры, в которые я играю не поддерживают ни OpenAL, ни EAX. Дорогие варианты геймерских ушей подключаются по USB и имееют встроенную звуковую карту, которая также не требует настроек. Так что к сожалению, статья для меня в практическом плане оказалась бесполезной, возможно кому-нибудь она поможет.

  3. #3
    Father of UGEX Аватар для Steph
    Регистрация
    10.06.2009
    Адрес
    Санкт-Петербург
    Сообщений
    4,099

    По умолчанию

    Спасибо, интересная статья.

  4. #4
    UGEX Crew
    Регистрация
    13.02.2011
    Адрес
    Новосибирск
    Сообщений
    516

    По умолчанию

    А мне семёрка сразу не понравилась, два раза ставил и сносил, сижу на старушке XP SP3 и горя не знаю

  5. #5
    UGEX Crew Аватар для Metalmih
    Регистрация
    15.10.2009
    Адрес
    Восточная сибирь
    Сообщений
    534

    По умолчанию

    Вот у меня есть смежный вопрос, всё хотел его задать, вот и тема подвернулась :)

    Панель управления-звук-динамики-свойства


    По умолчанию стоит как для CD, карта ESI Juli@, 24-битная. Пробовал ставить 24-бит, но при нажатии "проверка" комп вылетает в синий экран. Мне интересно, что лучше должно стоять в этой настройке, если я занимаюсь звукозаписью и сведением?

    Такая же панель в свойствах записи. Записываю в кубе всегда в 24-бит, но в свойствах стоит 16

  6. #6
    UGEX Support Аватар для banana
    Регистрация
    13.09.2009
    Адрес
    Россия
    Сообщений
    546

    По умолчанию

    Цитата Сообщение от Metalmih Посмотреть сообщение
    комп вылетает в синий экран
    Огласи ошибку, которая написана на синем экране. Или же выложи сюда если есть файлы из C:\Windows\Minidump . Скорее всего проблема с драйверами

  7. #7
    UGEX Crew Аватар для Metalmih
    Регистрация
    15.10.2009
    Адрес
    Восточная сибирь
    Сообщений
    534

    По умолчанию

    Я Не хочу нарочно насиловать свой комп, опять вызывая синий экран. А пробовал уже довольно давно, после этого были уже другие ошибки, так что рыться в Minidump, искать нужную ошибку... К тому же, драйвер на в7 у моей карты только один, и я ничего не смогу с ним сделать.

    Меня интересует лишь вопрос как должно лучше стоять в настройках, а оттуда уже оталкиваться

  8. #8
    Father of UGEX Аватар для Steph
    Регистрация
    10.06.2009
    Адрес
    Санкт-Петербург
    Сообщений
    4,099

    По умолчанию

    Metalmih, попробуй обновить windows, драйвера, это тоже может помочь. А в настройках звуковой карты устанавливай те параметры что и в проекте. Возможно bluescreen был потому что была включена какая то программа использующая аудио карту, с уже установленными параметрами и такое переключение рестартнуло комп. Попробуй изменить настройки в safe mode.

  9. #9
    UGEX Crew Аватар для Metalmih
    Регистрация
    15.10.2009
    Адрес
    Восточная сибирь
    Сообщений
    534

    По умолчанию

    ок, попробую в safe mode

    Цитата Сообщение от Steph Посмотреть сообщение
    попробуй обновить windows, драйвера
    windows пиратскую обновлять не осмелюсь, драйвер, как я писал, всего лишь одна версия

  10. #10
    UGEX Support Аватар для banana
    Регистрация
    13.09.2009
    Адрес
    Россия
    Сообщений
    546

    По умолчанию

    Цитата Сообщение от Metalmih Посмотреть сообщение
    windows пиратскую обновлять не осмелюсь
    Чем активировал? Множество активаторов поддерживают офф. обновления, если что можно устанавливать в ручную всё кроме 971033

Страница 1 из 2 12 ПоследняяПоследняя

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •