PDA

Просмотр полной версии : AY+ВИ музыка на Вектор-06ц



SegaBoy
21.08.2023, 06:58
Портировал на досуге несколько мелодий с Фамикома на Вектор под AY+ВИ. Послушать как звучит можно в эмуляторе, например v06x или emu80. Но так же интересно мнение обладателей живых Векторов с подключённым AY (если такие есть конечно).

ROM-файлы для запуска на эмуляторе, ассемблерные исходники для изучения и модификации, а так же ознакомительные аудио-файлы для прослушивания - можно получить щёлкнув по картриджу с игрой:

https://images.launchbox-app.com/11386e47-172c-4d29-9b20-bf7ad9cf4135.png (https://cloud.mail.ru/public/KGyV/5op3gVmwL) https://images.launchbox-app.com/311ddd69-50bf-4fa4-9968-ef5fdbfd9f2e.jpg (https://cloud.mail.ru/public/CUvK/vRACeBuem) https://images.launchbox-app.com/26b558be-78ef-4ed0-b409-77f97d8aac32.png (https://cloud.mail.ru/public/JLrZ/SXLxkvTpP) https://images.launchbox-app.com/6f79d418-5a1f-4aee-81f4-1ef677ac9dc8.png (https://cloud.mail.ru/public/1yWv/KDtpYiqWx) https://images.launchbox-app.com/9d63765a-049a-4b55-adea-bca9d65e20e2.jpg (https://cloud.mail.ru/public/btrQ/PUYYDnxs9) https://images.launchbox-app.com/1fba37c8-bc8d-4375-a18b-13991d99de18.png (https://cloud.mail.ru/public/P23X/gpwgpDfuW)

ivagor
21.08.2023, 07:19
Смешанные чувства. С одной стороны - здорово, если слушать в подходящем эмуляторе. Но если слушать в неподходящем эмуляторе (или реале, которого у меня нет), то не очень хорошо. Основная проблема - в наиболее популярных вариантах подключения AY к вектору частота AY независима от вектора. В данном случае на слух нормально в Emu и VV, и не очень хорошо в Emu80 и v06x. На реалах скорее большинство с частотой как у Emu80 и v06x. Если бы я делал что-то подобное, то ориентировался бы на первый R-Sound, который брал частоту 1.5 МГц из вектора.

Ramiros
21.08.2023, 12:40
SegaBoy, Было бы круто запилить музыку из chip&dale 2 и Ninja Gaiden! там в уровнях помню очень крутая музыка.

Pyk
21.08.2023, 14:50
Смешанные чувства. С одной стороны - здорово, если слушать в подходящем эмуляторе. Но если слушать в неподходящем эмуляторе (или реале, которого у меня нет), то не очень хорошо. Основная проблема - в наиболее популярных вариантах подключения AY к вектору частота AY независима от вектора. В данном случае на слух нормально в Emu и VV, и не очень хорошо в Emu80 и v06x. На реалах скорее большинство с частотой как у Emu80 и v06x. Если бы я делал что-то подобное, то ориентировался бы на первый R-Sound, который брал частоту 1.5 МГц из вектора.
Что-то не совсем понял. Независимая частота - это 1,7734 МГц, как в схеме R-Sound? Или 1,75 (Sound Tracker)? Вроде бы в обеих схемах отдельные кварцы стоят?

ivagor
21.08.2023, 15:05
И тот и другой вариант независимые от частоты вектора. И в разные экземпляры на практике ставили разные кварцы. А "зависимый" один - это первый R-Sound, который брал 1.5 МГц из вектора. С ним другая проблема - их нет в наличии у реальщиков.

