image

Итак, вы делаете свою игру, добавляете новые функции и тестируете их. Да, получается совсем неплохо. Но чего-то не хватает — игра слишком тихая. Вам нужна музыка. Разумеется, можно найти и скачать бесплатную музыку из Интернета, но это не геймдев, это использование чужой работы. Так что давайте напишем собственную музыку. Вот как будет звучать написанная вами музыка [прим. пер.: перед прослушиванием уменьшите громкость]:


Это то, что у меня получилось к концу туториала

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

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

Что нам понадобится


В этом списке представлено только то, что необходимо для написания нашего «быстрого и грязного» чиптюна. Это самым минимум.

DAW — Digital Audio Workstation


DAW — это цифровая звуковая рабочая станция. Она является цифровой версией одной из таких штук:


Сегодня даже профессиональные звукозаписывающие студии используют DAW, но они подключают все показанные на фотографии устройства к компьютеру.


Digital Audio Workstation

Это очень удобно для нас с вами, потому что нам не нужно всё это сложное оборудование. Да мы даже не будем использовать пианинную клавиатуру, достаточно одной мыши (лично я в разработке использую только ноутбук с трекпадом).

DAW имеют множество замечательных функций. У них есть пианинные клавиши, функции записи, MIDI-функции, запись нот для воспроизведения виртуальными инструментами. Они могут экспортировать музыку во множество разных форматов.

Существует множество различных видов ПО. И большинство из них небесплатно. Не знаю уж почему, но все разработчики игр не особо желают раскошеливаться на DAW. Честно говоря, довольно долго не было никаких альтернатив: или ты покупаешь ПО, или пиратишь его.

Но не сегодня. Теперь мы можем скачать потрясающую бесплатную open-source DAW с полным набором функций. Взять Ardour можно здесь.

VST — Virtual Studio Technology Instruments


VST Instrument, как можно понять из названия — это виртуальный инструмент. Он играет ноты, сэмплированные из реального инструмента. Качественный VST может хранить внутри сотни аудисэмплов того инструмента, который он имитирует. Или у него их может быть всего несколько. В общем случае, чем больше размер файла, тем больше сэмплов содержится внутри.

VST воспроизводит ноты из сигналов MIDI. В прежние дни у нас были MIDI-синтезаторы, имевшие операционную систему. Можно было сыграть ноту MIDI C3 («до» малой октавы), и синтезатор воспроизводил C3. Можно было приказать синтезатору воспроизводить звук пианино или трубы. Можно было играть ноту на клавиатуре, подключенной к компьютеру, или вводить её в секвенсор в DAW.

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

VST заменяют ужасные синтезаторы настоящими звуками инструментов. Можно найти любой инструмент, и многие из них бесплатны. Мы используем парочку инструментов, которая хорошо подходит для нашего «быстрого и грязного» проекта. Они не сэмплируют инструменты, как, например, это делает виртуальная труба, ведь мы же будем писать чиптюн, но они звучат лучше, чем ужасные MIDI, которые всё ещё хранятся на вашем компьютере.

PULS



PULS

Скачать PULS можно здесь. Это очень простой синтезатор с очень ограниченными возможностями, который нам подходит, потому что мы пока толком не знаем, что делаем (но вскоре узнаем).

Blue ARP


Скачать его можно здесь. Это VST, но это не инструмент. Это «секвенсор паттернов»; можно считать его эффектом/плагином, который применяется к другим VST.


Скриншот Blue ARP

По сути, он модифицирует вывод MIDI, например, удерживает ноту C3 и превращает её в паттерн различных нот. Правильно называть его MIDI-арпеджиатором (MIDI Arpeggiator).

Melody Generator 2


Эта freeware-программа была разработана Дирком Яном Повелом в качестве дополнения к его статье. Её сложно найти, но мне удалось обнаружить ссылку. Это ПО будет генерировать для нас мелодию.

