Comments 23
Помним :)
PLAY "T100O5L8E8E8E8C#8G8L4E8C#8G8L8C#8G8C#8C#8C#8D8D#8L4D#8D#8L8D#8G8G8G8A#8A#8A#8A#8G8L4E8C#8G8E4"а чего это )
как послушать
зх басик 48 не понимает
Теоретически можно послушать любым плеером MML, так как оператор PLAY использует тот же синтаксис. Например, можно вставить строку сюда: https://ichigojam.github.io/MML/. Но что-то я не уверен, что действительно играет то, что задумано.
PLAY появился в Spectrum 128k (в Ленинграде это был Scorpion, Compozit...)
Даёшь биперный звук на Ricoh 2A03!
«щебет» (быстро падающая высота тона, похожая на чириканье птицы)
Chirp - это больше про возрастающую частоту (что, собственно, и изображено на графике). Хотя технически в численных генераторах можно задавать и понижение.
А вот никто не помнит такую игру на Спектрум, суть такова: летает некий шар, стреляет лазером (?), поднимает различные предметы, в этот момент синтезированный голос произносит фразы типа "OK, good boy!", "Fuel injection, wow!" и другие. Неделю пытаюсь вспомнить...
Да, звуковой сопроцессор поднимал игры на уровень выше. Хотя и с ним на просторах exUSSR были нюансы. Насколько я помню ходили AY 3-8910 причём вообще в двух версиях - оригинал и тайваньский, AY 3-8912 и, конечно, YM-2149F от Yamaha. Но самая мякотка была в музыкальных демках, т.к. помимо версий сопроцессора ещё ходило и два стандарта подключения: ABC и ACB. В результате музыка звучала вообще у всех по разному.
Ещё был прикол, что в YM2149 есть встроенный опциональный делитель тактовой частоты на два, а в AY-3-8910 нет, и нужно подавать на него 1.75 МГц с внешнего делителя. И у некоторых людей, конкретно известны музыканты, в результате замены чипы выходило, что AY тактировался от 3.5 МГц, и всё звучало просто непойми как.
Я хотел на ардуине воспроизвести музыку из приставочных игр на бипере. В итоге решил так. Нашëл приставочный звук в формате миди. Его сконвертировал в формат М300, простой биперный звук. Там задаëтся частота и длительность ноты. Далее набросал простую процедуру для ардуины которая читает из массива частоту и длительность и играет ноту. Осталось только сформировать массив нот, я сделал это набросав скрипт на Node.js который из М300 делает набор элементов массива. И всë получилось. Саундтрек из контры с Денди зазвучал вполне узнаваемо)
Когда-то я подобным образом баловался, воспроизводя музыку с приставок на Спектруме. Брал в эмуляторе экспорт проигрываемой музыки в дамп регистров (VGM, а в древних эмуляторах NES было его подобие), парсил в частоты-громкости, потом генерировал регистровый дамп уже для AY, и на нём играл. Тоже звучало узнаваемо и довольно необычно.
Я как-то раз упоролся в таком же формате и попытался сконвертировать музыку с AY назад в бипер, правда, не для спектрума, хотя в теории, наверное, и на нём бы заработало.
Громкость замапил на скважность, огибающую просто пришлось выкинуть для начала.
Саундтрек из Megacode Action, например, зазвучал узнаваемо и даже вполне почти слушабельно: https://voca.ro/1jnPO6qZZajM
Круто! В комментах к одной из моих статей один читатель упоминал такой опыт, конвертировал музыку для AY в бипер, ещё в 90-х. И я с тех пор задумал повторить этот эксперимент, применив все известные ныне техники. Очень интересно услышать, что реально может получиться, если довести реализацию до около-совершенства. Пока не дошли руки, но когда дойдут, конечно, напишу про это статью.
ZX, помню, люблю... А когда у меня covox появился, вместе с дисководом - я был самым счастливым человеком на планете.
Отличная статья! Всегда интересно почитать!
Звуковые эффекты на ZX Spectrum: AYFXEdit и BeepFX