parallelno
22.08.2023, 04:28
Портировал на досуге несколько мелодий с Фамикома на Вектор под AY+ВИ. Послушать как звучит можно в эмуляторе, например v06x или emu80. Но так же интересно мнение обладателей живых Векторов с подключённым AY (если такие есть конечно). Файлы можно взять здесь (https://cloud.mail.ru/public/ZD51/vWAKkjgri), исходники прилагаются.

О, это так круто! Звучят мелодии очень класно!
А как ты конвертировал музыку? Расскажи про формат треков пожалуйста. Насколько большая нагруза на проц для проигрывания?

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

Я вижу что плеер не использует прерывания. Скажи, а реально переделать плеер чтобы он работал из процедуры прерывания?

SegaBoy
22.08.2023, 05:29
А как ты конвертировал музыку? Расскажи про формат треков пожалуйста.
Я брал nsf-файлы и экспортировал Фамитрекером в текстовый формат. А уже из текста доставал нужные данные.
Формат следующий: сначала идёт байт с флагами - установить ноту каналов 1 2, установить громкость каналов 1 2, установить/выключить канал 3, установить шум/громкость канала 4. Если бит установлен, то за байтом с флагами идёт байт с соответствующим значением (сколько флагов столько и байт).


Насколько большая нагруза на проц для проигрывания?
Один раз в кадр нужно считать строку от 1 до 10 байт и выполнить загрузку регистров AY и ВИ, дальше просто ждём, ну или выполняем полезную часть программы, если это игра например.

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


Я вижу что плеер не использует прерывания. Скажи, а реально переделать плеер чтобы он работал из процедуры прерывания?
Изначально мелодии под 60Гц. Я не хотел переписывать их под 50, поэтому не использовал прерывания. Вместо прерываний я использую один из каналов таймера, который отсчитывает 1/60 сек. Я жду опрашивая таймер и как только он насчитал, посылаю новые значения.
Да, переделать под прерывания вполне реально.

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


SegaBoy, Было бы круто запилить музыку из chip&dale 2 и Ninja Gaiden! там в уровнях помню очень крутая музыка.
Ninja Gaiden использует канал DPCM. Как с ним быть я пока не придумал, а без него звучит не очень. Второй Чип и Дейл ещё не изучал, пока первый осваиваю ))

parallelno
22.08.2023, 10:54
SegaBoy, спасибо большое за пояснения! Получается это очень быстрый плеер и ещё он использует больше трёх каналов. Красота! Очень хочется поизучать как все устроено и интегривать в свой проект.

- - - Updated - - -

Получается что плеер играет музыку на 3 каналах ay и двух каналах Ви? То есть если переписать на использование прерываний, появится возможность использовать дополнительный канал? А сколько всего каналов в у фамикома?

- - - Updated - - -

SegaBoy, а ты можешь выложить на github.com конвертер пожалуйста?

Ramiros
22.08.2023, 11:39
У фамикома (Денди) 2 канала генерящие прямоугольники с управляемой громкостью, 1 канал генерящий треугольники без управления громкостью, и 1 канал шума с управляемой громкостью, еще 1 канал DPCM для вывода оцифрованного звука.
По идее должно хватить и одного AY. Но генерация триугольников это фича фамикона дающая басы в музыке, и если ее эмулировать прямоугольниками, то получается не очень. Возможно с помощью огибающей и третьего канала AY-ка получилось бы лучше, чем просто прямоугольники.

NEO SPECTRUMAN
22.08.2023, 18:49
Возможно с помощью огибающей
неполучитсо
можешь послушать у алона в марево
как оно паршиво жужжит вместо басов

да и "разрешение" у огибающей ну совсем не то
чтоб конвертить в нее на автомате

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

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

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

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


Изначально мелодии под 60Гц. Я не хотел переписывать их под 50, поэтому не использовал прерывания.
в рашке все что 60Гц привыкли слышать в 50Гц
оригинал пипикающая ересь для еретиков
только донди самый пральный фамиком :D

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


. Файлы можно взять здесь
фехня
даешь батлтодс %) (тот который DD)

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


Ninja Gaiden использует канал DPCM. Как с ним быть я пока не придумал, а без него звучит не очень. Второй Чип и Дейл ещё не изучал, пока первый осваиваю ))
ты зобыл что утя

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

ivagor
23.08.2023, 06:17
Получается что плеер играет музыку на 3 каналах ay и двух каналах Ви?
Играет на 3 каналах AY и одном канале ВИ, плюс еще канал ВИ для выдержки временных интервалов.

Ну и от меня не хватало позитива, надо исправляться - в векторовских программах (эмулятор спека, exolon) есть примеры использования таймера для задания временных интервалов, но они издают (сравнительно тихие) паразитные звуки, а SegaBoy реализовал бесшумный вариант, респект.

