Author Topic: HOWTO: Работа с картой E-MU 1212M PCI в Ubuntu 10.04  (Read 11272 times)

Offline Alex ShadeTopic starter

  • Administrator
  • *****
  • Posts: 42
  • Репутация: +0/-0
  • Сейчас, должно быть, будут убивать...
    • View Profile
    • My albums
Текст ниже вряд ли претендует на полноценный HOWTO, здесь слишком много лирических отсуплений и слишком мало команд. Текст предназначен для пользователей, которые только начинают свой путь в интересном и занимательном мире звука в Linux. :) Далее курсив - это лирические отсупления, можно не читать. ;)

Для меня началось все с того, что брат заменил винду на gentoo linux на своем компе, где стояла карточка Audigy 2. Не надо было обладать абсолютным музыкальным слухом, чтобы понять, насколько лучше зазвучала система. Меня это заинтересовало, и я решил проверить, как поведет себя с линуксом моя E-MU 1212M. Gentoo мне оказался не по зубам ::) , и я начал с Ubuntu. в своих исканиях я руководствовался следующим принципом. Есть программы, которые напрямик отрабатывают свой алгоритм и свое назначение. Они минималистичны, легки, просты. Есть программы, давно развивающиеся, обросшие многочисленными надстройками, заплатками, отягощенные ненужным функционалом в угоду функциональности и страдающие симптоматическим лечением собственных багов. Мы выбираем первый тип программ. 8) Собственно, переход с винды на линукс - первый шаг в этом направлении. Итак, поставили линукс. Что дальше?

1) Установка low-latency ядра.

В инете можно встретить массу мнений о нужности/полезности низких задержек. С одной стороны, чем меньше задержка, тем лучше, это было понятно мне изначально, как инженеру. С другой стороны, многие тычут пальцем в сторону Маков, дескать, там задержки большие - и все ок, и цитируют Лао Цзы отца-основателя OSS. Но у нас не Mac, а linux, не OSS, а ALSA, поэтому я сравнил 2 варианта: low-latency лучше. Кстати, переход с ALSA на OSSv4 проделан многими энтузиастами, и он в каком-то роде сответствует вышеизложенной концепции, но меня не устроил недостаток функционала OSSv4 применительно к моей карте...

Идем в Synaptic, ставим пакеты

  • linux-headers-2.6.32-xx-preempt
  • linux-image-2.6.32-xx-preempt
(xx - самая свежая версия ядра в списке)

2) Редактирование настроек GRUB.

В Ubuntu 10.04 используется вторая версия GRUB. Знакомого и любимого файлика menu.lst уже нет, поэтому...
Выполняем команду
Code: [Select]
sudo geditВ открывшемся мега-редакторе  :D открываем файлик /etc/default/grub. Находим там строчку
Code: [Select]
GRUB_HIDDEN_TIMEOUT=0и сажаем ее за решетку:
Code: [Select]
#GRUB_HIDDEN_TIMEOUT=0В строчке
Code: [Select]
GRUB_TIMEOUT=10ставим число секунд, необходимых нам для осознанного выбора загружаемого ядра. Сохраняем файл и перезагружаемся. В меню GRUB находим наше установленное ядро с индексом preempt, выбираем его, грузимся. Если все прошло хорошо и ядро загрузилось, идем обратно в /etc/default/grub, находим там строчку
Code: [Select]
GRUB_DEFAULT=0и устанавливаем вместо нуля тот номер записи GRUB, который соответствует ядру preempt, и сохраняем файлик конфигурации. Все, на этом ядерные дела можно забыть. До следующего обновления.  :D

3) Компилим firmware.

В дистрибутиве 10.04 из коробки присутствует ALSA и пакет build-essentials. Если они отсутствуют, то идем в Synaptic и устанавливаем их.
Идем на сайт проекта под кодовым названием ALSA. Там находим исходники alsa-firmware-1.0.хх, скачиваем себе на винт, распаковываем. Открываем терминал, выполняем команды

