E mu 0202 linux
Итак, по просьбе Teftelia попробуем собарть воедино информацию по настройке E-mu 0202 USB, E-mu 0404 USB и E-mu Tracker Pre USB для начинающих.
1. Определяем, загрузился ли у нас драйвер snd-usb-audio, и под каким номером в системе зарегестрировалась карточка: в консоли набираем
вот что получилось на моем AsusX50N:
**** List of PLAYBACK Hardware Devices ****
card 0: NVidia [HDA NVidia], device 0: ALC660-VD Analog [ALC660-VD Analog]
card 0: NVidia [HDA NVidia], device 6: Si3054 Modem [Si3054 Modem]
card 1: USB [E-MU 0404 | USB], device 0: USB Audio [USB Audio]
card 1: USB [E-MU 0404 | USB], device 1: USB Audio [USB Audio #1]
Отсюда видим, что у нас есть карта E-mu 0404USB и она имеет индекс 1. В составе карты есть два устройсва: 0 и 1 (аналоговый и SPDIF выходы соответсвенно). Карточка HDA Nvidia под номером 0 нас не интересует в данный момент.
2. Проверяем воспроизведение посредством ALSA. Для этого подготовим wav файл стерео 16 бит/44кГц длительностью секунд 30-40 с именем foo.wav Проверять на mp3 или на моно не советую, по крайней мере для новичков, есть неочевидные ньюансы, на крайний случай пойдет ogg 16/44 стерео.
(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 перед отдачей аудио потка «в железо» преобразует его к «нужной» битности и кол-ву каналов (частота дискретизации остается «оригинальной»).
Вот теперь звук должен воспроизводиться корректно.
Следующим пунктом нашей программы — полное ингорирование положения регулятора громкости. Это связано с тем, что EMU USB не имеет аппаратного микшера, в отличие от тех же карточек на основе AC97. Но ALSA имеет достаточно гибкую архитектуру, и эту проблему можно решить объявлением программного регулятора громкости. Для этого нам нужно создать в домашнем каталоге пользователя файл «.asoundrc» (без кавычек) со следующим содержимым:
description «EMU-0404USB Volume»
Здесь мы объявили новый алиас с именем «usb_sv», не забываем перебить индексы карты (если нужно) в 3 и 5 строках. Прелесть настроек в .asoundrc состоит в том, что изменения вступют в силу «мгновенно» после сохранения файла.
Проинициализируем наше новое виртуальное PCM устройство «usb_sv» путем вывода звука через него:
Теперь достаточно закрыть приложение микшера и открыть его заново (под Gnome’oм нужно прибить «mixer_applet2» вручную в «Системном мониторе», хотя проще сделать «Завершение сеанса», и войти в систему заново)
Открываем окно микшера, и наблюдаем новый ползунок с именем «SoftMaster». Проверим работу нашего регулятора: запускаем команду:
и двигаем ползунком «SoftMaster» — громкость, таки, регулируется, что и требовалось.
Теперь мы можем в настройках программ указывать в качестве вывода устройство usb_sv, и будет «регулироемое» счастье. Но не долгое, т.к. не все программы позволяют подобные «вольности» с алиасами. Например, Скайп без проблем переваривает виртуальные устройства, а в видео проигрывателе VLC нам предлагают на выбор либо устройство по умолчанию, либо конкретное hw устройство, а с hw мы уже проходили — 16 бит «оно» не переваривает.
Что ж, ситуация неприятная, но поправимая, мы просто переопределим ALSA устройство по-умолчанию. Для этого в файле .asoundrc заменим первую строчку и вместо «pcm.usb_sv
Готово, все программы должны работать на ура! Правда, если у вас есть ещё, например, встроенная карта, то она остается «без работы» в большинстве приложений.
На первый взгляд, мы успешно настроили звуковую подсистему — по крайней мере музыка 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 будет выглядеть так:
Проблемы с EMU 0202 на Arch Linux.
причем команда не работала и после установки alsa-plugins, libsamplerate, alsa-firmware, да хоть бы и черта в ступе.
потом поставил mpg123, чтобы на всякий случай попробовать проиграть mp3 из консоли.
$ mpg123 /media/disk/test.mp3 ALSA lib dlmisc.c:236:(snd1_dlobj_cache_get) Cannot open shared library /usr/lib/alsa-lib/libasound_module_pcm_pulse.so High Performance MPEG 1.0/2.0/2.5 Audio Player for Layers 1, 2 and 3 version 1.13.7; written and copyright by Michael Hipp and others free software (LGPL/GPL) without any warranty but with best wishes Directory: /media/disk/ Playing MPEG stream 1 of 1: test.mp3 . ALSA lib dlmisc.c:236:(snd1_dlobj_cache_get) Cannot open shared library /usr/lib/alsa-lib/libasound_module_pcm_pulse.so [sdl.c:78] error: Couldn't open SDL audio: No available audio device [audio.c:627] error: failed to open audio device [mpg123.c:515] error: failed to reset audio device: Connection timed out
поставил pulseaudio.
вывод mpg123:
Playing MPEG stream 1 of 1: test.mp3 . ALSA lib dlmisc.c:236:(snd1_dlobj_cache_get) Cannot open shared library /usr/lib/alsa-lib/libasound_module_pcm_pulse.so [sdl.c:78] error: Couldn't open SDL audio: No available audio device [audio.c:627] error: failed to open audio device [mpg123.c:515] error: failed to reset audio device: Connection timed out
проверил, установлен ли sdl, оказалось, что да: sdl 1.2.14-5
$ pulseaudio pulseaudio: /usr/lib/libtdb.so.1: no version information available (required by /usr/lib/libpulsecore-1.1.so) pulseaudio: /usr/lib/libtdb.so.1: no version information available (required by /usr/lib/libpulsecore-1.1.so)
aplay /usr/share/sounds/alsa/Front_Center.wav ALSA lib dlmisc.c:236:(snd1_dlobj_cache_get) Cannot open shared library /usr/lib/alsa-lib/libasound_module_pcm_pulse.so aplay: main:660: audio open error: No such device or address
НО!
звук с youtube работает через usb-карту%))
я уже отказываюсь это понимать, кто-нибудь может помочь?
на компе установлен следующий софт:
- kernel26 2.6.39.2-1
- kernel26-headers 2.6.39.3-1
- linux-firmware 20111101-1
- udev 171-2
- alsa-firmware 1.0.25-1
- alsa-lib 1.0.24.1-1
- alsa-plugins 1.0.25-1
- alsa-utils 1.0.24.2-3
- alsa-plugins 1.0.25-1
- libsamplerate 0.1.8-1
- asoundconf 1:1.0.1-3
Arch Linux
Do anyone have some experience with this card on linux. Is it working good? I have read that it works only with 44100/16bit — is this true?
Sorry for language mistakes.
#2 2011-06-19 18:10:15
Re: E-MU 0202 (USB) on Linux
I use this with Arch (and have done with various other distros) with no problems. 44100/16 bit is all I have or use, so I don’t know about the second part.
#3 2011-06-22 11:39:48
Re: E-MU 0202 (USB) on Linux
I have one. About two years ago it required a patch for alsa to add manual samplerate selection but now it can guess the right one by itself right out of the box.
#4 2011-10-25 18:34:12
Re: E-MU 0202 (USB) on Linux
Uh oh.. What am I doing wrong then? I have a 0202, ALSA seems to pick it up, because aplay -l lists it, I can unmute it and set volume in alsamixer, but still I cannot get any sound out of it.
I made a script that makes it the default device (I have a similar script for the onboard and the HDMI device too, can switch between them like this with no problem).
echo " pcm.!default < type hw card 2 device 0 >" > ~/.asoundrc sudo /etc/rc.d/alsa force-restart
After running the script, VLC plays the file, but no sound.
speaker-test -c 2 fails with an error:
speaker-test 1.0.24.2 Playback device is default Stream parameters are 48000Hz, S16_LE, 2 channels Using 16 octaves of pink noise Sample format not available for playback: Invalid argument Setting of hwparams failed: Invalid argument
Arch Linux
I have a problem with my external sound card E-MU 0202. Sound is working fine, but i cant get it to record anything.
pcm.emu < type hw card 2 >pcm.dmixed < type dmix ipc_key 1024 slave < pcm "emu" period_size 1024 buffer_size 4096 rate 44100 >> pcm.dsnooped < type dsnoop ipc_key 2048 slave < pcm "emu" period_size 1024 buffer_size 4096 rate 44100 >> pcm.asymed < type asym playback.pcm "dmixed" capture.pcm "dsnooped" >pcm.pasymed < type plug slave.pcm "asymed" >pcm.!default
If i try to record with arecord i get
$ arecord -vv test.wav Aufnahme: WAVE 'test.wav' : Unsigned 8 bit, Rate: 8000 Hz, mono Plug PCM: Rate conversion PCM (44100, sformat=U8) Converter: libspeex (builtin) Protocol version: 10002 Its setup is: stream : CAPTURE access : RW_INTERLEAVED format : U8 subformat : STD channels : 1 rate : 8000 exact rate : 8000 (8000/1) msbits : 8 buffer_size : 743 period_size : 185 period_time : 23219 tstamp_mode : NONE period_step : 1 avail_min : 185 period_event : 0 start_threshold : 1 stop_threshold : 743 silence_threshold: 0 silence_size : 0 boundary : 836543630784069632 Slave: Route conversion PCM (sformat=S24_3LE) Transformation table: 0
and arecord freezes, uses one of my cores completely and i have to kill it with pkill -9.
The problem is, that i don't know if this is a configuration problem or a hardware problem. Recording does however work on Windows.
Any suggestions? Has anyone ever recorded something with an 0202 or similar (0404, . )