На GitHub появился DIY-проект, автор которого провёл reverse engineering звуковой карты 1990-х годов Sound Blaster 1.0. Рассказываем, в чем особенности устройства.


Фото schlae / CC BY-SA

Проект Snark Barker


Проект со схемой и прошивками для создания клона звуковой карты Sound Blaster (SB) опубликовали под названием Snark Barker. Реплика на 100% совместима со старыми компьютерами, которые поддерживает оригинальное устройство, но построена на современных электронных компонентах.

SB 1.0 выходила в 1990-х годах, а теперь встречается довольно редко, из-за чего на интернет-аукционах её цена может достигать сотен долларов. Проект Snark Barker даёт любителям винтажных компьютеров опробовать когда-то популярное устройство в деле и потратить в разы меньше: самая дорогая часть системы — плата. Заказать десять штук можно примерно за $45 (плюс доставка).

Почему именно Sound Blaster 1.0?


Оригинальную SB 1.0 выпустила в 1989 году компания Creative Technology. Sound Blaster стала не первой аудиокартой для ПК на рынке, но первой, которая объединила поддержку цифрового звука, два различных типа синтеза и MIDI-интерфейс.

В других устройствах за синтез звука отвечали аналоговые осцилляторы с частотной модуляцией волн. В SB 1.0 появился новый способ, за который отвечал контроллер Intel 8051. Для создания цифрового звука использовалась импульсно-кодовая модуляция. При этом карта обеспечивала естественное звучание инструментов.

Благодаря своим достоинствам Sound Blaster 1.0 стала популярной в компьютерах начала 1990-х. Карту поддержала сама Microsoft. В корпорации отмечали, что устройство в наибольшей степени соответствовало стандарту Multimedia PC, который определял рекомендуемую конфигурацию ПК.


Фото Wdwd / CC BY-SA

О реплике


Автор проекта воспроизвёл все функции оригинальной карты: FM-синтез, поддержку входящих сигналов от компьютера, MIDI-инструментов и микрофонов. Учтены и два способа воспроизведения звука, поддерживаемые оригинальной Sound Blaster.

Принцип действия первого похож на тот, что использовался в устройстве Covox Speech Thing: звук регулировался драйвером, который по очереди отправлял на карту информацию о сэмплах. Во втором случае звуком управлял DMA-контроллер на материнской плате. Он предоставлял аудиокарте прямой доступ к памяти, после чего Sound Blaster с заданной периодичностью получала информацию о сэмплах.

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

mov	p1,#80h	; Start DAC at the halfway point, 1000 0000
mov	c,t1	; 1 Put comparator output into carry bit
mov	p1.7,c	; 2 If greater, then leave MSB as is. If less, clear MSB
setb	p1.6	; 1 Set DAC to upper or lower halfway point
mov	c,t1	; 1 Check comparator output again
mov	p1.6,c	; 2 Rinse and repeat
setb	p1.5
mov	c,t1
mov	p1.5,c
setb	p1.4
mov	c,t1
mov	p1.4,c
setb	p1.3
mov	c,t1
mov	p1.3,c
setb	p1.2
mov	c,t1
mov	p1.2,c
setb	p1.1
mov	c,t1
mov	p1.1,c
setb	p1.0
mov	c,t1
mov	p1.0,c
mov	a,p1	; We are done, copy DAC code into accumulator.

Разработчик проекта точно воспроизвёл характеристики карты на современных компонентах. В качестве контроллера для обработки звука автор предлагает использовать любой микроконтроллер из семейства 80C51. Оригинальную прошивку для него можно найти в репозитории проекта.

На GitHub выложен список и других компонентов, которые необходимы для реализации реплики SB 1.0, — почти все из них доступны в онлайн-магазинах электроники. Для удобства в таблице указаны номера по каталогу Mouser. Однако одну запчасть — переключатель громкости — приобрести уже нельзя. Его предлагается самостоятельно распечатать на 3D-принтере.