Дирк Ян Повел умер, а значит, Melody Generator 2 скорее всего не получит дальнейшего развития. К счастью, он написал указанную выше статью, а поскольку в справке программы содержится довольно много теории, есть надежда, что кто-то из скучающих разработчиков продолжит развивать его потрясающие идеи.

Увы, программа недоступна как VST-плагин, хоть это и было бы замечательно (даю намёк разработчикам). Но она может создавать файлы MIDI, и если вспомнить, что VST-инструменты просто воспроизводят ноты MIDI, то мы поймём, что можем с ней сделать.

Вот и всё. Это всё, что нам нужно. Четыре скачанных файла.

Установка


Установите Ardour, это не так уж сложно. Вероятно, стоит выбрать 32-битную версию, потому что описанные выше VST тоже 32-битные. Можно навести мосты, чтобы 32-битные VST могли работать в 64-битном ПО, но я пока не нашёл подходящего мне решения. Большинство бесплатных VST является 32-битным, и если у них есть 64-битная версия, то всё равно обычно существует и 32-битная сборка. 64-битная версия обеспечивает доступ к большему объёму ОЗУ, что в нашем случае скорее всего не будет ограничивающим фактором, но если вы будете использовать один из этих огромных VST с гигабайтами сэмплов для каждого инструмента, этот объём вам понадобится.

Далее нужно поместить файлы VST в нужную папку. Лично я создаю новую папку и просто говорю Ardour наряду с обычными папками искать и там (ниже мы об этом поговорим).

Вот и всё. Установка завершена.

Настройка


Обычно Ardour настраивается очень легко. Я выполняю разработку в Windows, поэтому в Linux порядок настройки может отличаться.

Сначала запустите программу и создайте New Session. Можно выбрать любую папку для её размещения.


Выберите «Empty Template», а затем «Open».

Затем откроются опции конфигурации аудио. Если вы незнакомы с подобными вещами, то эта часть может оказаться довольно запутанной.


В качестве Audio System должна быть выбрана система по умолчанию (default).

Driver зависит от того, какая у вас звуковая карта. Драйверы ASIO имеют низкую задержку, то есть можно подключить электрогитару прямо к компьютеру и использовать в DAW гитарные эффекты. Если вы попробуете сделать это без ASIO, то появится задержка сигнала, измеряемая с сотнях миллисекунд, что сильно испортит попадание в ритм.

Хороший драйвер ASIO даёт задержку меньше 40 мс. За довольно небольшие деньги можно приобрести внешнюю звуковую карту, которая обеспечит чрезвычайно низкую задержку и позволит подключать пианинную клавиатуру, микрофоны и гитары.

Ничего этого я делать не буду, мы ведь просто воспроизводим треки, записанные в сигналах MIDI, и поэтому выберем MME.

Input Device — этот параметр не важен, мы не будем записывать звуки.

Output device тоже здесь не особо важно.

Однако важно установить для Sample Rate значение 44.1kHz. Всё остальное оставим без изменений. Это единственное, что важно, потому что этот стандарт нужно использовать для наших музыкальных дорожек.

Нажмите на «Start» и скорее всего программа не выдаст никаких ошибок. Ardour запустится и выполнит поиск VST-инструментов по папкам. Затем вы увидите нечто подобное:


Ardour Editor

Если это окно не отобразилось, то найдите в правом верхнем углу кнопку «Editor» и нажмите её.

Затем нам нужно просто сообщить Ardour, где находятся VST (если вы не поместили их в одну из стандартных системных папок). Для этого выберите в меню Edit > Preferences. В окне Preference нужно выбрать в левом меню навигации Plugins > VST, а затем изменить путь (Edit the path) к папке с VST.


Ardour VST Preferences

Закончив с этим, снова нажмите на Editor в правом верхнем углу. И на этом всё, программа настроена и готова к созданию музыки.

Записываем басовую партию


Это самая простая часть, и если честно, для некоторых игр и сцен можно на этом и закончить.

Добавьте в сессию Ardour новую MIDI-дорожку. Просто нажмите правой клавишей мыши и выберите Add Track, или выберите в меню Track > Add Track, Bus or VCA….


