Архив:Вики Радиоанона/Настройка вещания под Linux™

Материал из Noobtype — единственного источника Истины во Вселенной
Перейти к навигации Перейти к поиску

Именно Linux™[1].

Нужные компоненты

Что нам нужно:

  • JACK (аудиосервер)
  • qjackctl (для управления JACK’ом)
  • Internet DJ Console
  • ALSA (есть практически везде)
  • Skype (для приёма звонков)


JACK

Качаем из svn последнюю версию (необязательно оттуда, но нужен самый свежий JACK ветки 1.9.х, он стабилен):

  svn co http://subversion.jackaudio.org/jack/trunk/jack

Собираем через autogen.sh, далее (важно!) ./configure -libdir=/usr/lib (иначе либы свалятся в диру /usr/local/lib, и джек не сможет их загрузить), потом make и make install, ну ты понел.

Аналогично можно поставить и из репозитория. Приём с svn был актуален некоторое количество колов времени назад, когда в репах был старый и глючный JACK. Теперь ситуация значительно улучшилась, и версия 1.9.6 в Debian sid, скажем, отлично подходит для наших целей. Старый джек можно задетектить по версии типа 0.118, так вот, он нам не нужен.

Далее качаем qjackctl с офсайта либо из ближайшей репы для своего дистрибутива. Им будем управлять аудиосервером и втыкать проводки :3

Задаём настройки для аудиосервера, чтобы он работал долго и надёжно. Вот скриншот того, как настроил я:

(у некоторых работает с такими настройками: без галочки «Режим реал. времени (realtime)» и периодов на буфер 2)

Настоятельно рекомендую для пущего кайфу сделать округлые возбуждающие проводки:

Теперь запускаем JACK кнопкой в qjackctl и проверяем работу idjc (тут ничего сложного). Уже можно вещать, но самый смак в подключении внешнего звука в свой микрофон или другой вход.

Далее надо завернуть альсу на JACK. Для этого понадобится alsa-jack плагин (обычно в поставке всей аудиосистемы, либо доустановите из репозитория пакет alsa-plugins и/или alsa-jack) и такой вот конфиг, который следует разместить в ~ и назвать .asoundrc :

pcm.!default {
  type plug
  slave { pcm «jack» }
}
pcm.jack {
 type jack
 playback_ports {
 0 alsa_pcm: playback_1
 1 alsa_pcm: playback_2
 }
 capture_ports {
 0 alsa_pcm: capture_1
 1 alsa_pcm: capture_2
 }
}
ctl.mixer0 {
 type hw
 card 0
}

Можете сделать скрипты по переименованию этого конфига в .asoundrc и, положим, в .asound.bak, чтобы отключать заворот на JACK, когда вы его не используете (иначе альса не будет работать просто). В общем-то, этого вполне достаточно для организации эфира со скайпом. Добавив умения включать вещание с DSP-входа (безумная галочка в настройках), можно подключить на этот вход модульный синтезатор типа milkytracker и вещать восьмибитку в первозданном звучании, благо, этот синтезатор умеет выводить прямо на JACK без извратов с альсой.

Вот как делается подключение других программ. Нажимаем в qjackctl кнопку Connect и видим входы и выходы JACK. Можно просто перетаскивая вход на выход (или наоборот) создавать соединения и направлять звук. Cкриншот подключения скайпа в микрофонный вход:

Обратите внимание на устройство alsa-jack.jackP.18787.38 — это скайп, выводящий звук через альса-плагин. Его нужно подключить на вход IDJC, который называется mic_lt и mic_rt для левого и правого канала соответственно. Делать это следует перед тем, как выводить позвонившего в эфир, то есть сначала можно с ним поговорить с отключенным в IDJC микрофоном, далее подключить его в этом окне с проводами и, включив в IDJC микрофон, общаться вместе. Это базовый скилл, далее вы можете подключать на dsp вход другую программу (правда, при этом нельзя говорить и включать музыку в самом IDJC, но, думаю, если переподключить кабели в соединениях, можно добиться чего угодно). Вещание с DSP включается в настройках IDJC, найдёте нужную галку.

Скрин с IDJC


ВНИМАНИЕ!

Если у вас skype отваливается от джека/виснет с бесконечным лупом после 5-10 секунд начала разговора, значит, прыщебляди соснули сраные проприетарщики и впрямь закосячили последнюю бету. Подобное поведение наблюдается на 2.1.0.81, но на предыдущей 2.1.0.47 всё прекрасно-замечательно и не глючит. Вывод? Откатываемся на прошлую бету.

Ссылки на скачивание собственно последней рабочей с jack’ом версии:

Да-да, они хранят все старые версии, просто не дают на них ссылки. На всякий случай все эти пакеты были забэкаплены, так что в случае неработоспособности ссылок — пишите в конфе, выложим локально.

Mumble

Толком не тестировалось, но всё же. Появился патч для Mumble, добавляющий поддержку JACK. Этого долго ждали, и оно свершилось! Сам патч для сорсов. Собранные бинарники:

Если JACK не запущен, в списке его не будет. Сервер обитает на radioanon . ru .

Шаманства для Ubuntu 8.10 от xcellent

Описываемые шаманства касаются версии Ubuntu 8.10, однако могут в теории работать на будущих или предыдущих версиях дистрибутива.

Основная полезная инфа находится по ссылке: http://ubuntuforums.org/showthread.php?t=577914. В Убунту ALSA собрана без JACK плагина, соответственно Скайп не сможет давать звук. Чтобы это пофиксить, нам нужен будет плагин JACK из дебиановского пакета, который по ссылке: http://packages.debian.org/lenny/i386/libasound2-plugins/download. Желательно, чтобы версия плагина и ALSA совпадала или была не выше версии ALSA (возможны конфликты).

Пакет — это обычный архив, открываем его менеджером архивов и находим три файла: libasound_module_pcm_jack.a, libasound_module_pcm_jack.la, libasound_module_pcm_jack.so. Файлы копипастим в /usr/lib/alsa-lib с правами администратора.

Алсо, не забываем о конфиге .asoundrc в хомяке, который в Убунту должен иметь вид:

pcm.idjcvoip {
    type plug
    slave { pcm "idjcjack" }
}
pcm.idjcjack {
  type jack
  playback_ports {
    0 idjc-mx:voip_recv_lt
    1 idjc-mx:voip_recv_rt
  }
  capture_ports {
    0 idjc-mx:voip_send_lt
    1 idjc-mx:voip_send_rt
  }
}

Далее, когда плагин установлен и конфиг создан, перезагружаемся, потом в Skype в Настройки/Устройства выбираем idjcvoip во все поля. Проверяем на запущенном JACK и idjc есть ли звук в тестовом звонке. Если есть, значит Skype теперь можно смешивать в idjc в поток. Короче, работает.

Pulseaudio и Jack

Чтобы подружить pulseaudio c jack, достаточно поставить один пакет — pulseaudio-module-jack (в ubuntu sudo aptitude install pulseaudio-module-jack) и можно будет работать. Но нельзя будет подключить skype, так как он по умолчанию использует pulseaudio и jack не сможет его подхватить. Чтобы это исправить, придется сделать следующее:

  1. Установить pulseaudio-module-jack (в ubuntu sudo aptitude install pulseaudio-module-jack)
  2. Запретить автоматический перезапуск pulseaudio командой: echo autospawn = no > ~/.pulse/client.conf
  3. Запустить qjackctl, настроить его по скриншоту (убивать пульсу при запуске и перезапускать после)
  4. ???
  5. Можно вещать.

Примечания

  1. Да, блять, это действительно зарегистрированная торговая марка, пруф.