Соглашусь с каждым словом. Особенно со словами о точности эмуляции внутренней логики чипа. Вот для того, чтобы эти неточности были более и явно заметны, я и изобретал чисто для себя машину времени велосипед генератор тестовых сигналов звуковой частоты :) Инструмент для проверки правильности постройки данного чипа в отдельно взятом ФПГА. Камертон. А вот то, что этот «камертон» по разномуу звучит на конкретном рояле и трех, хороших, пианинах — это проблемы инструмента?? Сойдемся на том, что это просто-напросто мини-демо, воспроизводящееся на разных машинах со своими, неповторимыми нюансами. Не более. Для моих целей эта подделка вполне подходит *взял с полки пирожок, без спроса*. А других то и нету, чтобы явно сказать «Баа!!! Да у тебя же 5 бит в envelope вообще лажает и не задействован!» Я прав или прав или прав?©
  • avatar Shiru
  • 5
Я про то, что для дискуссии о точности эмуляции желательно представлять, что мы, собственно, эмулируем. Т.е. хорошо знать устройство чипа и процесс эмуляции. И когда такое понимание есть, подобные оговорки просто не возникают, им неоткуда придти в голову.

Касательно точности эмуляции есть всего два основных момента. Первый — точность эмуляции внутренней логики чипа. Действие битов микшера, предельные моменты типа нулевого делителя. Ошибки в логике чипа ведут к неправильному звучанию музыки, в большинстве случаев это проявляется очень явно. Пока они присутствуют, дальше углубляться в точность нет смысла. Для начала чип должен просто правильно работать. Второй момент — точность параметров типа характеристик ЦАП и алгоритма генератора шума. На мой взгляд, это наименее значительная из всех проблем эмуляции, т.к. слабо заметна ухом и не так уж сильно влияет на звук (разница между AY/YM в основном не в характеристике ЦАП, а в логике огибающей, имеющей двойное разрешение).

Но самый главный фактор, что всегда выдаёт эмуляцию и вносит заметную разницу в звучание — проблема передискретизации, т.е. ресэмплинга. Она принципиально неразрешима (у чипа нет частоты дискретизации, у звуковых карт есть) и всегда даёт те или иные артефакты, хорошо заметные уху. Есть разные способы приблизить звучание к правильному — апсэмплинг, фильтры, band-limited синтез или трюки для приближения к нему (типа приклеивания кусочков транзиентов). Но всё это не имеет отношения к собственно эмуляции чипов, один и тот же ресемплер можно использовать с разными эмулируемыми чипами, и наоборот.
Нужен кто-то с реальным SAA.
Можно слушать только шумы, или чистый синус, или огибающие, или комплексно.
Все же в моей фразе ключевое слово «чистый», а не 'синус'? в смысле без примесей огибающих и шумов. Ну да, ошибся, надо было сказать — чистый меандр, или «сигнал, наиболее приближенный к прямоугольному импульсу»? Схоластика.
Сгенерировал тестовый паттерн? простенький, и прогнал через джва эмуля. Если вы считаете, что звучЯт совершенно идиентично — ну что ж, тогда я испанский летчик Сент Экзюпери и мне пора на битву экстрасенсов.
rgho.st/8gBbsDLPQ
  • avatar Shiru
  • 2
Простые чипы типа AY или SAA генерируют только меандр с заполнением 0.5, то есть квадратную волну. Это так и задумано, и на выходе должен быть именно меандр. Мысли о синусах в этом случае отношения к делу и к точности эмуляции не имеют. Синус (когда-то было) относительно сложно генерировать в цифровой технике, а универсальность его в музыкальных целях низка за отсутствием гармоник, поэтому он встречается только в более поздних, более сложных чипах, и обычно как дополнение к прочим возможностям (SID, SCC, N106, FM-чипы).
  • avatar tsl
  • 0