NEO SPECTRUMAN
23.08.2023, 07:24
бесшумный вариант,
так не обязательно выставлять 60Гц
можно щитать до FFFF
а интервалы мерять уже самому...
да и можно несколько сразу от одного счетчика

SegaBoy
23.08.2023, 08:04
Ну и от меня не хватало позитива, надо исправляться - в векторовских программах (эмулятор спека, exolon) есть примеры использования таймера для задания временных интервалов, но они издают (сравнительно тихие) паразитные звуки, а SegaBoy реализовал бесшумный вариант, респект.
Я предположил что таймер может вносить искажения, если один канал использовать для счёта, поэтому полез читать справочник Шахнова насчёт ВИ53. Единственный подходящий оказался режим 0 - при установке на выходе низкий уровень, при загрузке счётчика тоже низкий. Если не давать досчитать до конца и успевать перезагружать или останавливать счётчик, то выход так и будет в низком уровне и посторонних шумов не будет. В остальных режимах свои недостатки.

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



только донди самый пральный фамиком :D

Для 50 Гц надо поменять константу загружаемую в счётчик - вместо $e2 поставить $f5

ivagor
23.08.2023, 09:12
Справедливости ради отмечу, что в эксолоне и эмуляторе спека решали более сложную задачу - там надо выдерживать постоянные интервалы с точностью до такта, поэтому один раз задают делитель после прерывания и дальше пользуются (независимо от прерываний). А здесь не нужно синхронизироваться с обновлением экрана, поэтому допустимо небольшое плавание интервала, на слух это не заметно. Для разных применений лучше подходят разные варианты.

ivagor
23.08.2023, 16:11
Добавил в один пример рилтаймовую коррекцию делителя таймера, чтобы строил с AY 1.75 МГц. Соответвенно тут ситуация обратная оригиналу - приемлемо в Emu80 и v06x, нестрой в Emu и VV.

Upd (chipdUni):
УС/LCtrl (РУС/ЛАТ не горит) - оригинал, лучше подходит для Emu и VV
CC/LShift (горит РУС/ЛАТ) - вариант более подходящий для Emu80 и v06x

