PDA

Просмотр полной версии : Как стянуть 1-bit звуки со спектрума?



BlaireCas
07.08.2023, 18:05
Собственно хочется взять некоторые биперные звуки со спектрумовской игры. Ну точнее своровать да :)
Хотелось-бы их получить в виде 0101010111010100 бипера. Понятно что с какой-то там частотой это будет.

Так и не смог найти как с эмуляторов такое содрать?

Беру скажем Unreal - играю, жму F5 для записи звука - он его записывает, но увы, вовсе не в дискретном формате, а с некими амплитудами.
Какая на бипере амплитуда-то? Там 0101 должно быть. (я знаю про инерцию динамика и как-бы в реальности амплитуда все-же будет, но речь о другом).

Пока-что обошелся тем что делаю distort результирующего файла пока не станет max-min в аудио и как-бы уже похоже на однобитность становится. Но увы не всегда.

goodboy
07.08.2023, 19:59
Так и не смог найти как с эмуляторов такое содрать?
был эмулятор с возможностью лога того что пишется в указанный порт, но название не помню.

Spectramine
07.08.2023, 21:30
Можно записать звук бипера в эмуляторе ZX Spin v.0.666 в формат WAV, он, похоже, записывает без промежуточных амплитуд. Затем преобразовать последовательность амплитуд в последовательность нулей/единиц (придется написать свою утилитку). А лучше в последовательность длин отрезков нулей/единиц, компактнее будет, и воспроизводить проще.

NEO SPECTRUMAN
07.08.2023, 22:03
Хотелось-бы их получить в виде 0101010111010100 бипера. Понятно что с какой-то там частотой это будет.
идея крайне плохая
намного проще
1. Срисовать с спектрограммы ручками
2. Выдрать процедуру с эффектами

в виде 1010101 будет жрать столько что в спектрумовскую игру влезут 3 таких звука но не остаанетсо мместа под игру

а так 10011010 в каком то своем .out формате по моему пишет emuzwin


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

UncleDim
07.08.2023, 22:10
не остаанетсо мместа под игру
помнится, в "детстве"(компьютерном) экспериментировал на бк-0010 так: считывал бит с маг. входа и отправлял его на бипер, в бесконечном цикле. подал с магнитофона пинкофлойдову стену и, послушав бипер (ужас-ужас, но разборчивый ужас!), осознал: частота дискретизации важнее разрядности)

NEO SPECTRUMAN
07.08.2023, 22:25
(ужас-ужас, но разборчивый ужас!), осознал: частота дискретизации важнее разрядности)
неп это просто не понимание сути (если ты это не делол на бейсике конечно)

а вот если на бипер подать дельту сигнала
то "среза" такого нет
и разборчивость не плохая

UncleDim
07.08.2023, 22:39
на бейсике
на асме канещн, частота должна была быть запредельной "по котельникову". в схему входных/выходных цепей не вникал (ввиду их отсутствия) тогда, от них вполне мог получиться эффект разборчивости

NEO SPECTRUMAN
07.08.2023, 22:54
да и качество результата посредственное...
в Ау-к я могу конвертить так
https://www.mediafire.com/file/zmuacyoutou46yq/S98_AutoNS.7z/file

- - - Добавлено - - -

так в бипер (правда тут крайне специфичный движок)
https://www.mediafire.com/file/ot5rj8axq0zfzpz/Futarikiri_no_Jikan__BB18CE.mp3/file
https://youtu.be/LdnsO-WmCGM - оригинал

- - - Добавлено - - -


на асме канещн, частота должна была быть запредельной "по котельникову".
c 1 бит на входе тя никакие частоты и котельниковы не спасут

UncleDim
07.08.2023, 23:02
никакие частоты не спасут
просто попробуй, на каком-нибудь реале

NEO SPECTRUMAN
07.08.2023, 23:09
я будто не знаю какой будет результат :)

NEO SPECTRUMAN
09.08.2023, 15:50
1. Срисовать с спектрограммы ручками

собственно это выглядит как то так
https://i.postimg.cc/4NN3v5Zq/2023-08-09-154430.png
изичи

BlaireCas
09.08.2023, 21:25
Можно записать звук бипера в эмуляторе ZX Spin v.0.666 в формат WAV, он, похоже, записывает без промежуточных амплитуд.
Спасибо, попробую. Хотя если он пишет в 40кГц wav-ку - то там видимо без промежуточных все-равно никак.


идея крайне плохая
Вполне нормальная, выдрал уже с болдера звук "появления рокфорда" (ну или собрания всех алмазов). Заняло немного (ну как сказать немного, для спека много, а мне пойдет).
Разумеется это всё для очень мелких звучков. Ну совсем небольших. Чтобы самому не мучаться с изучением 1-бит звуков (да уж кидайте сапогами)
; emerging
Sound005: .word 14, 84, 57, 89, 63, 95, 74, 97, 85, 105, 90, 112, 101, 116, 109, 122, 118, 128, 125, 136, 134, 141, 142, 148, 149, 156, 157, 162, 164, 169, 172, 176, 96, 0
длины 1-ц и 0-й разумеется ( и нет :) , я не на спек пишу, звук немного иначе сделан, по таймеру)