Из любого теста (С++/верилог) ты можешь получить выхлоп в виде файла, содержащего вейвформы и сравнивать их.
Любые другие варианты сравнения «точности эмуляции» годятся только для передачи «Битва экстрасенсов».
Под чистым синусом я имел в виду, что программим один канал например на 440 Гц или 1кГц для ровного счета, без шумов и огибающих. Выводим, на осциллограф\спектроанализатор\wav файл. А там уж смотрим что, получилось — частоту и формуу, насколько близко экстраполировалось к идеалу. До аналоговых генераторов типа Г3-36 думаю будет далеко. Но и такая точность не требуется же?? Или AY может идеальный синус генерить? кпримеру. Из меандра
  • avatar Shiru
  • 0
Как-то сложно говорить о точности эмуляции, если исходить из предположения, что SAA1099 играет чистый синус.
  • avatar tsl
  • 0
но автор(-ы?) сказал(и), что, цитируйю, «Тестировать не пойми как эмулятором — не дело»
Автор/ы сказал/и, что ключевые слова «не пойми как», а не «тестировать эмулятором». Дословно, авторы сказали: выковыряй либу, напиши несколько тестовых посылок в порт и протестируй их на либе и на этом ихнем верилоге. Авторы имели в виду — тестировать не на слух, а при помощи юнит тестов.
В сухом остатке так сказать и по итогам?
По ФПГА- реализации — безусловно корка от Sorgelig-a. Единственное, что меня там смущает — уровень громкости каналов чистых и с огибающей. С огибающей звучат заметно тише, может так и должно быть, а может надо поднять. Но для этого надо дорисовать синтетический тест с envelope и сравнить с реальным SAA1099, но у меня его нет, все мои Спектрумы без nemo-bus, а колхозить на монтажке не очень хочется. Обхожусь дев-бордами.
Вариант корки от МакЛеода вполне можно починить. У него те же проблемы с envelope, который звучит даже в выключеном состоянии. Что то видимо с миксером итоговым. Та же проблема в эмуле Xpeccy присутствует.
в тс-анриле я бы тоже сказал, что каналы с огибающей работают несколько, хмм, необычненько. Но доказать то я этого не могу, а там просят пальцем показать, где именно подправить :(
Я равняюсь или на старый Анрил, ну или для надежности на SimCoupe, там то надеюсь эти проблемы давно выкопали.
По портам тоже. Порты больше для наглядности процесса. Особенно смущают порты noise, во всех мануалах написано, что задействованы биты 0,1 и 4,5 в 16 канале, а судя по индикатору там и 6,7 биты меняются. Вариантов как минимум джва — или косячит проигрыватель, не то показывает\заносит, ну или действительно эти биты реально в музыке используются. Да, и третий вариант — косяк ETracker-a. Но к шумам у меня как то меньше претензий.
Ну а с ZXTune — елси там есть возможность отключать каналы, то вот можно и сравнивать, а так то только по общему впеЧАТленийю — насколько режет слух та или иная композиция.
А в финале-то удалось разобраться с проблемами эмуляции? Может записать тесты с эмуляторов и посравнивать форму сигнала, потому что не факт, что то, что эмулятор репортит о состоянии портов, совпадает с тем, что он реально воспроизводит.

В каком эмуляторе сейчас самый точный звук? Как с этим обстоят дела у ZXTune?
Тсссс… Еще немного и <Роскомнадзор>!
  • avatar Nuts_
  • 0
На бендикаме кнопка «купить» более заметная ;)
Я их путаю :)
  • avatar tsl
  • 1
Дай, думаю, и сюда напишу. Вот:
отдайте marinows.ADF! ))
  • avatar VBI
  • 1
Take off or f*ck off!
  • avatar n1k-o
  • 4
SoundCloud для ленивого прослушивания.
Но ведь там bandcamp, а не soundcloud!
Запрашиваю уход от прямолинейности в развитии треков, и это не упрёк, а скорее как предложение для поиска новых решений <:
Vortex' flying — очень в этом плане хорош!
и, в целом, ты как будто повеселел — пиши еще, заходи на канал! :)
Такие sindots на ZX вообще легальны?! 5+
а научите меня демы пейсать?
ммм, индийская лемосцена…