| Главная > Програмное обеспечение > Мультимедийное > |
| Сравнение параметров вывода звука 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 мс, левый канал:
А теперь необходимо выяснить, какой из режимов дает искажения частот. Сгенерируем эталонный сигнал - синусоиду с частотой 1 кГц (1 сек), затем 10 секунд тишины и ещё 1 сек тона 1 кГц. Координаты важных для анализа точек на временной оси:
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;
Источник: profit76.livejournal.com, 7.V.2011 |
Главная Алфавитный индекс Справка Добавить FAQ E-mail |
Новости Поиск по сайту |
© УкрFAQ 2012 |