Как я открыл для себя SID
Так уж повелось, что Московским демосценерам собраться и потусить, собственно, в Москве, совершенно ломает. Для того, чтобы выпить пива и посмотреть демки, нужно пилить в другой город и, желательно, по адовой Нижегородской трассе. Так как предание о зимнем Дихальте уже давно кануло в пучине бытия, народ чуток приуныл. Но дело спас Shuran33, внезапно решив отбыть из Нерезиновска в славный город Владимир. Тут, что называется, все карты легли как надо, вплоть до Нижегородской трассы. Но, как известно, демосценер – человек затейливый, его хлебом не корми, дай только прод выкатить. Естественно, сразу же начались разговоры о том, что с пустыми руками в гости не ездят, и надобно чего-нибудь изваять. Но эти разговоры, как обычно, так бы ими и остались, если бы Великий и Ужасный, тот, имя которого нельзя называть, внезапно бы не объявил о желании написать код для бездуховного исчадия загнивающего запада – компьютера Commandore 64. Тут-то все и завертелось.
Как вы уже, наверное, поняли, музыкальное сопровождение выдалось писать мне. И хотя мои духовные скрепы гнулись как могли, дьявольское искушение вкусить запретный плод SIDа взяло верх.
Начал я с поиска подходящего музредактора. Беглое гугление сразу же привело меня к кросс-редактору Goat Tracker II. Причем поминание имени его всуе всегда сопровождалось восторженными комментами клятых буржуинов. В общем, установил и увидел:
Goat tracker представлял из себя жудкое черное окно, под завязку набитое числами. Нет, я не впервые видел трекер, но тут программисты превзошли себя. Устанавливая программу под Windows, я наивно предполагал, что там будет куда потыкать мышкой – ан нет, все на хоткеях, описание которых запрятано в одно из дальних окон. И все бы ничего, но в Windows версии не было поддержки Midi-клавиатуры. Нет, можно конечно, как в старые добрые времена тыкать ноты на обычной клаве, но, черт возьми: «Я слишком стар для этого дерьма» (ц) не помню кто.
Далее мой взор упал на мультиплатформенный кросс-трекер DefleMask.
Интерфейс у него оказался весьма приятным, все и везде тыкалось мышкой, и миди-клава пела и плясала сразу и из коробки. Все бы хорошо, если бы не одно но: компилировать эта штука не умела. Вернее умела, но в один непонятный файл без указания адресов для плейера и т.п. В общем, тоже оказалась непригодной.
И вот, когда я уже почти отчаялся, нелегкая привела меня к нативному трекеру SID-Wizard. Ввиду отсутствия живого «комода», запустил я его через эмулятор WinVICE.
От SID-Wizard мышино-оконного интерфейса я, конечно же, не ожидал. Тот же набор чисел, как и в Goad Tracker, те же хоткеи… но, восьмибитный дух, который хлынул бушующим потоком из открытого окна эмулятора, вдохновлял неистово. К тому же, порывшись в настройках WinWICE я нашел включение midi keyboard, а в настройках самого SID-Wizard – ее поддержку! Вот это было то, что надо, и то, чего я от нативного редактора совсем не ожидал.
В общем, можно было начинать работать, причем на работу эту оставалась пара вечеров с суммарным временем в 3-4 часа. Далее нужно было изучить сам SID и понять, как извлекать из него звуки. Тут стоит отметить, что SID в корне отличается от теплого, лампового и всенародно любимого AY. И вот что он может:
во-первых, у него, как и у AY, три независимых генератора тона. Однако, в отличие от AY, они могут генерировать не только меандр, но и пилу, треугольный сигнал, а также белый шум (отдельно каждый)
во-вторых, он имеет три отдельных генератора огибающих стандарта ADSR (Attack, Decay, Sustain, Release). К слову сказать, единственный генератор огибающей есть и у AY, но он куда более ущербный – в нем можно управлять лишь общей «длиной» огибающей и ее заранее заданной формой. Тогда как в SID можно управлять каждой отдельной частью ADSR, делая звучание инструмента так, как вам хочется. Именно поэтому при написании музыки для AY обычно формируют огибающую, напрямую управляя регистрами громкости, а штатный генератор ADSR используют не по прямому назначению, а для извлечения нестандартных форм сигнала (обычно пилообразных).
Еще одна фишка, которая есть у SID – это многорежимный фильтр. Несмотря на то, что разобраться с ней мне не хватило времени, штука крутая и позволяет мутить совершенно волшебные басы.
Редактор инструментов в SID-wizard предоставляет возможность в числовом виде (читай – в виде HEX кодов) задавать все эти параметры для каждого инструмента, тем самым определяя его звучание. Кроме этого, в теле инструмента с помощью WAV-таблиц эти параметры можно динамически менять в процессе звучания. В общем, все оказалось безумно интересно, но времени на изучение требовалось явно больше пары часов, и я принял решение «тырнуть» готовые инструменты из примеров и чуток подкрутить их под себя.
Редактор паттернов в SID Wizard имеет вполне привычный для любого трекерщика вид. Нотная колонка, колонка с инструментами и двойная колонка с эффектами. В отличие от спектрумовских трекеров – нет колонки с громкостями, но, как я понял, SID напрямую это не умеет, и эффект «эха» мне пришлось делать с помощью эффекта с кодом 5, позволяющего задавать смещение в ADSR огибающей.
Еще одно отличие – редактор позиций. Если в том же Vortex Tracker позиция задается для всего трехканального паттерна, то в SID-Wizard ее можно прописывать для каждого канала. То есть, например, когда нужно повторять только басовую партию, а остальное будет другим – просто указываем номер в тройке параметров позиции, а не делаем новый паттерн каждый раз.
В общем, такого беглого изучения мне хватило, чтобы написать коротенький трек, конечно, не претендующий на патийную шедевральность, однако вполне годящийся для нашего Fast Demo.
Дема получилась простенькая, но веселенькая, и посмотреть ее можно здесь:
www.pouet.net/prod.php?which=66989
Трек отдельно вы можете послушать у меня в SoundCloud:
soundcloud.com/ejkot
А почитать исчерпывающий мануал по SID – Wizard здесь:
www.witchmastercreations.com/files/creating_chiptunes_with_sid-wizard_second_edition.pdf
16 комментариев
Вот хороший пример достижений в SID музыке: csdb.dk/release/?id=72563 (там есть ссылка на mp3)
--------
Bits 0-3 (VOLO-VOL3) select 1 of 16 overall Volume levels
for the final composite audio output. The output volume
levels range from no output (0) to maximum volume (15 or
#F) in 16 linear steps. This control can be used as a
static volume control for balancing levels in multi-chip
systems or for creating dynamic volume effects, such as
Tremolo.
www.6502.org/documents/datasheets/mos/mos_6581_sid.pdf
----------
p.s. Приятный трек в soundcloud :)
Брюс Уиллис из «Последний бойскаут» устами древнего переводчика.
По DefleMask согласен, он всегда выдает не пойми что, разработчик молчит аки Зоя Космодемьянская.
неистово плюсую, надо будет тоже попробовать)