Code: [Select]
cd path_to_unzipped_firmware_folderгде path_to_unzipped_firmware_folder - это путь к папке, куда распаковывали архив. Далее
Code: [Select]
./configure
sudo make
sudo make install
то есть все, как обычно. После того, как это сделано, перезагружаем машинку. Звук должен появиться. Если этого не происходит, то в терминале набираем
Code: [Select]
alsamixerи выставляем все ползунки на максимум. Если звука все еще нет, то следует проверить усилительный тракт от выходов звуковой карты до ваших ушей.  :) В любом случае, окошко с alsamixer закрывать не спешим. Там можно найти большое количество всяких переключателей. Они там стоят не просто так. Настоятельно рекомендую установить их в соответствии с ТАБЛИЦЕЙ.
Если вдруг с течением времени ссылка на таблицу помрет, пишите. Она есть у меня на винте. По идее, с этого момента система в состоянии записывать и воспроизводить звук. Например, с помощью проги Audacity. Но делать это она будет далеко не так, как нам хотелось бы. Поэтому двигаемся дальше.

4) Ставим Jack.

Открываем любимый Synaptic и ставим пакеты:

  • jackd
  • qjackctl
  • jack-rack
  • jack-tools
  • jackeq

Прога qjackctl - штука хорошая, полезная и нужная. Но часто нужно просто запустить JACK и работать с прогами (например, Hydrogen) без всяких излишеств, поэтому я предпочитаю запускать, когда надо, JACK кнопкой с панели запуска. Добавляем на панель кнопку запуска, в соответствующей строке пишем команду
Code: [Select]
jackd -dalsaКонечно же, JACK - это звуковой сервер именно для профессиональной работы с музыкой. Мне лично не всегда нужно работать именно с ним, поэтому я и вывел его запуск отдельной кнопкой. Тем не менее, сейчас большинство нужных приложений (вплоть до WINE, что немаловажно, если у вас есть Guitar Pro) уже научились работать с JACK. Поэтому вполне резонно было бы добавить приведенную выше строчку в init.d.

5) Устанавливаем нужные проги.

Для каждого существует свой "джентельменский набор" программ. Отмечу следующие, а уж что ставить - выбор за вами.

  • ardour
  • gtick
  • tuxguitar
  • hydrogen

6) Выковыриваем PulseAudio.

JACK поставили, но что тогда делает в нашей системе другой звуковой сервер, громоздкий, неповоротливый, но отлично подходящий для мобильников PulseAudio? Правильно, глючит и тормозит. Приговор - изгнание из системы. Идем и изучаем первые страницы соответствующего топика. Довольно быстро находим сакральное руководство к действию:

Quote
1. прибиваем и удаляем pulseaudio
Code: [Select]
sudo apt-get remove pulseaudio gstreamer0.10-pulseaudio
killall pulseaudio
2. убираем мусор из гномовской сессии:
Code: [Select]
gnome-session-propertiesв открывшемся окне ищем и снимаем галку с gnome-volume-control-applet - он все равно ничего не может, кроме как жаловаться на отсутствие pulseaudio

3. обновляемся из этого PPA: https://launchpad.net/~dtl131/+archive/ppa - восстанавливает микшер, апплет, управление с клавиатуры.

4. добавляем на панель регулятор громкости.

5. приводим в порядок gconf:
Code: [Select]
gconftool-2 -s --type string /desktop/gnome/sound/default_mixer_device "alsamixer"
gconftool-2 -s --type list --list-type string /desktop/gnome/sound/default_mixer_tracks "[Master]"
gconftool-2 -s --type boolean /desktop/gnome/sound/enable_esd false
gconftool-2 -s --type string /system/gstreamer/0.10/default/audiosink "alsasink"
gconftool-2 -s --type string /system/gstreamer/0.10/default/audiosrc "alsasrc"
gconftool-2 -s --type string /system/gstreamer/0.10/default/chataudiosink "alsasink"
gconftool-2 -s --type string /system/gstreamer/0.10/default/musicaudiosink "alsasink"

6. теперь осталось только перезапустить gnome-settings-daemon, лучше это делать не из терминала, а из диалога запуска alt+F2 или другого командного лончера.
Code: [Select]
killall gnome-settings-daemon && sleep 2s && gnome-settings-daemon

После этой процедуры я лично поставил Esound.
Code: [Select]
sudo apt-get install -y esound esound-clients esound-common libesd-alsa0
sudo reboot
Возможно, после этой процедуры "упадет" движок Master в микшере. Его надо поднять, запустив alsamixer или один из микшеров, указанных в обсуждении по ссылке выше.

7) Разбираемся с MIDI.

Собственно, остался заключительный штрих. Мне категорически не нравится, как работает TuxGuitar с Timidity. Есть мнение, то Timidity - громоздкий, тормозной и глючный программный секвенсер, поэтому его ждет участь Pulseaudio. =) Но с ним проще. Находим Timidity в Synaptic и удаляем его. Вместо него ставим

  • fluidsynth
  • qsynth
Для qsynth имеет смысл сделать кнопку быстрого запуска на панели. Это и есть графический фронтенд нашего нового программного синтезатора. Запускаем, лезем в настройки. Находим много интересного и полезного. Для человека, который имеет самое общее представление о миди, там должно быть все понятно. Тем, кто не в теме, скажу только, что компания E-MU, она же Creative и производитель нашей карты, придумала формат sf2 для библиотек семплов, и их можно подгружать для воспроизведения MIDI, используя интерфейс qsynth. Где скачать эти библиотеки, знает гугл.  :) Но, например, "родную" библиотеку можно найти на диске с драйверами, идущем в комплекте с картой. Для тех, кто потерял диски, вот ссылка.

8) ТВОРИМ!

Теперь можно вспомнить, для чего мы потратили столько времени на работу с подготовкой софта, и начинать писать Музыку! Всем - успехов в этом увлекательном и полезном занятии.


Проблема увеличения скорости воспроизведения и конвертации.
Так уж задумали производители нашей карты, что она поддерживает частоты дискретизации как 44100, так и 48000 Гц. Хорошо это или плохо - судить не нам, нам приходится сталкиваться иногда с тем, что некоторые приложения воспроизводят звук быстрее, чем это надо. Причина - в несовпадении частот дискретизации, с которыми работают приложения. Алгоритм решения следующий:

  • Понимаем, работает приложение со звуковым сервером либо напрямую с ALSA.
  • Обычно, если приложение работает со звуковым сервером, проблем не возникает. Однако, если приложение имеет собственную настройку частоты дискретизации (а не берет ее от сервера), либо, например, запущено через WINE, проблема может возникнуть. Решение - указываем приложению (WINE-e) ту частоту, на которой работает сервер.
  • Если приложение не поддерживает работу со звуковым сервером и предпочитает работать напрямую с ALSA, то решение - установить частоту ALSA (например, через alsamixer) такой же, как и у воспроизводящего приложения. Например, Rhythmbox работает именно на той частоте, на которой дикретизирован воспроизводимый файл (для многих mp3шек это 44100 Гц), поэтому единственный выход - переключить ALSA на те же 44100 Гц.

PS При копипастинге прошу указывать ссылку на первоисточник.
« Last Edit: 24 August 2010, 13:26 by Alex Shade »

Offline Lynx

  • Абитуриент
  • *
  • Posts: 13
  • Репутация: +3/-0
  • Awards За храбрость
    • View Profile
