Главная > Програмное обеспечение > Мультимедийное >
Сравнение параметров вывода звука ASIO и DirectSound для звуковой карты Creative e-mu 0404 usb

Сравнение параметров вывода звука средствами ASIO и DirectSound для внешней звуковой карты Creative e-mu 0404 usb

Воспроизведение тестового сигнала производилось через e-mu 0404 usb, foobar2000 (параметры ресемплера: 96/16). Запись производилась на одно и то же устройство, в одном и том же режиме: VIA HD (интегрированное решение, 96/16). Цель сравнения: выявить отличия в спектрах при воспроизведении. Все три трека, полученные в результате записи, были приведены к началу (обрезана тишина), длина всех треков установлена длительность в 131072 семпла.

Ниже приведена конфигурация соноплоттера собственной разработки (взвешивающее окно Блекмана-Натолла, 2048 точки, шаг 64, многооконный анализ, построение сонограмм с нормализацией):

Записанные с оригинала треки:

"0404 DS_.wav"

Воспроизведение через DirectSound

"0404 ASIO Creative_.wav"

Воспроизведение через ASIO (Creative)

"0404 ASIO4ALL_.wav"

Воспроизведение через ASIO4ALL

"0404 DS_.wav"

Воспроизведение через ASIO (Creative)

"0404 ASIO Creative_.wav"

Воспроизведение через ASIO (Creative)

"0404 ASIO4ALL_.wav"

Воспроизведение через ASIO4ALL

Совместим сонограммы:

Обратите внимание на то, что в канале DS звук воспроизводился немного быстрее, чем при выводе через ASIO, т.к. в начале трека опережение составляло лишь 1 отсчет, а в конце значительно большую величину (8400 семплов).

Запись во всех трех случаях производилась с неизменными параметрами! 96/16. Все треки синхронизированы точно по началу. Анализируя waveform можно заметить, что в DS уже на 65-ом семпле наблюдается опережение на 1 отсчет.

В сонограмме "0404 ASIO Creative_.wav" заметно большее количество горизонтальных полос (относительно постоянные уровни по некоторым гармоникам во времени) по сравнению с сонограммой "0404 ASIO4ALL_.wav", что указывает на отличия в выводе даже в режиме ASIO, притом не в пользу драйвера от Creative. "0404 DS_.wav" в чем-то ближе к "0404 ASIO4ALL_.wav", хотя бы по уровню гармоник. К этому выводу также можно прийти, если анализировать гармоники по ВЧ.

Проанализируем статистику по амплитудам:

Вычислим разницу в уровнях средней мощности в окнах 50 мс, левый канал:

  • DS: 26.92 dB
  • ASIO Creative: 31.85 dB
  • ASIO4ALL: 32,36 dB

А теперь необходимо выяснить, какой из режимов дает искажения частот. Сгенерируем эталонный сигнал - синусоиду с частотой 1 кГц (1 сек), затем 10 секунд тишины и ещё 1 сек тона 1 кГц.

Координаты важных для анализа точек на временной оси:

  • Конец первого тона: 96 000
  • Конец тишины: 1 056 000.

DirectSound - активирован ресемплер и эквалайзер. Всё почти точно. Без эквалайзера огромный разбег - звук воспроизводится быстрее на 6,4%.

Вот пример «разбега», когда дорожка воспроизводится быстрее, чем нужно. Воспроизведение через foobar2000 без ресемплера и эквалайзера.

Посмотрим на частоту, осталась ли она на прежнем уровне. Если нет - имеет место более быстрая выборка буфера. Если частота на месте - проблема в другом. Микшер DirectSound с передискретизацией?

Частота строго 1 кГц! Но в записи видно, что при воспроизведении через DirectSound без ресемплера и эквалайзера воспроивзедение чуть быстрее, чем нужно.

А какова ситуация с другими проигрывателями? Протестируем WindowsMediaPlayer.

Как видим, у WindowsMediaPlayer аналогичная проблема «сжатия» звука по времени при выводе через DirectSound. Результат 100% идентичный выводу через foobar2000. Частоты при этом не уходят! Смешивание? Тогда на какой частоте дискретизации? Предположим, что смешивание в Windows работает на частоте, кратной 44100. Наиболее близкое значение к частоте воспроизведения 96000 это 88200. 96000-88200=7800 (за одну секунду) - это 8%. Это очень близко к полученному значению. Получается, микшер в Windows работает всегда и смешивает на частоте кратной 44100, но меньшей кратной 48000. А потом поток: воспроизводится на установленной частоте 96000 и конечно же, так как он был «укорочен» в ресемплере микшера - он "прожевывается" быстрее. А частота не уходит потому, что микшер при смешивании учитывает эффект несколько ускоренного воспроизведения. Получается, что синусоида уже занимает чуть меньше отсчетов в самом микшере, но её частота верная, проведен ресемплинг (а это уже дает дополнительную цифровую грязь!). Затем, данные выводятся на установленной частоте вывода - например, 96000. Если foobar использует эквалайзер, вероятно, он заставляет микшер windows работать немного иначе? Ведь именно в foobar2000 при работе с эквалайзером этого эффекта "сжатия" по времени нет.

Выводы:

А) Все три режима (в рамках данной карты) отличаются - DirectSound, ASIO Creative, ASIO4ALL;
Б) При воспроизведении через DirectSound микшер работает всегда, причем на частоте дискретизации, кратной 44100 или меньшей кратной 48000;
В) Воспроизведение через ASIO от Creative выявило повышенный уровень гармоник;
Г) Наилучший результат обеспечивается при выводе через ASIO4ALL.

Источник: profit76.livejournal.com, 7.V.2011


Украинская Баннерная Сеть

Главная  Алфавитный индекс  Справка  Добавить FAQ  E-mail
Новости  Поиск по сайту

© УкрFAQ 2012