Add New Track

Появится целая куча опций. Выберите в левой панели Midi Tracks, а затем в пункте Instrument основной панели выберите наш простой синтезатор PULS (у меня он называется PULS_1_1). Выбрав инструмент, нажмите «Add and Close».

Теперь в редакторе появилась новая дорожка. Её можно расширить, наведя мышь к одному из краёв, пока не появится курсор изменения размера. Должна появиться небольшая клавиатура. Нажмите на клавишу мышью. Если вы не слышите звука, то что-то не так; напишите комментарий к оригиналу статьи и я попытаюсь вам помочь.

Выбранная дорожка подсвечивается красным, а в левой части окна появляется пара небольших элементов.


Те самые элементы

Там вы увидите PULS_1_1; дважды щёлкните по нему. Откроется окно VST. У всех VST есть окно, даже у самых простых. Часто оно имеет странный интерфейс, созданный автором VST, а элементы управления расположены без какой-либо логики и смысла. На самом деле, есть несколько VST, которые я не смог использовать, потому что не разобрался, как ими управлять.

Но каждый из этих элементов управления связан с тем, что можно программно изменять через управление MIDI. На самом деле, MIDI — это не только играемые вами ноты, но и набор сигналов управления. DAW наподобие Ardour позволяют вам передавать эти сигналы при помощи отрисовываемых кривых и графов. Например, можно постепенно увеличивать звук или постепенно выкручивать какой-то регулятор с 0 до 100 в течение нескольких тактов музыки. (Кто знает, что делает этот регулятор? Это уже проблема VST, а Ardour просто передаёт сигналы.)

Если у вас есть midi-контроллер, или если вы его приобретёте, то сможете крутить регуляторы и привязывать их к элементам управления VST (так вы начинаете создавать ту музыкальную студию, фотография которой представлена в начале статьи). Со временем вам возможно захочется вложить в это деньги, но не потому, что вы знаете, как играть на пианино, а потому, что это упрощает прослушивание сэмплов и настройку параметров при написании большого количества музыки или при её более глубоком изучении.

Не забывайте о всех этих способах управления MIDI на будущее, если захотите поэкспериментировать.

Ну ладно, вернёмся к басовой партии. Вы должны увидеть следующую картину:


Окно PULS

Можете настраивать эти оранжевые кнопки, как вам нравится. Запустите проигрывание одной из этих клавиш на дорожке в основном окне, чтобы понимать, что вы делаете. Но играйте ноты от C3 и ниже, ведь мы хотим услышать басовые ноты (прокрутите клавиатуру вниз с помощью странной полосы прокрутки слева от клавиш). Вот несколько советов:

  • OSC1 и OSC2 — это генераторы частот. Они напоминают генератор синусоид и создают «шум».
  • Effects любопытны тем, что каждая из этих кнопок включает соответствующий эффект.
  • Release — это длительность затухания ноты, верхняя правая кнопка — самое долгое, все отключенные кнопки — самое короткое.
  • LFO — это генераторы низких частот (low-frequency oscillation), создающие долгие плавные эффекты; ну, или, по крайней мере, для этого они обычно используются. По сути, они, как и генераторы OSC, создают волну, но вместо генерирования звука они постепенно увеличивают или уменьшают один из параметров синтезатора. Если представить синусоиду, то её верх — это 100%, а низ — 0%; и она, например, используется для изменения громкости звука. То есть когда LFO наверху, или на 100%, у нас полная громкость, и т.д.

    Разные VST-синтезаторы имеют различные опции для целевого параметра LFO. Наш синтезатор прост, поэтому и опции у него простые. Но они могут становиться довольно безумными.
  • LFO Shape — это форма волны, воспроизводимой LFO. Можно выбрать синусоиду, треугольную, пилообразную или квадратную волну
  • LFO Dest — это целевой параметр LFO, что было объяснено выше.
  • LFO Speed — это скорость колебания LFO. Иными словами, скорость воспроизведения выбранной формы волны
  • LFO Depth — насколько вверх и вниз движется выбранная форма волны

