+344.48
Рейтинг
1080.83
Сила

Alex

  • avatar Shiru
  • 0
Теперь я абсолютно уверен, что это было просто желание докопаться. Потому что это видео от точно того же автора, снятое на том же самом компьютере, с тем же звуком. В чём можно убедиться, промотав его до середины.
  • avatar Shiru
  • 1
Спасибо!
  • avatar Shiru
  • 0
Звучание от наличия или отсутствия синхронизации никаким образом не меняется. Как автор, сто раз слышавший трек, я ни малейшей разницы в мелодии не слышу (взяться ей неоткуда), и никак не могу сказать, что музыка звучит хуже, да ещё значительно — именно так и должна звучать квадратная волна на любом реальном железе, а не в эмуляторе: чуть глуше, т.к. эмулятор выдаёт идеальный квадрат, а в любом железе в цепочке всегда есть ФНЧ.
  • avatar Shiru
  • 2
Звук не синхронизирован, но полная длительность на 4016 с 32 килобайтами: www.youtube.com/watch?v=XVMzaITzXPM
Также есть сообщения о запуске на 2001 N32K, и кусочек видео на FB — однако, демо идёт там без снега, который я ожидал увидеть.
  • avatar Shiru
  • 1
Мне кажется, здесь какая-то подстава в алгоритме — как бы рано я не начинал, всё равно в итоге оказывается, что времени не хватает, уже в который раз.
  • avatar Shiru
  • 0
Проверяло уже несколько человек. Думаю, записи с железа от кого-нибудь из них скоро появятся.
  • avatar Shiru
  • 2
Спасибо!

Да, это ценный комментарий. Дело в том, что я проворачиваю этот трюк (написание большого проекта без тестов на железе) не в первый и не в десятый раз, на самых разных платформах, уже очень много лет. У меня есть решения, которые были ранее проверены на железе, и если я не выхожу за их рамки, это даёт 99% уверенности, что всё заработает. А если всё же срабатывает неудачный процент — то это абсолютно точно можно исправить. В данном случае я изначально решил не использовать никаких трюков с перепрограммированием видеоконтроллера (народ недавно умудрился одним безумным трюком выжать больше одной градации яркости). В данной демке всюду просто перекладывание байт из одного места в другое, оно никак не может не заработать. Что могло не заработать: звук, но эту часть я отладил пару лет назад, и она была протестирована на железе (благодаря этому в свежих эмуляторах правильный звук, ранее он всюду эмулировался некорректно, что продемонстрировали мои поделки). Ещё могло не заработать: время доступа к видеопамяти, но это также было проверено моим предыдущим релизом для PET. В общем, это был хорошо осознанный и контролируемый риск, на большом опыте.

Конечно, я всё равно нервничал насчёт того возможного процента, мало ли что, железо древнее, плохо эмулируемое и с труднодоступной документацией. Правила запрещают публиковать работы до пати, и я не мог рисковать случайной утечкой, хотя мне было кого попросить провести тест. Сразу же после релиза демо проверено на железе, полёт нормальный.
  • avatar Shiru
  • 0
Мимо он не прошёл, был на кассете с Ping-Poing и Thanatos. И я действительно вспоминал обоих Saboteur'ов, когда делал список, но всё же не включил. Но да, там тоже очень интересное звучание и сама музыка.
  • avatar Shiru
  • 3
Да, определённо раньше. В 1994-1995 я только осваивал Бейсик, и никакого системного софта у меня просто не было. В 1996 стал использовать MCODER2, стал писать первые процедурки в машкоде, потом добыл ZEUS, Gens. А полностью на ассемблере начал писать программы в 1997.

Я не то, чтобы извиняюсь, но иронизирую над проблемой восприятия. Это касается не только бипера, но любого чиптюна. Если вдруг меня спрашивают про занятия музыкой, мне очень трудно объяснить, что и почему я делаю, и почему оно звучит так необычно, не как из радио. Многие определяют этот диапазон звучания как 'что-то игрушечное', кому-то трудно воспринять это как музыку в принципе. С другой стороны, я в принципе не отношусь к чему-либо излишне серьёзно (музыка-игры-демки-разработка), несмотря на то, что это типа как мои основные занятия в жизни.

Согласен, главное качество звуковых чипов — унификация звучания, по крайней мере значительное снижение диапазона возможностей по звучанию, в обмен на облегчение жизни процессору. И у большинства чипов есть некоторые скрытые фишки, которые со временем были найдены, изучены, и существенно расширили потенциал. Огибающая у AY, коротко-периодический шум у SN76489, DPCM сэмплы тональных инструментов на NES, и так далее.

Также разделяю мысли, что бипер наиболее идеологически натуральное звуковое устройство для Спектрума, и наиболее интересное со стороны творческой свободы.
  • avatar Shiru
  • 2
Между прочим, Поливокс прямо-таки демосценерский синтезатор по своему устройсту — автор умудрился сделать невероятное, фильтр без единого гвоздя, то есть без единого конденсатора! (интересное чтиво о создании)
  • avatar Shiru
  • 2
Его надо использовать самым обычным образом. Повторюсь, при записи в каждый регистр нужно ждать готовности чипа, иначе запись просто не сработает. И от скорости процессора это никак не зависит, т.к. ждём медленное устройство. В OPL3 и его клонах-эмуляторах время ожидания значительно уменьшили, а на PC он появился в конце 1991, и с тех пор ставился во все выходящие звуковые карты. Так что большинство трекеро-писателей (1994-1995) реальный Adlib с OPL2 никогда и не видело, и не знало про эту его особенность.

