Создание музыки под Линукс

создание_музыки

Эта статья для тех кто уже имеет опыт работы со звуком на других платформах и интересуется как с этим обстоят дела под Linux. Здесь даётся базовое представление о том, как устроена работа со звуком под Linux, какое ПО используется, какие форматы поддерживаются и т.п.

DAW

Было множество попыток создания свободных DAW под Linux, однако полноценного ПО, в котором можно было бы делать всю работу, до сих пор нет. Были даже попытки создания копий коммерческих программ, однако общего у них только похожий интерфейс. К примеру, MusE напоминает интерфейс Steinberg Cubase, LMMS копирует интерфейс FL Studio. Большинству таким программам не стоит уделять время, т.к. они либо заброшены, либо развиваются слишком медленно и не отвечают современным требованиям, ничего серьёзного в них не сделать. Среди них MusE, Rosegarden, разнообразные трекеры и прочие поделки, которые любят советовать линукс-фанбои в своих сектах, ничего не понимающие в теме и всерьёз этим не занимавшиеся. Остановимся на наиболее значимых на данный момент программах. Тут мы сперва пройдёмся по наиболее годным свободным программам, в конце этой секции приведён небольшой список качественных коммерческих нативных DAW. Здесь под "нативными" программами подразумеваются программы и плагины, скомпилированные для Linux, не требующих Wine или другой эмуляции Windows.

Ardour

Ardour 3+, пожалуй, наиболее развитый на данный момент DAW под Линукс. Но редактор MIDI там появился совсем недавно и пока в зачаточном состоянии (поддержка MIDI для автора не является приоритетной), программа больше заточена под запись и сведение. Местами интерфейс странноват, приходится искать в документации как выполнить некоторые простейшие действия. В целом это более менее полноценный DAW, поддерживающий большинство линуксовых API и форматов. На 2017г. актуальная версия 5.x. Кстати, программы Harrison Mixbus (платная, есть под Linux) и Waves Tracks Live основаны на Ardour.

Официальные сборки программы платные, но платить можно произвольную сумму. При этом программа свободная (код предоставляется бесплатно), можно собрать из исходного кода самостоятельно. Некоторые дистрибутивы Linux могут иметь в своих репозиториях бесплатные сборки программы, но как правило, не самые последние версии (зависит от дистрибутива).

Qtractor

Qtractor чуть менее фичастый по сравнению с Ardour, зато MIDI редактор в нём более удобный. По сравнению с Ardour он потребляет меньше ресурсов. Некоторые LV2 плагины в нём отказываются работать, а то и вовсе могут вызвать зависание (у меня так было с синтезатором Sorcer). Однако в нём нет даже функции рендеринга проекта в аудиофайл, почему-то (однако это можно там сделать путём роутинга всех дорожек в одну с последующей их записью туда, однако метод костыльный и если у вас много эффектов, могут быть проблемы с производительностью). Так что полноценно в качестве DAW его вряд ли захочется использовать, скорее только как секвенсор, после чего заниматься сведением в Ardour, например.

LMMS

LMMS копирует интерфейс старых версий популярного коммерческого DAW FL Studio (по уровню, конечно, до него сильно не дотягивает). Всерьёз рассматривать его не стоит, он больше подходит детям как учебная игрушка. Не поддерживает набирающий популярность (уже не набирающий) формат плагинов LV2 (но можно использовать посредством костылей), работает медленно (на не очень быстрой машине не может нормально воспроизвести идущие с ним примитивные демо проекты). Имеет в составе некоторые собственные синтезаторы, которые невозможно применять отдельно (а было бы неплохо если они были в формате LV2 (были попытки портировать, но похоже, проект заброшен)).

Audacity

Вообще это не DAW, а звуковой редактор, но зачастую некоторые операции проще выполнить в нём, например предварительно подготовить материал для дальнейшей работы с ним в DAW. Описание на Википедии.

Прочие

Остальные говноDAWы можно вообще не рассматривать в силу их примитивности (да и приведённые выше простенькие). Среди них MusE, Rosegarden, всякие трекеры (Schism Tracker, SunVox (проприетарный)) и прочее просто midi секвенсоры.

Отдельно хотелось бы отметить программу Mixxx. Это не DAW и к созданию музыки отношения не имеет, но уж больно качественная. Это программа для живого диджеинга. Даже поддерживает винил с таймкодом.

Коммерческие DAW

