Area 5150 - демо для PC XT/CGA и музыка для PC Speaker

Демогруппы CRTC и Hornet, выпустившие нашумевшее в 2015 году демо 8088 MPH, меняющее представление о возможностях PC XT и CGA, собрались с силами и выпустили своё свежайшее творение на ту же тему — Area 5150. Оно выставлялось на демопати Evoke 2022 и заняло там первое место в категории демо для альтернативных платформ (куда свалено в кучу всё, что не современный PC), обойдя даже весьма креативную работу 420 Years Of Teletext.




Демо работает на IBM PC Model 5150 образца 1981 года, самой первой персоналке от IBM, в конфигурации, более известной как PC XT: 16-битный процессор Intel 8088 на частоте 4.77 МГц, 640 килобайт ОЗУ, графический адаптер CGA, жёсткий диск и PC Speaker. Эта платформа была знаменита своими бедными графическими и звуковыми возможностями, в частности, 4-цветной графикой в вырвиглазной чёрно-бело-фиолетово-голубой палитре. Как оказалось, она таит в себе множество сюрпризов.

Авторы демо работали над своим новым творением несколько лет. Мне посчастливилось присоединиться к ним в качестве приглашённого музыканта, призванного обуздать несчастный PC Speaker, одноканальная квадратно-волновая музыка для которого играет на протяжении основной части демо. В финальной части с кредитами также звучит крутой одноканальный MOD-подобный цифровой трек от cTrix.

Я не был вовлечён в активную разработку самого демо, и не могу раскрыть вам его секретов — пока авторы не выкатили обещанный полноценный making of, мне остаётся только догадываться, как они смогли достигнуть таких результатов. Но пока что я могу рассказать о моей части проделанной работы, а также о том, каким образом я попал в такой переплёт.

Несколько эпох назад, а именно в 2017 году я разработал VST-плагин под названием PCSPE, в котором реализовал идею смешивания нескольких виртуальных музыкальных каналов в один посредством системы приоритетов, аналогичной основному способу реализации звуковых эффектов в 8-битных играх, что позволило создавать псевдо-полифоническую музыку для PC Speaker довольно удобным образом в любых современных VST-совместимых цифровых студиях. Я не помню точно, что именно тогда послужило толчком для этой затеи, но думаю, что демо 8088 MPH оказало определённое внимание.

В 2019 году я разрабатывал звуковой код и трекер для MS-DOS игры Planet X3 от The 8-bit Guy (Дэвид Мюррей), где использовалась аналогичная PCSPE концепция, но реализованная в виде отдельного трекера под MS-DOS. Примерно в то же время я выпустил музыкальный альбом System Beeps, написанный с помощью PCSPE. Так случилось, что один из авторов 8088 MPH, Джим Леонард (trixter) также участовал в проекте игры, и Дэвид с Джимом оказались среди первых слушателей моего свежего альбома.

В январе 2020 года Джим написал мне с предложением поучаствовать в новом проекте демки для XT в качестве музыканта, уже хорошо знакомого с PC Speaker'ом. На тот момент демка ещё не имела названия, ожидалось, что разработка займёт несколько месяцев, и релиз состоится на одной из крупных демопати с личным присутствием авторов — это было важным моментом, авторы изначально не хотели публиковать работу в формате онлайн-конкурса. Но случился 2020, и живые демопати отложились надолго. Также отложилась и демка.

Я успел уже подзабыть об этом проекте, но в этом году работы наконец возобновились, и 18 июля авторы подготовили видеозапись черновой сборки демки, которую я мог бы использовать в качестве референса. Проблема заключалась в крайне сжатых сроках, у меня было всего шесть дней, чтобы подготовить черновой вариант музыки, чтобы использовать оставшееся до Evoke время для интеграции саундтрека с самой демкой и внесения соответствующих правок в оба компонента сборки. Пришлось бросать всё и срочно браться за дело.

Саундтрек должен был звучать целых семь минут, и это тоже было проблемой, потому что типичная длина моих композиций составляет 2-3 минуты, и я редко превышаю эту длительность. Типично я пишу около минуты музыки за день. Поначалу я не представлял себе, как я смогу осилить такой большой объём за имеющееся время. Однако, я вспомнил свой опыт с The Board (2011) от Alone Coder'а — если не ошибаюсь, исторически это была первая демка с моей музыкой. При работе над ней мы были также очень ограничены по времени, и AlCo предложил просто взять мои старые наброски и соединить их в трек. Так я и поступил — взял три совершенно разных трека, написал переходы, и результат вполне себе сработал, хотя по моим тогдашним критериям я не посчитал бы это готовым треком.