HOWTO: Работа с картой E-MU 1212M PCI в Ubuntu 10.04
« Reply #1 on: 19 September 2010, 22:02 »
Вопрос: сравнивалось ли звучание под linux и под виндой? Если под виндой - то с какой звуковой системой? Стандартной или, например, ASIO ?
Если сравнивалось - то какой источник был - мрЗ, ЦД, Вав ... ?
Заранее спасибо.

Offline Alex ShadeTopic starter

  • Administrator
  • *****
  • Posts: 42
  • Репутация: +0/-0
  • Сейчас, должно быть, будут убивать...
    • View Profile
    • My albums
HOWTO: Работа с картой E-MU 1212M PCI в Ubuntu 10.04
« Reply #2 on: 19 September 2010, 22:17 »
В линухе однозначно все звучит лучше: мп3, КД, вав, флак и т.д. Кроме того, записанные гитарные треки, семплы драм-машин - все звучит реалистичнее. Под виндой при установке драйверов звуковая система автоматически меняется на ASIO. В переходном периоде на компе стояло 2 системы одновременно, сравнивал, удивлялся. В целом, под виндой звук зажат и замылен. В линухе он динамичнее и реалистичнее.
Сейчас работаю над автоматическим ресемплингом, как бы заставить ESound это делать. Если не сможет, то на фиг он нужен...

Offline Lynx

  • Абитуриент
  • *
  • Posts: 13
  • Репутация: +3/-0
  • Awards За храбрость
    • View Profile
HOWTO: Работа с картой E-MU 1212M PCI в Ubuntu 10.04
« Reply #3 on: 19 September 2010, 22:26 »
Совершенно дурацкий вопрос: а если сгенерить чистую синусоиду и поглядеть на выход осциллографом на винде и на линухах, что будет?
Прошу не считать за подъеколку, такие вот иногда в ночь перед работой вопросы рождаются.
Сам регулярно мучаю комп разными линухами в том числе и с целью слушания звука, вот и интересуюсь.

Offline Alex ShadeTopic starter

  • Administrator
  • *****
  • Posts: 42
  • Репутация: +0/-0
  • Сейчас, должно быть, будут убивать...
    • View Profile
    • My albums
HOWTO: Работа с картой E-MU 1212M PCI в Ubuntu 10.04
« Reply #4 on: 20 September 2010, 07:32 »
Lynx, вопрос совершенно не дурацкий! А очень даже правильный.
Только надо делать это не так. Синусоиду (а лучше - меандр) надо сгенерить нормальным аппаратным генератором с заданным Кни и подать на вход. А к выходу уже подключить осциллограф, 2-канальный, на один канал подать генератор, на другой - выход карты. И посмотреть, например, задержку. Кстати, есть мнение, что таким образом и АЧХ даже будет разная.
Другое дело, что, когда у меня на компе стояли 2 системы, парка приборов для таких измерений еще не было. Поэтому таких измерений и не проводил.

Offline Lynx

  • Абитуриент
  • *
  • Posts: 13
  • Репутация: +3/-0
  • Awards За храбрость
    • View Profile
HOWTO: Работа с картой E-MU 1212M PCI в Ubuntu 10.04
« Reply #5 on: 20 September 2010, 08:24 »
Alex Shade, может быть, как-нибудь устроим совместные испытания? На пару компов.
У меня Дельта аудиофил 192, можно еще одолжить попробовать фаирварь соло, чтобы интереснее с ассортиментом было. До кучи уж можно было бы статейку с графиками, чем отличаются звуковухи выпустить. Типа, встроенный звук под 98-ми виндами против Lynx II. Что-то меня понесло.....  )))
Разница звука винды и линухов, конечно  большая, только вот в чем она выражается в цыфирках - это вопрос. Потому что есть подозрение, что тут не только чистота звука, а еще и что-то другое, типа обработочки какой-то вмешивается, а это иногда нежелательно.
« Last Edit: 20 September 2010, 08:47 by Lynx »

Offline Alex ShadeTopic starter

  • Administrator
  • *****
  • Posts: 42
  • Репутация: +0/-0
  • Сейчас, должно быть, будут убивать...
    • View Profile
    • My albums