Есть также несколько нативных качественных коммерческих продуктов:

  • трекер Renoise из нативных линуксовых плагинов поддерживает LADSPA, DSSI, нативный VST, возможно в будущем появится поддержка LV2.
  • Bitwig является аналогом Ableton Live, разрабатывается его бывшими разработчиками, поддерживает только нативный Linux-VST, поддержка LV2 запланирована на будущее (без определённых сроков).
  • Tracktion. Старые версии распространяются бесплатно, актуальная версия платная (на 2017г. версии 6 и 7 соответственно). Из нативных линукс плагинов поддерживает только Linux-VST и LADSPA. Частично поддерживает jack (если судить по встречающейся информации в сети, отсутствует синхронизация, но возможно это касается только шестой версии).
  • Waveform разрабатывается создателями Tracktion, видимо это дальнейшее развитие их продукта. Фич чуть больше чем в седьмой версии Tracktion плюс переработанный интерфейс.
  • REAPER — коммерческий полноценный DAW. На самом деле у него нет нативной версии под Линукс, но разработчики его специально оптимизировали для стабильной работы в Wine. И как ни странно, в Wine он работает гораздо шустрее поделок выше. Помимо Wine вам может понадобиться wine-asio, если будет необходимость использования программы совместно с другим ПО через JACK (см. ниже). Кстати, нативная линукс версия всё таки на данный момент в разработке и на официальном форуме Cockos можно найти тестовые сборки.
  • EnergyXT поддерживает только нативный VST, нет поддержки LADSPA, LV2, DSSI, даже Jack, так что толку от него совсем мало. На данный момент линукс версия на данный момент заброшена и давно не обновляется.

Но при всём достоинстве нативных коммерчеких DAW у них есть некоторые недостатки: в большинстве случаев они не поддерживают некоторые распространённые под Linux форматы плагинов (например LV2) и звуковые API (например Jack).

Плагины, синтезаторы, эффекты

Существует несколько типов плагинов, поддерживаемых звуковым ПО под Линукс.

LADSPA — плагины эффектов. Своего интерфейса не имеют, его автоматически генерирует хост-программа.

DSSI — формат плагино синтезаторов. Считается устаревшим и вытесняется новым форматом LV2.

LV2 — новый формат плагинов как для эффектов, так и для синтезаторов, призванный заменить LADSPA и DSSI. Многие существующие эффекты и синтезаторы уже портированы в этот формат, также появились некоторые новые.

Хост-программы также могут поддерживать VST плагины, но обычно только нативные, т.е. скомпилированные под Линукс. К сожалению, таких плагинов крайне мало, коммерческие плагины в основном скомпилированы под Windows и Mac. Однако некоторые win-vst плагинами можно воспользоваться посредством специальных бриджей, например Airwave (есть ещё аналогичные костыли: Vestige, Festige, Carla, dssi-vst и пр.).

Помимо плагинов бывают синтезаторы в виде отдельных приложений (standalone), например ZynAddSubFX, драм машина Hydrogen и много другое. О том как их использовать совместно с другими программами будет рассказано ниже.

Под Линукс выпускаются и коммерческие плагины, например плагины эффектов OvertoneDSP (бывший LinuxDSP, LV2 версии плагинов больше не предоставляются, только нативные VST), синтезатор Loomer Aspect, Pianoteq (синтезатор, физически моделирующий пианино). Также в ноябре 2014г. U-HE опубликовал бета версии своих VST плагинов для тестирования.

Свободных нативных плагинов существует не так мало, многое присутствует в репозиториях вашего дистрибутива, среди них есть очень неплохие, например набор плагинов Calf.

Основные принципы

Звуковая подсистема

Основная звуковая подсистема в Linux это ALSA, она является низкоуровневой. Поверх неё сейчас в большинстве десктопных дистрибутивов работает другая звуковая прослойка Pulseaudio. Скорей всего на время работы со звуком вам придётся отключать Pulseaudio, т.к. у него не очень хорошо с латентностью, да и большинство звукового ПО требуют монопольного доступа к звуковой карте. Большинство DAW программ требуют ALSA либо JACK.

Приостановить работу Pulseaudio можно так. Допустим вы хотите запустить DAW Ardour, который будет использовать ALSA. В таком случае можно запустить программу командой pasuspender ardour. После завершения работы и закрытия Ardour работа Pulseaudio возобновится сама.

Также есть звуковая подсистема JACK, она работает поверх ALSA аналогично Pulseaudio и в основном предназначена для коммутации разных звуковых программ между собой.

JACK

Как правило, звуковое ПО под Линукс поддерживает звуковой сервер JACK. Главным образом он служит для коммутации разного звукового ПО друг с другом для обмена аудиоданными и их синхронизации. Т.е. это что-то вроде ReWire. Например Qtractor вовсе не способен выводить звук без него. Пример коммутации звуковых портов программ. Старые версии Ardour тоже поддерживали только JACK, однако позже была добавлена возможность и работы с ALSA.

Если вы намерены использовать JACK, то прежде чем начать работу требуется запустить этот сервер. Делается это посредством программы QJackCtl, с помощью неё же производится управление коммутацией звуковых и MIDI портов программ. Скорей всего перед первым запуском вам придётся произвести настройку JACK и системы. Окно настроек QJackCtl. Оптимальные настройки зависят от аудиокарты, нужно найти золотую середину между наименьшей латентностю и стабильностью работы. Также рекомендуется внести некоторые изменения в настройки системы. Создайте файл /etc/security/limits.d/audio.conf с таким содержимым:

@audio   -  rtprio     99
@audio   -  memlock    unlimited

И добавьте себя в группу audio. Эти настройки позволят звуковому ПО использовать режим реального времени. Для ещё большего снижения латентности при необходимости можно поставить альтернативное lowlatency ядро (пакет linux-image-lowlatency), но это уже для экстремально низких задержек, большинству это не нужно.

Также следует учесть что на данный момент существует две версии JACK и начать лучше с версии jackd2 (название пакета в репозитории), а версию jackd1 пробовать если вторая версия не работает. На практике вторая версия обычно более стабильная. Также рекомендуется установить пакет pulseaudio-module-jack, он добавляет поддержку JACK в Pulseaudio, позволяет перенаправлять звук из Pulseaudio в JACK и добавляет возможность автоматическового переключения Pulseaudio при запуске JACK без необходимости ручной приостановки работы Pulseaudio.

Впрочем, JACK вам может и не понадобиться, если не будет необходимости в коммутации разного ПО друг с другом, а всю работу будете выполнять в одном DAW (зависит от конкретного DAW, некоторые работают только с JACK).

Модульность

Как уже было сказано выше, JACK позволяет связывать между собой отдельные звуковые программы. Это позволяет использовать отдельную программу секвенсор, посылая из неё MIDI события в отдельный синтезатор, например в ZynAddSubFX, звук из которого будет направлен в записывающую программу, например Ardour. Также он синхронизирует подключённые программы. Например если вы включите воспроизведение в одной программе, другие тоже начнут воспроизведение (или запись, если включено) синхронно. Для сохранения состояния соединений всей этой связки служат программы менеджеры сессий (например NSM или LADISH). Впрочем, это не является обязательным и для большинства из мира Windows и Mac такой workflow будет очень неудобен, большинство предпочитают привычное для Windows и Mac всё в одном DAW.

ASIO

Многие пришедшие с Windows в первую очередь интересуются как обстоят дела с ASIO, есть ли его поддержка. Естестественно, поддержка этого протокола отсутствует, потому что под Linux в нём нет необходимости. Звуковая подсистема Linux устроена таким образом что ПО имеет возможность обращаться к звуковой карте напрямую. Всё что вам нужно для низкой латентности, это сконфигурировать JACK под свою звуковую карту, если вы собираетесь использовать JACK, либо просто использовать ALSA в режиме монопольного доступа, если DAW поддерживает.

MIDI клавиатуры и контроллеры

Со стандартными MIDI устройствами обычно проблем не должно быть. Также работают большинство USB Class Compilant MIDI контроллеров и клавиатур. Проблемы могут быть с нестандартными устройствами, требующими установки специальных драйверов, которые производитель устройства выпустил только для Windows.

Эпилог

В принципе, при желании работать со звуком можно, но тут всё через чур усложнено. Придётся тратить в разы больше времени на лишнюю возню чем в профессиональном ПО в Windows или Mac. Иногда придётся метаться из программы в программу, делая часть работы в одной, часть в другой, перенося данные туда-сюда. Рок-музыкантам и им подобным проще, записываться и сводить можно не выходя из Ardour или Qtractor, а вот электронщикам будет гораздо труднее. Софт очень кривой в силу своего just for fun. Складывается впечатление что разработчики программ сами ими не пользуются по делу и с профессиональном ПО не работали. Интерфейс часто нелогичен.

Качественно звучащей музыки, созданной под Линукс, известно очень мало. Я бы даже сказал, её почти нет. Всё что можно на данный момент найти, звучат как трекерная музыка девяностых. К примеру, один из наиболее слушабельных релизов: Ordinary Day Montage. В основном всё это демки не для регулярного прослушивания, создаваемые для демонстрации того что этим заниматься под Линуксом возможно. Либо просто нубские поделки вроде этого (ещё).

Полезные ресурсы

KXStudio

KXStudio — это основанный на Ubuntu дистрибутив, заточенный под работу со звуком и создание музыки. Имеет свои репозитории, содержащие некоторое ПО и плагины, отсутствующие в основных репозиториях Ubuntu и более свежие версии аудиософта. Также имеет некоторые свои неплохие разработки. Его репозитории можно подключить к Kubuntu для возможности установки ПО из этого дистрибутива. Для этого следует выполить следующие действия:

sudo add-apt-repository ppa:kxstudio-debian/kxstudio
sudo apt-get update
sudo apt-get install kxstudio-repos
sudo apt-get update

Эта статья опубликована под лицензией Creative Commons BY-SA.

Tags:

Last Modified: 2018-01-03 23:38:58 by BrainFucker - [ Snip Changes ] [ Wiki History ]