Получив нужный звук, можно закрыть окно VST.

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

Нажмите правой клавишей мыши на поле элементов слева и выберите New Plugin. Просмотрите все дополнительные меню и найдите в них BlueARP. Откроется следующее диалоговое окно подтверждения:


Диалоговое окно подтверждения

Выберите Add. Мы не хотим заменять уже имеющийся инструмент PULS, а хотим добавить новый. Вообще-то я бы не назвал BlueARP инструментом, но в мире VST особой разницы нет.

Видите, ли VST могут выводить сигналы, а также получать в качестве входного сигнала вывод других VST. Их можно соединять в цепочки (это зависит от того, способен ли на это выбранный VST) и создавать странные, восхитительные и удивительные эффекты.

После выбора Add инструмент Blue ARP может открыться сам по себе. Это нормально,
но сначала нам нужно переместить его элемент в поле элементов на самый верх, до PULS. Поле элементов будет выглядеть следующим образом:


Blue ARP перед PULS

Это говорит программе, что Blue ARP будет выполнять вывод сигнала в PULS. BlueARP будет изменять вводимые нами ноты MIDI.

В правом верхнем углу окна Blue ARP есть раскрывающийся список, в котором написано «01 / 12»; откройте этот список и выберите что-нибудь другое. После выбора нажмите ноту на клавиатуре, но не отпускайте её.


Окно Blue ARP

Ого! Звучит круто, правда? Я выбрал 51.

Разумеется, вы можете создать и свой, но вам потребуется хорошо изучить эти элементы управления. Займитесь этим! Там всё не так сложно, просто это не входит в рамки темы быстрого написания музыки. Для меня вполне достаточно пресетов.

Получив нужный нам звук, мы можем закрыть окно VST. На экране редактора Ardour нужно убедиться, что выбран маленький значок карандаша, и что включена привязка к сетке на каждом такте. Давайте установим примерно 120 ударов в минуту и размер 4/4.


Полезные для нас настройки

Теперь нажмите на самое начало нашей дорожки и перетащите поле примерно на 20-25 секунд. В настоящем проекте вам понадобится создать более короткую композицию, но для демонстрации мы всё сделаем быстро.

Важно, чтобы ваше поле начиналось с каждого начала дорожки. Стоит нажать примерно на 20-25 секундах и перейти назад к началу. Теперь при перемещении мыши по этому новому полю вы увидите зелёный прямоугольник. Именно в него мы будем записывать ноту.

Выберите ноту из начала дорожки, начните с самого начала, и перетащите её к концу. Я выбрал F2. Завершив, нажмите несколько раз клавишу пробела, пока не услышите, что музыка воспроизводится.

Отлично.

Можете изменять длину своей ноты и добавлять новые ноты. Пока не накладывайте их друг на друга и не слишком часто их меняйте, ведь это всё-таки басовая партия. Вот как выглядит моя дорожка:


Моя крутая басовая партия

И на этом наш бас готов.

Создаём мелодию


Давайте оставим Ardour на минуту в фоне и откроем Melody Generator 2. По сравнению с коммерческим ПО эта программа уродлива.


Боже мой, ну и хаос

Но со своей задачей она справляется. Интерфейс запутан и неудобен, зато результаты работают, а сама программа бесплатна. Итак, вот что мы сделаем.

Зададим в качестве модели значение Attraction Model. Можно поэкспериментировать и с другими, я просто подобрал то, что даёт наилучшие результаты. В разделе Meter самой левой панели нужно выбрать размер 4/4, чтобы он соответствовал заданному в Ardour.

Я создал в Ardour 12 тактов басовой партии; это можно понять по толстой белой линии, идущей сверху вниз по дорожкам. Также над дорожками в разделе Bar:Beats маленькие числа.


Bar:Beats

Поэтому зададим Nr Bars в Melody Generator 2 так, чтобы они совпадали.

