Недавно я прочитал о том, что Гэйб Ньюэлл всерьёз настроен на то, чтобы перенести хорошие и качественные игры в Linux. Как он считает, это именно то, чего не хватает, и что на данный момент ограничивает развитие платформы. Безусловно, он прав. Тем не менее, лично для меня есть и другая область, которая мне даже намного важнее, чем игры — это музыка. Если без игр я могу обойтись, то музыка для меня необходима — как, впрочем, и для многих других людей.
На картинке — рабочее место Niels Ott, на компьютере запущен Ardour.
Моя жена тоже музыкант, и когда она увидела, какие секвенсоры и синтезаторы есть в Linux — она даже не стала пытаться в них разобраться, просто вернувшись к своим Cubase, Logic и 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 намного лучше.
Автор: MaGIc2laNTern