Скрипт для парсинга вавки в которой +1, -1 - особо нечего писать, загрузил в audacity - сделал экспорт в текст, ну и там примитив парсинг, wav парсить самому не надо.

Spectramine
09.08.2023, 21:50
Спасибо, попробую. Хотя если он пишет в 40кГц wav-ку - то там видимо без промежуточных все-равно никак.
Промежуточные появляются из-за звукового фильтра, а ZX Spin 0.666 выводит биперные амплитуды как есть, от этого сложные мелодии с дикими призвуками, но зато в wav нет промежуточных амплитуд.

- - - Добавлено - - -

В более поздних версиях ZX Spin уже используется звуковой фильтр.

Barmaley_m
09.08.2023, 22:35
Идеальный вариант, конечно - продизассемблировать движок и воссоздать на основе его анализа идею, которую вложил автор движка в тот или иной звук. Например, он хотел плавно менять частоту или скважность в каких-то пределах. После этого создать программу (на матлабе, питоне и т.п.), которая бы синтезировала указанный звук, но уже без технических ограничений биперного движка. Тут методы и алгоритмы зависят от того, какой звук нужно синтезировать.

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

Менее затратный вариант - провести запись биперного выхода в эмуляторе на частоте дискретизации, равной частоте процессора (3,5МГц). После этого сделать ресэмплинг с фильтрацией на частоту 44100 (или другую нужную). Таким образом можно хотя бы исключить дополнительный алиазинг (которого не было в звуке реального Спектрума). Тот алиазинг и другие искажения, которые были (если были) на Спектруме - при этом останутся.

NEO SPECTRUMAN
09.08.2023, 22:40
Идеальный вариант, конечно
отборный тролинг

UncleDim
09.08.2023, 22:51
но уже без технических ограничений биперного движка
и услышать совершенно другой звук. наверное даже ужаснуться)

BlaireCas
09.08.2023, 23:24
Идеальный вариант, конечно - продизассемблировать движок
Идеальный вариант конечно написать свой. Но иногда бывает проще слямзить готовое особенно когда делаешь некое подобие порта (ну хоть чтобы хоть как-то похоже звучало).
Анализ идеи тоже вариант. Я помню поизучал BeepFX (он сам под винду для упрощения создания звуковых эффектов, и там есть код на асме под спектрум, но бывает так что полностью воссоздать это сродни сизифовым трудам).

NEO SPECTRUMAN
09.08.2023, 23:59
Но иногда бывает проще слямзить готовое особенно когда делаешь некое подобие порта
в данном случае проще всего рипнуть саму процедуру

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

Barmaley_m
10.08.2023, 01:23
отборный тролинг
Почему троллинг? Я именно так и делал, как предложил. Получал прекрасные результаты (см. https://zx-pk.ru/threads/10328-1943-remastered.html). Также https://zx-pk.ru/threads/6425-savage-remastered.html Только трудозатратно это.

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

NEO SPECTRUMAN
10.08.2023, 01:38
Почему троллинг?
потому что оччень похожо

а так идея возвращения старым музычкам равномерно темперированного строя интересная...
и такое я ужо дажо делол лет 8 назад...
я даже линейно интерполировал значения между "чистыми" делителями
именно беря "очищенные" варианты частот

такое можно применить и к Ау-ку у которого все очень плохо на верху...
прямо к psg
...но надо знать частотную таблицу
хотя ее можно получить частотным анализом

но конечно от этогоо уедут все эффекты с биениями частот...

Barmaley_m
10.08.2023, 02:09
а так идея возвращения старым музычкам равномерно темперированного строя интересная...
и такое я ужо дажо делол лет 8 назад...
Ну вот, видишь, а я - 16... Как быстро время летит-то!

...но надо знать частотную таблицу
хотя ее можно получить частотным анализом
По дизассемблеру обычно без проблем находится частотная таблица. Каким бы ни был движок, она там почти всегда есть в явном виде. Только в движке от Tim Follin ее нет. Там на позиции каждой ноты стоит значение делителя. Фактическая частота там еще зависит от того, какие ноты играют на соседних каналах (общий период генератора зависит от кол-ва задействованных каналов и делителях на них). И это учитывается в "нотной записи" музыки. В общем, было интересно разбираться и находить способы вычисления частот, которые задумывал автор.

но конечно от этогоо уедут все эффекты с биениями частот...
С эффектами и вообще со звуками надо аккуратно работать. Сравнивать звук оригинала и ресинтеза. И принимать решение индивидуально в каждом случае.