Новость о Snark Barker стала популярной на Hacker News. Комментаторы оценили проект как важный, с культурной и образовательной точки зрения — он помогает познакомить новые поколения людей с историей компьютеров и культурой создания аудиооборудования своими руками. Реплика по характеристикам и звучанию ничем не отличается от оригинала.

Аналогичные проекты


Автор Snark Barker ранее уже делал реплику другой популярной звуковой карты начала 1990-х — AdLib Music Synthesizer Card, более известной как просто AdLib. Устройство в своё время было одним из аналогов SB 1.0, которые поддерживали только аналоговый синтезатор звуков.

По словам инженера, реплика AdLib потребовалась ему для ремонта компьютера серии IBM XT 1980-х годов. Инженеру удалось воссоздать карту по фотографиям и воспроизвести не только функции AdLib, но и её внешний вид. Результат полностью совместим со старыми компьютерами того времени. Код прошивки и фотографии устройства вы можете найти в репозитории GitHub.

Ещё один проект от другого аудиоэнтузиаста был посвящен Gravis Ultrasound (GUS). Карта отличалась от аналогов тем, что она синтезировала звук на основе семплов реальных музыкальных инструментов. Звучание GUS казалось менее искусственным, чем у других карт, и поэтому Gravis Ultrasound пользовалась спросом у музыкантов.

Проект по сборке реплики Gravis Ultrasound стартовал в 2015 году и получил название ARGUS. За два года автору удалось создать работающую копию GUS и начать её продавать.

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



О чем мы пишем в «Мире Hi-Fi» и Telegram-канале:

? Звук на проволоке: история телеграфона
? Как превратить ноутбук в радио?
Что нужно знать перед тем, как начать карьеру в аудиоиндустрии
DSD-конвертация: фейк или благо?



