Вход

Просмотр полной версии : AY48 by NS



NEO SPECTRUMAN
02.11.2015, 23:14
УБЕРИТЕ РИНДЕКСОВ ОТ ЭКРАНОВ
тут творятся страшные вещи


представляю вашему вниманию AY48
эмулятор AY-3-8910 для ZX Spectrum 48 с ковоксом\бипером
сабж состоит из *****кода чуть более чем полностью ;)

включает в себя 7 движков
5 ковоксных
AY48 covox v01
AY48 covox v02
AY48SN covox
AY48 covox v01 + 24 bit envelope
AY48 24 bit covox
(2 последних не доделаны(ограничения в работе огибающей))

2 биперных
AY48SN beeper v03X2 4x 12extra_nop
AY48SN beeper v03X3 1x
(последняя скорей для всяких турбо режимов тк пищит на 3.5 МГц)

генератор шума не эмулируется (тк он один жрет...)
используется 1К табличка полученная Ау-ковским шумогенератором

SN - версии движков с упрощенным шумом (нет управление частотой т к ее изменение все равно не различить из за низкой частоты дискретизации)
принцип работы ее шумелки затерялся в процессе оптимизации
и теперь сильно зависит от огибающей
и в некоторых случаях может просто не выдавать никакого шума
хотя в большинстве случаев он работает

не зацикленные формы огибающей так же не эмулируются
будут воспроизведены только первые 8 циклов а дальше зацикливание
ковокс версии выдают вполне приемлемый результат

наиболее шустрый движок AY48SN covox
333t цикл
частота дискретизации 10510 Hz

звучание биперной версии просто ужасно
(отсутствие пищания в процессе работы плеера, конвертера создает жуткий 50Гц фон)

единственный пригодный к использованию движок
AY48SN beeper v03X2 4x 12extra_nop
705t цикл
частота дискретизации 4964 Hz
частота ШИМ 19858 Hz


на данный момент AY48 заточен под Vortex Tracker II
из коробки конвертит экспортированные из него TAP и Hobetы скомпилинные по адресу $6200
Drag&drop-ые на батник

может пакетно конвертить до ~60 файлов лежащих в той же папке что и батник
конвертить из другой директории уже как повезет (пока не осилил батникописание)
в крайнем случае по одному

TAP почему то надежней (хотя импортируется *****кодом)
большое количество $C отказались корректно конвериться

полученный SNA можно за 20 сек загрузить на реале используя OTLA
который так же в комплекте



переключение движков и правка настроек осуществляется
редактированием ручками интуитивно понятного ay48.asm
все самое необходимое в самом начале

в идеале каждый трек требует подстройки +\- 2
cmpcicles
методом научного тыка
выставляемое по умолчанию значение рассчитано на основе всего 5 модулей и не всегда точно подходит
(поставьте intmodcompensation = 0
чтоб лучшо понять для чего оно нужно ))))


СКАЧАТЬ БЕЗ СМС
интуитивно понятный исходник+VTII+OTLA+модули+готов ые tap для экспериментов+готовые sna законверченные залпом без подстройки
AY48_r0067.zip (https://yadi.sk/h/1ES0w_YVjT6LM)

записи звучания этого безобразия(osc7 биперный движок) с реала
mp3.zip (https://yadi.sk/d/y77kbZm0kC2Ei)

в аттаче
результаты конверсии с наиболее приемлемым звучанием (из пачки тех что в архиве выше)
ну и еще пара sna рипнутых из какой то демки :rolleyes:

3Ы слово конвертить тут не сильно подходит
все конвертится в риалтайме ужо на самом спектруме

ЗЫЗЫ: биперные версии активно юзают out (c),0
так что владельце пентев благополучно услышат тишину)))
юзайте ковокс-ные версии

NEO SPECTRUMAN
02.11.2015, 23:18
описывать все тонкости можно страниц на 10
чего делать умя нет никакого желания
что непонятно спрашиваем

NEO SPECTRUMAN
02.11.2015, 23:34
записи звучания этого безобразия
кстате неверное один из немногих случаев когда на эмуле звучит лучше чем на реале
видимио пушо минус на минус дает плюс
эмуль на реале = уг
эмуль на эмуле = trueЪ :v2_tong2:

Eagle
02.11.2015, 23:52
кстате неверное один из немногих случаев когда на эмуле звучит лучше чем на реале
На эмуле FIR фильтр, а на реале абы как.

Вот если бы оно зазвучало как мои оцифровки :)

NEO SPECTRUMAN
03.11.2015, 00:37
Вот если бы оно зазвучало как мои оцифровки
как вариант можно было бы в начале проиграть модуль плеером и конвертилкой в тишине
забить всю свободную память пожатыми значениями для ЦАП-а
а потом все это вывести в высоком качестве с хорошим шимом

но памяти то мало(ее практически не остается если загнать жирный модуль)
и писать в память оно будет со скоростью не намного большей чем скорость воспроизведения в риалтайме
ждать 20 сек чтоб потом послушать 20 сек

чтоб вместить больше придется юзать пзушный калькулятор(тк счас овердофига памяти под таблицы) что сожрет еще больше времени перед воспроизведением
да и минуту беспрерывной игры вряд ли удастся обеспечить

Eagle
03.11.2015, 01:03
забить всю свободную память пожатыми значениями для ЦАП-а
а потом все это вывести в высоком качестве с хорошим шимом
А может лучше шум оцифровать с разной частотой? И не надо будет его обсчитывать, а уже выводить как есть. А ещё правильней не цифровать, а сгенерить семплы шума под разную частоту заранее.

