admin / 23.09.2018
Windows Vista introduced a new series of APIs for audio, called CoreAudio. This includes WASAPI (Windows Audio Session API), a brand new API for capturing and rendering audio.
Содержание
Of course, there were always ways of dealing with audio in previous versions of Windows. And they are still available in Vista, so there is no need to move if you don’t want to. Here’s the main choices…
So why has Microsoft added WASAPI to the list?
Documentation on WASAPI is fairly sparse despite Vista being out for well over a year now. The best places at the moment to go are:
So is anyone actually using WASAPI? Well, I use a variety of pro audio applications, each of which offer the user a selection from a variety of APIs, and yet none of them have added WASAPI to the list. Even Cakewalk, who seem to be very loyal to Microsoft, have stuck with kernel streaming to access the new WaveRT driver model rather than using WASAPI.
The trouble seems to be that WASAPI doesn’t offer anything that WDM Kernel Streaming doesn’t already, and since WASAPI is Vista only, there is no incentive to switch. And with Windows XP not looking like it will go out of common usage for a very long time, writing a new application based on WASAPI doesn’t make much sense.
But what about slightly less pro audio applications? What if someone is writing a new application that wants to deal in some way with individual audio samples, and is able to target just Vista and above. Could they choose to use WASAPI? It all depends on how much work they are willing to do…
WASAPI gives two options for audio rendering — Shared mode and Exclusive mode. In exclusive mode, you are the only application talking to the audio endpoint in question — all other applications cannot make any noise. This gives the absolutely best performance possible, so would the choice of all pro audio applications like Cubase, SONAR, REAPER, Pro Tools etc. But as I have already said, they are not using WASAPI. They are using ASIO or Kernel Streaming.
Which leaves us with shared mode. This allows you to share the endpoint with other applications. In other words, you can still hear your Windows sounds etc. Of course, when you share an endpoint, one application might want to play sound at 48kHz 24 bit stereo, while another wants to play it at 22kHz 16 bit mono. With the WinMM APIs, this is no problem — built in converters will convert each audio stream to the format of the Windows mixing engine.
Now I have been creating a set of .NET wrappers for WASAPI as part of my NAudio open source audio library. After the pain of writing the mountains of COM interop required to get .NET talking to WASAPI, I hit a brick wall. WASAPI does not offer sample rate conversion. In other words, to use shared mode, you must either hope that the Vista machine’s audio engine is set to the exact sample rate of your audio, or you must write your own sample rate converter. And sample rate conversion is by no means trivial. Especially if your criteria are that it must not degrade the audio quality and it must be as fast as possible.
Why on earth could Microsoft not have given us SRC with WASAPI? Sure latency will be affected (or to be more accurate, processor load will increase, making lower latencies harder to achieve). But this is taken for granted with shared mode. We know that when we are sharing the endpoint then SRC must occur somewhere. Microsoft already have done the R&D to create a configurable performant Sample Rate Converter. Why not let WASAPI plug it in automatically (or at least give us a flag to ask WASAPI to do SRC for us)?
The upshot of this is that for me to continue with my WASAPI .NET interop I now have to wrap the Audio Resampler DSP DMO (DirectX Media Object), which is a whole new can of worms (perhaps another blog post later).
WASAPI is here to stay, but if it is to be used more widely, it needs to be made more developer friendly. There is I guess the possibility that pro audio companies will look to it more as we go to 64 bit Windows and as more people move to Vista, but it will really be able to pick up some traction if it was easier to use in shared mode. Here’s my two suggestions…
Want to get up to speed with the the fundamentals principles of digital audio and how to got about writing audio applications with NAudio? Be sure to check out my Pluralsight courses, Digital Audio Fundamentals, and Audio Programming with NAudio.
Foobar2000 — один из самых полезных и удобных свободных аудио плееров для windows. Он обладает очень широкими возможностями настройки и использования плагинов, что порождают определенную сложность его настройки, особенно для не очень продвинутых пользователей.
В этом материале я не буду касаться модификации интерфейса и прочих украшательств. Поэтому просьба не задавать по ним вопросы в комментариях — материал не об этом. Здесь описан способ настройки плеера для наиболее качественного воспроизведения стерео музыки. Вопросы многоканальности также не раскрыты.
И еще, я ни в коем случае НЕ утверждаю, что воспроизведение музыки с компьютера без качественного внешнего ЦАП может сравниться с нормальным CD проигрывателем. Даже с хорошей звуковой картой. Ресиверы же курят… просто тихо курят в сторонке и к стерео музыке отношения не имеют. Поэтому смысл этой статьи в максимальном использовании возможностей компьютера, когда обстоятельства не позволяют пользоваться нормальной аудиосистемой (работа, кабинет и т.д.) или когда нужно качественно прослушать свежескачанныый lossless образ диска.
Настройка рассчитана на повседневное использование и подходит для любого компьютера и типа подключения аудиосистемы, что сильно упрощает задачу. Последнюю версию программы можно скачать с сайта программы. На этом же сайте есть и компоненты, которые вам понадобятся:
Остальные компоненты найти сложнее, поэтому привожу прямые ссылки:
George Yohng’s VST wrapper — компонент, позволяющий использовать профессиональные VST плагины при воспроизведении музыки в foobar2000;
SOX resampler (первая ссылка на странице) — быстрый и качественный ресемплер (изменяет частоту дискретизации сигнала);
И напоследок можно установить поддержку чтения SACD (читает прямо из образа): sacddecoder.sourceforge.net;
Если не хотите лазить по всем этим сайтам — можете скачать подборку компонентов. Версии соответствуют тем, которые я использую сам. Скачать все компоненты.
Немного подробнее о назначении компонентов. При воспроизведением звука через стандартные интерфейсы (DirectSound или Wave Output) задействуется встроенный микшер Windows, который формирует из нескольких источников (например, музыка, звуки ОС, звуки игр и т.д.) выходной поток. Соответственно, сигнал претерпевает искажения. Хуже того, если мы захотим вывести сигнал в цифровом виде, то Windows сделает ресемплинг (изменение частоты дискретизации и глубины квантования) сигнала до значений, установленных в параметре Default format (настройки звукового устройства в Windows).
Естественным способом обойти эти ограничения является вывод звука напрямую, в обход микшера Windows. Наиболее целесообразны для этого интерфейсы ASIO и WASAPI, приятной особенностью которых является также наличие "автомата" параметров сигнала при выводе цифрового сигнала. Иными словами, он передается "как есть", без изменений частоты дискретизации и глубины квантования.
ASIO (Audio Stream Input/Output) — протокол передачи данных с малой задержкой, разработанный компанией Steinberg. "Настоящий" ASIO обычно предполагает аппаратную поддержку его устройством (звуковой картой) и его драйверами. В таком случае у вас в системе уже будет установлено устройство ASIO. Для остальных систем (например, со встроенным в материнскую плату или видеокарту звуком) также есть выход: ASIO4ALL. После установки asio4all, даже в системе со звуком от Realtec появится устройство ASIO со всеми необходимыми функциями.
WASAPI — новый звуковой интерфейс ОС Windows, начиная с версии Vista. Он позволяет достичь всех поставленных нами задач без каких-либо дополнительных установок и настроек и является штатным для новых Windows.
Поддержка VST плагинов нужна для получения качественных плагинов обработки звука. Например, эквалайзера. Штатный эквалайзер не очень хорош, и дело не только в количестве полос. Можно найти немало неплохих VST эквалайзеров. Но самые хорошие из них — платные… Могу порекомендовать хороший 31-полосный эквалайзер. Зарегистрированные пользователи сайта scyldland.ru могут поискать его по ссылке на странице stuff. Или на рутрекере.
Итак, приступим к установке. Для начала установите foobar2000 в желаемую директорию. Скачанные ранее компоненты нужно кинуть в папку components, находящуюся в директории с установленным foobar2000. VST плагины зачастую также требуют установки. Лучше устанавливать их всех в одну папку.
Теперь запустим foobar. Основное меню находится в File -> Prefences. Для удобства использования установим файловые ассоциации, которые в новых версиях не так просто найти: кнопка вызова настройки ассоциаций находится в разделе Shell Integration и называется "Open Set Program Associations: Foobar2000" control panel (см. скриншот).
Она вызывает штатное меню OC Windows ))) Нужно установить ассоциации для следующих расширений:
После этого плеер будет загружаться для воспроизведения основных звуковых форматов.
Если вы не собираетесь использовать ASIO и намерены выводить звук через WASAPI, то соответствующую настройку можете пропустить. Для указания программе устройства ASIO зайдите в раздел меню "Asio virtual devices" (расположение в дереве видно на предыдущем скриншоте), которое существует благодаря плагину ASIO support. Там у нас чистое поле, поэтому жмем кнопку "Add new" и попадаем в следущее меню:
На примере (скриншот) в системе установлен только ASIO4ALL, поэтому он и выбран в выпадающем списке драйверов. Здесь же нужно сделать маппинг звуковых каналов. Для удобства предусмотрен тестовый сигнал и кнопка вызова меню конфигурации ASIO.
Меню настройки ASIO4ALL довольно обширно, особенно в части управления выходами(если оно у вас пустое, нажмите на "гаечный ключ"). Можете отключить лишние выходы, которые не собираетесь использовать. Основной настройкой является величина буфера. Если вы используете ASIO только для звуковоспроизведения, то смело можете устанавливать максимальное значение. Если же использовать этот интерфейс по прямому назначению, т.е., например, для подключения музыкальных инструментов, то большой буфер будет давать задержку сигнала.
В любом случае, если вы слышите искажения (клики, выпадения), — увеличивайте размер буфера.
Для стерео звуковой карты с поддержкой ASIO собственными драйверами добавление устройства в foobar гораздо проще. В списке всего два канала и не нужно никаких дополнительных настроек.
Теперь нужно задать способ вывода звука. Для этого переходим в меню "Output" и из выпадающего списка выбираем нужное устройство:
Указываем наше устройство ASIO или WASAPI. Для wasapi выбираем цифровой (digital) или аналоговый (speakers) варианты.
Если используется ASIO, а не WASAPI, то будет активирована функция автоматического выбора глубины квантования (16 или 24 бита). Желательно при добавлении устройства asio указать длы выводов 24 или 32 бита, чтобы эта функция имела смысл.
В меню настройки output после выбора устройства ASIO селектор битности становится disabled и появляется надпись "Output data format will be сhosen automatically for the selected device":
Осталось настроить DSP. К ним в нашем случае относится SOX Resampler, если он вообще нужен (об этом далее), и George Yohng’s VST wrapper. Добавление дополнительных обработчиков звука находится в разделе Playback -> DSP Manager основного конфигурационного меню.
В правом столбце находятся все доступные плагины, как штатные "фубаровские", так и размещенные в папке "components". В левый столбец добавляем то, что хотим использовать.
Немного о выборе, использовать или нет Resampler. По большому счету, он пересчитывает частоту дискретизации, стандартную для CD (44100 Гц) в любую другую (48000 — 192000), лишь бы она поддерживалась звуковой картой. Если у вас есть звуковая карта с честной аппаратной поддержкой частоты 44100, то ресемплер вам, возможно, не нужен. Но обычно там стоят цапы на 96 или 192 кГц, и еще вопрос, что сделает ресемплинг лучше: карта или плагин. Это касается и варианта с выводом звука по цифре на внешний ресивер, цап, процессор и т.д.
Если планируется использование vst плагинов (например, эквалайзера), то ресемплер крайне рекомендуется, т.к. обработка будет происходить с большей точностью (в vst плагин пойдет сигнал с повышенной частотой дискретизации).
Если мы все же используем resampler, то зайдите в его конфигурацию (выделяем нужный DSP в левом столбце и нажимаем Configure selected). В меню его настройки достаточно подобрать поддерживаемую частоту. Начните с 48000, чтобы убедиться, что произведенная настройка foobar вообще работает, а затем попробуйте 192000 и 96000. Оставьте максимальную поддерживаемую частоту.
Если после описанной настройки foobar2000 заработал, то можно поздравить вас с основной частью. Если вы используете ASIO, то в трее должен висеть красивый значек, отображающий статус воспроизведения (play, stop, pause). При наведении на него мыши отображаются текущие параметры вывода.
Осталось подключить установленный ранее VST плагин эквалайзера (если он вам нужен, конечно). На рисунке выше вы видите в трее, рядом со иконкой ASIO, синюю иконку с надписью VST. Это доказывает свою боеготовность наш VST Wrapper. Клик по нему вызывает контекстное меню; веберите в нем VST Setup.
В появившемся меню добавьте папку, в которую установлены ваши VST плагины.
Теперь используемый VST плагин можно выбрать через то же самое контекстное меню, пункт "Use VST Effect". Там же можно выбрать режим "Bypass", пускающий звук в обход плагина.
С использованием VST плагинов замечен неприятный баг: при вызове окна конфигурации плагина, его настройки сбрасываются, и приходится заново выбирать сохраненный пресет. Но для повседневного использования это не имеет значения.
На этом настройка закончена. Приятного прослушичания что ли))))
Источник: Scyld, 2010
Environmental Audio (дословно окружающий звук)- это новый стандарт звука, разработанный фирмой Creative Labs, создающий эффекты окружающей среды реального мира на компьютере. Environmental Audio сегодня ужк много больше простого surround -звука и 3D моделирования. Это и настоящее моделирование окружающей среды с помощью мощных эффектов с учётом размеров комнаты, её звуковых особенностей, реверберации, эхо и многих других эффектов, создающих ощущение реального аудио мира.
Как работает Environmental Audio
Эффекты окружающей среды моделируются при помощи технологии E-mu Environmental Modeling, поддерживаемой аудиопроцессором EMU10K1, установленного на серии звуковых карт SBLive! Технология Environmental Audio разработана с учётом работы на наушниках, двух или четырёх колонках. Чип EMU10K1 раскладывает любой звуковой поток на множество каналов, где накладывает эффекты в реальном времени. За счёт этого создаются уже новые звуки, такие, как они должны быть в природе. На стадии обработки звука кроме его пололжения в пространстве должны быть учтены, как минимум, два фактора: размер помещения и реверберация, так как человеческое ухо слышит не просто оригинальный звук, а звук с учётом дистанции, местоположения и громкости. Стандарт Environmental Audio обрабатывает все эти условия для получения высококачественного реального звука.
Environmental Audio использует координаты X, Y, Z, а также реверберацию и отражения звука. Эти координаты используются при базовой подготовки каналов аудио источника и эффектов "окраски" звуковой сцены. Основная мощность аудиопроцессора расходуется на обработку каждого звукового источника по всем каналам и на добаление эффектов в реальном времени. Как уже говорилось, для создания ощущения реального звука нужно учитывать как минимум 3 фактора: расстояние до источника звука, размер звукового помещения и реверберацию.
Environmental Audio Extensions (EAX)
Это API, разработанный фирмой Creative Labs для достижения реальных звуковых эффектов в компьютерных играх. EAX- это расширение API DirectSound3D от фирмы Microsoft На 18 Октября 1999 года единственной звуковой картой, поддерживающей этот стандарт является Sound Blaster Live! (в разных модификациях). На сегодня Creative выпустила три версии этого стандарта..
DirectSound3D управляет местоположением в 3D пространстве игры источников звука и слушателя. Например, игра может использовать DirectSound3D для создания раздельных источников звука для каждого существа в игре, получая, таким образом, звуки выстрелов и голоса в разных местах 3D-мира. Эти звуки, также как и слушатель, могут перемещаться в пространстве. Разработчики игр могут использовать такие звуковые возможности, как палитра направлений (звук в одном направлении может идти громче, чем в другом), эффект Допплера (звук может нарастать, достигнув слушателя, и потом спадать, как бы удаляясь в пространство).
EAX улучшает DirectSound3D созданием виртуального окружающего аудио мира вокруг источников звука и слушателя. Эта технология эмулирует реверберации и отражения, идущие со всех сторон от слушателя. Эти эффекты создают впечатление, что вокруг слушателя существует реальный мир со своими параметрами, как то: размер помещения, отражающие и поглощающие свойства стен и другие. Программисты игр могут создавать различные акустические эффекты для разных помещений. Таким образом, игрок, который играет в EAX игру может слышать разницу в звуке при переходе из коридора в пещеру.
В дополнении к созданию окружающих эффектов, EAX 1.0 может изменять параметры различных источников звука. При изменении местоположения источника звука относительно слушателя автоматически изменяются параметры реверберации.
Что касается программирования, то здесь EAX предоставляет следующие возможности.
Когда источник звука движется по отношению к слушателю, EAX автоматически изменяет параметры отражения звука и реверберации для создания более реальных звуковых эффектов при движении источника звука через 3D звуковой мир.
Occlusions и Obstructions
Эффект occlusions создаёт впечатление, что источник звука находится в другой комнате, в другом месте, за стеной. Это свойство позволяет изменять параметры передачи звуковой характеристики для получения эффекта различных материалов стен и их толщину. Например, программа может использовать это свойство для создания звука, идущего из-за двери, или из-за стены.
Эффект obstructions позволяет эмулировать звуковые препятствия, создавая ощущение, что источник звука находится в той же комнате, но за препятствием. Например, можно сделать так, что звук будет идти из-за большого камня, находящегося в той же пещере, что и слушатель.
Геометрическое моделирование и EAX
Геометрическая модель сцены используется как в графических целях, так и для создания 3D звука. Для создания геометрической модели компьютер должен иметь данные о физических свойствах мира: какие объекты где расположены, какие звуконепроницаемые, какие звукопоглощающие и так далее. После того, как эта информация получена, производится расчёт некоторого количества слышимых отражений и поглощений звука от этих объектов для каждого источника звука. Это приводит к затуханиям звука, из-за препятствий, звуконепроницаемых стен и так далее. Расчёты отражений методом "зеркала" широко используются для создания акустики зданий. Этот метод подразумевает, что звук отражается прямо (как от зеркала) без преломлений и поглощений. На самом же деле, вместо того, чтобы в реальном времени рассчитывать все отражения и особенности среды (что на самом деле процесс трудоёмкий) используются заранее рассчитанные упрощённые модели геометрических аудио сред, которые отличаются от графических представлений о среде. То есть в игре используются одновременно отдельная среда для визуальных эффектов и более простая для звуковых эффектов. Это создаёт проблемы, как, например, если бы вы захотели передвинуть часть стены в комнате, то вам пришлось бы создавать новую среду для звука. В настоящее время над геометрическим моделирование звука ведутся работы во многих звуковых лабораториях.
EAX для разработчиков
EAX не требует того, чтобы источники звука привязывались к графическому представлению об окружающей среде. Но при желании разработчик, который хочет создать звуковые эффекты "повышенной реальности", которые максимально близки к графическому представлению о сцене может использовать дополнительное управление ранними отражениями, преломлениями и поглощениями. При создании своих эффектов EAX использует статические модели среды, а не её геометрические параметры. Эти модели автоматически рассчитывают реверберации и отражения относительно слушателя с учётом размеров помещения, направления звука и других параметров, которые программист может добавлять, для каждого источника звука.
Поэтому EAX намного проще других стандартов, так как он не требует описания геометрической среды сцены, а использует подготовленные заранее модели. Игра может менять звуковые модели при переходе от одного места к другому для создания реальных эффектов. Я хочу рассмотреть это подробней. Допустим, у вас есть сцена в игре ввиде каменной пещеры. Есть два способа получить высокореалистичные эффекты. Первый из них- рассчитать геометрическую модель и использовать её как аудио маску для сцены, причём новые технологии будут позволять делать это в реальном времени. Второй способ- взять готовый пресет и, при необходимости, изменить его для получения более качественных эффектов. Разумеется, первый способ даст больший реализм, чем второй, но и потратит ресурсов в несколько раз больше. А если учитывать лень программистов, то в этом случае EAX наиболее благоприятный вариант.
Различия между EAX 1.0, 2.0 и 3.0
EAX 1.0
EAX 1.0 строит звуковую сцену на основе заранее созданных пресетов, учитывая дистанцию между источниками звука и слушателем. Соответственно, EAX 1.0 предоставляет большой набор пресетов "на каждый случай жизни". Также имеется возможность изменять параметры поздней реверберации (дэмпинг, уровень) и автоматическое изменение уровня в зависимости от расстояния. Благодаря этому происходит улучшенное восприятие расстояния до источника.
EAX 2.0
EAX 2.0 построен на возможностях первой версии и создаёт ещё более реалистичные эффекты засчёт поддержки преграждения и отражения звука, а также на улучшенной технологии определения направления звука.
EAX 3.0
EAX 3.0 совмещает вторую версию с более мощными возможностями. Новый уровень реализма достигается засчёт поддержки местных отражений, изолированных отражений, продолжительных переходов между звуковыми сценами и другими особенностями.
По всему вышесказанному можно судить о том, что на сегодня EAX является очень перспективным и конкурентоспособным стандартом. Любой программист, несведующий в особенностях 3D звука сможет создавать реальные эффекты для своих игр с помощью пресетов. Что касается качества 3D звука, то оно вне конкуренции.
дата публикации: 29.05.02
.
.
Для чего нужен оптический выход в Playstation 2?
Чем отличает оптический выход в Playstation 2 от обычных "тюльпанов"?
Он используется для подключения к различной аудиотехнике. Преимущество такого подключения в том, что Playstation 2 не производит цифроаналогого преобразования, а передаёт звук прямо в цифровом виде, соответственно можно использовать аппаратуру более высокого класса для превращения цифрового сигнала в электрический, тем самым получая более качественное звучание. Кроме того, это единственный способ получить от консоли звук в форматах Dolby Digital и DTS. Для использования оптического выхода необходимо приобрести оптический аудио кабель и включить оптический выход в настройках приставки.
Как получить многоканальный/объёмный звук с Playstation 2?
Как подключать Playstation 2 к 5.1 акустике?
Консоль Playstation 2 может выдавать только аналоговый стерео сигнал или цифровой звук, поэтому нужен ресивер(receiver, dsp) или какой-нибудь комплект колонок типа "домашний кинотеатр в одной коробке", кроме того некоторые относительно дорогие модели телевизоров нередко снабжают декодером многоканального звука или парой тыловых колонок. Подключить обычные активные колонки можно разве что в количестве двух штук, потому что аналоговый сигнал от Playstation 2 содержит всего лишь два раздельных канала.
Чем отличаются форматы Dolby ProLogic II, Dolby Digital, DTS, PCM и что-то там ещё?
Playstation 2 может выдавать звук в нескольких различных форматах. Наиболее традиционными являются форматы Stereo и Dolby ProLogic (Dolby Surround), которые можно получить вне зависимости от способа подключения приставки и слушать на любой акустике. Более новые форматы звука, такие как Dolby Digital и DTS, а также PCM и MPEG можно получить лишь используя оптический кабель и соответствующую аудиосистему.
Углубленное описание, сравнение и оценка форматов выходит за рамки данного FAQ, поэтому рассмотрим вышеназванные форматы лишь вкратце:
FILED UNDER : IT