Также, несколько лет назад я узнал о концепции театральной, или событийной музыки, которую описал в своих видео широко известный в узких кругах Преподоподобный Саша Зилков — подходе к сочинению, где музыка структурируется по событиям другого произведения и может состоять из довольно музыкально-странных идей, подчёркивающих определённые моменты. Это является альтернативной к классическому подходу, где в основе лежит продуманная композиция с определёнными гармоническими эволюциями. Такой альтернативный подход едва ли впишет композицию в вечность, но тем не менее, музыка будет звучать интересно и разнообразно в контексте сопутствующего произведения.

Так как в гармонические эволюции я всё равно не умею, я решил использовать событийный подход. Набросков в запасе у меня не было, поэтому я начал с их создания — набросал фрагменты для тех сцен демо, где у меня было представление о том, что могло бы там звучать. Я использовал быстрый подход — писал партию баса и ударных вручную, после чего наигрывал относительно длинную импровизацию под этот фрагмент на MIDI-клавиатуре, а запись нарезал по кусочкам в более-менее внятную мелодию и дорабатывал руками. В демке есть несколько отсылок видеоигровой тематики, в частности это Какодемон из Дума и игра Marble Madness, и я записал соответствующие музыкальные фрагменты из этих игр. Далее все части были более-менее усреднены в одинаковую тональность. Темп был изначально усреднён до 119 BPM на всю длительность, так как при нарезке фрагментов в итоговую композицию смены темпа добавили бы проблем, и на это потребовалось бы дополнительное время.

Когда части для определённых сцен и звуковые эффекты в начале и конце демо приобрели достаточно чёткую форму, я заполнил пробелы, дописав переходы и партии между уже расставленными по таймлайну фрагментами, и добавил детализации в разных местах, в частности, чтобы подчернуть действие — дополнительные ударные перебивки, звуковые эффекты. Таким образом мне удалось подготовить почти окончательную версию саундтрека к 23 июля, и это дало авторам демо дополнительное время на интеграцию. Согласно всеобщей старой доброй демосценовой традиции пилить всё до самой последней минуты, синхронизация со сценами была выполнена очень приблизительно — совпадает только три сцены, а музыка от части сцен вообще заползла в другие, хотя в моей первоначальной нарезке были продуманы и оформлены в композиции все переходы между сценами. Авторы обещают выпустить через некоторое время финальную версию, где в том числе будет улучшена синхронизация музыки со сценами.

С технической точки зрения процесс работы над музыкой был таким же, как для System Beeps — трек писался в Reaper'е, с использованием плагина PCSPE, в режиме 120 Герц. В данном случае использование именно Reaper'а очень помогло — в нём есть базовые возможности редактирования видео, поэтому я мог видеть действие сразу во время сочинения фрагментов композиции, с хорошей синхронизацией. Я также слегка нарезал черновое видео, подогнав длительности некоторых сцен под музыкальные фрагменты для более гладких переходов, и авторы использовали эту нарезку как ориентир для синхронизации. Также для улучшения синхронизации было предусмотрено применение системы маркеров событий PCSPE, но в патийной версии она толком видимо не задействована.

Area 5150 soundtrack in Reaper

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

Пара слов о круто звучащей музыке в части с кредитами. Её написал cTrix для движка, написанного Andrew. Этот уникальный движок выдаёт всего один канал 6-битного PCM с частотой около 15 килогерц, с обновлением музыки на 60 герц. В нём нет ни мишкирования, ни громкости, ни ресемплинга — все сэмплы на всех нотах и громкостях нужно подготавливать отдельно, и они должны умещаться в 64-килобайтном сегменте памяти. Но зато это даёт возможность делать что-то ещё, помимо проигрывания музыки. Интересная идея, которую было бы интересно реализовать в будущем и в наших ZX-овых палестинах.

1 комментарий

avatar
Невероятно крутая демо! Спасибо за статью!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.