newart
03.11.2015, 11:22
наиболее шустрый движок AY48SN covox
333t цикл
частота дискретизации 10510 Hz

звучание биперной версии просто ужасно
(отсутствие пищания в процессе работы плеера, конвертера создает жуткий 50Гц фон)

единственный пригодный к использованию движок
AY48SN beeper v03X2 4x 12extra_nop
705t цикл
частота дискретизации 4964 Hz
частота ШИМ 19858 Hz
А если эмулировать только 1 или 2 канала?

---------- Post added at 12:22 ---------- Previous post was at 12:20 ----------

У Covox какой порт? Не играет ни в Спектакуляторе ни в анриле. (

Kakos_nonos
03.11.2015, 14:26
Это нереально круто!
Надо изучить подробнее.

---------- Post added at 14:26 ---------- Previous post was at 14:03 ----------

Послушал подробнее - Это лучшее из бипера что я когда-либо слышал. Мега респект!

NEO SPECTRUMAN
03.11.2015, 14:48
Это лучшее из бипера что я когда-либо слышал.
а вы уверены что слушали биперную версию???


У Covox какой порт?
прописуй какой хочешь

;================================================= ===========
;настройка портов спека

covox = $FB ;251

covox1 = $4F ;79 стерео ковокс
covox2 = $0F ;15

beepport = $FE ;

примеры собраны под FBh
он есть в унрыле и эмузвин


---------- Post added at 13:48 ---------- Previous post was at 13:43 ----------


А если эмулировать только 1 или 2 канала?
это + к частоте дискретизации
но не в ней проблема (хотя она тоже сильно низкая)

все портит прерывание на котором весит плеер и конвертилка
и во время которого стоит тишина

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


пока нужно оптимизировать ayregsdecoder
он практически не оптимизировался и работает по принципу лишбы работало
первое что бросается в глаза и совсем скоро попадет под горячую руку

dup cmpcicles
add hl,de
edup

3Ы: идеи по оптимизации
и сторонние пищалки приветствуются
добавлю в credits-ы
которых пока нет)))))

Kakos_nonos
03.11.2015, 15:10
а вы уверены что слушали биперную версию???
Да, была папка beep и полоски на бордере.

NEO SPECTRUMAN
03.11.2015, 15:56
А может лучше шум оцифровать с разной частотой? И не надо будет его обсчитывать, а уже выводить как есть. А ещё правильней не цифровать, а сгенерить семплы шума под разную частоту заранее.
ага
счас под "семпл" шума выделено 1К памяти (он и так сгенерирован)
4 таблички
если его просто начать крутить по кругу (даже если весь 1К)
то он и на шум не будет похож
будет писк весьма интересного тембра
(пушо шумом воспринимается то в чем моск не может найти закономерности)

для точной эмуляции нужна 128К таблица
ну или хотя бы максимально жирная
тогда ее можно будет крутить по кругу

чтоб не выкидывать кучу памяти под шум
я впилил "рандомную" смену этих табличек по инту

можно вообще не юзать 1К табличку
а юзать все 16К ПЗУ
но шум будет не тот
и работа миксера (микширование тона, шума и огибающей\громкости) рассчитана на семпл шума в виде ($00,$FF,$FF,$00,$00,$00,$FF...)


ну и возвращаемся к поставленному вопросу
считаем
минимум 1К табличке * 32 частоты шума AY =...

...а если вернуться к правильной табличке в 128К???...

3Ы обращаем внимание на SN версию в которой нет никакой частоты шума
и звучит она не хуже чем версия с изменяемой частотой
(в тех случаях когда оно не используется в качестве эффекта
как например это сделано в examples\sna\osc2nzfrqdiv2 covox\ZXGuide4.5_25.sna)

3Ы3Ы. а вот огибающая изначально рассчитана вплоть на то
чтобы играть семплы огибающей оцифрованные с реала
но как впилилась поддержка смены табличек громкости
так эта идея отпала

---------- Post added at 14:56 ---------- Previous post was at 14:18 ----------


Да, была папка beep и полоски на бордере.
тогда рекомендую послушать какой ужас воспроизводится на реале (си 1-м пост)

James DiGreze
03.11.2015, 16:33
(пушо шумом воспринимается то в чем моск не может найти закономерности)
Какбэ да, и какбэ не очень...
Шум тоже есть, в некоторм смысле, закономерность.
Тут вот пришла бредовая мысль - а если поиграться с гармониками прямоугольных импульсов?

NEO SPECTRUMAN
03.11.2015, 17:02
а если поиграться с гармониками прямоугольных импульсов?
даже не знаю что и ответить.

1. не понял сути (я не знаю как еще можно получить шум без использования сдвиговых регистров или обратной связи)
2. как вы это себе представляете?
3. задача была не просто получить какой то шум а шум AY
4. задача была чтоб он сам не жрал 200t и не требовал 24 мГц-ного проца для нормальной работы

Eagle
03.11.2015, 17:37
1. не понял сути (я не знаю как еще можно получить шум без использования сдвиговых регистров или обратной связи)
Регистр R ксорить с самим собой но взятым в другой момент времени.

NEO SPECTRUMAN
03.11.2015, 17:39
Регистр R ксорить с самим собой но взятым в другой момент времени.
когда то давно пытался его юзать для шума
и таким же способом кстате тоже
умя не получилось
кроме шума он гудел, скрипел, трещал...

newart
03.11.2015, 18:27
нужны исходники вортексовского плеера
Они доступны, вроде бы даже идут в комплекте.