Затем нужно изменить Key в панели Pitch Parameters, чтобы этот параметр соответствовал тому, что мы поместили в басовую партию. По сути, можно просто загуглить тональность «F-Major» («фа мажор»), чтобы увидеть, какие ноты входят в «фа мажор», и т.д.; нужно сделать так, чтобы басовые ноты соответствовали тональности. Убедитесь, что выбираете тональность, использованную в басовой партии.

Все остальные настройки пока оставим без изменений. Когда мы закончим, то сможем поиграться с ними и понять, что они делают.

Нажмите на New Melody в панели Melody Construction . Затем прямо под ней можно нажать Add complete part.

Бум! — теперь в окне появилась музыка.


Музыка, сгенерированная магией

В левой верхней панели можно нажать на play. Иногда во время воспроизведения окно зависает, но это не важно, оно оживёт, когда музыка завершится. При желании можно изменить MIDI-инструмент, но пока нас устраивает пианино.

Можете понажимать другие кнопки в панели Melody Construction, чтобы рандомизировать части и сгенерировать их заново. В раскрывающихся списках есть пара опций, в которых указано «No constraints». При изменении этих опций мелодия будет более повторяющейся, и часто нам нужно именно это.

Завершив работу нажмите Ctrl+M или выберите пункт меню Melody > ExportAsMidi. Сохраните куда-нибудь файл.

Вернитесь в Ardour, выберите в меню Session > Import и импортируйте файл .mid, который мы только импортировали из Melody Generator 2. Пока нам не нужно менять никаких опций импорта. После этого добавится ещё две дорожки — удалите вторую, она была для второй руки, которую мы не генерировали в Melody Generator 2 (на пианино ведь играют двумя руками). Чтобы удалить дорожку, щёлкните по ней правой клавишей мыши и выберите remove.

Теперь выберите нашу новую дорожку, в которой есть ноты. В окне элементов добавьте к этой дорожке PULS, вы уже знаете, как это делается; но на этот раз замените имеющийся инструмент. Также измените вывод с Master на out 1+2.


Переключаемся на 1/2

Закончив с настройкой, можете нажать на пробел и послушать новую композицию!

Совершенствуем музыку


Будем считать, что при создании басовой партии вы соблюдали некую тональность; тогда обе части должны быть в строе. Можете попробовать заново генерировать мелодии, пока не получите что-нибудь подходящее, или просто перемещайте отдельные ноты в мелодии вверх и вниз или удаляйте их, если они вам не нравятся.

Эта часть полностью зависит от ваших вкусов, но скорее всего мелодию придётся ещё подшлифовать. Давайте этим займёмся.

Экспорт


В Ardour выберите Sesson > Export > Export to Audio File(s). Можете скопировать мои настройки, но самое важное здесь — формат файла. Все остальные настройки уже выбраны правильно.


Настройки окна экспорта

Вот мои результаты; единственное, что я сделал — изменил две ноты в мелодии.


Моя композиция, которую я назвал «Embelish the detail of the lost» (берегите уши).

Дальнейшие шаги


И это всё, что нужно для быстрого создания дорожек. Но вот что можно сделать ещё:

  1. Поэкспериментировать с параметрами вашего ПО, узнать, как создаются разные случайные мелодии, более энергичные композиции (с бОльшим количеством нот), композиции в миноре с меньшим количеством нот.
  2. Скачать больше VST-инструментов. С помощью тех же инструментов можно даже генерировать композиции, напоминающие оркестровые. В Интернете есть кучи бесплатных VST-инструментов.
  3. Создавать более длительную музыку. Попробуйте многократно повторять музыкальные фразы. Можно изменять фразу одного инструмента, пока остальные остаются такими же, и т.п.
  4. Добавить больше инструментов. Честно говоря, чаще всего достаточно небольшого количества.
  5. Узнать больше о создании музыки. Тональности, строи, и т.д. В этом несложно разобраться, если вы мгновенно можете слышать результат в ПО.
  6. Вероятно, вам также нужно будет узнать, как выполнять потоковое воспроизведение музыки в вашем самописном движке.



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