Я считаю, что деление на цифровой/аналоговый вообще неуместно в этом случае, и обе фразы не кажутся мне нормальными. Это скорее про (примитивный) синтез против воспроизведения сэмплов.
  • avatar Shiru
  • 2
Надо заметить, что PCM на Adlib играть можно, и в играх это иногда встречалось. Дело в другом — у SB не просто ЦАП, у него DMA, позволяющее гнать в этот ЦАП звук, не отвлекая процессор, а на Adlib надо засылать по одному байту. В эпоху слабых, немощных процессоров это имело решающее значение.
  • avatar Shiru
  • 1
Всё же принципы у OPL и SID совершенно, максимально разные. Но при этом способы перекрывать одну и ту же палитру тембров, с некоторыми сильными и слабыми сторонами. Типа, на FM прямоугольник или треугольник можно получить только очень условный, слишком мало гармоник.

Главное достоинство FM — возможность создавать динамические тембры, т.е. с долгим и плавным развитием во времени, причём без затрат памяти. На SID для этого нужно делать длинную софтовую огибающую. Трудно описать звуки словами, но эта фишка со сложными меняющимися тембрами легко слышна ушами во множестве игр с FM-музыкой, это одна из характерных особенностей.
  • avatar Shiru
  • 2
Когда демосцена на PC развилась, Adlib уже просто устарел, его было тупо трудно найти. И народ, насмотревшись на более совершенную в области мультимедиа Амигу, жаждал сэмплов.

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

Трекеров для OPL на PC вполне себе хватает, и все они достаточно хороши, чтобы не плодить десятки корявых поделок для хакеров-самоучек, как на C64 (серьёзно, большинство трекеров так — какое-то недоразумение в виде HEX редактора с нотами). В отличие от C64-шных, некоторые из Adlib трекеров живы до сих пор, т.е. обновляются. Фильтры на FM прекрасно имитируются, любой музыкант это знает. Есть особенности, что у FM гораздо выше порог вхождения — он не сложен сам по себе, легко осваивается интуитивно, но куча цифр вместо наглядных огибающих или других привычных цифр просто отпугивала народ. И на FM труднее делать хорошо звучащие ударные, если трекер не поддерживает макросы — на C64 все трекеры были вынуждены реализовать какое-то их подобие, а у FM возможности гибче, и для большинства вещей макросы ни к чему (но они есть в Edlib и Adlib Tracker II).

Интро с Adlib музыкой тоже вполне хватало.

Про звучание — откровенная вкусовщина. По мне так SID-музыка имеет неинтересное и однообразное звучание без нормальной динамики (т.к. нет нормального управления громкостью каналов) и высоких частот.

К статье в части про Adlib главная претензия, что он якобы аналоговый. Нет, он полностью цифровой, и в принципе стал возможен только благодаря развитию цифровой техники. И на компьютерах по сути вообще никогда не было (полностью) аналогового синтеза звука, за исключением редких не-массовых устройств.
  • avatar Shiru
  • 3
Учитывая количество движков, это займёт время, но постараюсь сделать.
  • avatar Shiru
  • 1
Я делал обзор биперных движков предшествующей пятилетки в 2016. С тех пор их стало значительно больше, а также были разобраны многие классические, так что, видимо, пора делать новый обзор. Всего старых и новых движков порядка 100 штук.
  • avatar Shiru
  • 2
В SNES и N64 местные чипы региональной защиты тоже сделаны на микроконтроллере Sharp SM-5. Также он использовался во множестве LCD-игр не от Nintendo (Tiger, Konami).
  • avatar Shiru
  • 2
Всё хорошо, но хочу заметить, что под названием NESdev уже 21 год существует вполне конкретное сообщество и его ресурсы. Это примерно как назваться Microsoft Group, вроде просто похоже, но вводит в заблуждение и трудно потом найти.
  • avatar Shiru
  • 1
В DMC файле может быть произвольное количество сэмплов, их расположение и длина неизвестны. В модуле с мелодией есть таблица сэмплов в 63 записи, по одной записи для каждой ноты, начиная с C-1. Эти записи указывают, где в DMC файле находятся данные нужных сэмплов, какова их длина и питч. В нотном тексте сэмплы с нужными параметрами вызываются просто проигрыванием соответствующей ноты. Сэмпл лая назначен на ноту C-4 в исходном модуле, из которого строится таблица параметров сэмплов. 36 — смещение в табличке, она начинается с C-1, и если добавить 36 (3*12), получается C-4.
  • avatar Shiru
  • 1
FamiTracker отношения к вопросу не имеет, это связано с устройством приставки и возможностями FamiTone. Сэмплы в нотном тексте назначаются на ноты для удобства использования. В данных мелодии есть таблица соответствия нот и сэмплов, а также их параметров — смещения от начала блока, длительность, питч. Вызов FamiToneInit нужен, чтобы сохранить указатель на эту таблицу сэмплов (FT_DPCM_LIST), чтобы при вызове FamiToneSamplePlay знать, где она находится.

Внутри файла DMC нет ничего, кроме бинарного потока сэмплов, никаких заголовков. Его содержимое описывается только таблицей в мелодии.

В старых версиях FamiTone поддерживалось только 12 сэмплов, была короткая табличка, с расчётом на то, что сэмплы будут использоваться только для немногочисленных ударных инструментов. Позже я сделал поддержку 63 сэмплов, чтобы можно было делать сэмплированный бас а-ля Sunsoft. Номер сэмпла 36 — это нота C-4. Описание в readme.txt просто не было обновлёно, как обычно.