Cockos reaper для linux

Аудио микшер из двух и более звуковых карт на realtime Linux и Reaper

Когда играешь в группе, надо где-то репетировать. Попробуем дома собрать свой микшер с эффектами из того, что есть под рукой. А под рукой у меня есть 2-х ядерный компьютер с встроенной и 2-мя дополнительными аудиокартами, ESI Juli@ и C-Media CM8738. Итого 6 каналов на запись.
Если достаточно 2-х каналов, то можно дальше не читать, потому как 2 канала можно смикшировать через Reaper под Windows с asio4all (или родными драйверами), будет играть без проблем. Вся сложность начинается, когда хочется из 3-х карточек сделать одну виртуальную и многоканальную. Через asio4all запись одновременно 6-ти каналов на приемлемом уровне качества (даже для репетиций) не получилась (из-за разного clock source на карточках, а также из-за редких подтормаживаний), поэтому и пришлось идти таким нелёгким путём.

Запускать мы всё будем под Linux-ом с realtime-ядром. Realtime-патч желателен, но не необходим, без него тоже будет работать, разве что с большей задержкой и не так стабильно. Дистрибутив будет Debian, а не RemixOS, потому что, во-первых, хочется понимать что происходит, можно ли что-нибудь покрутить и ничего не сломается, во-вторых нужно будет немного патчить wineasio, и в-третьих, в remixos ужасный рабочий стол. Как ставить Debian я рассказывать не буду, на эту тему уже много написано. Итак, мы имеем свежеустановленный Debian 6.0.3 с рабочим столом. Выглядеть это будет почти что так, разве что иконок на рабочем столе не будет:

Первым делом обновляем (если Debian устанавливался не с netinstall). В рутовой консоли (Приложения->Стандартные->Root Terminal)

Теперь ставим уже скомпиленное realtime ядро pengutronix, опять же в рутовой консоли:

Перезагружаемся на него, смотрим что скажет uname:

Далее необязательно удаляем update-notifier (или как-нибудь выключаем):

Теперь ставим необходимые пакеты. Во-первых, это демон JACK. Именно к нему будут соединяться аудио приложения. А он, в свою очередь, через ALSA соединяется к звуковой карточке.

Audacity, для проверок

Пакеты чтобы собрать wineasio

И Wine, чтобы запускать Reaper. Wine можно поставить из репозиториев, а можно и самому собрать с rt-патчем. Патч нужен для того, чтобы wine мог давать realtime приоритеты нужным потокам. Т.е. с обычным wine все потоки reaper-a будут в sched_other, не зависимо от того, как хочет запускаемое приложение (или все в sched_fifo, если весь wine запустить через schedtool), а с патчем рипер сам скажет какие потоки критичные (это которые звук обрабатывают), а какие потоки нет (это графический интерфейс и всё остальное). В кратце, у потока с точки зрения планировщика может быть определен класс и приоритет. Класс — это sched_fifo, sched_rr, sched_other (он же sched_normal), sched_batch и еще какие-то. Интересных с точки зрения звука тут два, это обычный (sched_other) и реального времени (sched_fifo). Поток, который выполняется с классом sched_fifo, не может быть прерван потоком с классом sched_other. Т.е. все sched_other не смогут выполнится, пока кому-то из sched_fifo есть что делать. Хорошо что большую часть времени sched_fifo-потоки чего-нибудь ждут, сигнала от оборудования, к примеру. В нашем случае звуковые потоки (sched_fifo) будут ждать пока входящий аудио буфер заполнится, как поступит сигнал что буфер готов его быстро-быстро обработают, положат результат в исходящий буфер и снова будут ждать. А в эти перерывы будет рисоваться графический интерфейс итд.
Итак, вариант 1-й, ставим wine обычный (не желательно):

Читайте также:  Инструкция для кали линукс

И вариант 2-й, собираем wine 1.2.3 с патчем (скажу сразу что это не есть правильный debian-way, по-правильному нужно собирать пакет и его устанавливать, но это просто чуть сложней):

Так как мы будем запускать Reaper, jackd и прочее не от рута, а от своего пользователя, то нужно поправить лимиты, иначе операционная система не даст запустить столько софта, съесть много памяти и получить realtime приоритеты. Правим /etc/security/limits.conf

и пишем там (естественно, вместо vasiliy надо поставить свой логин в системе)

Чтобы лимиты применились, нужно перелогинится или перезагрузится. Проверяем что с лимитами всё ок:

Смотрим что max locked memory unlimited и идём дальше. Сейчас будем настраивать и проверять ALSA и JACK. Логично начать с ALSA, запускаем Audacity, идём в настройки:

Выбираем ALSA, пускаем Audacity на запись, смотрим что работает, слушаем что получилось (здесь я просто дотрагивался пальцем до джека):

