|
|||||||
Внешние звуковые карты E-mu 0202 USB, E-mu 0404 USB и E-mu Tracker Pre USB в Linux
Время создания: 03.09.2016 23:29
Текстовые метки: внешняя звуковая карта, e-mu, linux, настройка
Раздел: Компьютер - Linux - Звук и аудио - E-MU
Запись: xintrea/mytetra_syncro/master/base/1472934544wyvnw2blt9/text.html на raw.github.com
|
|||||||
|
|||||||
Итак, по просьбе Teftelia попробуем собарть воедино информацию по настройке E-mu 0202 USB, E-mu 0404 USB и E-mu Tracker Pre USB для начинающих. C чего начать: 1. Определяем, загрузился ли у нас драйвер snd-usb-audio, и под каким номером в системе зарегестрировалась карточка: в консоли набираем $ aplay -l вот что получилось на моем AsusX50N: **** List of PLAYBACK Hardware Devices **** card 0: NVidia [HDA NVidia], device 0: ALC660-VD Analog [ALC660-VD Analog] Subdevices: 0/1 Subdevice #0: subdevice #0 card 0: NVidia [HDA NVidia], device 6: Si3054 Modem [Si3054 Modem] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: USB [E-MU 0404 | USB], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: USB [E-MU 0404 | USB], device 1: USB Audio [USB Audio #1] Subdevices: 1/1 Subdevice #0: subdevice #0 Отсюда видим, что у нас есть карта E-mu 0404USB и она имеет индекс 1. В составе карты есть два устройсва: 0 и 1 (аналоговый и SPDIF выходы соответсвенно). Карточка HDA Nvidia под номером 0 нас не интересует в данный момент. 2. Проверяем воспроизведение посредством ALSA. Для этого подготовим wav файл стерео 16 бит/44кГц длительностью секунд 30-40 с именем foo.wav Проверять на mp3 или на моно не советую, по крайней мере для новичков, есть неочевидные ньюансы, на крайний случай пойдет ogg 16/44 стерео. 2.1. Запускаем команду aplay -D hw:1,0 foo.wav (hw:1,0 - означает карта №1, устройство №0 (данные по номерам берем из п.1)) в результате получаем..... правильно, тишину в колонках и сообщение об ошибке: aplay: set_params:979: Sample format non available (не все советы одинаково полезны ;-)) Вышеприведенное сообщение говорит о том, что что-то не то с частотой дискретизации - не верьте ему, он банально врет. Причина в том, что наш файл имеет битность 16, а карточка ожидает 24 бита. Если вас посетила мысль о грядущем переконвертировании всей своей музыкальной коллекции из 16 бит в 24, чтоб слушать её на E-mu 0x0xUSB, то это зря, достаточно вместо hw:1,0 указать plughw:1,0. Алиас plughw отличается от hw, тем, что ALSA перед отдачей аудио потка "в железо" преобразует его к "нужной" битности и кол-ву каналов (частота дискретизации остается "оригинальной"). aplay -D plughw:1,0 foo.wav Вот теперь звук должен воспроизводиться корректно. Следующим пунктом нашей программы - полное ингорирование положения регулятора громкости. Это связано с тем, что EMU USB не имеет аппаратного микшера, в отличие от тех же карточек на основе AC97. Но ALSA имеет достаточно гибкую архитектуру, и эту проблему можно решить объявлением программного регулятора громкости. Для этого нам нужно создать в домашнем каталоге пользователя файл ".asoundrc" (без кавычек) со следующим содержимым: pcm.usb_sv{ type softvol slave.pcm "plughw:1,0" control.name "SoftMaster" control.card 1 max_dB 0.0 min_dB -51.0 resolution 100 hint{ show on description "EMU-0404USB Volume" } } Здесь мы объявили новый алиас с именем "usb_sv", не забываем перебить индексы карты (если нужно) в 3 и 5 строках. Прелесть настроек в .asoundrc состоит в том, что изменения вступют в силу "мгновенно" после сохранения файла. Проинициализируем наше новое виртуальное PCM устройство "usb_sv" путем вывода звука через него: aplay -D usb_sv foo.wav Теперь достаточно закрыть приложение микшера и открыть его заново (под Gnome'oм нужно прибить "mixer_applet2" вручную в "Системном мониторе", хотя проще сделать "Завершение сеанса", и войти в систему заново) Открываем окно микшера, и наблюдаем новый ползунок с именем "SoftMaster". Проверим работу нашего регулятора: запускаем команду: aplay -D usb_sv foo.wav и двигаем ползунком "SoftMaster" - громкость, таки, регулируется, что и требовалось. Теперь мы можем в настройках программ указывать в качестве вывода устройство usb_sv, и будет "регулироемое" счастье. Но не долгое, т.к. не все программы позволяют подобные "вольности" с алиасами. Например, Скайп без проблем переваривает виртуальные устройства, а в видео проигрывателе VLC нам предлагают на выбор либо устройство по умолчанию, либо конкретное hw устройство, а с hw мы уже проходили - 16 бит "оно" не переваривает. Что ж, ситуация неприятная, но поправимая, мы просто переопределим ALSA устройство по-умолчанию. Для этого в файле .asoundrc заменим первую строчку и вместо "pcm.usb_sv{" пропишем: pcm.!default{ Готово, все программы должны работать на ура! Правда, если у вас есть ещё, например, встроенная карта, то она остается "без работы" в большинстве приложений. На первый взгляд, мы успешно настроили звуковую подсистему - по крайней мере музыка 16/44 играет без проблем. Теперь запускаем видео-проигрыватель, и получаем... ужасные хрипы, скрежет и подхрюкивание.... WTF!!! Дело в том, что большинство видео имеет 48кГц аудио дорожку, а EMU USB ожидает 44кГц. Передискретизация внутри железок EMU-USB отсутсвует, и это хорошо, по крайней мере для меломанов. Есть несколько решений данной проблемы: 1. Объявить программный ресемплер. 2. Поставить патч для usb-mixer, и регулировать вручную частоту дискретизации. Ожидая недоверчивые возгласы, повторю ещё раз:да, есть патч; да, это то самое, чего так долго не хватало владельцам EMU-USB; да, он рабочий и обкатаный; да, теперь в alsamixer есть отдельный ползунок, регулирующий аппаратный sample rate. Установку патча я пропишу позже в "разделе" "для продвинутых", особо нетерпеливые могут пройти по: http://ubuntuforums.org/showpost.php?p=7420874&postcount=79 и сделать всё самостоятельно. (За прорыв в создании патча делаем четыре раза "ку" нашему соотечественнику mellowman'у!) 3. Держать в VirtualBox WinXP, и оттуда переключать частоту дискретизации. (анахронизм, и вообще не труЪ). Итак, добавление программного 44кГц ресемплера к регулятору громкости: после правок ваш файл ~/.asoundrc будет выглядеть так: pcm.usb_44{ type plug slave{ pcm "plughw:1,0" format S24_3LE rate 44100 } } pcm.usb_sv{ type softvol slave.pcm "usb_44" control.name "SoftMaster" control.card 1 max_dB 0.0 min_dB -51.0 resolution 100 hint{ show on description "EMU-0404USB Volume" } } Для работы ресемплера должны быть установлены пакеты alsa-plugins и speex. Не забываем корректировать индекс карты, и менять объявление "usb_sv" на "!default", если необходимо. Запускаем видео-проигрыватель снова, и наслаждаемся. Как по мне, для 99% фильмов абсолютно не критична потеря качества при передискретизации "быстрым алгоритмом". Если данное положение дел вас несколько смущает, добавьте в начале .asoundrc объявление: defaults.pcm.rate_converter "samplerate_best" Вы получите более качественный ресемплинг, правда ценой немалой нагрузки на CPU. Если вдруг вы захотите использовать SPDIF выход вместо аналогового, то достаточно поправить в .asoundrc "plughw:1,0" на "plughw:1,1". Для новичков, я думаю достаточно. Следующим номером нашей программы - объявление программного мишкирования нескольких звуковых потоков, "наложение" патчей, управление аппаратным sample rate. To be continued. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|