Слушаем SID-музыку(Commodore 64) через OPL3 на современных ПК

    image

    Наверное не все любители чиптюн музыки знают, что SID музыку можно слушать через FM-синтезатор OPL3. Кто-то может подумает, что это будет что-то ужасное, а оказывается если сделать простой маппер, то можно получить весьма хорошее звучание, как это сделали несколько разработчиков в программе LLSID ещё в далеком 2007 году. Есть две версии этой программы 1.2 под DOS воспроизводящая музыку через аппаратный OPL3-синтезатор и версия 1.4 под Windows, но через собственный эмулятор YMF262(OPL3). Эмулятор звучит не так, как железный OPL3-синтезатор, поэтому я версию 1.4 не рекомендую.

    В данном случае будем рассматривать звуковые карты на шине PCI, чтобы можно было послушать на современных ПК. Сразу нужно определиться, какие звуковые карты подходят для этой цели — это звуковые карты с аппаратным FM-синтезатором работающие в DOS, т.к. LLSID работает только в DOS. К таким звуковым картам относятся ForteMedia на чипе FM801-AU, YAMAHA 724/744/740/754, C-Media CMI8738, Avance Logic ALS4000, ALS300 либо ESS ES1938, ES1946, ES1969, Crystal CS4281, S3 Sonic Vibes, Aztech AZT3328, Riptide RACC010, а также некоторые чипы VIA (нужно смотреть datasheet). Эти карточки довольно легко можно найти в продаже и хотя некоторые имеют драйвера под Windows 98 не выше, но это не помешает послушать музыку на современных компьютерах. Главное чтобы ваш ПК имел слот PCI либо тогда взять C-Media 8738 для слота PCI-e. Все остальные PCI-звуковые будь то от Creative или от Vortex AU8810/30 не имеют аппаратного OPL3 либо эмулируют FM в довольно плохом качестве.

    Далее предлагаю ознакомиться как звучит SID-музыка через ForteMedia FM801. Записывал через простенький смартфон, т.к. карты видеозахвата у меня нет, а по другому экран или звуковой поток ДОСа не запишешь, поэтому извините за плохое качество видео.


    На записи через дешевый микрофон качество музыки намного хуже реального звучания, но это только для ознакомления. Но как можно представить звучит по «железному» и мне такая музыка нравится даже больше, чем через эмуляторы SID (MOS 6581). Так что FM-синтезаторы на дешёвеньких звуковых картах прошлого это не рудимент, который годится только для проигрывания мидишек. SID-музыка жива, каждый месяц выходят новые треки под этот чип. Правда не на всех звуковых SID так звучит, например, на YAMAHA 7xx будут пропадать некоторые ноты.

    Для тех кто не хочет возиться с настройкой DOS я подготовил настроенный софт для флешки. Вам нужно только взять любую старую флешку объемом более 100 Мб и отформатировать в FAT32 с переносом системных файлов MS-DOS. Далее перенести все файлы из моего архива в корень флешки и перезагрузиться загрузив ПК с USB.
    Autoexec.bat и Config.sys настроены с разными вариантами загрузки драйверов разных звуковых карт. В качестве менеджера памяти используется JEMM386. Norton Commander, Volkov Commander и Dos Navigator уже настроены для прослушивания музыкальных файлов sid, а также a2m, sat, dfm, hsc, xms, mid.

    Один маленький лайфхак, накануне подготовки этого материала на моей YAMAHA 744B в одном ухе пропал звук. На всех сайтах, где я искал информацию по данной проблеме я не нашел ответа. Тогда я решил перепаять крупные детали на своей звуковой. Это был конденсатор, стабилизатор 78L05 и ОУ. Звук появился после перепайки операционного усилителя. Сначала я заменил на такой-же какой и был JRC 4558 — нормально звучит с басами. Потом поставил подороже OPA2134 — басов стало меньше, но звук стал чище. Может знающий тут человек подскажет, какие из этих ОУ лучше ставить на звуковые карты, чтоб хорошо и не дорого было, как AD8620: JRC 4580 M-TE1, OPA2134 PA, LME 4960 NA, LM 4562.

    Скачать настроенные файлы для DOS

    А вот видео — сравнение звучания OPL3 в Dosbox и Yamaha 744 и Windows Wavetable. Если в setup настройках звука в игре указать General Midi или Roland MT32 и порт 330 то будет использоваться midi-устройство, которое используется по умолчанию в Windows:



    Отличия хорошо заметныа в наушниках. В игре Duke Nukem 3D более качественный стерео звук слышен, а в игре Tekwar инструменты даже по другому звучат, вот вам и разница эмулятора и железа… И так в каждой игре слышны отличия эмулятора от реальной карты.
    Поделиться публикацией

    Комментарии 38

      0
      JRC4558 с биполярным входом, он низастее, как и NE5532
      Остальные в списке почти все с полевым входом. Ставить? Панельку. При некоторой сноровке, на soic футпринт припаивается dip панель.
      Измерить питание. Если питание всего 5 вольт, то смотреть в сторону хороших R2R.
      У меня в звуковухе прижились R2R от Analog devices, марку запамятовал, но звук был сбалансирован, прогонял через RMAA и субъективно отслушивал.

      В целом, SID и AY весьма неплохо эмулируются в софте, поэтому аппаратный эмулятор на FM синтезаторе выглядит сильно на любителя.
      К сожалению, флэшку заценить уже не смогу, на мак мини не очень хорошо дело с PCI слотами, но 8-битный синтез люблю.
        0

        А вместо 4558 можно поставить 4580M? У него 15 МГц против 3 у 4558. Что это даст, громкость?

          +1
          Опыт показал, что мегагерцы не очень сильно влияют на удовлетворенность в звуке. Это как выбирать гитару. Может быть, Вам подойдет TL082 / 072 серединистый ОУ, без избытка НЧ/ВЧ. У меня накопилось множетство ОУ, дешевых и дорогих, и честно говоя, ни за один из них я бы голову не поставил. Выбирать по вкусу, тем более, они чаще всего в качестве повторителей, либо усилителей с небольшим Ку, т.к. с выхода цифровых чипов уже идет 3-5 вольт, а питание — 12.
          OPA2134 хорош, но при Ку=4 от его плюсов толку будет минимум и наверняка найдется ОУ в 5 раза дешевле, который будет звучать по сути так же.
            0
            Спасибо большое за подробный ответ
        0
        Автор ошибается, на CMI-8738 _есть_ аппаратный OPL-3.
          +1

          В даташите написано "FM emulator" — значит не аппаратный

            0
            Нет, не значит. Это значит только то, что там внутри не оригинальный ямаховский OPL-3. Ну так он много где не оригинальыный (по поводу чего пуристы любят устраивать жаркие дебаты).
              0
              В c-media действительно очень хороший фм-синтез, есть мнение, что идентичный оригиналу.
            0
            Записать звук на смартфон можно так: взять проводную гарнитуру, заменить в ней микрофон на резистор, подать сигнал со звуковой карты через конденсатор.
              0

              Спасибо, надо будет попробовать. А какие кондер и резистор?

                0
                Диапазон довольно широкий, например: 1 кОм и 0,1 мкФ.
              0
              хорошо бы сравнить fm-эмуляцию в dos, fm-эмуляцию в dosbox и родной sid в c64. а без сравнения в статью въедут только 2,5 любителя «булькающей музыки» :)
                0

                Сравнить LLSID в dos и dosbox трудно, потому что трудно качественно записать звук в dos. Можно сравнить OPL3 реальный и досбокса, сразу скажу, что реальный лучше

                  0
                  лучше и хуже — это понятия субъективные и зависят от конкретного человека

                  можно экранки сравнивать
                    0

                    Ну я сделаю сравнительное видео и добавлю сюда в статью

                0
                Послушал \MUSIK\sid\Hubbard_Rob\Rasputin.sid — половина нот теряется, остальные звучат совершенно не так, как должны. В общем, всё равно что полноценные midi-файлы на том же OPL слушать.
                  0
                  А какая звуковая карта использовалась? У меня на YAMAHA 744B ноты тоже теряются, а вот на ForteMedia FM801 — нет. Жаль на ESS 1938 не тестировал. Я специально статью написал, чтобы привлечь внимание к такому плееру, вдруг найдется программист, который сможет написать усовершенствованый такой плеер и с возможностью запуска на Windows`ax
                    0
                    Ну какая карта использовалась — DOSBox, т.е. SB16 (эмуляция OPL-3 там весьма точная).
                    Для Windows — а зачем? Много ли у кого сейчас есть звуковая карта с FM-синтезатором? Не говоря уже о том, что SID-плееров, эмулирующих реальный звук, просто вагон и маленькая тележка hvsc.de/players
                  0
                  Для программной эмуляции есть еще неплохой SoundFont, с сэмплами OPL3. И программный SF синтезатор: Coolsoft VirtualMIDISynth
                    0
                    Программная эмуляция не нужна — смысл статьи в том, как послушать SID музыку на реальном железе
                      +1
                      Реальное железо — это SID, остальное программная либо аппаратная эмуляция
                    0
                    В ALS4000 встроен клон OPL3, по звучанию неотличимый от оригинала.
                      +2
                      Посмотрел, послушал…
                      Если хочется "просто слушать *.SID", то это так себе решение. Программная эмуляция (как например плагин к foobar2k, который работает на любой современной венде) сделает куда более точную эмуляцию.
                      Если брать «железную» реализацию — можно взять любой из готовых проектов «портативных» плееров с SD, как эмулирующих звучание SID программно, так и имеющих сокет под реальный чип.
                      Любой из аппаратных вариантов, использующих сокет под чип требует наличие самого SID'а, которые очень «нежные», что касается перегрева и статики. И стоят эти чипы немало. Однако даже такая слабая эмуляция, как SwinSID (недорогая платка по размерам чипа с ATmeg'ой, которая эмулирует работу реального чипа) по уровню превосходит то, что продемонстрировано в видео. А ещё есть ARMSID и FPGASID.

                      Для примера два трека в видео.
                      Arman Behdad — Eternal Love Orchestra (на 01:59).
                      В видео толком вообще не работает фильтр на басовой линии. Как должно быть, можно послушать тут: https://www.youtube.com/watch?v=OeuFkT5yQh4.
                      Arman Behdad — Fallen In Love (на 02:57).
                      На основных синтезаторах недостаточно быстрое затухание, из-за чего получается усиленный эффект эха и взаимного наложения, что приводит просто к пиликающей какофонии. И фильтр на бас-линии снова «не туда». Как должно быть: https://www.youtube.com/watch?v=p2AVZ31ZXGc

                      И это только два знакомых мне трека и через микрофон. Остальные я просто не сравнивал.
                      Как итог: если задача просто по-упражняться в эмуляции одного чипа силами другого, не применяя «нормальную» программную эмуляцию — отлично, цель достигнута. Если задача послушать более-менее близкое звучание — нет, спасибо.
                        +1
                        Это не эмуляция, а маппинг — это немного, но сильно разные вещи. Если говорить музыкальным языком — это оркестровка, переложение музыкальной пьесы из одного рода исполнения в другой (например, скрипичную для рояля и наоборот). Даже само название стаьи говорит об оркестровке, а не об эмуляции — «слушаем SID-музыку через OPL3». Кому то нравится оркестровки, кому то нет. Кому то нравится слушать midi через OPL2/3, а кому то категорически нет, а только через Wavetable. Возможно маппинг не идеально реализован, поэтому я специально статью написал, чтобы привлечь внимание к такому плееру, вдруг найдется талантливый программист-энтузиаст, который сможет написать усовершенствованый такой плеер и с возможностью запуска на Windows NT-совместимых
                          0
                          Не представляю, как там технически можно замапить инструменты.

                          SID-файл это код для процессора 6502, который формирует записи в регистры звукового чипа 6581. Проигрывание инструмента это выставление начальной частоты и громкости на осцилляторе и 50 раз в секунду уменьшение амплитуды (затухание) и возможно небольшое изменение частоты для достижения некоторых эффектов.

                          На OPL есть тоже осцилляторы и их так же дёргают. Про логику инструментов (тут мы закончили ноту и начали новую) знает только код 6502.
                            0

                            На уровне 6502 эмуляция — далее идёт маппинг команд 6581 в OPL3. Немного об этом разработчики описали в исходниках

                              0
                              Маппинг команд чипа, но не инструментов. Вряд ли это можно назвать оркестровкой. «Эмуляция» лучше подходит, слишком низкоуровневое действие.
                                0

                                Ну сами разработчики называют это маппером. А я это не разрабатывал, поэтому я не знаю как устроен этот плеер, я говорю только со слов самих разработчиков.

                                  0
                                  По английски, mapping — всего лишь «сопоставление». Возможно, они никакой особый смысл и не вкладывали.
                                    0

                                    А как вы себе представляете эмуляцию сида на опл3? Только сопоставление! Треугольник на сиде в треугольник на фм и т.д.

                                      0
                                      Так же, как эмуляцию 6502 в c-коде:
                                      LDX #06 -> regX = 0x06;

                                      Сопоставление — один к одному, а эмуляция подразумевает, что могут быть какие-обходные варианты, если в одной железке не хватает чего-то из другой.
                                        0

                                        Дело в том, что в фм- синтезаторе нельзя так кодить как на с для 6502, а только посылать команды для муз инструментов, поэтому на всех звуковых картах, кроме fortemedia fm801 пропадают некоторые ноты, а вот версия 1.4 работает четко, но через эмулятор и звучит как эмулятор, а не как железная звуковая карта

                                          0
                                          Я просто триггернул на
                                          Кому то нравится оркестровки, кому то нет. Кому то нравится слушать midi через OPL2/3, а кому то категорически нет, а только через Wavetable
                                          В контексте таких карт, маппинг — это указание соответствий инструментов в MIDI и инструментов в карте.

                                          Но поток с SID нельзя отправить на карту с wavetable. Такой «маппинг» невозможнен.
                        0
                        Спасибо за статью! Недавно получил Yamaha YMF 724 почти такую же, как у меня была в детстве. Вернее, в детстве у меня была на кодеке WM и распаяна целиком, а у друга была на STAC и с нераспаянным усилителем, поэтому с НЧ там были напряженки. Получил такую же, как была у друга.



                        Если я месяц назад, через боль и страдания за два вечера всётаки заставил работать свою любимую SB Live и драйверы KX под Win7 x64, то с Yamaha получился облом. И эта статья дала повод вытащить Yamaha с полки и попробовать еще раз.

                        Ну что я могу сказать, звук есть! Послушал SID'ы, но тут ничего не могу сказать, как-то пиликает. Ярым фанатом SID'а я не являюсь. Мне больше AY/YM спектрумовские ближе, а там фильтров нет. Больше понравился Adlib плеер, который у меня сейчас от куда-то есть на рабочем столе под Windows, а тут я его послушал уже аппаратно. Вот он реально понравился.

                        Еще, пользуясь случаем, закинул на ту же флешку игр, Wolf, DOOM1-2, DukeNukem3d, Quake, WarCraft2. Однако, облом осознался не сразу. Карта определялась, работала эмуляция Sound Blaster PORT 220, IRQ 5, DMA 1. Но в играх была только музыка через FM синтез. Звука не было. Для 16 бит надо было указать второй DMA, как позже выяснилось, там 11й встает, а его на досовых играх не выбрать (или что-то типа того). Что интересно, сами драйверы могут играть и музыку и звук, а вот с играми на базе DOS4GW получилась проблема.

                        Есть интересная ссыль на тему про ямахи и там про то, что у PCI карт может не очень получаться прикидываться ISAшными картами. С DMA как-то это связано. Для эмуляции могут быть применены какие-то кабели SB Link который есть на звуковой и должен быть на материнской плате. Плюс есть еще пара других вариантов, через D-DMA или через TSR резидент какой-то, но где его взять — я так и не понял. В общем, звука не было у меня в играх.

                        Однако, за вечер с Yamaha благодарность автору статьи.
                          0
                          Спасибо за отзыв, я рад что кому-тому пригодилось
                          0
                          Речь о современных ПК, на них параллельный PCI уже несколько лет как днем с огнем не найти, звуковухи уже переехали на PCI-E, либо USB
                            0
                            Я себе специально материнку искал с PCI под такие звуковые и доволен. А звуковых на PCI-E с OPL3-синтезатором не бывает.
                              0

                              Хотя нет — есть звуковая на PCI-E c OPL3 везде в продаже — это та самая дешевая на чипе CMI8738. В файлах для DOS, которые я приложил для скачивания есть вариант загрузки с драйверами для 8738й

                            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                            Самое читаемое