Введение
Звуковой чип MOS Technology 6581/8580 SID (Sound Interface Device) — это встроенный программируемый звуковой генератор, использовавшийся в домашних компьютерах Commodore CBM II, Commodore 64, Commodore 128 и MAX Machine. Наряду с графическим чипом VIC II, SID сыграл ключевую роль в том, что Commodore 64 стал самым продаваемым домашним компьютером в истории, и ему отчасти приписывают зарождение демосцены.
The MOS Technology 6581/8580 SID (Sound Interface Device) is the built in programmable sound generator chip of the Commodore CBM II, Commodore 64, Commodore 128, and MAX Machine home computers. Together with the VIC II graphics chip, the SID was instrumental in making the C64 the best selling home computer in history, and is partly credited for initiating the demoscene.
История
SID был разработан инженером Бобом Яннесом, который позже стал соучредителем компании Ensoniq, производящей цифровые синтезаторы и сэмплеры. Яннес возглавил команду, в которую входили он сам, два техника и оператор САПР, которые спроектировали и завершили чип за пять месяцев во второй половине 1981 года. Яннес вдохновлялся предыдущими разработками в индустрии синтезаторов и был недоволен текущим состоянием компьютерных звуковых чипов. Вместо этого он хотел создать высококачественный инструментальный чип, поэтому в SID реализованы функции, такие как генератор огибающей, ранее не встречавшиеся в звуковых чипах домашних компьютеров. "Я считал, что звуковые чипы на рынке, включая те, что использовались в компьютерах Atari, были примитивными и, очевидно, разработаны людьми, не разбирающимися в музыке", – говорил он. Программист может изменять частоту среза фильтра и резонанс. Внешний аудиовход позволяет пропускать внешний аудиосигнал через фильтр. Кольцевая модуляция, фильтр и методы программирования, такие как арпеджио (быстрое циклическое изменение частот для создания звуков, напоминающих аккорды), в совокупности создают характерное звучание и ощущение музыки SID. Из-за несовершенства производственных технологий того времени и недостаточной изоляции аналоговой и цифровой частей чипа, выход 6581 (до ступени усиления) всегда был незначительно смещен от нулевого уровня. При каждом изменении регистра громкости возникал слышимый щелчок. Быстро регулируя усиление усилителя через основной 4-битный регистр громкости, этот сдвиг можно было модулировать как PCM, создавая "виртуальный" четвертый канал для воспроизведения 4-битных цифровых сэмплов. Этот эффект был известен и использовался с самого начала, в частности, компанией Electronic Speech Systems для создания речевых сэмплов в играх, таких как Impossible Mission (1984, Epyx) и Ghostbusters (1984, Activision). Первым примером использования сэмплов в музыкальных композициях стал трек Мартина Гэлви в игре Arkanoid (1987, Imagine), хотя он позаимствовал эту идею из более раннего пакета барабанных синтезаторов под названием Digidrums. Длина воспроизведения сэмплов изначально ограничивалась объемом памяти, а затем – техническими возможностями. Популярный ранний сэмпл из игры Kung Fu Fighting (1986) имеет длину воспроизведения, измеряемую секундами. c64mp3 (2010) и Cubase64 (2010) демонстрируют длину воспроизведения, измеряемую минутами. Кроме того, это требовало значительных вычислительных ресурсов – сэмплы приходилось выводить очень быстро (по сравнению со скоростью процессора 6510). Более совершенная технология производства 8580, использованная в поздних ревизиях Commodore 64C и Commodore 128 DCR, практически устранила этот сдвиг, что привело к значительному снижению громкости оцифрованных звуковых сэмплов. К счастью, уровень громкости можно было в основном восстановить либо с помощью аппаратной модификации (подключив аудиовход), либо, что было более распространенным, с помощью программного трюка, использующего форму волны Pulse для намеренного воссоздания необходимого сдвига. Этот программный трюк обычно временно делал один голос недоступным, хотя умелые музыкальные композиции могли сделать эту проблему менее заметной. Отличный пример улучшения качества, заметно уменьшающего громкость сэмплированного канала, можно услышать во вступлении к игре Electronic Arts Skate or Die (1987). Гитара рифф практически не слышен при воспроизведении на Commodore 64c или Commodore 128. На демо-вечеринке X'2008 был представлен совершенно новый метод воспроизведения оцифрованных сэмплов. Этот метод позволяет получить беспрецедентные четыре (программно смешанных) канала 8-битных сэмплов с опциональной фильтрацией поверх всех сэмплов, а также два обычных звуковых канала SID. Метод работает путем сброса осциллятора с использованием бита тестирования генератора формы волны, быстрого наращивания новой формы волны с выбранной формой волны "Треугольник", а затем отключения всех форм волны, в результате чего ЦАП продолжает выводить последнее значение, которое и является желаемым сэмплом. Это продолжается в течение двух строк развертки, что достаточно для произвольного вывода сэмплов без сбоев. Однако он более требователен к процессору, чем описанный выше трюк с 4-битным регистром громкости ЦАП. Поскольку фильтрация в чипе SID применяется после генераторов формы волны, сэмплы, полученные таким образом, могут быть отфильтрованы обычным способом. В оригинальном руководстве к SID упоминается, что если одновременно включено несколько форм волны, результатом будет побитовое И между ними. На самом деле, вход на выводы ЦАП формы волны получает сразу несколько форм волны. Например, форма волны "Треугольник" создается с помощью отдельной схемы XOR и сдвига влево. Старший бит управляет тем, инвертирует ли схема XOR значение аккумулятора, видимое ЦАП. Таким образом, одновременное включение "Треугольника" и "Пилы" приводит к смешиванию соседних битов аккумулятора на входе ЦАП. (Схема XOR не играет роли, поскольку она всегда отключена при выборе формы волны "Пила".) Форма волны "Импульс" создается путем соединения всех битов ЦАП через длинную полоску из поликремния, подключенную к логике управления импульсом, которая цифровым способом сравнивает текущее значение аккумулятора со значением ширины импульса. Таким образом, выбор формы волны "Импульс" вместе с любой другой формой волны приводит к частичному смешиванию каждого бита на ЦАП, а громкость формы волны зависит от состояния импульса. Генератор шума реализован как 23-битный линейный рекурсивный сдвиговый регистр (LFSR) с обратной связью (полином обратной связи: x^22+x^17+1). При использовании формы волны "Шум" одновременно с любой другой формой волны, подтягивание через селектор формы волны быстро приводит к обнулению всех битов в сдвиговом регистре XOR, подключенных к выходу ЦАП. Поскольку нули сдвигаются в регистр при тактировании шума, и единицы не производятся для их замены, может возникнуть ситуация, когда сдвиговый регистр XOR полностью обнулится. К счастью, эту ситуацию можно исправить, используя бит тестирования управления формой волны, который в этом случае вводит один бит 1 в сдвиговый регистр XOR. Некоторые музыканты также используют комбинацию форм волны "Шум" и бит тестирования для создания необычных звуков. Чипы 6581 и 8580 отличаются друг от друга несколькими способами. Оригинальный 6581 был изготовлен по более старой технологии NMOS, которая использовала напряжение 12 В постоянного тока. 6581 очень чувствителен к статическому электричеству, и при неправильном обращении фильтры переставали работать, что объясняет большое количество неисправных чипов 6581 на рынке. 8580 был изготовлен по технологии HMOS II, которая требует меньше энергии (9 В постоянного тока) и, следовательно, позволяет чипу работать при более низкой температуре. 8580, таким образом, гораздо более долговечен, чем 6581. Кроме того, благодаря более стабильным генераторам формы волны, эффекты смешивания битов менее заметны, и, следовательно, комбинированные формы волны близки к исходным спецификациям SID (в которых указывалось, что они будут комбинироваться как побитовое И). Фильтр также значительно отличается между двумя моделями. Диапазон отсечки 6581 напоминает сигмоидальную функцию в логарифмическом масштабе и сильно варьируется от чипа к чипу, в то время как диапазон отсечки 8580 представляет собой прямую линию в линейном масштабе и является более согласованным между чипами и близок к фактическим спецификациям разработчиков. Фильтр 8580 также может достигать более высокого резонанса. Кроме того, улучшенная изоляция между аналоговыми и цифровыми схемами сделала выход 8580 менее шумным и искаженным. Шум в системах серии 6xxx можно уменьшить, отключив аудиовход. Потребительская версия 8580 была перемаркирована как 6582, хотя кристалл на чипе идентичен стандартному чипу 8580, включая маркировку '8580R5'. Dr. Evil Laboratories использовал его в своей карте расширения SID Symphony (проданной Creative Micro Designs в 1991 году), и он также использовался в нескольких других местах, включая одну звуковую карту для ПК. Несмотря на задокументированные недостатки, многие музыканты SID предпочитают дефектный чип 6581 исправленному 8580, некоторые даже считают недостатки настоящими "особенностями", которые отличали чип SID от других звуковых чипов того времени. Основная причина этого заключается в том, что фильтр создает сильные искажения, которые иногда используются для имитации инструментов, таких как искаженная электрогитара.
Замечания и подделка
Поскольку микросхемы SID 6581 и 8580 больше не производятся, они стали очень востребованными. В конце 2007 года на eBay начали появляться различные бракованные чипы, выдаваемые за "новые". Ненадежный источник: дата=январь 2012. Некоторые из этих перемаркированных SID имеют неисправный фильтр, другие – неисправные каналы или генераторы шума, а некоторые вообще не работают. Предполагается, что перемаркированные чипы – это либо заводской брак, оставшийся со времен производства, либо чипы, извлеченные из партий, использовавшихся для карт HardSID. Поддельные микросхемы SID также поставлялись ничего не подозревающим покупателям недобросовестными производителями из Китая; на чипах внутри упаковки наносилась лазерная гравировка с полностью фальшивыми маркировками, и это вообще не были чипы SID.
Аудио игры
Большинство игр, созданных для Commodore 64, использовали чип SID, предлагая звуки от простых щелчков и сигналов до сложных музыкальных композиций и даже целых цифровых аудиодорожек. Благодаря техническому мастерству, необходимому для создания музыки на этом чипе, и его универсальным возможностям по сравнению с другими звуковыми чипами того времени, композиторы для Commodore 64 описывали SID как самостоятельный музыкальный инструмент. Однако, большинство программ не использовали весь потенциал SID, поскольку неверные опубликованные спецификации вынуждали программистов применять только хорошо задокументированные функции. Некоторые ранние программы, напротив, опирались на эти спецификации, что приводило к неслышимым звуковым эффектам. Известные композиторы игровой музыки для этого чипа – Мартин Галвей, автор многих игр, включая Wizball и Times of Lore, и Роб Хаббард, создавший музыку для таких проектов, как ACE 2, Commando, Delta, International Karate, IK+ и Monty on the Run. Среди других примечательных композиторов – Джерон Тел (Cybernoid, Turbo Outrun, Robocop 3 и Myth), Бен Даглиш (The Last Ninja, Jack the Nipper, Firelord, Gauntlet), Дэвид Данн (Finders Keepers и Flight Path 737), Дэвид Уиттакер (Speedball, BMX Simulator, Glider Rider) и Крис Хюльсбек (R Type, Turrican и The Great Giana Sisters).
Записи
Тот факт, что многие энтузиасты предпочитают звучание реального чипа программным эмуляторам, привел к созданию нескольких проектов, направленных на сохранение аутентичного звука чипа SID для современного оборудования. Проект sid.oth4 содержит более 380 песен в формате MP3 высокого качества, записанных на аппаратном обеспечении HardSID, а проект SOASC= включает в себя всю коллекцию High Voltage SID Collection (HVSC), состоящую из 49 дисков (более 35 000 песен), записанных с реальных Commodore 64 в формате MP3 высокого качества. Оба проекта подчеркивают важность сохранения аутентичного звучания чипа SID. В 2016 году была запущена коллекция Unepic Stoned High SID Collection (USHSC). Это YouTube-канал, на котором загружено более 50 000 мелодий SID в виде отдельных видеороликов. USHSC основан как на SOASC=, так и на HVSC, но также загружает записи новой музыки SID, опубликованной на сайте Commodore Scene Database (CSDb). На канале представлены плейлисты, содержащие примерно по 5000 мелодий каждый.
Переоформление аппаратных средств
В 2008 году был выпущен проект HyperSID. HyperSID – это VSTi, функционирующий как MIDI-контроллер для аппаратного модуля HyperSID (синтезатор на основе чипа SID), разработанный компанией HyperSynth. SwinSID – это аппаратная эмуляция SID, использующая процессор Atmel AVR, а также реальный проигрыватель SID на базе процессора Atmel AVR. Проект V SID 1.0 (кодовое название SID 6581D, "D" – digital) от Дэвида был создан в 2005 году. Этот проект представляет собой аппаратную эмуляцию чипа SID, основанную на интервью Боба Яннеса и технических спецификациях. Движок V SID 1.0 был реализован на FPGA EP1C12 Cyclone от ALTERA, на отладочной плате ALTIUM, и эмулирует все характеристики оригинального SID, за исключением фильтра, который является цифровой версией (IIR-фильтр, управляемый процессором). Проект PhoenixSID 65X81 (2006) был направлен на максимально точное воссоздание звучания SID с использованием современного оборудования. Работа чипа SID была воссоздана на FPGA, на основе интервью с создателем SID, оригинальных технических спецификаций и сравнений с реальными чипами SID. Он отличался от подобных попыток использованием реальных аналоговых схем вместо эмуляции для легендарного фильтра SID. Однако проект был прекращен, так как Джордж Пантазопулос, руководитель проекта, скончался 23 апреля 2007 года в возрасте 29 лет. C64 Direct to TV эмулирует значительную часть аппаратной части SID, исключая некоторые функции, такие как (в основном) фильтры. Он сводит весь C64 к небольшой схеме, помещающейся в джойстик, при этом теряя некоторую совместимость. SIDcog – это программный эмулятор SID, работающий на Parallax Propeller. Все три канала могут быть эмулированы на одном из восьми COG процессора Propeller. ARMSID – это замена MOS 6581 и MOS 8580, подключаемая "plug & play", с поддержкой аналоговых входов. FPGASID – это реплика SID на основе FPGA, обеспечивающая высокое качество воспроизведения оригинального устройства, включая все функции, такие как аудиофильтры и регистры управления. Устройство представляет собой полнофункциональное стерео-решение и может заменить два чипа SID в одном сокете SID. Аппаратной базой является FPGA Altera MAX10.