ivagor
23.08.2023, 21:01
Заменил пример (https://zx-pk.ru/threads/35240-ay-vi-muzyka-na-vektor-06ts.html?p=1184653&viewfull=1#post1184653) на универсальный вариант с переключением коррекции клавишами на лету.

Ramiros
23.08.2023, 21:22
Добавил в один пример рилтаймовую коррекцию делителя таймера, чтобы строил с AY 1.75 МГц. Соответвенно тут ситуация обратная оригиналу - приемлемо в Emu80 и v06x, нестрой в Emu и VV.

Upd (chipdUni):
УС/LCtrl (РУС/ЛАТ не горит) - оригинал, лучше подходит для Emu и VV
CC/LShift (горит РУС/ЛАТ) - вариант более подходящий для Emu80 и v06x

Я что то разницы не заметил, что должно изменятся?

ivagor
23.08.2023, 21:55
Если разница не заметна, то подойдет и оригинальный вариант.

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

parallelno
24.08.2023, 08:28
SegaBoy, Я переделал плеер на прерывания. На песне Duck Tales тратится примеро 340-1300 тактов за прерывание. Это очень класно! Буду тестировать другие треки.

А ты можешь выложить на github.com или куданибудь еще конвертер пожалуйста?

SegaBoy
24.08.2023, 13:24
SegaBoy, Я переделал плеер на прерывания. На песне Duck Tales тратится примеро 340-1300 тактов за прерывание. Это очень класно! Буду тестировать другие треки.

Выложил Duck Tales чуток поправленный под 50 Гц (ну если кому вдруг замедленный вариант покажется не очень).


А ты можешь выложить на github.com или куданибудь еще конвертер пожалуйста?
Написал в личку.

NEO SPECTRUMAN
24.08.2023, 15:50
а ты можешь выложить на github.com конвертер пожалуйста?
гитх00б через месяц помножит всех на 0

SegaBoy
10.12.2023, 21:06
Мелодии из Mitsume ga Tooru - взять исходник, rom-файл или сразу послушать что получилось можно здесь (https://cloud.mail.ru/public/P23X/gpwgpDfuW).

NEO SPECTRUMAN
10.12.2023, 21:17
Мелодии из Mitsume ga Tooru - взять исходник, rom-файл или сразу послушать что получилось можно здесь (https://cloud.mail.ru/public/P23X/gpwgpDfuW).
отличный сайтек
https://i.postimg.cc/fT7Lf7xt/2023-12-10-201616.png

SegaBoy
10.12.2023, 21:35
отличный сайтек
По ссылке в первом посте тоже самое?

NEO SPECTRUMAN
10.12.2023, 21:42
По ссылке в первом посте тоже самое?

до

но это по этой кнопке
https://i.postimg.cc/4N4gy2TY/2023-12-10-203918.png

можот поодиночно можно и такк

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

нет тоже не качает

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

это перемога! :v2_lol:

SegaBoy
10.12.2023, 21:47
это перемога! :v2_lol:
Жесть! Чтож поделать то? Выслать тебе файлы письмом? Заодно могу конвертнуть в вортекс трекер - как на денди в 50 гц, как ты любишь. Надо?

NEO SPECTRUMAN
10.12.2023, 22:01
Жесть! Чтож поделать то? Выслать тебе файлы письмом? Заодно могу конвертнуть в вортекс трекер - как на денди в 50 гц, как ты любишь. Надо?

бандеролью :v2_lol:

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

и помоему я пару месяцев назад что то скачивал от туда

Improver
17.02.2025, 09:53
Чисто ради проверки запустил на ПК-6128ц++ (https://zx-pk.ru/threads/34716-reinkarnatsiya-vektor-pk-6128ts.html) тему из "Чипа и Дейла" (https://cloud.mail.ru/public/CUvK/vRACeBuem) (из первого сообщения этой темы). По исходникам плеера, вроде, должно использовать АУ и один канал ВИ53 -- на ПК всё звучит, какафоний не заметил, хотя на АУ у меня подаётся частота 7,1МГц / 4 = 1,775МГц. Может кто с более музыкальным слухом услышит что-то неправильное при воспроизведении, вот запись этой мелодии (https://disk.yandex.ru/d/HPqn_PCD71vuwA).

Ну и просто для оценки качества звука на ПК-6128ц++, вот ещё маленький фрагмент (https://disk.yandex.ru/d/_f5iUUee-MrXJg) -- "Неаполитанская песня" из Теста устройств, воспроизводится сначала на ВИ53, а потом на АУ.

Ramiros
17.02.2025, 16:46
Ну и просто для оценки качества звука на ПК-6128ц++, вот ещё маленький фрагмент (https://disk.yandex.ru/d/_f5iUUee-MrXJg) -- "Неаполитанская песня" из Теста устройств, воспроизводится сначала на ВИ53, а потом на АУ.

Вторая часть слышно, что не в правильной тональности.

Improver
17.02.2025, 20:36
Вторая часть слышно, что не в правильной тональности.Ну как сказать... Ля первой октавы звучит на частоте 440Гц, если просто посчитать 440 * 1,7750 / 1,7735 = ~440,4Гц, что на слух будет практически неотличимо. Да, звук получается чуть выше, но не думаю, что это критично. Тут скорее сама АУ выдаёт больше обертонов, отчего на слух и кажется, что тональность другая, чисто субъективно. А для префекционизма можно поставить кварц на 7,0936МГц, как указано в схеме.

Ramiros
17.02.2025, 23:06
Ну как сказать... Ля первой октавы звучит на частоте 440Гц, если просто посчитать 440 * 1,7750 / 1,7735 = ~440,4Гц, что на слух будет практически неотличимо. Да, звук получается чуть выше, но не думаю, что это критично. Тут скорее сама АУ выдаёт больше обертонов, отчего на слух и кажется, что тональность другая, чисто субъективно. А для префекционизма можно поставить кварц на 7,0936МГц, как указано в схеме.

Если слушать фрагменты по отдельности, то разницы можно и не заметить, но когда подряд, то разница в тональности заметна. А слух у меня музыкальный, все таки музыкалку я в детстве окончил :)

Improver
18.02.2025, 05:49
А слух у меня музыкальный, все таки музыкалку я в детстве окончил :)Тогда возражений нет. :)