Комментарии (41)


  1. tormozedison
    03.03.2019 15:34
    +4

    Видеоблоггер Fagear как-то показал девайс под названием DuoSID — звуковую карту для PC, выполненную на коммодоровских SID'ах. Типа, в девяностых с подобной картой какая-то компания экспериментировала, но не смогла. А он реплику сделал.


    1. atomlib
      04.03.2019 08:07

      Была ещё Innovation SSI-2001, построенная вокруг того же SID.


  1. DrPass
    03.03.2019 19:56
    +1

    Инженеру удалось воссоздать карту по фотографиям и воспроизвести не только функции AdLib, но и её внешний вид. Результат полностью совместим со старыми компьютерами того времени.

    Так AdLib же не надо воссоздавать, в отличие от Sound Blaster. AdLib же — это всего лишь достаточно массовая микросхема-синтезатор Yamaha OPL2 (или OLP3, уже запамятовал), посаженная на шину компьютера, и усилитель. А вот Sound Blaster — совсем другое дело, там уже был «кастомный» звуковой чип от Creative. Это действительно круто.


    1. mediaman
      03.03.2019 21:12

      AdLib использовали OPL2 (YM3812). Автор пишет в блоге, что работая над этим проектом он взял за основу другую карту на базе OPL2, но при этом воссоздал оригинальный внешний вид карточки AdLib


  1. ivansmith
    03.03.2019 20:33

    А в чем отличие сабжа от Sound Blaster AWE32?
    Кажется в нее можно было втыкать дополнительную память под банки инструментов? Не?


    1. DrPass
      03.03.2019 21:32
      +2

      А в чем отличие сабжа от Sound Blaster AWE32?

      Это развитие одного и того же девайса. Только сабж — это первое поколение, AWE32 — это четвертое или пятое. Sound Blaster 1.0 — это монофонический звук с дискретизацией 8К, если не ошибаюсь, плюс FM-синтезатор на базе той же OPL2, как и в AdLib. AWE32 — 44К дискретизация, стерео, волновой синтезатор с загружаемыми банками и расширяемой памятью, плюс линейный вход и микрофон и т.д., наконец, намного более качественный усилитель.


      1. shiru8bit
        03.03.2019 22:10
        +2

        К вопросу о намного более качественном усилителе, надо сказать, что в AWE32 отношение сигнал-шум порядка 60 дБ. То есть постоянно шипит как змея, разница даже с простейшими современными звуковыми картами очень значительная. SB1.0 вживую не слышал, верю, что там было ещё хуже, но трудно представить — как это, намного хуже.


        1. MTonly
          04.03.2019 00:09

          Да, помню разительное отличие SB Live! от кошмарно шипевшей SB 32 (варианта AWE32).


          1. NickyX3
            04.03.2019 08:23

            Live! был хорош! можно было переделать в Emu10k и плагины юзать для него


        1. Newbilius
          04.03.2019 08:16

          Гм, прямо «кошмарного шипения» не слышал, хотя игрался с ними в живую буквально несколько лет назад о_О


          1. romxx
            04.03.2019 09:52

            Есть люди, склонные к гиперболам в речи ;)


        1. easy_john
          04.03.2019 13:11

          > в AWE32 отношение сигнал-шум порядка 60 дБ
          Нет, больше -80db: kawai.spb.ru/files/sound/test/SB32awe_ct2760.htm


          1. shiru8bit
            04.03.2019 13:20

            Я сам не измерял, вспомнил цифру из книжек про железо конца 90-х. Возможно у разных моделей по разному, и может зависеть от настроек микшера (включены-выключены входы), но мои AWE32 шипели очень заметно, было слышно невооружённым ухом. При переходе в том же окружении на TB Montego и SB Live разница была очень существенной, шум полностью пропал. У них вроде -95 дБ. По идее -80 уже должно быть незаметно.

            У Gravis Ultrasound PnP, впрочем, шум был ещё сильнее.


            1. MTonly
              04.03.2019 14:21
              +1

              Есть вероятность, что повышенный шум мог давать включённый линейный / микрофонный вход и/или аналоговый вход CD-Audio, но спустя 20 лет история это уже умалчивает.

              SB Live!, возможно, определяла наличие полезного входного сигнала и автоматически отключала аналоговые входы, а CD-Audio я, например, сразу подключил по SPDIF, что на тот момент было огромным преимуществом SB Live! даже перед значительно более дорогими Guillemot Home Studio Pro 64 и ISIS, на которые автор этих строк засматривался до внезапного появления SB Live! на рынке.


            1. easy_john
              04.03.2019 14:32
              +1

              > Возможно у разных моделей по разному,
              Пяток проверенных лично мной awe32 (минимум 15-летних, между прочим!) — все показывали около 80.

              > может зависеть от настроек микшера
              Безусловно, если включить микрофонный/линейный вход — можно и радио Маяк услышать.

              > У Gravis Ultrasound PnP, впрочем, шум был ещё сильнее.
              По тестам — около -75. Не принципиально хуже.
              Но да, многие жаловались. Обычный GUS classic (предыдущее поколение) в этом смысле был качественнее сделан.


              1. shiru8bit
                04.03.2019 14:34

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

                У Gravis была странная особенность, там шум явно усиливался при запуске ноты по MIDI. То есть если играть арпеджио, с каждой новой нотой был всплеск шума, пшш-пшш-пшш на фоне. Вряд ли там были настолько плохие сэмплы в стандартном банке.


        1. easy_john
          04.03.2019 13:20

          > SB1.0 вживую не слышал, верю, что там было ещё хуже, но трудно представить — как это, намного хуже.

          Нет, не на много. Послушай: kawai.spb.ru/files/sound/cards/sb_15_ct1320.html


          1. shiru8bit
            04.03.2019 13:51

            Да, звучит весьма прилично.


      1. IgorPie
        04.03.2019 16:23

        Частота дискретизации до 23 кГц, 8 бит (плохой кассетник, зато + FM синтезатор).
        Для сравнения, у Commodore Amiga дискретизация до 28кГц, 14 бит (между бобинным магнитофоном и CD).

        В общем-то, бластер сыграл на том, что к AdLib с FM синтезом приделали канал цифрового звука и порт джойстика.


        1. easy_john
          04.03.2019 16:38

          С амигой сравнивать — гиблое дело. Там 4 аппаратных 8бит канала до 57кгц (и более, если использовать хитрые видеорежимы).
          Их можно было использовать как стерео 14бит, но реально такая нужда появилась ближе к закату платформы для воспроизведения чего-то типа mp3 и прочих потоковых, т.к. в нативных амига приложениях повсеместно был трекер.


    1. teleghost
      03.03.2019 23:11
      +1

      А в чем отличие сабжа от Sound Blaster AWE32?
      осторожнее, дражайший: www.ixbt.com/multimedia/awefaq.html
      я читал, читал, и чуть слезу не пустил…


    1. akhkmed
      04.03.2019 12:37

      Как мне кажется, FM-синтез на оригинальных чипах звучит очень интересно, в сравнении с WT-синтезом даже на AWE32 и AWE64.

      Сравните звучание одой и той же композиции, проигранной на AWE64, в сравнении с Adlib, сделанное хабрапользователем tronix286
      soundcloud.com/tronix286/60010_03mid-adlib
      soundcloud.com/tronix286/60010_03mid-awe64

      soundcloud.com/tronix286/81000_07mid-adlib
      soundcloud.com/tronix286/81000_07mid-awe64

      Там же на soundcloud.com/tronix286 есть и ещё более интересная музыка, синтезированная на YM2149F, звучит ещё более оригинально, качественно и очаровательно.


      1. scg
        04.03.2019 13:14

        Подтверждаю. Оригинальный OPL2 звучить лучше, чем SoundBlaster.


      1. easy_john
        04.03.2019 13:17

        Вы взяли миди фаил написанный неизвестно под какой синтезатор (скорее всего под SC), проиграли его через opl3 (при этом используя неизвестно какой парсер, т.к. opl3 напрямую midi не играет) и сравнили с неким (rom) банком в awe. После этого делать такие далеко идущие выводы, что opl3 лучше, ой как некорректно.

        Есть действительно неплохие opl3 треки, которые интересно слушать, но в 99% случаев средний WT синтезатор из 90-ых звучит на порядок лучше olp3.


      1. shiru8bit
        04.03.2019 13:55
        +1

        FM-синтез на любых чипах звучит интересно в качестве музыкального инструмента, потому что это реально синтезатор, довольно гибкий, с хорошими электронными тембрами. А вот в качестве имитатора звуков реальных инструментов он справляется так себе, только некоторые тембры звучат похоже, а остальные совсем не реалистично. Лучший вариант — смешивать сэмплы и FM.


  1. Caracat
    03.03.2019 23:32

    а теперь встречается довольно редко, из-за чего на интернет-аукционах её цена может достигать сотен долларов

    Одну нашел у себя уже, где-то еще одна должна быть ))


  1. curiousGeorge
    03.03.2019 23:43
    +1

    «Разработчик проекта точно воспроизвёл характеристики карты на современных компонентах» — для начала, вряд ли в этом случае человека можно назвать разработчиком. Это не разработка, а простое копирование «один к одному». В принципе, можно не знать вообще ничего о работе SB, и при этом его повторить.

    Естественно, работа проделана серьезная и интересная, просто позиционировать ее нужно соответствующим образом. Это же касается и «современных компонентов» — так как это точная копия, то и компоненты там как раз совсем не современные.

    А так — ещё в средине 90-х некто Юрий (?) Ванин сделал клон SB не путём полного копирования, а творчески переосмыслив оригинальную схему и адаптировав ее к тем деталям, которые можно было достать в России. Это уже можно назвать полноценной разработкой.

    Ну и сейчас есть пара новых проектов действительно на современных компонентах — я делал на FPGA, кто-то — на Atmega.


    1. DrPass
      04.03.2019 00:41
      +1

      Это не разработка, а простое копирование «один к одному».

      Справедливости ради, не совсем простое копирование. Во-первых, сделать качественный реверс-инжиниринг девайса из полутора сотен элементов, для которого нет схемы, это задача сама по себе довольно сложная. Тем более что Creative достаточно тщательно старалась, чтобы никто не знал, что за чип спрятан под названием DSP-1321.
      Во-вторых, прошивку-то он сам разрабатывал, имея только спецификацию на Sound Blaster.


      1. curiousGeorge
        04.03.2019 14:13

        Creative достаточно тщательно старалась, чтобы никто не знал, что за чип спрятан под названием DSP-1321
        — это перестало быть тайной лет 30 назад :)

        прошивку-то он сам разрабатывал
        — это точно? Может, я не очень внимательно смотрел, поэтому не знаю, «с нуля» прошивка, или дизассемблирование.


  1. sergeyns
    03.03.2019 23:52

    Эх, помню как купил «настоящую» SB и был поражен что в любимом Transport Tycoon появилась полифония… На дешевых карточках её не было…


  1. Stas911
    04.03.2019 04:01

    А расскажите — разница современных внешних USB-аудиокарт от чипа в стандартном ноуте насколько велика? Это вообще слышно при простом прослушивании музыки?


    1. shiru8bit
      04.03.2019 07:36
      +2

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


    1. 8street
      04.03.2019 10:04

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


    1. engine9
      04.03.2019 12:59

      У меня на двух ноутбуках стандартная аудиокарта дает звук со слышимыми наводками от процессора (ну или других элементов, возможно питания). При разных операциях звук различается, например скролл в браузере слышен как скрип, а распаковка архива как шум.


      1. shiru8bit
        04.03.2019 13:49

        Со внешней средне-приличной USB-картой (без внешнего питания) заменил БП, и появился цифровой звон при движении мышки. Видимо качество БП сильно влияет.


  1. goodwind
    04.03.2019 08:43

    самая дорогая часть системы — плата — стоит около $45

    здесь закралась ошибка — по ссылке явно видно что 40 евро стоит заказ на заводе десяти плат (из них 25 евро — доставка)


  1. romanetz_omsk
    04.03.2019 13:51

    А ещё к ней нужен компьютер с ISA. А потом упражняться под DOS с выкраиванием основной памяти под драйвера. В эпоху AWE64 вспоминаю запуск игрушек с миди как страшный сон. Хотя, звук достойный, относительно OPL3.


    1. shiru8bit
      04.03.2019 13:58

      А ещё есть такой прикол, что этому компьютеру с ISA нужен корпус, и некоторые карты из линейки AWE тупо не влезают во многие корпуса по длине. Найти такой корпус особый квест.


    1. DrPass
      04.03.2019 14:13

      Да ничего там страшного, стандартный device=high в config.sys, и собственно, на всё хватало. Если, конечно, память не была закакана всякими резидентными свистоперделками. А ISA во времена AWE64 была на любом компьютере, кроме какой-то уж особо редкой экзотики.


  1. FishDude
    04.03.2019 14:19
    +2

    Самодельный ISA SB воссоздавал, будучи ещё подростком, г-н Роман 'hax' из 'Deep Shadows':
    HW Sound blaster 1.0 emulator, 1996

    жутковатое фото этой самоделки
    image


  1. axe_chita
    05.03.2019 15:19
    +2

    Все уже украдено сделано до нас

    -=====================================¬
    ¦ «SoundLite 1.0» AKA VaninBlaster: ¦
    ¦=====================================¦
    ¦ SoundBlaster 2.0 compatible sound ¦
    ¦ card. Full support by SB DSP and ¦
    ¦ only OPL2 FM-synthesizer emulator ¦
    +-------------------------------------+
    ¦ SB_a3.hp: ¦
    ¦A schematic diagram in HP GL2 format ¦
    ¦for direct printing or ploting ¦
    ¦=====================================¦
    ¦ Designed by JIV © 1994-1995 ¦
    ¦ For noncommercial use only! ¦
    ¦ For more information call to: ¦
    ¦ JIV EA BBS 7-82022-22913 ¦
    ¦ FIDO: 2:5030/168.28, 2:50/350 ¦
    L=====================================-
    ¦ SB_ROM12.BIN: ¦
    ¦ A ROM firmware for VaninBlaster ¦
    ¦ for 12 MHz clock ¦
    L=====================================-
    ¦ SB_ROM12.BIN: ¦
    ¦ A ROM firmware for VaninBlaster ¦
    ¦ for 14.31818 MHz clock ¦
    L=====================================-
    ¦ SBMANUAL.TXT ¦
    ¦ Руководство пользователя и тех. ¦
    ¦ характеристики ВанинБлястера ¦
    L=====================================-
    ¦ SB_pkg.pcx: ¦
    ¦ A component location diagram in pcx ¦
    ¦ format ¦
    L=====================================-
    SB_NOTES.TXT Замечания по настройке ВанинБлястер.
    COMPLECT.TXT Список деталей на ВанинБлястер


    Из оригинальной документации
    Не буду шибко распространяться по поводу истории создания этой схемы. Все началось с ковоксов, неуемное любопытство заставило покопаться поглубже в программах восроизведения звука, да так это дело засосало, что в итоге получилась такая вот схемка. Эта схема сделана с полного нуля, т.е. я не опирался ни на какие другие схемные и микропрограмные решения. Пользоваться пришлось в основном дизассемблированными текстами драйверов и игрушек, да набором исходников по программированию SB, любезно добытых для меня Алексом Мартыновым где-то в Штатах через сам не наю что.Надо сказать, схемка получилась вполне работоспособная, хоть и не без недостатков. Но и помучился я с ней изрядно. Кстати, сделал я ее в этом виде довольно давно, и последнее время в основном отлавливал глюки в прошивке ПЗУ да пытался пытался извлечь комерческую выгоду из этого дела. Но это уже совсем другая история:) Теперь вот считаю возможным пустить сие произведение в свободное плавание.
    Что ЭТО такое?
    Это, собственно говоря, DSP от SoundBlaster 2.0. Без балды. Даже не эмулятор. Вполне нормальный соундбластер. Вот только с FM-синтезатором вышла заминка из-за отсутствия соответствующих микросхем (OPL-2). Практика покозала, что один DSP не всегда правильно определяется программами. Одно время я усилено делал патчи, компенсирующие этот недостаток, потом мне это надоело и пришлось приделать эмулятор OPL-2. В принципе ничего не мешает прицепить сюда нормальный OPL. Даже схему менять не надо. Убрать эмулятор и кой-чего добавить по мелочи. Я это делал, но OPL пришлось выпаивать из битого китайского бластера.
    Основное внимание я уделял совместимости и устойчивости в работе, поэтому аналоговая часть получилась весьма корявая :( Особенно АЦП. Хотя и все остальное не без греха :) ВанинБлястер (ВБ) поддерживает ВСЕ_ИЗВЕСТНЫЕ_МНЕ команды SB. Похоже, их несколько больше, чем проходило в различных посвяшенных этому делу доках. Но не буду утверждать, что это все команды. По крайней мере, я не встречал проблем с програмщиной последние полгода эксплуотации ВБ. Сейчас я знаю две проги (весьма никчемные) в которых ВБ не работает напрочь. Одна не правильно автодетектит SB, а другая просто не работает :( Причину я пока не нашел. Есть проблемы под полуосью с миди. Хочется все свалить на драйвер. MIDI вот. Поскольку, IMHO, это не очень нужная фича, то и внимания я ей уделял не много. Посему положеной FIFO нет (ПЗУ маловато для реализации), и кой чего еще не доделано по тем же причинам. Но кое где и это работает.


    Если кому-то интересна эта схема привожу ссылку на архив. Надеюсь хабра эффекта не будет