Просмотр полной версии : Эмуляция AY/YM
В соседней теме наткнулись на факт достаточно кривой реализации делителя шума в различных эмуляторах (звук шума с делителями 0 и 1 должен быть идентичным).
По итогу я сделал SNA файлик со звуком, скапчурил его же с реального YM на 192Кгц.
http://www.vgmpf.com/Wiki/images/5/54/AY-3-891x_-_Programmer%27s_Manual.pdf - Официальная документация. Страница 19 — инфо по поводу делителя 0 (что минимальный - 1, и 0 эквивалентно 1).
Первая итерация тестов:
Также сконвертил в .psm - можно воспроизводить в zxtune/ay-emul.
Сконвертил в .psg - можно в ayumi воспроизвести.
В общем, проверил разные эмули и плееры на этот предмет. Заодно и на предмет корректной фильтрации высоких частот. Результаты:
unreal speccy - почти правильные шумы (но делитель 0 и 1 различаются, что неправильно), писк с небольшими артефактами
zxspin - делители 0 и 1 НЕ различаются (что правильно), но шумы до 6 почти одинаковые по частоте, писк с существенными артефактами
emuzgl - ужас в шумах, писк тоже ужасен
zsaurux - делители до 8 дают одинаковый шум, ужасные артефакты в писке
spectaculator - делители 0 и 1 не различаются (что правильно), но сама частота завышена (до 6 почти одинаковые), артафакты в писке
fuse - правильные шумы (делители 0 и 1 не различаются), писк с небольшими артефактами
emuzwin27 - делители 0 и 1 не различаются (что правильно), но сама частота шума завышена, странные артефакты в писке
zxtune - почти правильные шумы (но делители 0 и 1 различаются), писк с заметными артефактами (похоже на unreal speccy, но с более грубой фильтрацией)
ayumi - почти правильные шумы (но делители 0 и 1 различаются), писк без артефактов
ay-emul - правильные шумы (делители 0 и 1 не различаются, как надо), писк без артефактов (на частотах дискретизации 48000 и выше - писк с артефактами, даже на 192000 (!) )
ay-player soft- делители 0 и 1 не различаются (что правильно), шумы до 10 одинаковые по частоте (но разные по амплитуде), явно даже слышен период, писк без артефактов.
ay-player atmega- делители 0 и 1 не различаются (что правильно), корректность шумов сложно понять потому что период очень короткий и звучит как сэмпл (т.е. явно даже слышен период), но скорее всего чуть завышен (явные изменения в спектре слышны только от делителя 6), писк без артефактов.
По совокупности показателей ay-emul даёт звучание шума и высоких частот максимально близкое к реальному (только на частоте 44100).
Из эмуляторов - ближе к оригиналу в этой части fuse
SNA файл: https://volutar.myds.me/psmnoisetest.sna.7z
PSM файл: https://volutar.myds.me/noisetest.psm.7z
PSG файл: https://volutar.myds.me/noisetest.psg.7z
Эталон WAV 192КГц с живого YM: https://volutar.myds.me/sound-zx192.wav
Эталон WAV 44.1КГц с живого YM: https://volutar.myds.me/sound-zx44.wav
Примечание: Частота живого YM возможно немного не та что в эмуляторах, но на качестве звучания это не должно сказываться.
К сожалению, в этом тестируемом образце нет максимальных делителей шума, поэтому точно сказать насколько _частота шума_ неправильная (там где написано что "почти правильно" или что "завышена" - не получится. Нужен другой образец.
===============
Вторая итерация тестов. Сделал новый образец для тестирования. Результаты загнал все в Spreadsheet по пунктам, чтобы удобнее было сравнивать.
Тест включает в себя анализ АЧХ, шумов (случайность, 0/1, корректность частоты), тест ШИМа (половины) огибающей, тест ретрига, и фильтрации высокочастотных гармоник (отражений) при передискретизации.
Сравнительная таблица результатов тестирования: https://docs.google.com/spreadsheets/d/1xSE37ZgbsbdZlU6O4zt4zYxeBoqd1De2jztmIwQJtMQ/edit?usp=sharing
https://volutar.myds.me/zx/ayymtest/ayphastest.7z - сами исполняемые тесты (sna, ay, $c)
В реале С трдосом $C пригодится. В эмуляторах (и новоделах) - .sna. А в плеерах - .ay
Запускается, модуль по адресу 30000 (в трдос run “ayphas”code).
https://volutar.myds.me/zx/ayymtest - страница с записанными образцами
https://volutar.myds.me/zx/ayymtest/ayphas44.flac - образец чистого звука от YM2149f (44КГц)
https://volutar.myds.me/zx/ayymtest/ayphas.flac - образец чистого звука от YM2149f (192КГц)
Просьба к тем, у кого есть Next/Sprinter/AVRay, или какие-то другие модели с хардварной эмуляцией - тоже сделать wav/flac образцы (mp3/ogg не катят), и поделиться - был бы премного благодарен. По возможности с максимальной дискретизацией (192К), но если только 44100 - тоже норм.
Также просьба владельцев YM2203 поделиться скапчуренным звуком с теста №2.
Надо охватить максимальное количество вариантов.
Капчурить звук минимум в 44.1КГц, 16бит, стерео (желательно в схеме ACB, но можно и ABC). Желательно дискретизацию побольше, если можно (я капчурил в 192КГц). Шум давить не нужно.
NEO SPECTRUMAN
04.09.2020, 00:29
продублирую картинку и тут
https://jpegshare.net/images/66/37/6637b1e27f132d9b06c3646a077eea8b.png
где видно что частоты одинаковы
- - - Добавлено - - -
и упоминание оно в data shit-е к AY 3 8930
в режиме AY 3 8910
http://samstyle.narod.ru/addons/xpeccy/Screenshot_20200903_213455.png
остается вопрос ну нахрена
Потому что это не просто гул 50Гц синусоиды, а достаточно неприятный 50гц "хруст" (т.е. там гармоники по всему спектру).
чтоб ТРД это тогда немного потом на днях
Можно наверное было бы и TAP загрузить. Надо тест охватывающий всё, и шумы, и писк, и огибающие (типа 8 и A хватит) и разные амплитуды.
ЗЫ: кстати там видно что какая-то зеркальная ось проходит через 54Кгц. По всей видимости это половина частоты YM (которая ~109КГц =1.75МГц/16). Т.е. капчурятся честные 192КГц.
NEO SPECTRUMAN
04.09.2020, 01:28
ЗЫ: кстати там видно что какая-то зеркальная ось проходит
на самом деле "ось" на октаву выше
и выглядит вот так (должна так выглядеть)
https://jpegshare.net/images/7a/6c/7a6c12dfcf2459719db60196de2f23e9.png
а дальше наверно и еще одна ось и еще...
а у сферического AY в вакууме оси уходят в бесконечность :)
- - - Добавлено - - -
ну а на каптуресах дальше 96КГц нам не видно...
- - - Добавлено - - -
А тему надо перименовать в
"ОШыБКИ Эмуляции AY/YM"
NEO SPECTRUMAN,
> и выглядит вот так (должна так выглядеть)
Судя по паттерну на 54кгц «полуось» (выемки через одну идут). А ось на 109кгц.
marinovsoft
04.09.2020, 04:39
Послушайте в этом проигрывателе
https://www.avray.ru/ru/avr-ay-player/
Ссылна на последнюю версию https://www.avray.ru/wp-content/uploads/2019/09/AYPlayer_v136.zip
marinovsoft, послушал, сравнил, добавил в "сводку".
А вообще сами могли бы сравнить с образцом :)
marinovsoft
04.09.2020, 06:45
А что сие значит "шумы до 10 одинаковые по частоте (но разные по амплитуде)" ?
marinovsoft, то и означает, что на ухо разница не слышится. Слышно только что амплитуда меняется. Спектр первых делителей шумов (уже после 1) +-одинаковый. Что означает что период шума некорректный, но фильтруется он хорошо. Типа оверсемплированный белый шум при децимации с фильтром по частоте остается белым же (т.к. все равно ограничен семплрейтом потока вывода), а амплитуда снижается, «усредняется». А в железе он с периодом 2 уже не белый.
marinovsoft
04.09.2020, 07:26
Можно автора позвать, EvgenRU
NEO SPECTRUMAN
04.09.2020, 10:19
запилил тест пищалку
https://dropmefiles.com.ua/ru/kKamW6
https://anonfiles.com/x4Rem7R8o9/AY_test_7z
всё на 4 минуты
1. Проверка 32 частот шума
2. Проверка неиспользуемых битов регистра шума (все 256 частот)
3. Проверка 32 частот тона
4. Проверка неиспользуемых битов регистра частоты тона (256 частот)
5. Проверка 8 частот огибающей
6. Проверка огибающей + 16 частот PWM
7. Проверка наличия переинициализации записью старшей части делителя (4 частоты)
8. Проверка наличия переинициализации записью младшей части делителя (2 близкие частоты)
9. Проверка наличия переинициализации тона записью старшей части делителя (1 частота)
10. Проверка наличия переинициализации тона записью младшей части делителя (1 частота)
11. Чередование делителей $1FF $FFF
12. Чередование делителей $111 $211
конечно тут не все тонкости которые меня интересуют...
конечно тут не все тонкости которые меня интересуют...
А кто мешает добавить все тонкости?
Например, про переинициалиацию тесты, но что-то не написал про полу-retrig, который вроде точно должен работать (сброс делителя частоты на 0/1 (причем оба попробовать), а потом на нужный делитель, чтобы фазу меандра "сбросить").
Желательно также как-то сохранить эту кухню в .AY/.PSG, чтобы в разных плеерах воспроизводить (а не только в эмулях и на реале, правда, плееры не смогут в наносекундную смену делителя).
Вообще тест какой-то конский, на 4 минуты, а несжатый wav файл на 192кгц - это 46 мегабайт за минуту. 184 мегабайта. Там большая часть тестируемых кусков по 2с каждый, хотя бы 1с можно было бы?
Я вечером только смогу запустить и скапчурить.
NEO SPECTRUMAN
04.09.2020, 13:03
хотя бы 1с можно было бы?
если писать на 48КГц
в 1 сек не набирается 64К семплов для FFT
а я иногда таким окном пользуюсь
- - - Добавлено - - -
А кто мешает добавить все тонкости?
их надо все вспомнить :)
или найти где я их записал
но а некоторые не так просто написать
тк критично к времянкам...
- - - Добавлено - - -
но что-то не написал про полу-retrig, который вроде точно должен работать (сброс делителя частоты на 0/1 (причем оба попробовать), а потом на нужный делитель, чтобы фазу меандра "сбросить").
яхз
то что там навыдумывали в узких кругах мне неизвестно
на сколько я знаю фаза тона в AY-ке не переинициализируется
хотя этого сильно хочется :)
если нулевой делитель тоже самое что и 1-й делитель
то это тоже ограничивает возможности
а каких либо результатов тестирования
что происходит при записи я не увидел
везде только про одна баба сказала...
хотя ужо есть и реверс AY-ка
но его еще нужно за осилить...
в 1 сек не набирается 64К семплов для FFT
В общем надо будет как-то это дело утрамбовать, 180 метров выкладывать история не очень веселая.
то что там навыдумывали в узких кругах мне неизвестно
Sandrowski в fast tracker запрограммировал ретриг, работает как раз за счет сброса делителя в 0 и незамедлительного изменения на нужный.
на сколько я знаю фаза тона в AY-ке не переинициализируется
Да. Иначе бы все это на всех платформах использовали.
Максимум, что возможно - это минимизировать период, сократив варианты фаз до ДВУХ - 0 и 180 градусов, и при переходе в "большой" делитель окажется только 2 варианта для сочетания с огибающей. 2 лучше чем 42.
Нужно попробовать вариант - сброс младшего и старшего в 0, и при выходе в большой делитель сначала указать старший, потом младший, и наоборот (младший а потом старший).
AY же работает как таймер, в котором делитель - это период таймера. Минимальное значение - 1, по-идее с таким делителем как раз 110кгц и должно идти (а может 55кгц, надо выяснять). Тут как раз поможет запись в 192кгц с разными этими переходами (ноль в не ноль) с разными таймингами (времянками между переходом в 0 и большое значение).
Порядок записи LSB и MSB тоже кстати играет роль, когда идет скольжение частоты, при переходе между делителем 255 и 256 может быть слышен щелчок, как и между 511 и 512. Может быт щелчок при переходе только вниз, или только вверх - это все по-идее можно выяснить для реала.
NEO SPECTRUMAN
04.09.2020, 14:26
2 варианта для сочетания с огибающей.
ну до
и целых 2 варианта развития событий
2 одинаковых частоты синфазно
2 одинаковых частоты в противофазе
а тк взаимозаменяемость у этих вариантом стремится к 0
это не особо юзабельно...
хотя можно юзать в сочетании с огибающей
там это вполне может прокатить
особенно с "треугольной" волной
а огибающую можно переинициализировать по людски
но это вполне эмулируемые вещи
хотя например унриал дает не очень стабильный результат для делителей меньше 4-х (у меня прут какие то посторонние звуки)
я кстате юзаю такую "переинициализацию" в NSID
- - - Добавлено - - -
так же всем известно и про щелчки при слайдах...
раз 110кгц и должно идти
110
- - - Добавлено - - -
Может быт щелчок при переходе только вниз, или только вверх - это все по-идее можно выяснить для реала.
тут все известно
нужно дополнительная логика при записи
из
$0 FF
в
$1 00
$0 FF
$1 FF правильно H потом L
$1 00
$0 FF
$0 00 не правильно
$1 00
из
$1 00
в
$0 FF
$1 00
$1 FF правильно L потом H
$0 FF
$1 00
$0 00 не правильно
$0 FF
- - - Добавлено - - -
180 метров выкладывать история не очень веселая.
не в каменном веке живем
закинь на какой нить файлообменник
возможно этот хавает такой размер
https://dropmefiles.com.ua/
ну а себе можешь выложить обрезанную версию
там все тесты разделены паузой
последние 8 штук нужны только мне :)
и они достаточно одноподобные
но на случай разных вариантов развития событий
чтоб по 7 раз не переписывать
закинь на какой нить файлообменник
Я сначала попробую утрамбовать, в тот же FLAC. Или может быть 8мибитный сохранять, моно, в конце концов.
NEO SPECTRUMAN
04.09.2020, 14:32
Или может быть 8мибитный сохранять, моно, в конце концов.
та вполне можно
я думаю запакованная архиватором вавка будет весить меньше
чем запакованный архиватором flac
NEO SPECTRUMAN, тебе стерео там вообще нужно?
Флак сам по себе может оказаться меньше архива вава. Флаки не архивируются практически
NEO SPECTRUMAN
04.09.2020, 14:43
тебе стерео там вообще нужно?
там один канал B
- - - Добавлено - - -
Флак сам по себе может оказаться меньше архива вава
я из своего опыта упаковки
пакованные wav-ы и bmp
у меня обычно гарантированно меньше чем png и flac-и
NEO SPECTRUMAN,
>там один канал B
По-доброму надо бы для кое-каких тестов два, чтобы по интерференции определять вариации в фазовых сдвигах. Вообще вроде в одном из тестов что-то такое есть (слышал небольшие биения). Потому и уточняю.
NEO SPECTRUMAN
04.09.2020, 15:24
в одном из тестов что-то такое есть (слышал небольшие биения)
а то кольцевая модуляция тона огибающей
когда тон переходит в слышимый диапазон
marinovsoft
04.09.2020, 16:17
Вот еще запись с эмулятора AY на atmega8515, данные идут через COM-порт. Китайская атмега лажает, если найду другую - сделаю запись заново.
https://www.upload.ee/files/12233297/noisetest.psg.wav.7z.html
запилил тест пищалку
https://volutar.myds.me/zx/neotest2.flac 56мегабайт. моно, 16бит.
Во-первых, у меня схема ACB (центральный C). Записывалось естественно стерео, и я обнаружил что 50гц наводка идет и на нужном канале, и на "пустом". и просто вычел из нужного "пустой", в итоге все что было ОБЩИМ - удалилось, и сигнал оказался максимально чистым. Шумодавы поэтому никакие даже не запускал. Правда, все что было бипером - тоже вычистилось.
Показывай, что там получилось на "качественном" спектр-анализаторе.
ЗЫ: Перпекапчурил свои тесты, и выложил версии Wav192/44 без шумодава (но с подавленными наводками). Предлагаю тебе перегенерить и перезалить соответствующий ему спректр.
- - - Добавлено - - -
Вот еще запись с эмулятора AY на atmega8515
Не думаю что дело в атмеге. Дело в алгоритмах. Вообще конечно - пример максимального количества всяческих артефактов :)
marinovsoft
04.09.2020, 17:54
Вот с другой атмегой (и на другом ПК - есть подозрение, что на первом звуковуха чудит).
https://www.upload.ee/files/12233595/test.7z.html
Вот с другой атмегой (и на другом ПК - есть подозрение, что на первом звуковуха чудит).
Если атмега с одной прошивкой то скорее всего дело в звуковухе.
В этой версии писк без артефактов вообще. А шумы звучат не очень - цикл такой коротенький, словно это и не шум, а корявый сэмпл. Делители 0 и 1, впрочем, одинаковые (что хорошо). В целом, думаю, звучит получше многих эмуляторов. Осталось шум только сделать с более длинным циклом.
У меня вопрос - а почему вы только программные эмули рассматриваете? В природе сегодня целая гора разных машин на которых нет АУ, но он есть, в виде куска софткоры. Например тот же некст и спринтер (этот вообще самый первый без ау был, но с эмуляцией на ahdl). Это первое. Второе, на мой слух, хз тюне, анрыл, икс спекки и некоторые другие сотовые эмули играют совсем одинако о. На протяжении многих (столетий) лет всех устраивало качество. Но потом пришёл ТС и возмутился. Так же хочу сказать пару слов в поддержку Сэма - твой эмуль нормуль. Со звуком все норм. Забей. Добавь эмуляцию спринтера.
SAM style
04.09.2020, 19:48
Так же хочу сказать пару слов в поддержку Сэма - твой эмуль нормуль. Со звуком все норм. ЗабейДык я в большинстве случаев и забиваю :v2_dizzy_indy:
а почему вы только программные эмули рассматриваете?
Потому что у меня есть только живой с YM, и софт эмули. Никаких других "софткор" нет. У кого есть - пусть выкладывают свои рендеры, оценим.
На протяжении многих (столетий) лет всех устраивало качество.
Потому что эти несовершенства относятся к малоиспользуемым и малозаметным вещам. Шум воспринимается сильно субъективнее чем чистые тона, а артифакты на высоких частотах вообще из разряда редкостей. Но тем не менее.
Так же хочу сказать пару слов в поддержку Сэма - твой эмуль нормуль. Со звуком все норм. Забей.У ХРессу шум просто в 2 раза ниже стал после какой-то версии. Как это можно не услышать???
Мне вот интересно с чего вы взяли что конкретно ваш aAY или YM являются эталоном? Давайте по порядку. вот во-первых от партии к партии различные все вот эти вот ауки и прочие подобные прочие генераторы от партии к партии имеют разное качество звучания точнее если быть, не качество звучания а разные генерацию. Всегда есть погрешность. То есть в данном случае вы взяли в качестве эталона свою конкретную микросхему. кто вам сказал что именно эта микросхема является точной и эталонный? чтобы выявить эталон, вам необходимо взять по крайней мере хотя бы 100 разных микросхем из разных партий соответственно 100 разных партий, снять с них показания и выявить что-то типа среднего, который будет иметь наилучшие показатели. Во-вторых, документация часто отличается от реальности. Не в плане того, как правильно программировать, а в плане соответствия тому как она работает. Всегда есть небольшие расхождения. В-третьих, не то чтобы никогда, но в ближайшие года может, быть даже десятилетия, вы не сможете встретить программный эмулятор этих генераторов настолько точный, чтобы он полностью повторял настоящую железку. Ну и в-четвертых, у всех слух разный. Вы вот, например, услышали какие-то дефекты. А я сколько лет пользуюсь различными эмуляторами под Винду тоже самое анриал, и подобных дефектов не слышал никогда вообще. Как из сотни одна может быть даже и тысячи других пользователей. вашим действиям на текущий момент есть одно очень точное определение - утопия! вы пытаетесь достичь того чего на текущий момент достичь в принципе невозможно.
NEO SPECTRUMAN
04.09.2020, 21:57
Правда, все что было бипером - тоже вычистилось.
Показывай, что там получилось на "качественном" спектр-анализаторе.
:v2_dizzy_facepalm:
ну он то там не проста так
по ним я должен был увидеть когда в регистры происходит запись
ты их срезал...
в придачу по ним можно отличить отдельные значения
мне насрать на 50Гц вдоль и поперек
кидай шумящую запись
- - - Добавлено - - -
и чота там на нулевом и 1 делителе тона сильная пустота
там точно есть какой то сигнал? о_О
вот на огибающей 0 и 1 точно одинаковы
жаль не написал чередование с какого либо делителя с $000
был на 100% уверен что на записи 0 и 1 будут одинаковыми
- - - Добавлено - - -
в принципе вижу какие то еле заметные полоски
одинаковые на 0 и 1
возможно это алиасинг
и 0 и 1 таки одинаковы просто с сильно просаженной амплитудой
- - - Добавлено - - -
вот первые два значения тона
они выглядят одинаково но отличаются от тишины
https://jpegshare.net/images/67/68/6768f093052d32de586086580bab871c.png
но если смотреть на саму волну
то они успешно не отличаются от тишины
тот случай когда фильтр на входе только помешал...
- - - Добавлено - - -
первая отраженная гармоника 109КГц при 192КГц дискретизации должна быть на 83 КГц
тут ее нет...
- - - Добавлено - - -
наверно вот это она
https://jpegshare.net/images/b2/28/b2281703b0beb28099e001e4e413cb8c.png
- - - Добавлено - - -
щас я поищу отражения первых нескольких гармоник
- - - Добавлено - - -
отражения должны быть на
82860 1-я гармоника
56580 3-я гармоника
30300 5-я гармоника
4020 7-я гармоника
1-я есть и точно на своем месте
https://jpegshare.net/images/fd/65/fd6536ef3f0408165a5714d633d24a78.png
3-й не видно
https://jpegshare.net/images/ec/37/ec373db2e5b349870b5a98cfb482b484.png
или не на своем месте
https://jpegshare.net/images/e5/41/e5413c2322ead694b29972d25b85bc27.png
5-я
не совсем на своем месте но рядом
https://jpegshare.net/images/40/05/400500b2c81e389266eac4fc87c4ef18.png
7-я
наверно где то тут
https://jpegshare.net/images/35/ec/35ecdf8c5e8b9104a1bad6fbcb7c85fd.png
- - - Добавлено - - -
так что можно предположить что делители тона 0 и 1 одинаковы и дают 109КГц
так же что делители 0 и 1 тона дают какую либо частоту а не постоянный уровень подтверждает 6-й тест
- - - Добавлено - - -
а вот славноизвестные 2 уровня огибающей
другими словами AY может при желании 32 ступеньки в качестве ЦАП-а
кто то кроме меня про это знает и применяет?
в придачу это эмулируется
https://jpegshare.net/images/6e/f2/6ef22ae8cb63eab5da8f3cfaeab35c5b.png
Мне вот интересно с чего вы взяли что конкретно ваш aAY или YM являются эталоном?
Я такое разве решал? Это чип, он априори эталоннее любых софт.решений. Так же как железячный z80 эталоннее реализаций в ПЛИС (т.к. там могут не учитываться разные вещи). Есть другие? Милости просим, выкладывайте.
Давайте по порядку. вот во-первых от партии к партии различные все вот эти вот ауки и прочие подобные прочие генераторы от партии к партии имеют разное качество звучания точнее если быть, не качество звучания а разные генерацию. Всегда есть погрешность.
Вздор. Все АУКи имеют одинаковую генерацию, как и все УМки. Но УМ и АУ друг с другом - разные. Разная у них может быть разве что схематика, задающая таблицу амплитуд. Но это сущая мелочь, и те самые обозначенные в №1 артефакты это не создает ни в каких обстоятельствах. Т.е. можно считать все УМки эквивалентными (если они не сбойные, но тогда они бы вообще иначе звучали, если бы вообще звучали).
вам необходимо взять по крайней мере хотя бы 100 разных микросхем из разных партий соответственно 100 разных партий, снять с них показания и выявить что-то типа среднего, который будет иметь наилучшие показатели.
А что не 1000000?
Какие "показатели" у них могут различаться? Это цифровая микросхема. Она или работает, или не работает (что сразу же будет слышно). Докажите для начала что разные АУки дают разные звуки, а потом уже "рекомендуйте" залезать в дебри сбора статистики по сотням чипов из сотен партий.
В-третьих, не то чтобы никогда, но в ближайшие года может, быть даже десятилетия, вы не сможете встретить программный эмулятор этих генераторов настолько точный, чтобы он полностью повторял настоящую железку.
В принципе, ay-emul повторяет настоящую железку на 99.9%. Если устранить что в некоторых эмуляторах делитель 0 и 1 различаются, то таких "около-эталонных" будет больше.
Ну и в-четвертых, у всех слух разный.
Конечно. Есть и глухие. Им любые чипы одинаково звучат. И даже не чипы звучат как чипы. Давайте на них ориентироваться? И спектрального анализа конечно тоже нет. И формы волн тоже сравнивать нельзя. Ага.
вы пытаетесь достичь того чего на текущий момент достичь в принципе невозможно.
Я уже достиг - из зоопарка решений выявил софтовый эмулятор, и условия, при которых звук по спектру и по волне аналогичен до неразличимости (не только на слух, но и по анализу спектров) с железным УМ.
NEO SPECTRUMAN
04.09.2020, 22:02
Sayman, успокойся
не все звуковые микросхемы делали комодурщики
нам достаточно сравнить AY и YM
можно сравнить версии от gi и microchip
можно сравнить с 2203
еще можно сравнить с китайскими подделками
результаты 99 пудова будут одинаковы
тем более для одного типа микросхемы...
по ним я должен был увидеть когда в регистры происходит запись
А 2сек тайминги уже не действуют? Думаешь, что я что-то вырезал и сопоставить времена начал с записью уже не выйдет просто по времени и последовательности?
мне насрать на 50Гц вдоль и поперек
кидай шумящую запись
Да пожалуйста. Только в ней полно артефактов из-за 50Hz humming.
И эти 50Гц - размазаны по всему спектру, в этой каше ты хрен найдешь "тихие гармоники".
https://volutar.myds.me/zx/neotest2-raw.flac
тот случай когда фильтр на входе только помешал...
Возможно, это фильтр на выходе (по схеме там ёмкость и сопротивление, я не шибко в этом понимаю, у меня Profi 3.02).
а вот славноизвестные 2 уровня огибающей
Каким образом у огибающей получаются 2 уровня? Амплитуды огибающих же до максимума ходить должны.
NEO SPECTRUMAN
04.09.2020, 22:23
Какие "показатели" у них могут различаться?
например дешифрация номера регистра
у AY и YM она отличается
- - - Добавлено - - -
Каким образом у огибающей получаются 2 уровня? Амплитуды огибающих же до максимума ходить должны.
да лехко
это один из секретов neo spectruman-ов
например дешифрация номера регистра
у AY и YM она отличается
И как это на звуке сказывается при программировании без выделываний, а по документированным регистрам 0-14?
NEO SPECTRUMAN
04.09.2020, 22:26
А 2сек тайминги уже не действуют?
на последних тестах запись с частотой 175 Гц
а на бипер идут щелчки при записи
https://jpegshare.net/images/2b/32/2b327560c6f38e10014cc1ce7d3964fe.png
некоторые эмуляторы вообще ревут частотой записи (даже когда пишешь одно и тоже значение)
не вспомню какие
давно гуглялся
а тут переинициализации не происходит
с одной стороны это хорошо и позволяет делать одни эффекты
с другой стороны это плохо и не позволяет делать другие эффекты
- - - Добавлено - - -
И как это на звуке сказывается при программировании без выделываний, а по документированным регистрам 0-14?
типа сказывается
можно оптимизировать код с учетом этих особеностей
например есть такое поделие как SIDBASIC которое усердно юзает неполную дешифрацию портов не полную дешифрацию регисров
и существует в двух версиях для AY и для YM
пушо одно на другом не работает
а вот славноизвестные 2 уровня огибающей
другими словами AY может при желании 32 ступеньки в качестве ЦАП-а
кто то кроме меня про это знает и применяет?
в придачу это эмулируется
Расскажи подробнее)
например есть такое поделие как SIDBASIC которое усердно юзает неполную дешифрацию портов не полную дешифрацию регисров
На мутантах типа Пентагона, которые к официальным документированным ZX-128+AY имеют такое себе отношение? Я бы предпочел эту демомейкерскую эквилибристику с уменьшением ФПС ради тактов, и работе по сокращенным портам ради них же - обходить стороной.
это один из секретов neo spectruman-ов
Вот, кстати, этот тест на эмуляторах проверялся?
По технике я понял, там просто идет смесь огибающей с тоном, имеющем делитель 0/1
NEO SPECTRUMAN
04.09.2020, 22:48
Расскажи подробнее)
ну как огибающая модулирует тон
так и тон модулирует огибающую
а все мы знаем что существует такая вещь как шим
а дальше ну вы понели :)
хотя для ЦАП-а это не поворотливый метод
а вот получить дилей для огибающей вполне можно
ну и 3-мя каналами AY-ка можно выдать целых 6 уровней огибающей
что полезно например для TS где можно временно отдать 1 AY под какой нить инструмент
ну или 4 увовня если юзать 2 одинаковых канала на 2-х разных AY
благо синхронизировать огибающую можно для этого :)
- - - Добавлено - - -
Вот, кстати, этот тест на эмуляторах проверялся?
до
в унриале работает
так что можно пользоваться
ну как огибающая модулирует тон
так и тон модулирует огибающую
а все мы знаем что существует такая вещь как шим
а дальше ну вы понели
Нет, не понели)
Что у тебя играет роль ШИМа? На какой частоте и как?
NEO SPECTRUMAN
04.09.2020, 23:03
На какой частоте
на 109КГц
и как?
из коробке
до
в унриале работает
Вот чтобы он работал должна быть плюс-минус точная децимация, а не сглаживание "линейной сверткой".
Забавно, конечно, что делитель 0/1 не дает вообще никакой частоты. А делитель 2 даёт 55Кгц.
Хотя это логично - основная частота на которой работает AY - это Clk/16, а чтобы получился один период волны - нужно 2 такта.
Нужен тест, в котором будет происходить изменение на делитель 0 (а потом то же самое на 1, и на 2), и потом сразу на какую-то слышимую частоту(лучше низкой частоты, герц 200 хватит, чтобы в одном фрейме 4 периода было), совместно с каким-нибудь щелчком на бипере, чтобы видеть начало волны. И таких - серию, штук 20 хотя бы. Можно очень короткие фрагменты, поскольку нам не нужно строить спектрограмму.
Смысл - понять какие есть возможности сброса фазы меандра.
NEO SPECTRUMAN
04.09.2020, 23:08
Забавно, конечно, что делитель 0/1 не дает вообще никакой частоты
дык 192 КГц же не хватает
нужно хотя бы 256 КГц чтоб закаптуреть такую частоту
а отраженные гармоники намекают нам что частота там таки есть
а шум такой же частоты видимый по другой причине
пушо он фонит по всему диапазону
дык 192 КГц же не хватает
Захват идет с этой самой частотой. А то что она больше частоты найквиста не значит что там будет полная ТИШИНА. А мы имеем полную тишину, а отнюдь не какую-то странную частоту-артефакт (отражение). Если звучит частота в 20Кгц а захват идет с частотой в 8кгц - мы не будем иметь тишину. Интерференция все равно будет проявляться.
Кстати, по этим скапчуренным частотам я вычислил точную частоту на своём чипе - 1.74616МГц.
NEO SPECTRUMAN
04.09.2020, 23:26
ТИШИНА
так прикол в том что там не полная тишина
прикрути чувстительность своего спектрографа и посмотри
https://jpegshare.net/images/81/23/8123753a0513af010ca90528bf98a995.png
https://jpegshare.net/images/23/92/2392bdf1c2dab47dcd0c230a5bf6cdf3.png
а гормоники отражаются много раз
только у первой одно отражение от 96КГц
у остальных по 2 5 100500 отражений...
смотри уже на последней видимой
видимых отражений мало
в придачу если одно и тоже происходит с шумом и огибающей
почему оно должно отличатся для тона?
кстате в унриале огиабющая правильно
0 и 1 одинаковые частоты
а вот с шумом лажа...
во-первых, по поводу z80, сейчас существует не только t80, но и другие реализации, например, тот же next, в котором z80 на softcore реализована на столько, что вы программно никогда в жизни не определите, что он именно программный, ну то есть имеется в виду эмулируемый z80. уж поверьте, у меня next был, я им пользовался, я под него программировал, я его изучил вдоль и поперёк, запускал различать различные тесты и ни один из них не выявил, что там какие-то корявые команды и всё такое. далее, не имеет значения комадура это, АУ или ещё что-то. генератор звука есть генератор звука. даже у yamaha Когда вы покупаете одну и ту же модель синтезатора, разные разные партии играют по разному.
Далее, yamaha играет так, а АУ чуть иначе. с девяностых годов у меня были как минимум три или даже четыре, а может быть даже 5 клонов spectrum. там были и Пентагон и Новосибирская поделка и два профика. теперь ещё и sprinter и в живую видел собственно говоря ZX evolution и везде где стоял аy либо yamaha, они все играли чуть по-разному. Тема которую вы создали, это субъективщина! Ещё раз напоминаю, два разных чипа из двух разных партий всегда будут играть по-разному. Особенно это касается современных реализации которые были выпущены в Китае. за всю историю производства подобных чипов существовало четыре или пять разных контор которые его производили. сейчас этим занимается конкретно Китай. Даже не то чтобы занимается прямо сейчас он их не производит. Всё что вы сейчас можете купить, это старые запасы. Что уж говорить про генераторы звука. можно поговорить про процессоры. современные технологии не предполагает производство двух абсолютно с точностью до микрона одинаковых процессоров. Два процессора одно одного и того же производителя, одной и той же марки, но выпущенные в разные дни в разных партиях, имеют разные возможности и работают по-разному. Ближайшим примером является тепловыделение и возможности к разгону. неужели кто-то думает, что при производстве кристалла от партии к партии все чипы производятся ровно одинаково, как будто бы это один чип? Конечно же нет! Отсюда и разность при проигрывании. именно поэтому, нужно собрать несколько чипов из разных партий, снять с них данные, проанализировать и только тогда можно выявить хотя бы более-менее аналог эталона. а на данный момент вы просто взяли среднестатистический чип, приняли его за эталон и радуйтесь. Возвращаюсь к z80 - когда у меня был профи 4.02 и я экспериментировал с разными процессорами по теме разгона, Я использовал несколько процессоров одной и тоже серии. И из нескольких процессоров только один смог работать в turbo режиме на 7 мегагерц. Позднее когда у меня уже был профи 502 Я использовал серию h. В наличии у меня было как я сейчас помню 5 разных процессоров из разных партий. И только один из них смог работать нормально работать на частоте 10 МГц. у Вадима опыт был еще более жестким так как он использовал больше количества процессоров. И только один из них смог работать на частоте 12 МГц. поэтому влияние партии при производстве чипа имеет очень большое влияние на качество результата. И не имеет значения в принципе какой это чип - Сид, ау, yamaha или это сеговский там какой-то чип. Технологические законы распространяются на всех. Для этого и существует термин - партия (не политическая).
Причём тут вообще глухие? ну я вот, например, в девяностые года под ау писал музыку. Я глухой по-вашему? а все форумчане, которые тусуются на этом форуме, тоже глухие? В крайность то переходить не нужно. Я же конкретно сказал у всех слух разный. и большинство говорит (точнее не возражает), что те же самые эмуляторы о которых вы написали, играют плюс-минус одинаково. В частности анрыл, хз тюн, ау эмуль, х спекки. если сейчас подключить анализаторы к нескольким разным чипам, это поверьте диаграммы будут отличаться. И вы просто ахереете насколько там разные гармоники и не только. если на слух конкретного пользователя тоже самое unreal и их спеке играют одну и ту же музыку одинаково то значит они играет эту музыку одинаково. 3 варианта не дано. Ну тут приходите вы. Начинайте тыкать в автор эмулятора разными диаграммами. У него имеется на руках статистика от пользователей, которая гласит, что эмуляция звука ау а в его программе работает корректно. Лично мне ровно как и auto.ru эмулятора все эти диаграммы пофигу. Просто потому что есть такая поговорка, если это играет кака ау, выглядит какое ау и пахнет какое ау, то это и есть ау. и все ваши там диаграммы с гармониками это просто пустое фуфло. Сначала докажите, что ваш конкретный чип является эталоном и тогда кидайте предъявы. Ну и в заключении, проект XSpeccy является открытым. Берете в руки исходники и правитель генератор звука так как вы считаете нужным. Не забывайте, что автор эмулятора лично вам ничего не должен и не обязан. Всё делается на голом энтузиазме. Я ваше предъявы здесь абсолютно беспочвенны. берете в руки исходники и делайте правильные эмулятор ау с вашей точки зрения. Другого варианта здесь нет. Наседать на авторов целойй кучи эмуляторов, кидать предъявы, что вы все дураки и только я здесь Д'Артаньян, немножко неразумно. каждый из авторов эмуляторов использовал документацию на этот чип. и каждый из авторов применил все необходимые алгоритмы которые были описаны в документации. Если вы считаете что это не так как докажешь идти обратно и путем написания своего собственного эмулятора. 3 варианта здесь недано. весь остальной текст который будет после после этого это пустой трёп.
ЗЫ. За косяки в тексте пардон. Тупой tts на ведре.
NEO SPECTRUMAN
04.09.2020, 23:31
тот же next, в котором z80 на softcore реализована на столько, что вы программно никогда в жизни не определите, что он именно программный
надо поискать фотки где этот мерзкий некст проваливает тест эмуляции z80
это шото это ***** сильно обожествляют
например, тот же next, в котором z80 на softcore реализована на столько, что вы программно никогда в жизни не определите, что он именно программный, ну то есть имеется в виду эмулируемый z80. уж поверьте, у меня next был, я им пользовался, я под него программировал, я его изучил вдоль и поперёк, запускал различать различные тесты и ни один из них не выявил, что там какие-то корявые команды и всё такое.
Не выявил, это не значит, что их нет)
Напомните, реверс Z80 кто-то уже делал? Если да, то какой CMOS, или nMOS?
NEO SPECTRUMAN
04.09.2020, 23:56
Не выявил, это не значит, что их нет)
может кто закинет более свежие данные
https://i.postimg.cc/RZJWFxYq/photo-2020-03-03-00-26-48.jpg
https://i.postimg.cc/FKj1ygN4/photo-2020-03-03-00-34-31.jpg
https://i.postimg.cc/fTGw8tHT/photo-2020-03-03-00-31-41.jpg
https://i.postimg.cc/pTCT7Wmc/photo-2020-03-03-00-34-29.jpg
https://i.postimg.cc/8cC5g2Wp/photo-2020-03-03-00-34-21.jpg
- - - Добавлено - - -
кстате надо софтварно определять некст
и форматировать ему sd карту и зачищать биосы
https://jpegshare.net/images/0d/2a/0d2a6315bfd22ad1adf4677f2e9e8f26.jpg
- - - Добавлено - - -
основная частота на которой работает AY - это Clk/16
кто это сказал?
это по идеи уже максимальная выходная частота
а у AY целых 16 тактов чтобы считать
Sayman, Про процессора опущу, это оффтопик.
По звуковым чипам.
Sid - отдельная история, и она нам не интересна. Там чип полуаналоговый. AY/YM - полностью цифровые, и в аналоге там просто встроенный ЦАП. Он никаких артефактов не создаёт, и все варианты таблицы амплитуд вытащены десятки раз и тысячи раз услышано какую разницу они создают.
Да, AY и YM играют чуть по-разному. Это общеизвестно. И вся разница давно документирована. Различие - таблица амплитуд обычная и размер таблицы для огибающей (16 vs 32). Это все десятки лет как общеизвестно.
Ещё больше десятков лет общеизвестно, что при передискретизации происходит выпячивание отраженных частот от найквиста. Очень давно общеизвестно. Это НЕ вкусовщина, и НЕ субъективщина. И даже глухие люди запросто могут УВИДЕТЬ ГЛАЗАМИ все эти артефакты в аудио-софте в режиме спектр.анализа. И давно известно как этих артефактов избежать - это выполнять качественную фильтрацию всех частот выше частоты найквиста. И часть эмуляторов и плееров это делают прекрасно.
Также десятки лет в документации к чипам указано что делитель 0 и 1 эквивалентны делителю 1. И документировано, и у тысяч людей железные процессора есть которые в этой части работают абсолютно идентично. Нет AY и YM, у которых бы это было иначе.
И именно эти _объективные_ факты я анализирую, прогоняя аудиотест в разных плеерах и эмуляторах. Это объективщина. И объективно в zx-emul абсолютно все эти факты Бульба очень аккуратно учитывает. Но большинство учитывают одно, но не учитывает другое.
Да, это "околокраевые случаи", потому они и не так заметны на слух. Именно эта "незаметность" - и есть факт субъективщины, а не то что я якобы их "вытряхиваю". Т.е. в реальности _субъективность_ в том, что какой-то части спектрумистов кажется, что звучат они одинаково. Большинство слышат что есть разница, они ее никак не могут выразить. Либо же им просто насрать на "небольшую разницу". И позвольте, но я не собираюсь ориентироваться на тех, кому насрать. Мне насрать на тех кому насрать. Так вот, я решил исследовать и вытряхнуть эту самую "разницу". Чтобы была объективная точка опоры, а не "совокупность субъективных мнений" к которой вы аппелируете.
Для начала докажите, что существуют YM с одинаковыми маркировками (и AY), у которых генерируется объективно разная волна (по визуализации спектра), и welcome с этими фактами. А словоблудить тут, с абстрактными отсылками к каким-то партиям, пытаясь как-то обесценить это исследование, и защищая/оправдывая кривости - тут не нужно.
Факт в том, что необходим софтовый эталон, "стандарт", с привязкой к железному эталону чипов (и AY, и YM), в который можно будет отсылать авторов эмуляторов, которые реализовали эмуляцию криво. Сами авторы заинтересованы в наличии такого стандарта, чтобы не было "кто в лес кто по дрова". Если кто-то сделает более качественный и детальный тест, выполнит его и на AY на 192КГц - буду только рад. Если кто-то сделает такие же тесты на YM2203, и вытащит все звуковые нюансы - тоже замечательно. Если кто-то обнаружит какие-то партии AY у которых звук ДРУГОЙ - тоже будет замечательно это все задокументировать. Про то и речь. А мой случай с YM - это _хоть что-то_. Это начало наведения порядка.
NEO SPECTRUMAN
05.09.2020, 00:05
Также десятки лет в документации к чипам указано что делитель 0 и 1 эквивалентны делителю 1
до в документации на более старший и не полностью совместимый чип :v2_lol:
но в принципе вроде подтверждается и тут
может на днях еще посмотрю у себя на железном AY 3 8912
программно никогда в жизни не определите, что он именно программный, ну то есть имеется в виду эмулируемый z80
со временем всплывает много всяческих нюансов.
например во всех мануалах "на русском" (и не только на нём) действие команд outi/outd разъясняется неправильно.
zilog конечно позже сообщил правильный порядок действий, но гораздо позже
NEO SPECTRUMAN
05.09.2020, 00:11
Sid - отдельная история, и она нам не интересна. Там чип полуаналоговый. AY/YM - полностью цифровые,
у sid-а глючит и цифровая часть
при том ниподетски
от чего комбинированные формы волны непредсказуемой формы...
да и выглядят как глюки
adsr вообще делал рукожоп
так что там из коробки эффект ВНЕЗАПНОсти
пишим одно а получаем ВНЕЗАПНО не то 50% записей
или же вместо плавного инкримента вверх
переход от 0 к 255 и декремент вниз
так же как и на оборот
от 255 к 0 и инкримент вверх вместо декремента...
...а еще некоторые товарищи этими пируэтами зачем то пользовались
(например чтоб делать типо дилей
пишется атака в одно время а происходит совершенно в другое сама по себе...)
короче редкостоное гафно этот ваш сид
Я совершенно точно ничего доказывать не собираюсь, по той простой причине, что это вы пришли сюда доказывать обратное. Для начала вы докажете, что 100 разных ямах играет одинаково. Ну или хотя бы с десяток. А после этого уже тыкайте сюда различные анализаторы.
Что касается Сида, то если откинуть аналоговую часть, которая по сути своей есть фильтр, то без этого самого фильтра, Сид играет как и любая yamaha. Погрешность будет точно такая же, как и у yamaha между партиями. Но почему-то, отдельные граждане, такое понятие как партия и технологический процесс отказывается воспринимать в принципе. Я ничего и никому не собираюсь доказывать. Доказывать сюда пришли вы. И на данный момент вы ничего не доказали. Как я уже ранее сказал, хотите что-то доказать? Напишите сами, а потом уже со скриншотами анализаторов тыкайте предыдущих авторов носом в их же какашки. А картинки рисовать красивые мы тоже умеем.
NEO SPECTRUMAN
05.09.2020, 00:24
что это вы пришли сюда доказывать обратное
помножу твои слова на 0
в эмуляторах это реализовано по разному
а тк нигде не документировано (пусть не рассказывают)
значит всегда было сделано на глаз и не сверялось с оригиналом...
у sid-а глючит и цифровая часть
при том ниподетски
от чего комбинированные формы волны непредсказуемой формы...
да и выглядят как глюки
adsr вообще делал рукожоп
так что там из коробки эффект ВНЕЗАПНОсти
пишим одно а получаем ВНЕЗАПНО не то 50% записей
или же вместо плавного инкримента вверх
переход от 0 к 255 и декремент вниз
так же как и на оборот
от 255 к 0 и инкримент вверх вместо декремента...
редкостоное гафно этот ваш сид
Пахоже тебе достался брак какой-то. У меня сейчас к спринтеру подключен 6581 и ни чё подобного не встречал. Всё по мануала, аж тошно.
NEO SPECTRUMAN
05.09.2020, 00:28
Что касается Сида, то если откинуть аналоговую часть, которая по сути своей есть фильтр, то без этого самого фильтра
дадада
могу направить почитать мат часть
думаю тебя она не обрадует
кстате как там идет портирование робосида к спринтеру?
- - - Добавлено - - -
Пахоже тебе достался брак какой-то. У меня сейчас к спринтеру подключен 6581 и ни чё подобного не встречал. Всё по мануала, аж тошно.
:v2_lol:
- - - Добавлено - - -
У меня сейчас к спринтеру подключен 6581
о там ужо что то интересное
расказывай подробносте :)
помножу твои слова на 0
в эмуляторах это реализовано по разному
а тк нигде не документировано (пусть не рассказывают)
значит всегда было сделано на глаз и не сверялось с оригиналом...
Так же как и твои на 0 помножить. Уж 20 с лихуем лет как доки доступны. Только ты их сейчас асилил найти. За всех то не говори.
NEO SPECTRUMAN
05.09.2020, 00:29
Пахоже тебе достался брак какой-то.
это обще известный adsr bug
про adsr wrap известно меньше
но тоже местами написано и при желании в его существовании можно убедиться
- - - Добавлено - - -
Уж 20 с лихуем лет как доки доступны
какие доки?
доки на сид сосут по точности
и это общеизвестный факт
не знаю что ты себе там придумал
доки на 8580 вообще нет в интеренетах
хотя бумажная она точно есть
а есть только упоминание что она более точно описывает поведение сида
и пару страниц от туда
Доказывать сюда пришли вы.
И я уже это доказал.
Хотите опровергать - вытряхивайте факты, и прекращайте словоблудить абстракциями.
NEO SPECTRUMAN
05.09.2020, 00:34
Только ты их сейчас асилил найти.
отлично захожу в папку с доками на сид
ага самый ранний скачанный док на сид что у меня с марта 2012 года :v2_dizzy_turn:
но это только самый ранний отсортированный может у меня было такое же и еще раньше
так шо ты вася шота попутал
думаю если ты начнешь писать эмулятор этого чуда техники
ты быстренько опустишься на землю...
кстате может в твоей доке даже написно в какой партии сида 6-я форма волны кривой треугольник
а в какой партии это пила на октаву выше?
а ну да там упоминается только 4 формы волны
Пахоже тебе достался брак какой-то. У меня сейчас к спринтеру подключен 6581 и ни чё подобного не встречал.
кстате если ты тупо покрутил музычки то конечно
про это давным давно известно и есть приемы для борьбы с оно
а вот проблемы начинаются когда хочешь "по мануалу" чо нить записать в регистры adsr
можешь посмотреть как усердно плееры щелкают TEST-ом чтобы заглушить звук на время hard sync-а
Доказывать сюда пришли вы.
точнее пришел ты а мы тут и были
marinovsoft
05.09.2020, 00:39
Ну вот опять Sayman всех затроллил.
NEO SPECTRUMAN
05.09.2020, 00:41
Ну вот опять Saymon всех затроллил.
саймон просто хотел типо похвастаться что он прикрутил сид к спринтеру
но не находил повода :)
Кстати, было бы прекрасно если бы кто-нибудь из владельцев Next сделал запись с этим тестом и поделился. Вот мы бы и посмотрели насколько хорошо у них AY эмулируется. Вдруг у них и есть эталон.
- - - Добавлено - - -
NEO SPECTRUMAN, Думаю, стоит посмотреть осциллограмму с делителем в 0/1/2, чтобы уж окончательно поставить точку.
NEO SPECTRUMAN
05.09.2020, 01:28
завтра попробую посмотреть
И я уже это доказал.
Хотите опровергать - вытряхивайте факты, и прекращайте словоблудить абстракциями.
Во1х, всё началось не в этой теме, а в теме эмулятора xspeccy. Поэтому да, это вы пришли что-то кому-то доказывать. При этом не доказали. Во2х, вас тут двое. Не видно толп участников обсуждения проблемы. эта проблема только в ваших головах. Для вас двоих есть отличная поговорка - петушка хвалит кукуха за то, что хвалит он петушку. И доказательств пока никаких нет. Ваши картинки вы для себя нарисовали. Вы ещё с дед софтом попробуйте вот так, как с Сэмом поговорить, что анрыл гофно толкает вместо АУка))))
Но ок, не буду вам мешать нахваливать друг друга.
Вы ещё с дед софтом попробуйте вот так, как с Сэмом поговорить, что анрыл гофно толкает вместо АУка))))
его ответ - " эмуляцию делали когда схемы AYка ещё не было"
NEO SPECTRUMAN
05.09.2020, 13:40
AY-3-8912A
GI 8631
https://jpegshare.net/images/c7/d6/c7d68a1fb78ebf59d3c0322da9a6995d.jpg
делитель тона $000
https://jpegshare.net/images/01/b8/01b867705062978ee56da57331ec81dc.jpg
делитель тона $001
https://jpegshare.net/images/33/d5/33d5123636fd0bcbb2ded0580180db6e.jpg
делитель тона $002
https://jpegshare.net/images/53/78/53780ceab6bc1ae033567bb60640bc5d.jpg
делитель тона $003
https://jpegshare.net/images/2b/ef/2befbd5b55166b36a6517a41cc13b235.jpg
что и требовалось доказать
делитель 0 соответствует делителю 1
и все полностью описывается формулой расчета частоты из мануала
для наглядности 3 верхних частоты наложенные друг на друга
https://jpegshare.net/images/11/10/1110f36e4f69baf3ef993ada9dc6a6e3.jpg
https://jpegshare.net/images/db/2a/db2ae2ba76ac28274368793361468cfc.jpg
логарифмичность огибающей так и прет
https://jpegshare.net/images/de/33/de3359bd3870dca38cfaa2fa97f47b1c.png
ну и спектрограммы
шум частоты 0 и 1 одинаковы
https://jpegshare.net/images/99/f2/99f25475eaf54685a2b313808ea3cb9f.png
тон частоты 0 и 1 одинаковы судя по отраженным гармоникам
(еще раз убедились : )
https://jpegshare.net/images/8f/99/8f99100d1d729d6eda54f2c8bf690589.png
огибающая частоты 0 и 1 однозначно одинаковы
https://jpegshare.net/images/99/b6/99b624ad3e2377dcd49abb8ea496bec3.png
интересно 15625 видимо прет на звук
https://jpegshare.net/images/7a/8f/7a8f1b23a12a061b85f5bec5467ba258.png
его ответ - " эмуляцию делали когда схемы AYка ещё не было"
Честно говоря, я не понимаю логики товарища выше. Причём тут какой-то дедмен? unreal писал SMT, и я как-то сомневаюсь что кто-то лазил после меня и АлКо в код звукогенератора. Вопросом качества эмуляции AY вообще мало кто занимался, не Не говоря уж про то чтобы анализировать тот зоопарк, что накопился. В Unreal, кстати, из эмуляторов, один из лучших генераторов. Единственное - немного некорректный шум на делителе 0 (в своей сборке это подправил).
NEO SPECTRUMAN, а сам звук скапчуренный с макс самплрейтом? Тот образец что я делал. Чтобы некоторые тут перестали считать что моу YM слвсем не эталонный
MetalliC
05.09.2020, 20:07
Напомните, реверс Z80 кто-то уже делал? Если да, то какой CMOS, или nMOS?
https://baltazarstudios.com/z80explorer/
вроде NMOS
до
в унриале работает
так что можно пользоваться
Полагаю, что работает не везде. Во всяком случае в Xpeccy - нет (но он пока вне списка из-за ожидания исправлений). В Xpeccy там где тон 0/1 - огибающая даёт пустой звук, а не половинчатую амплитуду.
Готовлю новый тест... хочу до кучи варианты ретригов попробовать.
- - - Добавлено - - -
Во1х, всё началось не в этой теме, а в теме эмулятора xspeccy.
И что? Началось там, и вышло далеко за рамки XPeccy, который в этой теме даже не анализируется, т.к. автор сам увидел кривость и обещал исправление.
Никто тут ничего не называет "*****м". Это беспристрастный анализ всех _доступных_ устройств и эмуляторов, по ряду признаков. Анализ не субъективный "на слух", а по записанным волнам. Есть упомянутый тобой Некст или Спринтер? Запускай тест, записывай звук, и выкладывай для сравнения. А не свисти тут впустую.
Но ок, не буду вам мешать нахваливать друг друга.
Голова не бобо? Галлюцинации не беспокоят? Называть "благодарности" за выложенные данные "нахваливаниями" - ну это не знаю каким надо быть...
NEO SPECTRUMAN
06.09.2020, 11:51
Никто тут ничего не называет "*****м". Это беспристрастный анализ всех _доступных_
почему нет?
ZEsarUX - ГАФНО
только правда об эмуляторописании
ZEsarUX - ГАФНО
Я предпочитаю другую формулировку. Путь к совершенству у него очень длинный.
В идеале бы автоматический тест — записываешь кусок, скармливаешь спец проге, она делает анализ и выдает вердикт по разным параметрам — какие фичи поддерживаются, какие нет, какие криво.
NEO SPECTRUMAN
07.09.2020, 23:16
с макс самплрейтом?
у меня нет макс семплрейта
да и звуковая карта щас не подключена
да и там наверно 48 максимум
https://dropmefiles.com.ua/ru/xLQCNh4v
https://anonfiles.com/T7C2G6Seof/AY-_3-8912_2_rar
за одно можешь послушать как должен гудеть 50Гц фон
а то чота на твоих записях с фоном его особо не слышно :)
ну и на +2 бипер на порядок громче чем Ау на выходе
тут нужно было биперить по тише
ато щелчки получаются ощутимыми
Вторая итерация тестов. Загнал все в Spreadsheet по пунктам, чтобы удобнее было сравнивать.
Тест включает в себя анализ АЧХ, шумов (случайность, 0/1, корректность частоты), тест ШИМа (половины) огибающей, тест ретрига, и фильтрации высокочастотных гармоник (отражений).
https://docs.google.com/spreadsheets/d/1xSE37ZgbsbdZlU6O4zt4zYxeBoqd1De2jztmIwQJtMQ/edit?usp=sharing
https://volutar.myds.me/zx/ayphastest.7z - сами исполняемые тесты (sna, ay, $c)
https://volutar.myds.me/zx/ayphas44.flac - образец от моего YM2149f
за одно можешь послушать как должен гудеть 50Гц фон
Позаимствовал некоторые данные для своей сводной таблицы. В сущности наверное разницы никакой нет в части тестируемого (между YM и AY), вряд ли AY не умеет в ретриг.
ZEsarUX - ГАФНО
Что-то да... записав и уже подробно проанализировав звук, я скорее склонен с этим согласиться.. почему частота звука 16КГц? Адский урезок!
NEO SPECTRUMAN, Не мог бы ты по возможности скапчурить AY образец теста №2? Там 1:03 длина образца, чтоб недостающее в таблице дополнить (retrig).
И ещё, если у кого-то есть Next/Sprinter/AVRay, или какие-то другие модели с хардварной эмуляцией - тоже сделать wav/flac образцы (mp3/ogg не катят) - был бы премного благодарен. Ну и если YM2203 тоже, чтобы охватить максимальное количество вариантов.
Bedazzle
11.09.2020, 10:47
И ещё, если у кого-то есть Next/Sprinter/AVRay, или какие-то другие модели с хардварной эмуляцией - тоже сделать wav/flac образцы (mp3/ogg не катят)
Для чайников распиши, что сделать, - запишу с некста.
Bedazzle, в первом посте внизу ссылка на зип с тестом (для некста .sna пойдет?) записать чем-нибудь (компом в line-in), в wav или flac.
Заранее спасибо!
https://volutar.myds.me/zx/ayphastest.7z - в этом архиве есть ayphas.sna. Его запустить, с аудиовыхода спека скапчурить в какой-нибудь аудиософт типа audacity или soundforge, да хоть встроенную звукозапись. Каким образом перекинуть? Если траблы с файлообменниками, когда уже будет wav - напишу в ЛС куда и как выложить.
Капчурить минимум в 44.1КГц, 16бит, стерео (желательно в схеме ACB, но можно и ABC). Желательно дискретизацию побольше, если можно (я капчурил в 192КГц). Шум давить не нужно.
NEO SPECTRUMAN
12.09.2020, 13:27
Не мог бы ты по возможности скапчурить AY образец теста №2?
спек убрал далеко
а место где его собирать уже занято другим хламом
так что как нибудь совсем потом...
так что как нибудь совсем потом...
ок.
В общем, добавил еще несколько эмуляторов, до которых дотянулся. Часть старых эмуляторов генерируют очевидно шлаковый звук, и я даже не стал их добавлять в список. Добавил номера версий (т.к. предполагается обновление). В данный момент уже 19 эмуляторов. Из хардварных (спринтер/некст) пока нет данных.
cspect тяжело было вообще запустить, какой-то он максимально привередливый к sna, а с tap вообще зависает. Получилось что получилось - вообще без огибающих (когда огибающие - звука нет).
Обновил инфо об Хрессу по причине апдейта эмулятора.
Пересортировал таблицу в порядке количества и степени слышимых недостатков.
Выложил образцы звуков (которые имеются) для каждой строки в flac формате.
Bedazzle
20.09.2020, 19:55
(для некста .sna пойдет?) записать чем-нибудь (компом в line-in), в wav или flac.
Да, sna умеет грузить искаропки :)
Надеюсь, правильно сделал - 44100, 16 бит стерео ACB.
Про 192кГц не понял.
https://www.dropbox.com/s/ziib8g8u375do3z/zx_next_audio_test.rar?dl=0
NEO SPECTRUMAN
21.09.2020, 00:41
Dexus, ну вот иззо твоего желание запихнуть тест в 3 секунды
в упор не различимы между собой первые ступеньки тона
на фоне посторонних шумов
да и любое приличное окно не на лазит на такой короткий интервал :v2_dizzy_facepalm:
https://jpegshare.net/images/d9/99/d99938e359b8f45a17a1af962b49ab18.png
https://jpegshare.net/images/03/c2/03c298ed07d80a0e281ca61ae9bc69cc.png
https://jpegshare.net/images/db/4f/db4f24dd2e787e1f1ff12d16b14afb47.png
https://jpegshare.net/images/93/86/9386ac42c30c85ca6b33ed1bdb1ea05e.png
https://jpegshare.net/images/29/47/29478a5885248953d44e90afcbce6a24.png
для анализа нужно иметь минимум полторы две секунды сигнала
- - - Добавлено - - -
в принципе алгоритм можно немного обмануть
и увидеть немного яснее
https://jpegshare.net/images/a3/20/a320d97274ca810ea935cc247a252ce3.png
https://jpegshare.net/images/fd/5f/fd5f1ba43103896d5c75401cba52929b.png
https://jpegshare.net/images/5e/7c/5e7cef4c0e750e741fbb3aaa85948c73.png
- - - Добавлено - - -
да и секунды 0,4 идут переходные процессы и нужно ждать нормализации
https://jpegshare.net/images/f3/a1/f3a1659f939d77993964802c692bfca3.png
а у тебя такой длины сами тесты...
- - - Добавлено - - -
в принципе замылил до такого состояния
https://jpegshare.net/images/1f/c5/1fc57a2b7595d55e1cf798f300cda325.png
и если тест начинается без какой либо паузы сразу после предыдущего
то можно слегка предположить что 0 и 1 частоты одинаковы
- - - Добавлено - - -
за одно проверил насколько правильно работает такой способ обманывания
https://jpegshare.net/images/d4/80/d480e25ee811e621af0ea87eed9013ee.png
https://jpegshare.net/images/90/3e/903e7e301ea1a262244614259fe229ea.png
и вощем видно что гармонический состав не зависит от качества нарезки и размеров дублируемых блоков
на высоких частотах такому способу вполне можно доверять
(а то я увидел подозрительные раздвоения на делители 2 и засомневался в правильности результата)
Про 192кГц не понял.
Да это так.. проверить высокочастотный выход. Хотя вряд ли в Нексте эмулируется АУ на частоте выше 44100/48000. Но проверить можно было бы, если записывать вывод на звуковухе которая поддерживает частоты 192КГц или выше.
В общем проанализировал. Выложил в общем списке, дополнил таблицу. У Некста почти идеальный звук, но есть слышимые тона небольшой амплитуды на делителях <7. Это очень странно. Более высокочастотная запись может помогла бы понять что это такое
- - - Добавлено - - -
для анализа нужно иметь минимум полторы две секунды сигнала
Вообще-то для частотного анализа достаточно с десятка периодов колебаний (даже двух). Соответственно для высоких это очень короткая выборка, для низов - существенно длиннее. Хотя для совсем высоких где близко к частоте найквиста начинаются паразитические тона, и для них период должен быть уже не кратчайший а максимально слышимый. В любом случае это не более 1/50сек. Пол-секунды точно достаточно. А ты просто видимо зациклился на несовершенном варианте дискретного фурье-преобразования, которому нужно подавать на входе длинные фрагменты. Клонируй их. Или растяни по времени до 2х секунд с корректной передискретизацией, и учитывай что при этом частоты в 4 раза ниже.
NEO SPECTRUMAN
21.09.2020, 03:40
Пол-секунды точно достаточно.
сферически идеального сигнала
а шумы усреднять как?
- - - Добавлено - - -
Клонируй их.
я так и сделал
но так успешно клонируются ачх и паразитных щелчков и шумов (что вощем то и видно на картинках выше)
которые могли быть разовыми и короткими и на широком окне они бы помножились на 0
а шумы усреднять как?
Обыкновенно. Если ты возмешь ЛЮБОЙ шум и просто клонируешь его встык (может даже умножив на -1), думаешь спектральные характеристики как-то пострадают? Добавятся какие-то частоты? Или какие-то уменьшатся? Период 0.5с это 0.5Гц. Даже если ты эту периодичность явно УСЛЫШИШЬ, на спектр они не повлияют. Твои требования - чрезмерны. Из-за несовершенства мат.инструмента для анализа.
NEO SPECTRUMAN
21.09.2020, 03:49
Обыкновенно. Если ты возмешь ЛЮБОЙ шум и просто клонируешь его встык (может даже умножив на -1), думаешь спектральные характеристики как-то пострадают? Добавятся какие-то частоты? Или какие-то уменьшатся?
приведи пример на фоне первых ступенек тона с этой записи
можешь закинуть вавку я сам посмотрю выложу результат
- - - Добавлено - - -
а то не видно не хрена на таком тесте
https://jpegshare.net/images/d9/99/d99938e359b8f45a17a1af962b49ab18.png
- - - Добавлено - - -
а вот для сравнения с моей длинной записи AY-ка
https://jpegshare.net/images/8f/99/8f99100d1d729d6eda54f2c8bf690589.png
можешь закинуть вавку я сам посмотрю выложу результат
Какую тебе вавку закидывать? Я понятия не имею с чем ты там ковыряешься... И понятия не имею зачем.
а вот для сравнения с моей длинной записи AY-ка
Укороти окно до 8192, если не можешь растягивать/клонировать.
NEO SPECTRUMAN
21.09.2020, 04:08
Укороти окно до 8192, если не можешь растягивать/клонировать.
вот это и так на 8192 или 4096 если не меньше
https://jpegshare.net/images/d9/99/d99938e359b8f45a17a1af962b49ab18.png
а на фоне жестких шумов уже не видно отражений гармоник
по которым можно отличать друг от друга первые несколько делителей тона...
а результат с клонированием в котором что то видно уж очень с натяжкой и не убедителен
- - - Добавлено - - -
кстате отражения уже не на таких и высоких частотах
чтоб смотреть их 512-ми окнами
Bedazzle
21.09.2020, 09:29
У Некста почти идеальный звук, но есть слышимые тона небольшой амплитуды на делителях <7. Это очень странно.
Может, я что-то не так сделал? Грабил при помощи Audacity, под Win7. В настройках дефолтного сэмпла выставил 44100, 16 бит.
Прога не могла что-то попутно сконвертировать?
Более высокочастотная запись может помогла бы понять что это такое
Что я могу попробовать поменять, чтобы улучшить?
вспомнил и нашёл ещё какие-то изыскания Ивана Рощина
http://web.archive.org/web/20071023063251/http://ivr.webzone.ru/articles/txt_zip/mus_sopr.zip
Что я могу попробовать поменять, чтобы улучшить?
На звуковухе выставить качество не 44100 а больше, если есть такая возможность (почти всегда как минимум 48000 бывает).
Но едва ли этот писк в -53дб пропадет, станет более детальным скорее :)
Несовершенна эмуляция AY у Некста, что ж поделать. Но она на более чем достойном уровне, если что :)
goodboy, немного (а может и много) ошибочные там тезисы выдвинуты. В частности, что счетчик фазы тона сбрасывается при каждом внесении туда нового значения (довод - типа при изменении периода с #1ff на #200 всегда происходит щелчок).
Но мы то прекрасно знаем, что сбросить счетчик тона нетривиально, иначе бы ретриги были повсеместны.
Bedazzle
21.09.2020, 16:59
На звуковухе выставить качество не 44100 а больше, если есть такая возможность (почти всегда как минимум 48000 бывает).
Посмотрю.
Несовершенна эмуляция AY у Некста, что ж поделать. Но она на более чем достойном уровне, если что :)
Сейчас подумал - интересно, а если звук больше, чем через один AY идёт, глюков не начнётся?
Bedazzle, не должно. В режиме обратной совместимости не должно быть «мультичиповости». Это может разве что от прошивки зависеть.
Bedazzle
21.09.2020, 22:28
На звуковухе выставить качество не 44100 а больше, если есть такая возможность (почти всегда как минимум 48000 бывает).
Хм, на звуковухе вроде как 48 и стояло.
https://i.imgur.com/7Mq4gg5.png
Настройки Audacity
https://i.imgur.com/bJ4qYhS.png
может, при записи она звук вытягивала?
Bedazzle, самплрейт на звуковухе и в аудиозаписывающем софте должны по идее совпадать. Иначе там передискретизация хз как делается. И лучше чтобы она была максимальной. Т.е. ставишь INPUT audio на звуковухе в 192000 и такую же цифру при создании пустого файла для записи в аудасити.
NEO SPECTRUMAN
22.09.2020, 11:37
https://i.imgur.com/bJ4qYhS.png
ну а в audacity стоит 44000...
в придачу частота проекта настраивается снизу слева в основном окне
и с ней же будет сохранять даже если записал в 100500КХ3
Bedazzle
22.09.2020, 22:42
Т.е. ставишь INPUT audio на звуковухе в 192000
Нету 192, максимум 96.
https://i.imgur.com/kh63OfY.png
NEO SPECTRUMAN
22.09.2020, 22:59
Нету 192, максимум 96.
да и 96 не плохо
выставляй 96 и тут и там
и пиши направо налево
и будет тебеве счастие
- - - Добавлено - - -
кстате если присотреться глазами то это output тобешь выход
и совсем есть не то
- - - Добавлено - - -
а так вроде Sound Blaster 5.1VX
должен на 96 и писать
- - - Добавлено - - -
возьми поставь в audacity 96 и запиши
мы сразу увидим записало ли оно на 96 или нет :)
MetalliC
23.09.2020, 13:14
Dexus, а что скажете по поводу этой записи ?
https://www.sendspace.com/file/e6q1fs
эмулятор - MAME, эмулируется модель Spectrum 128, звук соответсвенно AY-3-8912, 1.773447МГц, моно
MetalliC, с одной стороны - на уровне хардварного от Next (частоты гармоник на минимальных делителях аналогичны -> в Нексте звук рендерится на 48КГц). С одной стороны это неплохо, т.е. амплитуда их небольшая. Но с другой стороны - их вообще не должно быть. При этом высокие вообще не срезаются, как в реале и в Ayumi.
А вот делитель 0 не считается эквивалентным делителю 1 (т.е. звучание 0 и 1 разное). Т.е. тест ради которого этот топик изначально затевался он не прошел.
Дополнил таблицу.
MetalliC
24.09.2020, 09:57
Dexus, понятно, спасибо.
что занятно, шум был правильный, но один китайский бракодел погнул код когда добавлял поддержку AY8930.
MetalliC
24.09.2020, 13:21
с одной стороны - на уровне хардварного от Next (частоты гармоник на минимальных делителях аналогичны -> в Нексте звук рендерится на 48КГц). С одной стороны это неплохо, т.е. амплитуда их небольшая. Но с другой стороны - их вообще не должно быть.
звук в МАМЕ рендерится на родных частотах, около 222КГц в данном случае, то я тупанул и записал относительно низким рейтом.
гляньте плз эту запись, по идее должно быть уже лучше, в т.ч. и с шумом1/0 https://www.sendspace.com/file/gmw6n2
а что там за похожая заморочка с частотой тона 0-2 ? в мурзилках вроде пишут что лишь 1-0 должны быть одинаковы.
есть где-то описание как именно оно работает ?
PS: глянул исходники Ay_Emul29b26 - не вижу я там ничего специального про частоту тона 2, 0 и 1 будут одинаковы, а вот 2 по идее уже нет.
Bedazzle
24.09.2020, 22:42
да и 96 не плохо
выставляй 96 и тут и там
https://www.dropbox.com/s/njhjdapr68f1zty/zx_next_audio_test_96.rar?dl=0
NEO SPECTRUMAN
25.09.2020, 00:00
ну да
96КГц тут явно есть
https://jpegshare.net/images/d5/27/d527a989fd1a9f37743420bfe11bd975.png
интересно у некста тоже стоит писк на частоте строчной развертки
при том более выражены 2 и 3-я гармоники
- - - Добавлено - - -
смотрел смотрел
отражения просматриваются крайне плохо
конечно это намного лучше чем предыдущая запись
давайте предположи что делитель 0 и 1 все таки совпадают
пока не доказано обратное
гляньте плз эту запись, по идее должно быть уже лучше, в т.ч. и с шумом1/0 https://www.sendspace.com/file/gmw6n2
Да, тут безусловно лучше (в части с 0/1). В части с фильтрацией отражений от найквиста он не идеален. В идеале частоты выше найквиста вообще должны обнуляться, но здесь мы видим паразитические отражённые гармоники (хотя они и тихие). И беда тут еще и в том, что они тем заметнее, чем ниже частота передискретизации (т.е. на 48к заметнее чем на 96к). И для чистоты эксперимента (для корректности сравнения) должны сравниваться именно 44100 (или 48000).
А что вообще с частотой 0/1 шума? Получается что это какой-то коммит кривой был и сейчас подправлено в текущей версии? От какой версии эта запись?
звук в МАМЕ рендерится на родных частотах, около 222КГц
Очень странная частота, на том же ZX это около 109кгц.. Хотя, возможно, это просто прескейл х2.
Bedazzle, тут запись немного шумновата (шорох какой-то, причем не синхронный на левом/правом), но для того чтобы понять разницу это не мешает :)
Но в целом картина по Нексту понятна. Эмуляция прекрасная, а передискретизация неидеальная (т.е. в идеале требует повышенной частоты вывода). В целом придирки совсем небольшие.
MetalliC
25.09.2020, 08:59
Да, тут безусловно лучше (в части с 0/1). В части с фильтрацией отражений от найквиста он не идеален. В идеале частоты выше найквиста вообще должны обнуляться, но здесь мы видим паразитические отражённые гармоники (хотя они и тихие). И беда тут еще и в том, что они тем заметнее, чем ниже частота передискретизации (т.е. на 48к заметнее чем на 96к). И для чистоты эксперимента (для корректности сравнения) должны сравниваться именно 44100 (или 48000).
спасибо.
так а что с результатами тестов в целом, что верно а что не верно ?
А что вообще с частотой 0/1 шума? Получается что это какой-то коммит кривой был и сейчас подправлено в текущей версии? От какой версии эта запись?
да, я дал пенделя тому челу и он исправил :)
если тебе для документации, получается что в версиях 0.214 - 0.224 шум 0/1 сломали и он был разный, в более ранних версиях и начиная с грядущей 0.225 - нормальный одинаковый.
также, судя по ченжлогу в версиях до 0.153 не было прескалера шума, частота была вдвое выше чем должна, в этой же 0.153 сделали 17-бит LFSR как в оригинальных чипах.
Очень странная частота, на том же ZX это около 109кгц.. Хотя, возможно, это просто прескейл х2.
видимо это от того, что в MAME процедура генерации универсальная для целого зоопарка похожих PSG-чипов, и у части из них частоты вдвое выше. если я не ошиба, у того же YM2149F огибающая тикает на вдвое большей частоте по сравнению с AY-3-8910/12.
а в целом оно получается так: в оригинальном 128К стоит кварц на 17.734475МГц, делится на 10 и идёт на AY, и потом внутри делится на 16, так и получается 17734475 / 10 / 16 = 110840Гц, но в случае МАМЕ частота вдвое выше, типа с прескейлом.
ак а что с результатами тестов в целом, что верно а что не верно ?
Так вроде же написал. Всё хорошо. То что это эмуляция - слышно только по отражениям на делителях <=5 (когда частоты вылазят за найквиста). Гармоники не сильно яркие. Т.е. единственная проблема - неидеальный передискретизатор.
судя по ченжлогу в версиях до 0.153 не было прескалера шума, частота была вдвое выше чем должна, в этой же 0.153 сделали 17-бит LFSR как в оригинальных чипах.
Похоже что было весьма криво. А сейчас почти идеал.
PS: глянул исходники Ay_Emul29b26 - не вижу я там ничего специального про частоту тона 2, 0 и 1 будут одинаковы, а вот 2 по идее уже нет.
Там ничего особого про частоту 2 нет. Просто там децимация очень качественная проходит так что тон с делителем меньше 6ти дает вообще ровную линию. Большинство передискретизаций оставляет ряд частот, от того что "усреднение" происходит неидеально. В целом это можно было бы делать простым хаком - если частота после деления выше частоты найквиста - генерировать линию. Однако в этом случае нужно модулируемые таким сигналом огибающую и шум в амплитуде уполовинивать (т.к. это по факту ШИМ 50%)
Часть рук добралась просмотреть что там с плеерами-эмуляторами случилось, и немного подправить описание.
В ZX-Tune версии 5000 практически все несовершенства были устранены. Заслуженный exemplary implementation.
могу попробовать сделать неск. тестов на ФПГА-бордах. ЕсЛи еще актуально.
Ну и давно интересуют похожие тесты для SAA1099, и несколько эмулей поддерживает, и в железе, и в ФПГА есть три варианта как бы.
могу попробовать сделать неск. тестов на ФПГА-бордах. ЕсЛи еще актуально.
Ну и давно интересуют похожие тесты для SAA1099, и несколько эмулей поддерживает, и в железе, и в ФПГА есть три варианта как бы.
Fpga борды - почему бы и нет. В принципе актуально. Пройдусь, проаналазирую сравнительно, добавлю в таблицу. Интересно было бы получить образец со Sprinter, сравнив его с тем что в Next.
А вот по SAA отдельный тест нужно городить, понимая все краевые ситуации (ну, помимо передискретизации, который одинаковые симптомы генерирует, будучи плохим).
Для AY же тест я пытался сделать такой, что "особые" случаи вылезали бы достаточно заметно (стандартные мелодии на 95% даже в zesarux'е будут звучать не так ужасно, как тест). Надо знать специфику чипа, в общем, чтоб тест такой сделать.
смотреть нужно не звуковой картой, а осциллографом, у которого не 192 кГц, а 1 ГГц семплрейт :)
Откопал свой старенький чип YAMAHA YM2149F. К сожалению все что осталось от моего спектрума.
Интересно подключить его, будет он работать от 3V портов STM32?
Михаил Каа
13.10.2021, 11:37
смотреть нужно не звуковой картой, а осциллографом, у которого не 192 кГц, а 1 ГГц семплрейт :)
Откопал свой старенький чип YAMAHA YM2149F. К сожалению все что осталось от моего спектрума.
Интересно подключить его, будет он работать от 3V портов STM32?
По идее должен работать.
https://pic.maxiol.com/thumbs2/1634114192.1504966184.ym2149dc.png (https://pic.maxiol.com/?v=1634114192.1504966184.ym2149dc.png&dp=2)
Откопал свой старенький чип YAMAHA YM2149F. К сожалению все что осталось от моего спектрума.
Интересно подключить его, будет он работать от 3V портов STM32?
Не совсем stm32, но скорее всего будет.
https://github.com/Fujix1/psg_vgm_longan_nano
RomanRom2
15.10.2021, 16:15
Интересно было бы получить образец со Sprinter
что нужно сделать, что предоставить?
что нужно сделать, что предоставить?
Ну вы че... все де в нульпосте. И сама программа (я грузил .$С на свой профи, запускал через randomize usr).
Капчурить звук минимум в 44.1КГц, 16бит, стерео (желательно в схеме ACB, но можно и ABC). Желательно дискретизацию побольше, если можно (я капчурил в 192КГц). Шум давить не нужно.
Записать звук. Сохранить в формате без потерь (я использую flac, но если не выходит - можно wav). И поделиться через что угодно. Я уже проанализирую, сравню, размещу в таблице.
В чем трудности?
В эмуляторе Fuse оказывается по-умолчанию включен "ламповый" ухудшатель звука, ограничивающий частоту до 12кгц. После его отключения звук стал существенно "кристальнее". Но щелчки на делителях 0..8 все равно остались, поэтому в таблице Fuse я оставил на месте.
Отправь этот патч автору.
^m00h^, про какой патч речь?
^m00h^, про какой патч речь?
Вот про этот:
В эмуляторе Fuse оказывается по-умолчанию включен "ламповый" ухудшатель звука, ограничивающий частоту до 12кгц. После его отключения звук стал существенно "кристальнее". Но щелчки на делителях 0..8 все равно остались, поэтому в таблице Fuse я оставил на месте.
^m00h^, не понимаю о каком патче речь.
В Fuse в настройках звука дефолтово стоит TV Speakers, потому и ограничена частота. Поставил Unfiltered - стало намного лучше звучать. Но щелчки на малых делителях как были так и остались. Никаких патчей по этому поводу я не делал. Или ты имеешь в виду написать ему про щелчки? Автор Zesarux'а отучил меня что-то сообщать разработчикам.
В свежей, вчерашней сборке Unreal39.0 был поправлен делитель 0. Так что эмулятор в таблице был заслуженно перемещен наверх, в группу с высокой точностью.
Lethargeek
24.11.2021, 23:48
В Fuse в настройках звука дефолтово стоит TV Speakers, потому и ограничена частота. Поставил Unfiltered - стало намного лучше звучать. Но щелчки на малых делителях как были так и остались. Никаких патчей по этому поводу я не делал. Или ты имеешь в виду написать ему про щелчки?
Не знаю как в fuse, но в моём эмуле юлакса треск с большими промежутками, на который многие жаловались, был на совести кривых драйверов винды. На самом деле так трещать может абсолютно везде, даже с виндовозными системными звуками, просто наиболее заметно в молчащем эмуле, потому что при запинках винда ставит тишину нулевого уровня, а эмулях тишина может быть и ненулевой константой, вот и получается треск от разницы. Иногда (проверено на вынь-7) можно вылечить принудительной установкой 44100Гц для колонок. Плюс на случай, если даже это не помогает, добавил костыль, плавно опускающий уровень до нуля при незначительном перепаде громкости в кадре.
Также баг с периодом шума в ayumi исправляется элементарно заменой строчки, этот фикс я запилил сегодня в эмуле юлакса последней версии, можешь обновить свою информацию.
И еще непонятно, почему тогда у тебя получились где-то расхождения юлакса с аюми. Может быть из-за программного микса с бипером или из-за лишней монофикации (у меня и так моно звук)?..
Также баг с периодом шума в ayumi исправляется элементарно заменой строчки, этот фикс я запилил сегодня в эмуле юлакса последней версии, можешь обновить свою информацию.
Я автору ayumi написал про это. Оно уже исправлено в официальном репо. Для аюми я уже поправил. А улакс - нужна версия новая. Сделаю с нее новую запись и про анализирую. По результатам табличку поправю конечно.
По поводу щелчков из-за разрывов воспроизведения буфера - это сразу видно по форме щелчков и их периодичности в редакторе. У улакса щелчки постоянно почему-то идут с периодом в 4.5с. Даже в меню спектрума.
И еще непонятно, почему тогда у тебя получились где-то расхождения юлакса с аюми.
Я сейчас не могу сказать. Мои тесты были с b20.
- - - Добавлено - - -
Иногда (проверено на вынь-7) можно вылечить принудительной установкой 44100Гц для колонок
У меня действительно win7. Но частота 44100 и стоит. Щелчки эти выглядят так, как будто бипер вставляется в 1 на 100 сэмплов (1/440с). Очень похожи на звук движения по меню 128к. При этом они генерируются даже когда загружен sna c di:halt. Может это побочный эффект подгонки неидеальных периодов фреймов/звука?
Эти щелчки в 26b остались. В конце записи где делители от 0 до 7 идут - именно этих щелчков нет. Там похоже щелчки из-за не очень красивого смешивания левого и правого канала. Тест видимо не расчитан на моно. И почему не сделано стерео?
А щелчки периодически полагаю не относятся к эмуляции АУ/УМ, а скорее к особенности работы с аудиобуферами. Но тем не менее, это не очень хорошо. Досадная неприятность.
Lethargeek
25.11.2021, 02:45
Dexus, ссылка там же, где и была, просто косвенная теперь: https://zx-pk.ru/entries/360-zx-ulax-download-links.html
у меня сейчас в менюшке где угодно дб полная тишина, и даже в b20 тоже была полная тишина на основном ноуте с вынь-10
это что-нибудь у тебя с компом - либо драйвера, либо звукозапись мешает, либо антивирус кинул эмуль в песочницу...
- - - Добавлено - - -
У меня действительно win7. Но частота 44100 и стоит.
попробуй другие еще частоты - именно для аппаратного устройства, не в общем микшере
вообще на звук в седьмой винде много жалоб
Щелчки эти выглядят так, как будто бипер вставляется в 1 на 100 сэмплов (1/440с)
даже нет нигде такого периода
Очень похожи на звук движения по меню 128к. При этом они генерируются даже когда загружен sna c di:halt
код никак не должен влиять на звук, если в звуковые порты не пишет
Может это побочный эффект подгонки неидеальных периодов фреймов/звука?
да там плавная подгонка парой сэмплов на кадр плюс-минус, и оно сперва сбрасывается в очередь SDL
проверь, что будет, если в ini увеличить значение target_lag - длину этой очереди в кадрах спека
Эти щелчки в 26b остались. В конце записи где делители от 0 до 7 идут - именно этих щелчков нет.
можешь записать? а в меню даже и разрывы не должны уже проявляться, ибо уровень тишины принудительно подтягивается к нулю
Там похоже щелчки из-за не очень красивого смешивания левого и правого канала.
нет такого смешивания каналов (тупо изначально один канал), есть программное смешивание бипера с AY перед отправкой
И почему не сделано стерео?
потому что не дошли руки, а все фирменные игры всё равно на моно рассчитаны
то что-нибудь у тебя с компом - либо драйвера, либо звукозапись мешает, либо антивирус кинул эмуль в песочницу...
Я на такое могу парировать тем, что 16 из 20 эмуляторов все-таки обходятся без щелчков, и только на 4х из них они наблюдаются (включая ULAX). Песочницы у меня нет. Куча других проектов которые через SDL1/2 генерируют звуки - делают это без щелчков. И все игры, и браузеры, и плееры - все без проблем воспроизводит. Бывают конечно программы (часто что-то типа эмуляторов) которые начинают подщелкивать когда нагрузка на процесор становится чуть больше. Но это не этот случай. Процессор занят на 4%, включая ULAX. Регулярность в 4.5с должна что-то означать. Примечательно еще то, что в момент этих "заиканий" промежуток заполняется не предыдущими фреймами, или значением 0 (как бывает при не успевании процессинга с буферами), а единичкой, или каким-то другим значением, но константой. Записи выложены - можешь сам посмотреть. https://volutar.myds.me/zx/ayymtest/
Еще раз, возможно это и не проблема эмуляции AYYM, но это точно что-то не то с эмулятором. Сделай что-ли опрос среди пользователей, узнай у какого % щелчки регулярные, даже если просто запустить в меню 128к и ничего не делать.
- - - Добавлено - - -
да там плавная подгонка парой сэмплов на кадр плюс-минус, и оно сперва сбрасывается в очередь SDL
проверь, что будет, если в ini увеличить значение target_lag - длину этой очереди в кадрах спека
Ничего не поменялось.
нет такого смешивания каналов (тупо изначально один канал)
Имеется в виду смешивание A+B+C. У меня в одном канале идет звук для тестирования, во втором - разделяющие щелчки. Одно на другое повлияло. Но это не те щелчки которые на 4.5с.
https://volutar.myds.me/zx/ulaxclick.flac
Lethargeek
25.11.2021, 09:56
Я на такое могу парировать тем, что 16 из 20 эмуляторов все-таки обходятся без щелчков, и только на 4х из них они наблюдаются (включая ULAX).
а я тогда могу парировать тем, что именно такое пока только у тебя одного, на одном (?) компе
Куча других проектов которые через SDL1/2 генерируют звуки - делают это без щелчков.
значит, генерируют по-другому, в SDL2 доступно несколько способов
И все игры, и браузеры, и плееры - все без проблем воспроизводит.
а вот не факт - ты, возможно, на фоне громких звуков просто не замечаешь
я сам тоже раньше не замечал, покуда прислушиваться не начал, зная, чего ждать
Регулярность в 4.5с должна что-то означать. Примечательно еще то, что в момент этих "заиканий" промежуток заполняется не предыдущими фреймами, или значением 0 (как бывает при не успевании процессинга с буферами), а единичкой, или каким-то другим значением, но константой.
свосем странно... а какова длина константного промежутка?
и заодно, какая кадровая на монике?
Еще раз, возможно это и не проблема эмуляции AYYM, но это точно что-то не то с эмулятором.
ну то есть ты только на одной конфигурации пробовал, но "точно" знаешь, что проблема не в ней?
хотя тут вообще-то под вопросом уже оказываются даже остальные твои замеры
Сделай что-ли опрос среди пользователей, узнай у какого % щелчки регулярные, даже если просто запустить в меню 128к и ничего не делать.
так я всегда всех допрашивал - не было именно такого ни у кого
даже в линухе под вайном у людей чисто после установки правильных дров
было с промежутком больше в разы (как минимум) и щелчок обычно не одиночный
и у всех такой треск хотя бы по тишине успешно маскируется костылём
если уж ничто другое не помогает
Имеется в виду смешивание A+B+C. У меня в одном канале идет звук для тестирования, во втором - разделяющие щелчки. Одно на другое повлияло. Но это не те щелчки которые на 4.5с.
я в ayumi просто panning на все каналы одинаковый задавал
и опять же, это ни при чём, раз у тебя даже в тишине щёлкает
- - - Добавлено - - -
и на всякий - старый ini к beta26 подходит не полностью
а то вдруг ограничился заменой только екзешника
а я тогда могу парировать тем, что именно такое пока только у тебя одного, на одном (?) компе
Значит ни у кого больше щелчков нет.
а вот не факт - ты, возможно, на фоне громких звуков просто не замечаешь
я сам тоже раньше не замечал, покуда прислушиваться не начал, зная, чего ждать
Ну да, у слухача вдруг проблемы со слухом, и щелчки на фоне тишины нигде не слышит кроме как в ULAX'е.
свосем странно... а какова длина константного промежутка?
и заодно, какая кадровая на монике?
Я уже кучу раз писал - практически ровно 4.5с. Есть образцы flac. Давал ссылку выше.
ну то есть ты только на одной конфигурации пробовал, но "точно" знаешь, что проблема не в ней?
Не на одной. На 10ке в ноутбуке щелчков нет. Значит ты не расчитываешь на 7рки с их особенностями, логично указать минимальные требования win10.
хотя тут вообще-то под вопросом уже оказываются даже остальные твои замеры
Ничего подобного. Такие щелчки только в ULAX.
а то вдруг ограничился заменой только екзешника
Нет. Всё целиком.
Lethargeek
25.11.2021, 15:59
Значит ни у кого больше щелчков нет.
и отсюда вероятней вывод, что проблема не в коде, а в системе
Ну да, у слухача вдруг проблемы со слухом, и щелчки на фоне тишины нигде не слышит кроме как в ULAX'е.
потому что тишина - она разная в эмуляторах и во "всех играх, браузерах и плеерах"
эмуль гонит звук постоянно, причём динамически его генерируя
а другой софт обычно периодически воспроизводит готовое
и в между эффектами в тишине аудиовывод не трогает
потому там засекать артефакты надо на фоне звука
Я уже кучу раз писал - практически ровно 4.5с.
я вообще-то там спросил о длительности самих "промежутков, заполненных какой-то ненулевой константой", а не между ними
и повторю вопрос про кадровую - ?
Не на одной. На 10ке в ноутбуке щелчков нет. Значит ты не расчитываешь на 7рки с их особенностями, логично указать минимальные требования win10.
не логично - во-1, это не "особенности", а баги, причём разные и редкие даже для систем на семёрке
во-2, их не было и в более древней висте (а может быть, и в хрюшке, проверить негде)
Ничего подобного. Такие щелчки только в ULAX.
а в других случаях - могут быть какие-нибудь другие щелчки и глюки
потому что звук в седьмой винде кривой в принципе
непригодна для аудиоисследований она
и отсюда вероятней вывод, что проблема не в коде, а в системе
Не так.. проблема в том, что код не учитывает систему. Потому что другие эмуляторы таких проблем не имеют на той же самой системе.
Проблема в том, что код специфичен, и использует что-то, что в каких-то ситуациях ведет себя не очень хорошо, непредсказуемо. Другой код который занимается ровно тем же самым ведет себя более предсказуемо.
я вообще-то там спросил о длительности самих "промежутков, заполненных какой-то ненулевой константой", а не между ними и повторю вопрос про кадровую - ?
Кадровая обычная. 60Гц.
не логично - во-1, это не "особенности", а баги, причём разные и редкие даже для систем на семёрке
во-2, их не было и в более древней висте (а может быть, и в хрюшке, проверить негде)
Эти, как ты выразился "баги" нигде кроме ULAX'а не проявляются. Не выглядит ли это подозрительно?
а в других случаях - могут быть какие-нибудь другие щелчки и глюки
потому что звук в седьмой винде кривой в принципе
непригодна для аудиоисследований она
Напротив. Даже в таких обстоятельствах должна воспроизводить все как надо.
И кроме того, звук в седьмой винде отнюдь не кривой, что доказывает весь предшествующий опыт.
Как я понимаю, ты под этими оправданиями хочешь чтобы я просто убрал из таблицы неудобный кейс, а подкинул удобный, и поставил эмулятор в топ? Все эмуляторы были в одинаковых обстоятельствах. Аюми прекрасный движок, но одного этого мало.
Я подправлю комментарий по поводу щелчков под win7.
Lethargeek
25.11.2021, 18:00
Не так.. проблема в том, что код не учитывает систему.
не так... проблема в том, что учитывать неизученные, плохо воспроизводимые редкие БАГИ практически невозможно
Потому что другие эмуляторы таких проблем не имеют на той же самой системе.
из чего никак не следует, что они "учитывают особенности системы" (и вообще подозревают о таких "особенностях")
Проблема в том, что код специфичен, и использует что-то, что в каких-то ситуациях ведет себя не очень хорошо, непредсказуемо.
любой код специфичен, любой код не застрахован от никак не документированных редких БАГОВ системы
Другой код который занимается ровно тем же самым ведет себя более предсказуемо.
кто сказал, что "занимаются ровно тем же"? повторю, что способов звуковывода даже в том же SDL2 несколько
и на уровне архитектуры тоже различия - у меня сознательно синхронизация сделана по видео, а не по звуку
Кадровая обычная. 60Гц.
хорошо, попробуй еще эмуль переключить в режим 60гц (по F3) - что изменится?
и ты снова проигнорил один вопрос, повторю - какова же длина "промежутка, заполненного ненулевой константой"?
Эти, как ты выразился "баги" нигде кроме ULAX'а не проявляются. Не выглядит ли это подозрительно?
отзеркалю: именно такие не проявлялись нигде, кроме одной отдельно взятой твоей системы - не выглядит ли это подозрительно?
Напротив. Даже в таких обстоятельствах должна воспроизводить все как надо.
нет, работать "как надо" софт обязан только в системе, которая сама работает "как надо"
в крайнем случае хотя бы - "как предсказуемо"
Как я понимаю, ты под этими оправданиями хочешь чтобы я просто убрал из таблицы неудобный кейс, а подкинул удобный, и поставил эмулятор в топ?
я хочу, чтобы в таких экспериментах применялись подходящие инструменты с правильными методиками и корректно отражались их результаты
а также выяснить причины и пределы багов и странностей
И кроме того, звук в седьмой винде отнюдь не кривой, что доказывает весь предшествующий опыт.
ну не я же в одиночку это придумал, а что тогда доказывает этот тред на хоботе, например?
https://forum.ixbt.com/topic.cgi?id=22:77032
Все эмуляторы были в одинаковых обстоятельствах.
э, так можно на еще более кривой системе их запустить, где проглючит как-нибудь все подряд, и сказать что "были в одинаковых обстоятельствах" :D
Я подправлю комментарий по поводу щелчков под win7.
только вот у меня и других людей "под win7" уже не щёлкает, та что было бы точнее сказать "may click"
Black Cat / Era CG
25.11.2021, 18:52
У меня попердывает. Не так часто, как раньше, но три раза издал звук неприятный. Это при том, что я просто запустил эмуль и не трогал его больше.
проблема в том, что учитывать неизученные, плохо воспроизводимые редкие БАГИ практически невозможно
У меня они воспроизводятся постоянно. Вот прям сейчас запустил эмуль, висит там фоне, и пощелкивает регулярно, в то время как все остальное работает без артифактов (видео, игры, музыка, стримы).
Готов принять специально сделанный билд с расширенным логированием и отправить логи.
у меня сознательно синхронизация сделана по видео, а не по звук
Сделай ключик, чтобы логировались десинхронизации. Тайминги между фреймами, промежутки между буферами аудио.
Вообще у того же Xpeccy тоже синхронизация по видео (точнее по таймеру). И _иногда_ при загрузке проца (браузер скроллится активно например) перерывы промелькивают, но! Они все таки не регулярны с периодом в 4.5с, и заполнены пустотами, т.е. сразу слышно что это перерыв в буфере. Если бы в ULAX они были не регулярны, я бы не обратил особого внимания - ну типа бывает с буферами неидеально работу сделали, закрыл бы браузеры и все остальное чтобы записать. А тут даже не получается выловить.
хорошо, попробуй еще эмуль переключить в режим 60гц (по F3) - что изменится? и ты снова проигнорил один вопрос, повторю - какова же длина "промежутка, заполненного ненулевой константой"?
Ничего не изменилось вообще.
Я не проигнорировал а сделал запись и предложил измерить самому. Где-то 100-130 сэмплов на 44100.
отзеркалю: именно такие не проявлялись нигде, кроме одной отдельно взятой твоей системы - не выглядит ли это подозрительно?
Не только на моей.
ну не я же в одиночку это придумал, а что тогда доказывает этот тред на хоботе, например?
https://forum.ixbt.com/topic.cgi?id=22:77032
Ну мой опыт это не подтверждает. Ни на одной 7рке, которую я использовал (на разных машинах) такого не было. Однажды что-то подобное слышал еще на каком-то кривом XP, что звук постоянно щелал...
Lethargeek
26.11.2021, 22:40
У меня попердывает. Не так часто, как раньше, но три раза издал звук неприятный. Это при том, что я просто запустил эмуль и не трогал его больше.
а "три раза" за какой срок? так-то изредка может вдруг и на рабочем столе всхрапнуть
- - - Добавлено - - -
У меня они воспроизводятся постоянно.
так то пока только у тебя, значит - "плохо"
Вот прям сейчас запустил эмуль, висит там фоне, и пощелкивает регулярно, в то время как все остальное работает без артифактов (видео, игры, музыка, стримы).
говорил уже, чем отличается остальное
Готов принять специально сделанный билд с расширенным логированием и отправить логи.
мне пока непонятно, что логировать-то и мы еще не исчерпали другие методы
Сделай ключик, чтобы логировались десинхронизации. Тайминги между фреймами, промежутки между буферами аудио.
да просто запусти бегущую строку (в режиме 60гц) и невооружённым глазом станет видно запинки видео
плюс сколько было дропнуто кадров звука или видео - на выходе пишется в консоль
но когда я сам на win7 отслеживал размер аудио очереди SDL - он был очень стабильным, а треск случался
то есть SDL отправлял аудиоданные равномерно, а дальше винда чудила на частотах кроме 44100
как узнать, что происходит с буфером винды яхз
Вообще у того же Xpeccy тоже синхронизация по видео (точнее по таймеру).
то есть не по видео :) а у меня именно на vsync завязана смена кадра
Ничего не изменилось вообще.
а что будет, если нажать на паузу (в тишине меню) почти сразу после регулярного твоего щелчка?
очередь SDL при этом опустеет за пару кадров, а за ней и очередь винаудио
и нуль эмуля должен без нового щелчка смениться нулём винды
Я не проигнорировал а сделал запись и предложил измерить самому. Где-то 100-130 сэмплов на 44100.
очень много, ошибиться так с количеством сэмплов в кадре невозможно даже теоретически
Не только на моей.
так на какой еще? не любой треск, а вот именно чтоб как у тебя
Ну мой опыт это не подтверждает.
подтверждает ОБЩИЙ (включая твой)
Black Cat / Era CG
26.11.2021, 22:45
а "три раза" за какой срок? так-то изредка может вдруг и на рабочем столе всхрапнутьминут за 15. Больше так никто и ни что не попердывает.
Lethargeek
26.11.2021, 22:55
минут за 15.
но до этого и после этого долго не было?
Больше так никто и ни что не попердывает.
но ты же говорил, что и с другим софтом это слышал
Black Cat / Era CG
26.11.2021, 23:05
но ты же говорил, что и с другим софтом это слышалДа не. Тока с эмулем УЛАКСы.
но до этого и после этого долго не было?
Не было, но я его и не трогал, он висел, но молчал, не попердывал.
Lethargeek
27.11.2021, 19:58
Да не. Тока с эмулем УЛАКСы.
ну здрасьте, даже в стриме каком-то
да просто запусти бегущую строку (в режиме 60гц) и невооружённым глазом станет видно запинки видео
плюс сколько было дропнуто кадров звука или видео - на выходе пишется в консоль
Нет запинок. Все гигаскрины ровные, дропов нет. А щелчки продолжают идти. С той же периодичностью.
а что будет, если нажать на паузу (в тишине меню) почти сразу после регулярного твоего щелчка?
Ничего не изменилось. И на паузе продолжило щелкать. И периодичность и фаза никак не меняется.
то есть не по видео а у меня именно на vsync завязана смена кадра
По видео(синхроимпульсу) самого Спектрума, а не экрана ПК.
очень много, ошибиться так с количеством сэмплов в кадре невозможно даже теоретически
Ну это за 4.5с накапливается (225 кадров на 50гц и 270 на 60гц), а не за один фрейм. Длина каждого всплеска ровно 135 фреймов если считать от нижней точки до нижней (или 130 если по верхним). Если считать, что за каждый 60гц фрейм накапливается половина сэмпла - в принципе совпадает.
-----
дальше винда чудила на частотах кроме 44100
как узнать, что происходит с буфером винды яхз
Кстати, на 48000КГц щелчков нет. Как и на 96000КГц. Может теперь придумаешь что логировать?
Под 10кой дефолтово 48кгц стоит в аудиоустройстве, и никаких щелчков нет. Но когда поставил 44100 - начались щелчки. Но иной природы. Во-первых - периодичность 2.56с. Во-вторых, это не вставки с пустотой, а скорее вырезы, т.к. резко ломается фаза меандра. На 50Гц, на 60Гц - не важно. Одинаковая периодичность.
https://volutar.myds.me/ulax1.png
Lethargeek, всё-таки дело не в винде.
Black Cat / Era CG
28.11.2021, 15:40
ну здрасьте, даже в стриме каком-тоНу если я на нем чето под УЛАКС запускал... на стриме том. Есть просирания звука с микрофона иногда, но это уже совсем другой прикол.
Lethargeek
28.11.2021, 21:34
Ничего не изменилось. И на паузе продолжило щелкать. И периодичность и фаза никак не меняется.
Ха-ха! Но ведь на паузе звук вовсе не выводится, никакой. И ты еще говоришь - дело не в винде.
Ну это за 4.5с накапливается (225 кадров на 50гц и 270 на 60гц), а не за один фрейм. Длина каждого всплеска ровно 135 фреймов если считать от нижней точки до нижней (или 130 если по верхним). Если считать, что за каждый 60гц фрейм накапливается половина сэмпла - в принципе совпадает.
С моей стороны от SDL "накопиться" в принципе ничего не может. Число сэмплов в кадре немного плавает, но это лишь количество отрезков для разбиения. То есть ВЕСЬ аудиокадр слегка сжимается или растягивается, и все искажения плавные, так что даже в самом худшем случае может разве что взвыть, но никак уж не резко щёлкнуть. И опять же, на тишину не производит никакого эффекта.
Кстати, на 48000КГц щелчков нет. Как и на 96000КГц. Может теперь придумаешь что логировать?
Под 10кой дефолтово 48кгц стоит в аудиоустройстве, и никаких щелчков нет. Но когда поставил 44100 - начались щелчки.
Тут я сам сказал бы, что дело в этом, поскольку в эмуле 48000 дискретизация, но... у меня на десятке нет щелчков ни на какой частоте динамиков; на древней висте тоже нет щелчков ни на какой частоте. И даже если при работающем эмуле изменить. А вот на семёрке при любой, кроме как раз неродной для эмуля 44100 - слышен треск каждые несколько минут - и притом не только в эмуле, а везде. Да и вообще, с чего рядовое приложение должно волновать, что за частота на динамиках? Тем более, что в многозадачной системе она может измениться в любой момент. Это дело именно системы, правильно скормить железу любые данные, если уж взялась работать прослойкой.
Во-первых - периодичность 2.56с. Во-вторых, это не вставки с пустотой, а скорее вырезы, т.к. резко ломается фаза меандра. На 50Гц, на 60Гц - не важно. Одинаковая периодичность.
и всё равно, с чего бы вырезам влиять на тишину в таком случае?
Ха-ха! Но ведь на паузе звук вовсе не выводится, никакой. И ты еще говоришь - дело не в винде.
Мы о той паузе что на кнопке "pause"? Если бы звук не выводился, никаких бы щелчков не было.
, но... у меня на десятке нет щелчков ни на какой частоте динамиков;
У многих даже нет выбора - 44100 или 48000. На этом видимо и основан тот якобы "факт", что щелкает редко у кого. Большинство на дефолтовых 48000 сидят.
и всё равно, с чего бы вырезам влиять на тишину в таком случае?
На 10ке в тишине ничего и не слышно. Слышно только когда тон генерируется. Иногда фазы оказываются не сбитыми и щелчка не слышно. Но проблемы с непрерывностью посылания аудиопотока имеются.
Извини, но мне надоело об одном и том же. Не в этой теме.
Lethargeek
28.11.2021, 22:19
Мы о той паузе что на кнопке "pause"? Если бы звук не выводился, никаких бы щелчков не было.
Да, о той. Но не выводится же. Больше того - вообще ничего не происходит, кроме обработки событий.
У многих даже нет выбора - 44100 или 48000. На этом видимо и основан тот якобы "факт", что щелкает редко у кого. Большинство на дефолтовых 48000 сидят.
мои три компа не подтверждают эту гипотезу
На 10ке в тишине ничего и не слышно. Слышно только когда тон генерируется. Иногда фазы оказываются не сбитыми и щелчка не слышно.
на твоей картинке не щелчок, кстати
Извини, но мне надоело об одном и том же. Не в этой теме.
не в этой, так не в этой, проведу опрос у себя
в SpecEmu v.3.2 исправили частоту шума. Переместил эмулятор в таблице.
NEO SPECTRUMAN
29.11.2021, 00:09
Dexus, а еще мя интересует огибающая
с какой точностью/разрешением она переинициализируется?
с частотой AY/256 (и выше 4КГц частоты софтварно получить нельзя в принципе)
или переинициализация происходит в любой момент?
я проверить щас не могу
- - - Добавлено - - -
Dexus, у тебя не осталось записей/картинок что я сдесь/там выкладывал?
Dexus, а еще мя интересует огибающая
с какой точностью/разрешением она переинициализируется?
с частотой AY/256 (и выше 4КГц частоты софтварно получить нельзя в принципе)
или переинициализация происходит в любой момент?
Насколько я понимаю, переинициализация может происходить с частотой CLK самого AY (т.е. по тактам процессинга самого чипа, это где-то 110кгц).
Но вообще я не исключаю, что и CLK/16 (т.е. с учетом делителя огибающей, т.е. где-то 7кгц), но это маловероятно. Вообще для такого нужно какой-то тест соображать, чтобы определить минимальную дискретность.
Dexus, у тебя не осталось записей/картинок что я сдесь/там выкладывал?
Нет.
NEO SPECTRUMAN
29.11.2021, 01:11
Вообще для такого нужно какой-то тест соображать,
ну плавная смена частоты должна соповаждатсо дикиим алиасингом по идеи
в принципе тест можно собразить
да и ступеньки должны быть видны и на 48КГц
не говоря уж о твоих 100500
- - - Добавлено - - -
конечно применение такого я ужо видел на других платформах
но никто не гарантиует что это не эмулятор only
- - - Добавлено - - -
мало того на стерео можно пустить импульсы на второй канал
утя какая раскладка?
утя по моему ж 2 канала было?
- - - Добавлено - - -
а еще можно кинуть чисто хардварное 1,75/256 во второй канал
- - - Добавлено - - -
а еще можно кинуть чистые 1,75/256 во второй канал
Насколько я понимаю, переинициализация может происходить с частотой CLK самого AY (т.е. по тактам процессинга самого чипа, это где-то 110кгц).
а тут напрашиваетсо вопрос
а можно ли на ЦАП-е выжать большо?
спектрум то может выдать 152КГц на изичах
может если мы дадим 152КГц мы сможем записать биения?
в случае если Ау-к не выдает таких частот
ну а дальше посмотреть по отраженным гармоникам
а еще можно кинуть чистые 1,75/256 во второй канал
Чтобы обнаружить смещение фазы? В принципе можно. Можно ориентироваться только на структуру динамики.
спектрум то может выдать 152КГц на изичах
Разве что только на пентагонах. Чередавать тип огибающий с A на E.
Только я не вижу практического смысла в этом тесте. Нафига он нужен, такой дигит, со скачками амплитуды от 0 до 15? Чем он лучше бипера?
Только я не вижу практического смысла в этом тесте. Нафига он нужен, такой дигит, со скачками амплитуды от 0 до 15? Чем он лучше бипера?
В смысле? У аигрека же есть недокументированная фича -- если отключить и тон и шум, то канал работает просто как 4-бит логарифмический ЦАП. Управляется регистром громкости.
Управляется регистром громкости.
Конечно. Но это не имеет отношения к периодичности инициализации ОГИБАЮЩЕЙ. Речь-то не про передачи громкости - с этим все впорядке, а с режимом огибающей, инициализацией её фазы. А значение громкости огибающей _всегда_ ходит между 0 и 15 (или 0 и 31 для YM), без возможности максимальное значение как-то ограничивать. Нет никакого практического смысла дрочить фазу огибающей чаще чем раз в 1/50.
А, понял. Но ведь огибающая и так сбрасывается при каких-то там условиях, подзабыл уже, каких. Плюс можно поставить минимальный период, подождать немного, и стартовать с него. Там же вроде около 100кГц максимальная частота при типичном включении?
Я к тому что это конечно интересный вопрос для выяснения "для галочки". Но практического применения это знание вообще не даст. Если даже в эмуляторе будет сбрасываться с другой дискретностью, или без дискретности - это все равно нигде не используется и не может использоваться. Никаких интересных звучаний на этом не добиться. В отличие от, например, ретрига, или половинчатой громкости огибы. Сейчас таких композиций можно сказать нет, но в перспективе - будут.
NEO SPECTRUMAN
29.11.2021, 20:10
на этом не добиться
дододо...
- - - Добавлено - - -
Разве что только на пентагонах. Чередавать тип огибающий с A на E
иимею ввиду громкость вообще
(округляетсо ли оно до 1.75/16 или нет)
а не огибающую
а там можно быстрро чередовать штук 6 громкостей
- - - Добавлено - - -
хотя можно и огибающую подрыгать
за одно
- - - Добавлено - - -
а потом гарантированно окажетсо что в 10 эмуляторах
эмуляторы выдают 9 разных вариантов поведения
когда "все все и так знают" :)
NEO SPECTRUMAN, громкость вообще прекрасно дергается на частоте чипа, т.е. около 109кгц
И если уж и искать ограничения, то на реальных чипах. А не эмуляторах. Эмуляторы будут выдавать произвольно, либо дискретность чипа AY, либо дискретность Z80. Грубее реального чипа лучше не ждать.
NEO SPECTRUMAN
29.11.2021, 22:08
громкость вообще прекрасно дергается на частоте чипа, т.е. около 109кгц
так тут вопрос
а можно ли дергать больше чем 109КГц?
или это потолок
вот собственно прикинул на калькуляторе
;------------------------------------------------------------------------------
;11/12
out ($FE),a ;11
out (c),e ;12 23 - 152173,91 Hz
; 1 - 66576,09 Hz - возможное отражение AY от 109Кгц
; 2 - 39826,09 Hz - успешное отражение от 96КГц
;------------------------------------------------------------------------------
;1/1
out (c),d ;12
out (c),e ;12 24 - 145833,33 Hz
; 1 - 72916,67 Hz - возможное отражение AY от 109Кгц
; 2 - 46166,67 Hz - успешное отражение от 96КГц
;------------------------------------------------------------------------------
;11/16
out ($FE),a ;11
out (c),e ;12 27 - 129629,63 Hz
nop ;4 1 - 89120,37 Hz - возможное отражение AY от 109Кгц
; 2 - 62370,37 Hz - успешное отражение от 96КГц
;------------------------------------------------------------------------------
;3/4
out (c),d ;12
out (c),e ;12
nop ;4 28 - 125000 Hz
; 1 - 93750 Hz - возможное отражение AY от 109Кгц
; 2 - 67000 Hz - успешное отражение от 96КГц
;------------------------------------------------------------------------------
;12/17
out (c),d ;12
out (c),e ;12
ret nc ;5 29 - 120689,66 Hz
; 1 - 98060,34 Hz - возможное отражение AY от 109Кгц
; 93939,66 Hz - отражение от 96КГц отражения AY от 109Кгц
; 2 - 71310,34 Hz - успешное отражение от 96КГц
;------------------------------------------------------------------------------
;2/3
out (c),d ;12
out (c),e ;12
inc hl ;6 30 - 116666,67 Hz
; 1 - 102083,33 Hz - возможное отражение AY от 109Кгц
; 89916,67 Hz - отражение от 96КГц отражения AY от 109Кгц
; 2 - 75333,33 Hz - успешное отражение от 96КГц
;------------------------------------------------------------------------------
;12/19
out (c),d ;12
out (c),e ;12
ld h,(hl) ;7 31 - 112903,26 Hz
; 1 - 105846,74 Hz - возможное отражение AY от 109Кгц
; 86153,26 Hz - отражение от 96КГц отражения AY от 109Кгц
; 2 - 79096,74 Hz - успешное отражение от 96КГц
;------------------------------------------------------------------------------
;1/1
out (c),d ;12
nop ;4
out (c),e ;12
nop ;4 32 - 109375 Hz
; x - 0 Hz - возможное отражение AY от 109Кгц
; 2 - 82625 Hz - успешное отражение от 96КГц
;------------------------------------------------------------------------------
;16/17
out (c),d ;12
nop ;4
out (c),e ;12
ret nc ;5 33 - 106060,61 Hz
; 1 - 85939,39 Hz - отражение от 96КГц
;------------------------------------------------------------------------------
;1/1
out (c),d ;12
ret nc ;5
out (c),e ;12
ret nc ;5 34 - 102941,18 Hz
; 1 - 89058,82 Hz - отражение от 96КГц
;------------------------------------------------------------------------------
;17/18
out (c),d ;12
ret nc ;5
out (c),e ;12
inc hl ;6 35 - 100000 Hz
; 1 - 92000 Hz - отражение от 96КГц
;------------------------------------------------------------------------------
;1/1
out (c),d ;12
inc hl ;6
out (c),e ;12
inc hl ;6 36 - 97222,22 Hz
; 1 - 94777,78 Hz - отражение от 96КГц
;------------------------------------------------------------------------------
;18/19
out (c),d ;12
inc hl ;6
out (c),e ;12
ld h,(hl) ;7 37 - 94594,59 Hz
;------------------------------------------------------------------------------
;1/1
out (c),d ;12
ld h,(hl) ;7
out (c),e ;12
ld h,(hl) ;7 38 - 92105,26 Hz
;------------------------------------------------------------------------------
;19/20
out (c),d ;12
ld h,(hl) ;7
out (c),e ;12
nop ;4
nop ;4 39 - 89743,59 Hz
;------------------------------------------------------------------------------
;1/1
out (c),d ;12
nop ;4
nop ;4
out (c),e ;12
nop ;4
nop ;4 40 - 87500 Hz
;------------------------------------------------------------------------------
- - - Добавлено - - -
записав такую последовательность на 192КГц
можно по отражениям от частоты найквиста
посмотреть чо там творитсо
вариант 1 - 109КГц потолок
вариант 2 - ограничения для ррежимма DAC-а нету
- - - Добавлено - - -
out ($FE),a ;11
out (c),e
правда такой вариант хоть и возможон
он еще бубет щелкать и включение выключением добавления огибающей
и можот будет отличатсо
109 кГц -- это опорная частота делителей, а не частота микросхемы. Иначе она не могла бы нормально с шиной работать, пришлось бы вейтстейты вставлять. Чего не требуется. Кроме того, на память, от регистров амплитуды провода там идут прямо на дешифратор управлиения линейкой выходных ключей.
Так что, думаю, реального ограничения по частоте на режим ЦАП там нет.
Так что, думаю, реального ограничения по частоте на режим ЦАП там нет.
Ограничение по приёму данных по шине - нет. Но генератор работает на этой самой опорной. Он не сможет чаще опорной менять состояния выхода. Разве не логично?
Ну то есть содержимое регистров AY/YM можно менять когда угодно, но состояние выходов все равно меняется синхронно опорной.
Или ты предполагаешь, что по опорной частоте меняются только внутренние счетчики, но не состояние выходов?
В таком случае как раз тест и поможет это разъяснить. Тест для реальных чипов, а не эмуляций.
Ограничение по приёму данных по шине - нет. Но генератор работает на этой самой опорной. Он не сможет чаще опорной менять состояния выхода. Разве не логично?
Тут есть тонкий момент. Да, состояние генераторов не может меняться быстрее, чем Fclk/16, да. Но! Выход генератора частоты -- это 0 либо 1. И он управляет включением/выключением источника тока, выход которого уже подключен к выводу микросхемы.
А вот величина этого тока как раз и задаётся регистром громкости. Совершенно независимо от генератора частоты. Поэтому я полагаю, что переключение амплитуды происходит сразу же после записи.
В таком случае как раз тест и поможет это разъяснить. Тест для реальных чипов, а не эмуляций.
Само собой.
MetalliC
03.12.2021, 18:36
А вот величина этого тока как раз и задаётся регистром громкости. Совершенно независимо от генератора частоты. Поэтому я полагаю, что переключение амплитуды происходит сразу же после записи.
скорее всего так и есть, по крайней мере я не заметил в этой части какой-то синхры. может чего проглядел, так что при желании можете перепроверить имеющиеся схемы https://github.com/lvd2/ay-3-8910_reverse_engineered
скорее всего так и есть, по крайней мере я не заметил в этой части какой-то синхры. может чего проглядел, так что при желании можете перепроверить имеющиеся схемы https://github.com/lvd2/ay-3-8910_reverse_engineered
Да, именно эту схему я имел в виду. Раньше просматривал её бегло, сейчас просмотрел внимательно. Ну да, от защёлки регистра громкости до ЦАП пусть идёт только через комбинаторную логику. Да и её-то всего ничего: мультиплексор с огибающей, AND с выходом генератора и дешифратор ЦАП. Всё.
Так что амплитуда должна меняться немедленно.
NEO SPECTRUMAN
03.12.2021, 22:02
а ты можошь разрисовать на более высокоуровневые логические блокии
хотя бы поверх и криво
как это например с реверсом сидора?
Про делитель шума.
Долго изучал лог анализатором и осциллографом.
Чтобы шум звучал один в один как в GI AY-3-8910, необходимо выкинуть даташит по AY :)
Получается, что внутри этого AY счётчик шума 9-ти битный, тактируется от входной частоты 1.77 МГц. Если в регистре значение 0, тогда счётчик получает значение делителя 9'b000001111, если регистр имеет значение больше нуля, тогда 9'bXXXXX0000. Новое значение делителя устанавливается при нулевом значении счётчика. Счётчик работает на понижение.
Про делитель шума.
Долго изучал лог анализатором и осциллографом.
есть-же реверс - изучай
http://dlcorp.nedopc.com/download/file.php?id=3033
voldemar_d
25.05.2023, 06:22
Извиняюсь, если вопрос не совсем по теме. Как в чипе AY реализован сброс счетчика цикла генератора огибающей?
Я сейчас изучаю тему рассинхрона фазы между генератором тона и огибающей и хочу понять, как правильно реализовать функцию Retrig, которую реализовали в Fast Tracker (здесь (http://dlcorp.nedopc.com/viewtopic.php?f=14&t=1498) обсуждение).
В подробных даташитах на AY пишут про регистр R15:
"NOTE: When both the Hold bit and the Alternate bit are ones, the envelope counter is reset to its initial count before holding".
Но есть мнение, что счетчик цикла огибающей сбрасывается при записи любого значения R15. Или это делается по установке делителя огибающей? Может, кто-то из авторов эмуляторов может рассказать, как у них это реализовано?
Я пытаюсь победить рассинхрон фазы в синтезаторе на Arduino, который управляет чипом AY. Пока что удалось добиться того, что вместо произвольного наложения фазы остается лишь два случайных варианта. В обсуждении по ссылке выше пишут, что "Фазу, к сожалению, в рамках 50гц побороть нет никакой возможности, поэтому после ретрига получаем околорандомно 2 варианта звучания" - видимо, у меня так и получилось. Собственно, что я для этого сделал: после установки формы огибающей в регистре R15 я сначала устанавливаю максимальную частоту тона в голосе (значение делителя 0), а затем - уже нужную частоту ноты. Если предположить, что установка значения огибающей в R15 всегда сбрасывает счетчик цикла огибающей, после этого последовательное задание сначала максимальной частоты тона, а потом уже нужной минимизирует случайность наложения двух сигналов. Кое-что про это есть в этом (http://dlcorp.nedopc.com/viewtopic.php?f=14&t=1495) обсуждении, но я не уверен, что всё понял правильно.
Но при этом все равно остается случайность наложения из двух вариантов. Утверждается, что в Fast Tracker смогли побороть это полностью, и для этого добавлена команда Retrig. Кто-нибудь знает, как это сделано?
Утверждается, что в Fast Tracker смогли побороть это полностью, и для этого добавлена команда Retrig. Кто-нибудь знает, как это сделано?
Очевидно это ошибочно утверждается. Счетчик тона (регистры r0-r1/r2-r3/r4-r5) сбрасывается только с приходом сигнала "сброс". И минимальный делитель - 1 (ноль тоже считается как 1). Соответственно выбирая такой делитель, мы получаем 2 значения в фазах, 0 и 180 градусов. И какой из них придется на момент сброса огибающей (сброс происходит при установке r15) - одному богу рандома известно.
Статистически, если тактовка плеера от начала прерывания стабильна, то и паттерн этих вариантов 0-180 тоже будет плюс-минус стабильный. Возможно, это имеется в виду в том утверждении. Но какой из этих двух паттернов попадется - также полный рандом.
voldemar_d
26.05.2023, 04:58
Спасибо, я примерно так и понял.
подскажите, а чем можно вышеуказанный ayphas.ay (https://volutar.myds.me/zx/ayymtest/ayphastest.7z) сконвертить в PSG или EPSG формат на линуксе?
Он в PSG не конвертируется. Там идёт многократная перезапись одних регистров в рамках одного фрейма (а точнее - в рамках наносекунд).
хм, а я уже в ay_emul сконвертил в psg и тестирую... :D теперь понятно, почему я мелких деталей не вижу. Любопытно, что звучит на слух похоже.
А в epsg можно его сконвертить? Там-же такт записи есть...
И чем, чтото не вижу в ay_emul 2.9 сохранения в epsg, хотя где-то на сайте было написано что поддерживает.
Там есть фрагменты со сбросом таймера тона, записывается 0 в делитель, и сразу другое значение. Что такое EPSG я не в курсе. .AY/.SNA как правило хватало.
мне для тестов нужно чтобы был просто набор данных - время, номер регистра, значение, когда и что записывать в регистры, без эмуляции Z80
ZXMAK, насколько понимаю нет такого формата, в котором время бы кодировалось в условных наносекундах, а не прерываниях. А epsg нигде даже не описан.
EPSG вот тут описан: https://documentation.help/AY-3-8910.12-ZX-Spectrum/ay_e9zqf.htm
Offset Length Value
============================
Header
============================
0 4 'EPSG'
4 1 0x1A marker
5 1 Machine type: 0x00 – ZX Spectrum 128 0x01 – Pentagon
0xFF – Other machines
6 4 Zero for machine type 0x00 and 0x01 or
Number of Z80 tacts between interrupt markers
for other machines
10 6 zeroes
============================
AY(YM) log during 1 frame
============================
16 1 AY(YM) register number
17 1 value written to this register
18 3 T-state
.....
?? 5 0xFFFFFFFFFF – interrupt marker
грубо говоря EPSG сигнатюра вначале и 5 байт на запись описывающую в какой регистр на каком такте что писать, 0xFFFFFFFFFF для прерывания. Насколько понимаю такт задается внутри фрейма (от начала прерывания), т.к. на него выделено всего 3 байта.
ZXMAK, гуглом такое не нашел (или плохо искал). В таком формате да, что угодно можно дампануть. Но формат сильно экзотический. И видимо ayemul его не особо поддерживает (для сохранения по крайней мере).
как мне кажется epsg гораздо удобнее для эмуляции AY например на контроллерах - не нужно эмулировать z80, только и знай что значения в регистры подкидывай в нужное время... странно, что он не получил широкого распространения.
Есть еще формат ZXAY: https://documentation.help/AY-3-8910.12-ZX-Spectrum/ay_e65a1.htm
может в него можно чем-то AY сконвертить?
Как оказалось, AY_EMUL поддерживает преобразование в ZXAY. Прилагаю файл теста в формате ZXAY в аттачменте.
Описание формата ZXAY не раскрывает всех деталей и не без приколов.
Структура соответствует описанию, файл начинается с символов ZXAY, далее идут записи по 4 байта, структура записи:
Bit numbers Name
0–19 Time
20–23 Register
24–31 Data
Однако время Time, как оказалось, указывается как значение глобального счетчика тактов Z80 обрезанного с помощью AND 0xFFFFF до 20 бит (довольно неожиданный подход).
Для каждого переполнения счетчика записывается специальная метка 0xFFF00000. При чтении файла такую метку следует интерпретировать как добавление +0x100000 к последующей нормальной записи, все поля такой метки следует игнорировать. Меток может быть несколько подряд, тогда к последующей нормальной записи нужно добавить соответствующее число раз 0x100000 к значению Time.
Запись значений в регистры AY, которая не меняет значение регистра, кроме регистра 13, формат игнорирует и не включает такие записи. Начальное состояние регистров как после сброса. Поэтому в этом формате идут только те записи в регистр, которые меняют содержимое регистра.
Проверьте качество эмуляции YM2149F синтезатора: https://drive.google.com/file/d/1Lc07YODZmXI8B5xHQDfofNftY0r4dPvu/view?usp=sharing
Это результат воспроизведения ayphas.zxay (https://zx-pk.ru/attachment.php?attachmentid=81613&d=1732891519) на эмуляторе, конфигурация миксера ABC (A=[100,10], B=[66,66], C=[10,100]).
Интересует корректность частоты шума и другие детали.
Звук сохранен в сыром виде, как идет с миксера - без наложения фильтров (в том числе и без ФНЧ), чтобы можно было попробовать разные фильтры и рассмотреть детали эмуляции. И посоветуйте какие фильтры лучше наложить для более качественного результата.
ZXMAK, частоты шума неправильные (в 2 раза выше чем нужно). С делителем 31 (максимальным), частота выреза должна быть 3.5Кгц, у тебя оно 7Кгц
С фильтром высоких частот (когда тон получается выше 20кгц) тоже все грустно, даже начиная с 0го делителя (частота 110кгц) какие-то ужасные гармоники лезут.
Судя по инфо со старого анализа, у старого эмулятора ZXMAK2 ситуация была лучше (и в части гармоник, и в части корректности периода шумов), единственное - периоды 0/1 были разными, что неправильно.
https://docs.google.com/spreadsheets/d/1xSE37ZgbsbdZlU6O4zt4zYxeBoqd1De2jztmIwQJtMQ/edit?gid=0#gid=0
https://volutar.myds.me/zx/ayymtest/ тут старые образцы есть, и с какими можно сравнить.
Какие фильтры использовать даже не подскажу. Лучше всего то, что сделал Бульба в своем Ay-Emul, SMT в Unreal Speccy (там на маткаде вроде коэффициенты для фильтра рассчитывались, и с оверсэмплингом в 64). Самый конечно математически точный звук создает эмулятор Ayumi. Но он, насколько я понимаю, вообще не годится для того чтобы делать через него высокочастотные изменения значений (для дигитальных эффектов). Но это надо проверять. В целом ровно та же самая фильтрация должна делаться и для бипера, иначе все крутые биперные мелодии, от Фоллина, до наших родных от Ширу будут звучать очень грязно.
частоты шума неправильные (в 2 раза выше чем нужно). С делителем 31 (максимальным), частота выреза должна быть 3.5Кгц, у тебя оно 7Кгц
Хм, да я действительно убрал умножение делителя шума на два, мне показалось такое умножение странным.
Вот исправил, проверьте:
https://drive.google.com/file/d/1CSvFsY75CN9ODuMWToZ8INNSKmwFrv-e/view?usp=sharing
А вообще - есть подозрение, что разница для делителя шума не видна и нет сигнала с малым делителем не из-за того, что их нет в оригинале, а из-за того, что их срезал входной ФНЧ вашей звуковой карты при записи. Нужно проверять осциллом.
Судя по инфо со старого анализа, у старого эмулятора ZXMAK2 ситуация была лучше
я же написал - запись специально сделана без каких-либо фильтров, чтобы были видны все детали эмуляции.
Алиасы которые вы слышите - это искажения и артефакты обработки сигнала вашим плеером и звуковой картой при довнсэмплинге с 437.5 кГц flac до сэмплрейта вашей звуковой карты.
Обратите внимание, что запись сделана на удвоенной родной частоте дискретизации синтезатора - 437.5 кГц. Поэтому все гармоники, которые вы слышите - это результат обработки сигнала вашим плеером/звуковой картой, они появляются в вашем плеере/звуковой и отсутствуют в файле.
Вы можете наложить любой удобный фильтр в аудиоредакторе и снизить сэмплрейт, чтобы убрать гармоники и артефакты, которые появляются в вашем плеере/звуковухе.
Какие фильтры использовать даже не подскажу. Лучше всего то, что сделал Бульба в своем Ay-Emul, SMT в Unreal Speccy (там на маткаде вроде коэффициенты для фильтра рассчитывались, и с оверсэмплингом в 64). Самый конечно математически точный звук создает эмулятор Ayumi. Но он, насколько я понимаю, вообще не годится для того чтобы делать через него высокочастотные изменения значений (для дигитальных эффектов). Но это надо проверять. В целом ровно та же самая фильтрация должна делаться и для бипера, иначе все крутые биперные мелодии, от Фоллина, до наших родных от Ширу будут звучать очень грязно.
интересует не реализация, а какие полосы по частотам резать. В ZXMAK2 тоже для всех аудиоустройств (включая бипер и мониторный звук магнитофона) используется ФНЧ с оверсэмплингом 64 для децимации к выходному сэмплрейту. Однако в тестовом файле выше запись сделана до фильтра на родной частоте дискретизации AY.
Алиасы которые вы слышите - это искажения и артефакты обработки сигнала вашим плеером и звуковой картой при довнсэмплинге с 437.5 кГц flac до сэмплрейта вашей звуковой карты.
Это бессмысленно. Нужно до 44100 и 48000 даунсэмплить и потом уже показывать. То что там будет вытворять драйвер звуковухи или винды с таким сигналом - это одним индусам видно (нет). Очевидно ничего хорошего они делать не будет поэтому весь даунсэмплинг лежит на эмуляции.
90% артефактов именно в них.
По частотам шумов и другим моментам с огибающей я уже расписал (точнее с тем что не упомянул - все хорошо).
Единственное что еще добавлю - децимация с фильтрами должна приводить к тому, что первые ПЯТЬ делителей (0,1,2,3,4) ВООБЩЕ никакого слышимого звука не должны создавать (эта часть начинается на 50.24сек от начала). В https://volutar.myds.me/zx/ayymtest/ayphas.flac - записи с реального YM2149F это прекрасно видно (не только слышно).
Всякие даунсэмплеры в звуковых программах типа Audacity или Soundforge делают это ПЛОХО. Это только своим качественно даунсэмплирующим эмулятором можно сделать _как надо_.
Это бессмысленно. Нужно до 44100 и 48000 даунсэмплить и потом уже показывать. То что там будет вытворять драйвер звуковухи или винды с таким сигналом - это одним индусам видно (нет). Очевидно ничего хорошего они делать не будет поэтому весь даунсэмплинг лежит на эмуляции.
90% артефактов именно в них.
Если сделать даунсэмпл до 48000, то потеряются детали эмуляции. Восстановить сигнал уже не получится. На таком файле не получится ни посмотреть детали эмуляции в сигнале, ни применить более качественный фильтр, т.е. поиграться с сигналом уже не получится. Он изначально будет покоцан фильтром.
Поэтому я и дал исходный сигнал в flac без наложения фильтров на исходном сэмплрейте. Естественно, чтобы качественно послушать на звуковухе без алиасов нужно наложить хороший ФНЧ в аудиоредакторе, т.к. обычные плееры и звуковухи весьма плохо производят ресэмплинг, т.к. экономят процессор и память, отсюда и алиасы если слушать файл сразу в плеере без обработки фильтром.
В аудиоредакторах надо очень сильно постараться найти такой фильтр который хотябы немного бы приблизился к тому что даёт Unreal, не говоря уж про ayumi! Они все далеки от того что нужно. Нужен сверх резкий, brick wall на частоте Найквиста. С живого на частоте 48к капчурится так что делители тона 0,1,2,3,4 дают абсолютную прямую без колебаний, без единой гармоники. Только на делителе 5 появляется ВЧ сигнал. К этому нужно стремиться.
немного допилил эмулятор AY - доработал фильтры и переделал шум. Проверьте качество эмуляции:
ayphas: https://transfiles.ru/wzqe5
музыка: https://transfiles.ru/yiedm
Любопытная композиция lost-madness_2018_DiHalt-Lite-2018 (https://zxart.ee/rus/avtory/n/n1k-o/lost-madness/). При эмуляции такое впечатление, как будто звук немного рваный:
https://transfiles.ru/pl9ww
На сайте mp3 (https://music.zxart.ee/music/194438_n1k_o_TmK_lost_madness.mp3) с таким-же эффектом.
Интересно, на живом AY тоже такой эффект получается?
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot