Как стать автором
Обновить

Трекерная музыка глазами разработчика

Время на прочтение6 мин
Количество просмотров31K
Кажется, тема трекеров раскрыта в статьях неоднократно. Явлению без малого 27 лет, но по сей день хакерское число-буквенное представление музыки окутано аурой таинственности, ведь превращение «шума» на экране в красивейшую композицию — ничто иное, как магия. Что же в основе? И почему трекеры популярны по сей день? Попытаюсь ответить на эти вопросы с точки зрения разработчика подобных программ.

image

Первым в мире трекером принято считать программу Ultimate SoundTracker, написанную немецким разработчиком и композитором Карстеном Обарски в 1987 году для компьютера Commodore Amiga. Программа была создана в первую очередь для написания музыки к играм. Своим внешним видом она напугала немало музыкантов с классическим образованием. Ее называли сложной и лишенной логики. Выглядел первый трекер примерно так:

image

Не смотря на критику, у программы впоследствии появилась армия поклонников, самые продвинутые из которых взломали оригинальный код и на его основе неофициально стали выпускать улучшенные клоны. К примеру, так выгдядел достаточно популярный клон под названием NoiseTracker:

image

Но откуда такой странный интерфейс? Где нотный стан и знакомые для музыкантов символы? Давайте разберемся.

Commodore Amiga обладал революционными аппаратными характеристиками для домашнего компьютера того времени. В частности, на нем был установлен звуковой чип Paula — настоящий цифровой сэмплер. В оперативной памяти компьютера лежало несколько фрагментов записанных звуков (сэмплов) в формате PCM 8-бит. Чип Paula мог играть одновременно четыре таких сэмпла, динамически меняя их громкость и скорость — это давало четыре независимых канала (или дорожки), на каждом из которых могла играть определенная последовательность из сэмплов. Но четыре канала — не так уж много, при написании сложной музыки нужно очень аккуратно их использовать. Например, взяв аккорд из трех нот у нас останется ровно один канал, на котором нужно умудриться расположить барабаны и бас. Поэтому интерфейс первых трекеров — это ничто иное, как пульт управления звуковым чипом, представление компьютерной музыкальной композиции на самом низком уровне. Мы видим четыре аппаратных канала (колонки), и некую последовательность действий внутри. Все параметры чипа полностью подконтрольны пользователю. Это, кстати, объясняет смысл популярного направления чиптюн — музыки, написанной для аудиочипа (хотя сегодня чаще всего используются эмуляторы известных чипов, или вообще некая стилизация).

image
MOS8364 Paula — звуковое сердце компьютера Amiga

Так как трекеры писали программисты, их логика представляется крайне простой. Музыка — это последовательность команд для звукового чипа. То есть — нечто, напоминающее программу на ассемблере. Последовательность исполняется трекером сверху вниз. Для наглядности команды группируются по каналам, описанным выше. Одна команда может сразу выполнять несколько полезных действий, так как состоит из следующих частей:
  • нота (три символа); например: A#3;
  • номер сэмпла (один символ);
  • номер эффекта (один символ); например, эффект F менял скорость воспроизведения, а эффект 3 обеспечивал плавный переход с одной ноты на другую;
  • параметр эффекта (два символа; диапазон от 00 до FF).

Например, C#2 8 240 сообщает трекеру буквально следующее: в текущем канале начинай играть сэмпл 8 с частотой, соответствующей ноте C#2, при этом плавно понижая тональность (на это указывает код эффекта 2) со скоростью 40. Все числовые параметры записывались в шестнадцатеричной системе счисления, так как это более компактно и, опять же, привычно.

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

Еще один плюс исходит из желания программистов все упрощать. А именно: часто повторяющиеся куски кода нелепо каждый раз переписывать с нуля — достаточно выделить их в отдельные подпрограммы и далее в нужных местах указывать адреса этих подпрограмм. Так же и в музыкальном коде. Например, припев повторяется два раза. Просто дублировать его вручную — неудобно и неэкономично. Поэтому мы выделяем припев в отдельную подпрограмму, которая в среде музыкальных редакторов называется паттерн (кусок партитуры), и далее по ходу композиции в нужных местах выставляем номер этого паттерна. Кроме того, если в дальнейшем вы захотите изменить пару нот в припеве, то сделать это нужно будет лишь в одном паттерне, а не во всей композиции целиком. В классических трекерах имеется список паттернов. Он говорит, в каком порядке играть паттерны и внешне выглядит, например, так: 01, 02, 03, 03, 01, 01. После нажатия PLAY трекер начинает этот список читать и играет паттерны ровно в том порядке, в котором они указаны. В Ultimate SoundTracker размер паттерна был жестко задан — 4 канала, 64 строки.

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

Ну и завершающая фишка классических трекеров — формат файлов для хранения музыки. Самый распространенный из них — формат MOD, который пришел с Ultimate SoundTracker и укоренился в трекерном пространстве на года, даже после того, как PC сместил Амигу со сцены. Прелесть такого файла в том, что в нем хранится вся необходимая информация для проигрывания и редактирования: сэмплы, паттерны и некоторые дополнительные параметры. Скачав MOD, вы услышите музыку именно в том виде, в котором задумывал ее автор, с мельчайшими нюансами. А если понравится — без труда сможете позаимствовать сэмплы или сделать ремикс, изменив содержимое паттернов. Сегодня огромный архив MOD-музыки вы можете найти на сайте Mod Archive.


Подборка MOD-композиций от Jogeir Liljedahl

Что же было дальше? Количество клонов SoundTracker росло. Они обрастали новыми функциями, совершенствовался интерфейс, увеличивалось количество каналов, нагрузка смещалась с железа на софт. Трекерная музыка стала частью компьютерной субкультуры Demoscene. Amiga уходила в прошлое, и трекеры переползали на другие платформы, самой массовой из которых стала конечно же PC. Тут появились новые трекерные форматы 2-го поколения: S3M (Scream Tracker), XM (FastTracker), IT (Impulse Tracker). И пока домашние компьютеры не отличались большой производительностью, а файлы по сети передавались с черепашьей скоростью — MOD-музыка стала своеобразной заменой современного MP3, так как файлы с неплохим звуком могли весить считанные килобайты.


Impulse Tracker (DOS) — самый мощный трекер 2-го поколения


FastTracker — второй по популярности после Impulse Tracker. Битвы «кто круче» между ними были нешуточные


MilkyTracker — для ностальгирующих по временам DOS и FastTracker. Кроссплатформенный трекер с открытым кодом

В конце 90х мощность компов дошла до уровня, пригодного для генерации звука CD качества (16-бит, 44100 Гц) в реальном времени. Пошла волна всевозможных программных синтезаторов, появился формат плагинов VST. Разумеется, это отразилось и на трекерах. Одним из первых представителей трекеров 3-го поколения стал революционный Jeskola Buzz, давший возможность вместо сэмплов использовать сложные комбинации модулей-синтезаторов и эффектов. За ним в игру вступили не менее крутые Psycle, Renoise, SunVox и т.д. По качеству они уже не уступали дорогому студийному ПО, хотя в интерфейсе по-прежнему узнавался родной Ultimate SoundTracker. Для кого-то это комфортная среда, для кого-то — нет. Исключительно дело вкуса и привычки, не более. Но когда речь заходит о характерном трекерном звучании, то это относится либо к старым программам, либо к некой стилизации под них, ибо на практике трекеры 3-го пололения по звуку могут ничем не отличаться от какого-нибудь Cubase с набором VST-шек.


Jeskola Buzz — первый трекер, совмещенный с модульным синтезатором


Renoise — один из наиболее активно развивающихся трекеров сегодня


ModPlug Tracker в свое время показал, что переход трекеров на Windows неминуем


Моя разработка — SunVox. Чем-то похож на Jeskola Buzz, но есть серьезные отличия: поддержка большого количества платформ (Windows, Linux, OSX, iOS, Android и т.д.), уникальная система компоновки паттернов и и.д. Здесь не буду углубляться в детали, чтобы не использовать хаб «я пиарюсь» :)

Лично я серьезно познакомился с трекерами где-то в 1995 году, когда брат установил FastTracker2 на наш не самый быстрый компьютер. До этого я уже видел какие-то примитивные 4-канальные MOD-трекеры в текстовом режиме, но от последней программы просто снесло башню… Графический режим с мышкой, 32 канала, 16-бит, огибающие громкости! И все это на 486SX без звуковой карты (мы использовали собранный на коленке Covox)! Не имея музыкального образования, не умея играть ни на одном инструменте, не зная нот, с того дня (и по сей день) это стал для меня самый удобный и логичный способ ввода музыки в компьютер. Думаю, многие читатели смогут вспомнить очень похожу историю :)

Интересные факты


  • Для тех, кто знаком со стандартом MIDI, стоит запомнить одно важное отличие канала в трекере от канала в MIDI. MIDI-канал чаще всего назначен на один инструмент. Трекерный канал ни к чему не привязан — это просто хранилище для любой информации, в нем могут играть любые инструменты в любом порядке, но (и это очень важно) не одновременно. Например, на одном канале сначала может играть пианино, а сразу после него сэмплы барабанов.
  • Классический трекер управлял звуковым чипом Paula компьютера Amiga. Существуют трекеры и для других чипов, более простых, неспособных играть сэмплы. Речь о таких микросхемах, как AY-3-8910 (знакомая нам по ZX Spectrum 128), SID (для компьютеров Commodore 64), Yamaha YM3812 (OPL2, FM-синтезатор в старых звуковых картах).


Трекер EdLib для звуковых карт с чипом OPL2.
Теги:
Хабы:
0
Комментарии2

Публикации