Если что-то не работает, к примеру играет, но не пишет (можно в Audacity импортировать любую mp3-шку для проверки), или пишет с большими шумами, то нужно смотреть настройки ALSA, Система->Параметры->Звук. На моей Juli@ всё заработало сразу, а вот с встроенной и c-media карточками прошлось повозится:
C-Media Electronics Inc CM8738 (rev 10)




Встроенная Intel Corporation 82801JI (ICH10 Family) HD Audio Controller



Интересно, что даже встроенная карточка на линейных вход даёт достаточно неплохой сигнал. Единственное что он должен быть достаточно мощным, иначе шумит. Уровень громкости на «Захват», вкладка «Запись» HDA Intel специально стоит на 25%, так у меня шумело меньше всего. Электрогитару, к примеру, так писать не очень, а вот если эту же гитару пропустить через какой-нибудь предусилитель (в моём случае это ART Tube MP), то получается очень даже ничего, даже можно программый дисторшн включать.

Теперь настроим JACK. Запускаем qjackctl через Приложения->Аудио и видео->JACK Control (или в терминале qjackctl), жмем «Параметры»:

Выбираем основной интерфейс, у меня это juli@, она на hw:2 (список карточек и какие они получили номера можно посмотреть в /proc/asound/cards Номер звуковой карточки не всегда сохраняется после перезагрузки, даже если все карточки pci). Включаем режим реального времени, выставляем размер буфера, дискретизацию, запускаем jackd, и через Audacity проверяем что работает (в настройках Audacity не забываем переключится на JACK). Так же желательно проверить запись (и вывод звука) на других карточках через JACK.
А сейчас начинается интересная часть. Будем подключать остальные аудиоинтерфейсы к основному. Всё так же запускаем qjackctl, стартуем и пишем в отдельном терминале:

hw:0 — это встроенная карточка, hda-intel — это просто тэг, можно и без него, 512 — размер буфера, 2 — их количество. Размер буфера и количество подбираются минимально нормально работающие (под нормально работающими понимается что alsa_in не выводит постоянно надпись «delay= »), в моём случае это получилось 512 (а потом и 128) сэмплов и два буфера, неплохо. Для остальных (остальной) звуковой тоже самое.

Читайте также:  Windows sockets error 10048

Проверить что всё работает можно через jackeq (Приложения->Аудио и видео->JackEq или, как я, в терминале jackeq). Выбираем порты входа, порты выхода, поднимаем громкость каналов, громкость master-а, смотрим и слушаем. На этом шаге можно поэкспериментировать с размерами буферов JACK и alsa_in (jackeq придётся перезапускать).