HOWTO: Работа с картой E-MU 1212M PCI в Ubuntu 10.04
« Reply #6 on: 20 September 2010, 09:08 »
Lynx, да не вопрос, можно.
Разница будет: 1) В задержке 2) В искажении сложного сигнала 3) В динамике. Первые два пропусканием меандра можно будет померить и проверить. Для третьего нужен более сложный инструментарий, чем имеется у меня. Например, хороший слух. =)
Кстати, было бы неплохо для теста разжиться и хорошими студийными мониторами.

Offline Lynx

  • Абитуриент
  • *
  • Posts: 13
  • Репутация: +3/-0
  • Awards За храбрость
    • View Profile
HOWTO: Работа с картой E-MU 1212M PCI в Ubuntu 10.04
« Reply #7 on: 20 September 2010, 09:19 »
Alex Shade, что нам подойдет в качестве хороших студийных мониторов?

Offline Alex ShadeTopic starter

  • Administrator
  • *****
  • Posts: 42
  • Репутация: +0/-0
  • Сейчас, должно быть, будут убивать...
    • View Profile
    • My albums
HOWTO: Работа с картой E-MU 1212M PCI в Ubuntu 10.04
« Reply #8 on: 20 September 2010, 11:04 »
Что-нибудь чуть получше моих м-аудио ВХ5. Ну и комп. На мой винда уже не влезет.  :D

Offline Lynx

  • Абитуриент
  • *
  • Posts: 13
  • Репутация: +3/-0
  • Awards За храбрость
    • View Profile
HOWTO: Работа с картой E-MU 1212M PCI в Ubuntu 10.04
« Reply #9 on: 20 September 2010, 11:21 »
Комп предоставлю, не вопрос, с мониторами хуже.
Надо вообще придумать какую-то схему эксперимента, учитывая, что компа 2, звуковух аж 3.
Тут можно развлечься генерацией сигналов с одного, посылом на другой, анализом качества сквозного прохода итп ))))

Offline Alex ShadeTopic starter

  • Administrator
  • *****
  • Posts: 42
  • Репутация: +0/-0
  • Сейчас, должно быть, будут убивать...
    • View Profile
    • My albums
HOWTO: Работа с картой E-MU 1212M PCI в Ubuntu 10.04
« Reply #10 on: 20 September 2010, 11:50 »
Неа, все проще. Комп, звуковухи в него втыкиваться будут поочередно.
На вход звуковухи генератор, на выход осцилл. Будут грузиться по очереди винда и линух, результаты будут смотреться и анализироваться.

Offline Aleck

  • Абитуриент
  • *
  • Posts: 5
  • Репутация: +0/-0
  • Могу сломать всё что угодно...
    • View Profile
HOWTO: Работа с картой E-MU 1212M PCI в Ubuntu 10.04
« Reply #11 on: 20 September 2010, 22:18 »
Могу Esi Juli@ притаранить ;)
А через недельку ещё слаку на комп поставлю, параллельно семёрке. Тогда можно и весь системник притащить :D

Offline Alex ShadeTopic starter

  • Administrator
  • *****
  • Posts: 42
  • Репутация: +0/-0
  • Сейчас, должно быть, будут убивать...
    • View Profile
    • My albums
HOWTO: Работа с картой E-MU 1212M PCI в Ubuntu 10.04
« Reply #12 on: 21 September 2010, 19:59 »
куда притащить? ко мне в Бронницы?  :D

Offline Aleck

  • Абитуриент
  • *
  • Posts: 5
  • Репутация: +0/-0
  • Могу сломать всё что угодно...
    • View Profile
HOWTO: Работа с картой E-MU 1212M PCI в Ubuntu 10.04
« Reply #13 on: 21 September 2010, 20:13 »
Для бешеной собаки 200 верст не крюк :D