Недавно я прочитал о том, что
Гэйб Ньюэлл всерьёз настроен
на то, чтобы перенести хорошие и качественные игры в Linux. Как он
считает, это именно то, чего не хватает, и что на данный момент
ограничивает развитие платформы. Безусловно, он прав. Тем не менее,
лично для меня есть и другая область, которая мне даже намного важнее,
чем игры — это музыка. Если без игр я могу обойтись, то музыка для меня
необходима — как, впрочем, и для многих других людей.
На картинке — рабочее место Niels Ott, на компьютере запущен Ardour.
Моя жена тоже музыкант, и когда она увидела, какие секвенсоры и
синтезаторы есть в Linux — она даже не стала пытаться в них разобраться,
просто вернувшись к своим Cubase и Reason. На её ноутбуке есть Windows
7, и когда она пишет музыку, она просто перезагружается туда и запускает
там эти программы.
Я же, пользуясь Linux уже около 10 лет, не могу так просто отказаться от
того, чтобы хотя бы пробовать имеющиеся программы. В принципе, могу
точно сказать, что за 10 лет всё очень сильно изменилось в лучшую
сторону. И всё же то, что сейчас есть под Linux для написания музыки,
очень далеко от идеала. Давайте вместе разберёмся, почему бо́льшую часть
музыки всё ещё пишут на Mac OS X или Windows.
Давайте прежде всего рассмотрим DAW (digital audio workstation) —
цифровые звуковые рабочие станции. Поскольку мы говорим о написании
музыки (а не только о записи), нас интересуют те DAW, которые могут
работать как MIDI-секвенсор.
energyXT
Из коробки
energyXT представляет из
себя довольно обычную цифровую звуковую рабочую станцию, которая,
впрочем, довольно хорошо работает, доступен для Linux, Mac OS X, Windows
и iOS, позволяет сразу загружать музыку на SoundCloud, обладает вполне
удобным интерфейсом и имеет набор встроенных инструментов и эффектов, а
также поддерживает VST-плагины. Ещё вместе с energyXT идут лупы от
Loopmasters.
Если хочется посмотреть подробнее, то, например,
в этом видео показан процесс создания dubstep-композиции.
У energyXT я замечал два больших минуса:
1. В поставке по-умолчанию не подключить MIDI-контроллер (например,
MIDI-клавиатуру). То есть опция-то такая есть, но реально попытка
подключения приводит к падению программы. Пишут, правда, что есть
решение — можно самостоятельно
перекомпилировать libaam.so (вот
тут обсуждение).
Но с другой стороны не совсем понятно, почему разработчик коммерческой
программы (я покупал её за €39, но они пишут, что это со скидкой, а так
€59) не включится в процесс и не решит проблему самостоятельно (известно
о ней уже больше года).
Недавно они, кстати, выпустили свой виртуальный инструмент под названием
XTS1, и в спецификациях к нему написали «Windows/Mac OS X compatible».
Про Linux вообще ни слова. Впрочем, когда я
спросил у них об этом на getsatisfaction, они ответили, что выпустить версию под Linux они планируют.
2. Без JACK energyXT не работает с моей звуковой картой ESI Juli@. А также, судя по
этому обсуждению,
с M-Audio Audiophile 2496). Соответственно, известно, что программа не
работает на звуковых картах на snd_ice1724 и snd_ice1712. Впрочем, судя
по всему, реально всё будет работать, если использовать JACK.
Но, опять же, просто «взять и включить» JACK нельзя (как это делается,
например, в Renoise и LMMS). По какой-то причине разработчики не
добавили опцию переключения между ALSA и JACK, а только
написали, как скомпилировать поддержку JACK самостоятельно.
Тем не менее, в целом energyXT очень даже неплох, особенно на ноутбуке
(у него довольно низкие требовния к ПО), так что имеет смысл скачать
демонстрационную версию (до покупки работают все возможности, кроме
сохранения) и попробовать.
Renoise
Когда-то давно, когда мне было лет 5, мой старший брат постоянно писал
музыку в FastTracker 2 и, вероятно, ещё в чём-то подобном. Всё это было
ещё в то время, когда на компьютерах обычно стоял DOS с каким-нибудь
Norton Commander'ом (или часто Volkov Commander'ом — тоже файловый
менеджер от украинского программиста). Один раз я сел за компьютер, за
котором он делал музыку, и стал что-то нажимать, менять ноты, и так
далее. Когда пришёл мой брат, он удивился тому, насколько интересная
мелодия у меня получилась. Решил, что если правильно раскидать её по
каналам, то будет очень красиво.
Потом я возвращался к трэкерной музыке и в более позднем возрасте (в
8—10 лет, когда я уже начал программировать, у меня был QBasic и так
далее). На винчестере всё время было много музыки в .it, .mod и .xm.
Много чего осталось и по сей день. В ней есть какой-то свой, особый
шарм. А маленький размер файлов (вплоть до нескольких кибибайт — зависит
от размера сэмплов и прочего) всегда был неотъемлемым преимуществом,
особенно когда дело касалось медленного Интернета, или компьютерных игр,
которые не должны были выходить за пределы определённого размера.
Renoise — это полноценная цифровая
звуковая рабочая станция, в основе которой лежит трэкерный подход к
написанию музыки — в противовес более традиционному на данный момент
подходу с использованием piano roll'а.
То есть если обычно в секвенсорах мы видим вертикально сориентированную
клавиатуру пианино, справа от которой расположена матрица с нотами (по
вертикали в ней, соответственно, высота тонов, а по горизонтали — их
временно́е расположение и, соответственно, длительность), то в Renoise,
как и в трэкерном ПО, есть каналы (которые могут относиться к разным
инструментом), и на каждом канале по вертикали расположены, опять же,
названия нот (при этом, например, «отпускание» ноты обозначается
специальным словом «OFF» — соответственно, длительность ноты можно
понять по расстоянию до этого слова).
Какой подход лучше — решать вам. Я, например, не могу однозначно
сказать, что удобнее. Пожалуй, это зависит сразу от много: какую именно
музыку вы пишете, насколько хорошо вы владеете компьютерной клавиатурой,
какими программами вы пользовались раньше. Но точно можно сказать, что
попробовтать Renoise стоит. Потому что играть мелодии вы можете и с
MIDI-клавиатуры, а вот настолько проработанный интерфейс пока что можно
встретить мало у каких DAW в Linux.
Преимуществ у Renoise полно — это и хороший, удобный микшер, и
продвинутая работа с сэмплами, и отличный интерфейс для указания
automation (автоматизации изменения тех или иных звуковых параметров по
мере проигрывания трэка). Также есть простой
MIDI mapping:
выбираете какой-либо параметр и крутите на своём MIDI-контроллере
какую-нибудь ручку (или fader), чтобы назначить её для этого параметра.
Кроме того, в Renoise хорошая поддержка звуковой системы в Linux и
довольно большое сообщество (есть даже сайт
renoise.ru, и, конечно, есть
официальный форум).
Ещё важным для многих может являться то, что у Renoise есть хорошая и подробная
документация.
Ardour
Ardour — ещё одна цифровая звуковая
рабочая станция, у которой уже довольно большая история (первый релиз
был в 2005 году) и весьма неплохой набор возможностей. Ardour является
свободным ПО, позволяет создавать неограниченное количество звуковых
дорожек, использовать возможности редактирования без разрушения
оригинала (с неограниченным количеством возможных операций undo),
автоматически компенсировать задержку в записываемом трэке в случае
записи с синхронным прослушиванием других дорожек, а также имеет ещё
много приятных особенностей.
Очень удобно использовать Ardour вместе с JACK. Например, вы можете
запросто синхронно записывать два разных аудиопотока (к примеру, один из
выхода программного синтезатора, а другой с микрофона) в две разные
аудиодорожки (разумеется, никаких ограничений здесь нет — можно
синхронно записывать любое количество аудиодорожек). Так же просто можно
синхронизировать Ardour с другими программами через JACK. Например, вы
можете синхронизировать его с программной драм-машиной и при записи или
проигрывании композиции в Ardour слушать соответствующее место
соответствующего паттерна в драм-машине.
JACK — вообще очень полезная вещь. Круг задач, которых можно решить с
помощью JACK, очень велик. Я как-то раз даже описывал в комментариях на
Хабрахабре, как можно с помощью него посмотреть кино сразу на двух
языках (в разных наушниках, конечно же). Аналогично его можно
использовать для дублировния фильмов — чтобы перемещение по дороже в
аудиоредакторе приводило к соответствующему перемещению в
видеопроигрывателе, и наоборот.
Поэтому если вы видите какую-то аудиопрограмму, которая не поддерживает
JACK, то, скорее всего, с этой программой лучше не связываться — потому
что совершенно непонятно, как авторы могли не добавить поддержку
настолько полезного и нужного инструмента.
Что касается Ardour, несмотря на то, что все основные возможности проработаны очень профессионально,
поддержка MIDI-дорожек
появилась только в третьей версии, которая пока что находится в
разработке (хотя уже вышла 5-я бета-версия, так что можно загружать и
пробовать).
LMMS
LMMS — кроссплатформенная цифровая звуковая рабочая станция, которая
первоначально задмуывалась как аналог FL Studio (тогда ещё Fruityloops).
Интересно, что чуть меньше 5 лет назад я уже
писал
об LMMS на Хабрахабре. Так вот, если вы спросите, изменился ли он за
это время, то я просто скажу вам скачать и посмотреть. И да, он
изменился, причём кардинально. Раньше нужно было после каждой
добавляемой ноты нажимать Ctrl + S — потому что иначе при очередном
падении (а они были постоянно) нужно было заново восстанавливать
созданную мелодию. Теперь же LMMS работает стабильно (напишите в
комментариях, если всё-таки найдёте глюки — а лучше сразу отправляйте
авторам), не падает, и имеет, наверно, почти всю функциональность,
которая там в принципе должна быть. Безусловно, авторам всё ещё есть над
чем работать, но сейчас в LMMS уже можно нормально писать что-то
полноценное, не думая о прошлых ограничениях.
LMMS поддерживает импортирование MIDI-файлов, а также файлов FLP
(проектов FL Studio). Встроенные инструменты позволяют использовать
имеющиеся у вас SoundFont2 и GUS Patches, плюс есть различные
синтезаторы.
Также у LMMS есть
форум и
wiki с неплохой документацией на разных языках.
Плагины, VST(i), синтезаторы
Итак, с DAW разобрались, перейдём к плагинам и синтезаторам. Вообще, в
Linux есть следующие стандарты аудиоплагинов: LADSPA, DSSI, LV2, VST и
VSTi.
При этом LV2 — это простой, но расширяемый стандарт, являющийся потомком
LADSPA (и исправляющий ограничения LADSPA, которые уже не подходят для
современных аудиопрограмм) и заменяющий DSSI.
Интересным фактом также является то, что в Linux бывает поддержка VST(i)
двух разных типов. В одном варианте это родные VST(i)-плагины,
специально скомпилированные для Linux (имеют расширение .so). А в другом
варианте — это плагины VST(i), которые предназначены для работы в
Windows. Поддержка вторых реализована, например, в LMMS (с помощью
VeSTige) и в
Ardour.
Вот,
кстати, ещё тема на их форуме, где обсуждалось, нужно ли вносить
поддержку родных плагинов (там же есть советы по альтернативным
вариантам запуска Windows-плагинов). Родные же плагины поддерживаются в
Renoise, energyXT, и теперь уже также
в третьей версии Ardour. Про родные VST(i)-плагины для Linux есть информация на
linux-vst.com и
на сайте KXStudio. На данный момент самые интересные плагины предоставляют проекты
DISTRHO,
Jucetice и
Loomer.
Также есть весьма хорошие плагины под названием
mda-vst. У них
открыт исходный код и есть бинарные файлы для 64-разрядного Linux.
Кстати, про архитектуру — на данный момент удобнее всего работать на
32-разрядной архитектуре, хотя лично я всё равно предпочитаю
64-разрядную.
Упирается всё, конечно же, как раз в плагины. Если вы используете
плагины, которые имеют только 32-разрядные версии, то вам придётся
использовать 32-разрядный хост. Если вы будете использовать 32-разрядный
хост, то его не получится связать с 64-разрядным JACK, и так далее. В
примечаниях к Renoise 2.8,
правда, указывается, что теперь можно использовать 32-разрядные плагины
с 64-разрядным Renoise, но когда я это проверял, то плагины не работали
(возможно, они не реализовали это конкретно под Linux).
Так что, если пользуетесь 64-разрядным Linux, то, возможно, самое
простое будет поставить дополнительно какой-нибудь 32-разрядный. Ну, а
если все плагины доступны под x86_64 — то тем лучше: это, разумеется,
намного удобнее.
Что касается синтезаторов, которые прежде всего работают как отдельные приложения — любителям нойза обязательно понравится
din. Ещё есть
amSynth, для использования SF2 хорошо подойдёт
FluidSynth (очень часто используется вместе с GUI — Qsynth). И, конечно же, не стоит забывать про
ZynAddSubFX.
Появившись ещё в 2002 году, сейчас этот синтезатор стал уже культовым.
Про него есть много статей, есть patches и sound banks, и прочее. Этот
синтезатор обязательно стоит попробовать. Если с ним разобраться, то
может получиться что-то
такое.
А есть ли что-нибудь с реалистичным звуком пианино?
Есть.
Pianoteq
— это один из лучших виртуальных инструментов в мире вне зависимости от
платформы. Он имеет огромные возможности для настройки малейших нюансов
звука, и, что самое главное, звук пианино генерируется динамически,
средствами процессора, а не берётся из сэмплов. Обычно, когда люди в
первый раз об этом слышат, они не хотят даже пробовать Pianoteq
(отличная иллюстрация —
обсуждение Pianoteq на linux.org.ru). Тем не менее, если
послушать композиции, записанные с помощью Pianoteq, почитать о том,
кто им пользуется, а также
скачать пробную версию
и поиграть самому, то сразу же отпадают все сомнения. Pianoteq
проработан настолько хорошо, что не сразу осознаёшь, что это вообще
реально.
Разумеется, Pianoteq является платным (от €99 за самую простую версию
Pianoteq 4 Stage и намного больше за более продвинутые варианты,
расширения и прочее), но, к сожалению, никакого другого способа создать
такую программу, похоже, нет (учёные и программисты, которые над ним
работали, просто так столько работать не стали бы).
Объём загрузки, кстати, составляет 20 MiB. Те, кто работал с другими
профессиональными синтезаторами пианино, понимают, насколько это
маленький размер.
А какие ещё есть хорошие программы?
Если нужно просто что-то записать, без особых ухищрений, то отлично подойдёт
Audacity. Составить партию ударных можно в
Hydrogen
— там достаточно много возможностей, и легко добавлять дополнительные
библиотеки ударных. Самая лучшая DJ-программа — безусловно,
Mixxx. Неплохая аудиоигра (помогает учиться играть на пианино) —
Piano Booster. Тренажёр слуха — конечно же,
GNU Solfege.
Итак
Мы видим, что в Linux можно и нужно писать музыку. С DAW всё,
фактически, в порядке, есть хорошая поддержка VST(i)-плагинов. И, тем не
менее, всё-таки количество доступных плагинов и синтезаторов пока что
очень небольшое. Под Linux нет Omnisphere, нет Nexus, нет Vanguard.
Давайте скажем прямо — пока что авторы профессиональных аудиоплагинов
попросту игнорируют Linux. Стало ли лучше за последние несколько лет?
Да, безусловно — но для того, чтобы можно было действительно чувствовать
себя свободно в написании музыки, нужно гораздо больше. Поэтому самым
интересным будет тот момент, когда Linux наберёт достаточно
пользователей, чтобы его воспринимали более серьёзно в качестве
платформы для настольных компьютеров и ноутбуков. Не исключено, что
появление хороших компьютерных игр приведёт к увеличению количества
пользователей, а следом и за улучшениями в поддержке Linux в других
областях, в том числе и в музыке.
Стоит также учитывать тот факт, что далеко не всё то, что вы слышите в
популярных композициях, было создано с помощью популярных программных
синтезаторов. Что-то сделано на аппаратных синтезаторах, а что-то
сделано путём
настройки самых простых волновых синтезаторов.
Поэтому исследуйте имеющиеся возможности, создавайте, пишите — чем
больше сообщество, тем больше вероятность того, что разработчики
звукового ПО начнут воспринимать Linux намного лучше.