Собственно, какой-то простой микшер уже есть. Но ведь хочется большего, много эффектов, vst-плагины и так далее. Можно поставить Ardour, можно ardour пересобрать с поддержкой windows VST плагинов, можно поставить Mixbus. Всё это DAW (Digital Audio Workstation), через них вполне можно микшировать для репетиций. Я предпочёл Reaper потому что, во-первых, он мне привычней, во-вторых в нем самом есть встроенные неплохие эффекты, в-третьих у него удобный микшер, можно ручки настройки эффектов вынести на главный микшер, в-четвёртых в микшере можно настроить хоткеи почти на всё, в-пятых он работает с VST, в-шестых Reaper это живой софт, постоянно развивающийся.
Скачиваем и устанавливаем с reaper.fm, можно триальную версию. Сам Reaper запускать еще рано, у нас нет связки jack-asio. Нужно скачать, пропатчить, скомпилировать и установить wineasio (http://sourceforge.net/projects/wineasio/). Можно скачать стабильную версию (0.9.0), а можно и development, с git-а. Версия, которая лежит в git, она немногим отличается от стабильной, но она у меня запустилась с JACK буфером в 32 сэмпла, так что лучше скачать её:

Для того, чтобы собрать wineasio, нужен файл asio.h, который содержится в Steinberg ASIO SDK. К сожалению, Steinberg запрещает распространять этот файл, поэтому его самостоятельно скачиваем с сайта Steinberg (http://www.steinberg.net/en/company/developer.html), и кладем в папку с распакованным wineasio. Теперь нужно пропатчить asio.c:


В этом патче мы убирам флаг JackPortIsPhysical, чтобы wineasio сразу соединялся со всеми портами JACK, в том числе и виртуальными, которые мы создали через alsa_in.
Компилируем, устанавливаем:


Тестовый запуск Reaper-а, проверяем что wineasio появился:

wineasio настраивается через реестр:


Из интересных настроек тут только Number of inputs/ouputs, можно поставить какое-нибудь более похожее на реальность количество. Fixed buffersize желательно оставить в «1», чтобы размер буфера определял JACK.
Снова запускаем Reaper, в зависимости от того пропатченный wine или нет команда запуска будет разная:

Настраиваем его для лучшей работы под wine:
Убираем галочку с «Preferences->Buffering->Use native events for syncronizing», и в «Preferences->Appearances->UI updates» выбираем «Lazy always».

Ну а теперь осталось только добавить в Reaper-е нужное количество дорожек, включить их на запись и мониторинг, добавить эффектов и играть:


Удачных Вам репетиций!

PS:

  • Под этой версией wine 1.0.1 у меня запустился только 3-тий Guitar Rig, 4-й и 5-й не устанавливаются. Хотя порепетировать и 3-ей хватит. С GuitarRig-ом надо как-то поосторожней, если быстро пресеты переключать, то он вылетает вместе с рипером. Хотелось бы найти какую-нибудь более стабильно работающую под wine-ом альтернативу.
    Под версией wine 1.2.3 Guitar Rig 5 поставится, работает нормально, не вылетает.
  • С wineasio 0.9.0 задержки на основной карточке с буфером 256 получились около 20-ми мс, на дополнительных около 30-ти (поправил, спасибо egorinsk).
    А вот на git версии wineasio и меньшие размеры работают, сейчас вот на основной карточке размер буфера 32, что даёт задержку в 1,4 мс, и на alsa_in буфер 128, т.е. на дополнительных карточках получилось 6 мс.
  • В четыре карточки тоже работает, подключал EMU-0202 USB.
  • Не нашел VST подавителя обратной связи, давить свистящие частоты приходится вручную через эквалайзер.
  • Не знаю как по-человечески поставить nvidia драйвер на realtime ядро.
  • В Reaper-е есть особенность, что приоритеты на потоки он вешает не во время запуска, а как только начинается воспроизведение/запись. Т.е. если делать проект с микшером, после его открытия придётся жать play/stop. Посмотреть, что из потоков есть, какой у них класс и приоритет можно через


Тут видно, что у reaper.exe есть 3 FF (sched_fifo) потока, один с приоритетом 5 (это тот, который ему создал jack, этот приоритет можно настроить через qjackctl), и два (у меня два ядра) с приоритетом 20, это потоки обработки эффектов, их Reaper запросил с приоритетом THREAD_PRIORITY_HIGHEST.

В общем не ленитесь поставить realtime ядро, wine с realtime патчем и wineasio версию с git. Результаты должны получится очень неплохие.

Источник

Reaper – аудиоредактор (DAW) для Linux

Reaper – это профессиональная DAW, в которой можно заниматься музыкой. Сведение, мастеринг, да и просто отредактировать композицию например для телефона на звонок. Этой DAW пользуются многие музыканты, она является условно бесплатной. По сути, платная версия от бесплатной отличается лишь тем, что в бесплатной вам будет высвечиваться при запуске окошко. Буквально секунд на 5, где будет упоминаться что вы пользуетесь бесплатной версией и будут предлагать купить лицензию. Стоит так же отметить, что лицензия стоит не дорого в отличии от остальных конкурентов. Например, многим известный Cubase стоит на порядок дороже, но проигрывает в функционале Reaper. Вообще, стоит так же отметить что Reaper можно настроить на любой вкус. Все кастомизируется при помощи скриптов. Прежде чем устанавливать, советую посмотреть обзоры и почитать форумы, что бы понять, нужен ли вам Reaper или же вам хватит audacity. Приступим к установке.

Установка

Переходим на сайт производителя:

Проматываем страницу вниз

Скачиваем ту версию, которая вам нужна. Я буду показывать установку для версии Linux x86_64. Скачиваем архив, распаковываем его, и переходим в папку. В нашем случае это reaper_linux_x86_64. Тут мы увидим два файла и каталог. При желании можете полистать файл readme_linux.txt. Ну а мы пошли дальше.

Что бы начать установку нужно запустить файл install_reaper.sh. Переходим в терминал и запускаем его:

Делаем файл исполнительным командой:

Теперь запускаем установку:

Далее выбираем что нам надо из приведенного списка:

Для установки выбираем I. Далее нам предложат выбрать каталог куда установится Reaper. Рекомендую выбрать домашний каталог пользователя. То есть это будет второй пункт:

Далее у нас спросят про интеграцию с рабочим столом, тут выбор за вами. Лично я соглашусь, пусть будет. Далее так же отвечаете утвердительно, то есть ставите букву Y и нажимаете Enter.

После завершения интеграции установка завершится и вам останется проверить не возникло ли ошибок при установке Reaper.

Найти значок запуска можно будет в меню пуск. Запускаете и перед вами появится Reaper:

Теперь можно переходить к настройке. После чего можно заниматься записью, сведением, мастерингом. И все это можно сделать лишь встроенными средствами Reaper. При чем довольно таки хорошего качества. Более подробную информацию можно найти на форуме Reaper. Есть русскоязычная ветка форума: Russia Forum Reaper.

Источник

Читайте также:  Windows application local database
Оцените статью