Просмотр полной версии : Программа воспроизведения эффектов на бипере.
Давным давно в ZX Ревю читая раздел Профессиональный подход
я натыкался на звуковой генератор Стива Тернера, простой и эффективный.
Но вот программа для создания самих звуков была не очень удобная.
Но вот понадобились мне звуки, так что встречайте.
Редактор https://www.dropbox.com/s/bb4xvtv4257wfzd/sfx_test.sna
Плеер - автор вешал его на прерывания, но это совершенно необязательно.
https://www.dropbox.com/s/zon8n9r7kep8g2g/sound.a80
в комплекте - звуки из игры РанаРама. (кажется)
Barmaley_m
08.10.2013, 00:23
Любопытно. Похоже на звуки из River Raid.
jerri, а во всяких там робокопах, бэтманах, зинапсах и хроносах выводят звук на бипере?
Втыкают несколько раз где то между вызовом ругулярных процедур?
newart, абсолютно по разному
в робокопе и батмане, звук выводится во время вывода видеобуфера на экран
в играх от Joffa (firefly batman) звук висит в основном цикле во время ожидания прерывания.
NovaStorm
08.10.2013, 11:52
jerri, значит этот плеер 50 раз в сек надо вызывать? Сколько он жрёт тактов?
Кстати. А есть некий TOP 10 - самый крутых биперных эффектов?
Точнее игр с таковыми эффектами.
На AY уныло с этим. А вот на бипере должно быть что-то интересное. Все таки 10 лет его разрабатывали.
А есть некий TOP 10 - самый крутых биперных эффектов?
Точнее игр с таковыми эффектами.
мне очень нравится звук при выборе клавиш управления в игре FireLord
jerri, значит этот плеер 50 раз в сек надо вызывать? Сколько он жрёт тактов?
на прерывание его вешал Тёрнер
синенькое в верхней части бордюра :)
но вообще где-то до 10 000 тактов
Давным давно в ZX Ревю читая раздел Профессиональный подход
я натыкался на звуковой генератор Стива Тернера, простой и эффективный.
Но вот программа для создания самих звуков была не очень удобная.
Звуки больше всего напоминают звуки из игры Captain Kelly.
Titus, не так много способов воспроизводить звуки :) естсественно все эти способы уже гдето засветились :)
NovaStorm
08.10.2013, 14:08
но вообще где-то до 10 000 тактов
Дорагаааа =(
NovaStorm, а сколько не дорого?
NovaStorm
08.10.2013, 15:47
Ну тыщу, ну две отсилы. На AY же плееры в ~1200 где-то укладываются?
На AY же плееры в ~1200 где-то укладываются?
много знаешь таких плееров? ;)
не говоря уже о том, что бипер - это по сути digital.
Hacker VBI
08.10.2013, 16:13
NovaStorm, что-то Вы, мужчина, привередливый.
будет отдельный процессор на бипер - будут вам мизерные такты. а так - проц генерит звук...
Ну тыщу, ну две отсилы. На AY же плееры в ~1200 где-то укладываются?
да не проблема
дай мне движок оцифрованной музыки на 1200 тактов
я вам взамен плеер биперных музончиков на 1200 тактов :)
Barmaley_m
08.10.2013, 17:06
В R-Type были очень хорошие звуковые эффекты на бипере.
NovaStorm
08.10.2013, 17:13
много знаешь таких плееров? ;)
Ммм, два?
---------- Post added at 17:07 ---------- Previous post was at 17:07 ----------
Hacker VBI, я не только привередливый, но и жадный до тактов.
---------- Post added at 17:13 ---------- Previous post was at 17:07 ----------
дай мне движок оцифрованной музыки на 1200 тактов
Вопрос тут скорее в другом, если проигрывать на бипер, то какая частота дискретизации будет достаточна для не совсем уж мерзкого воспроизведения пиу-пиу, пыщ-пыщ, звуков открываемых дверей(как в думе например) и подыхающих монстров? А то даже 8КГц по прикидкам даёт 8000 тактов как минимум.
А то даже 8КГц по прикидкам даёт 8000 тактов как минимум.
Арифметику не понял... но таки вставлю свои 5коп. В следствии т.Котельникова (http://ru.wikipedia.org/wiki/Теорема_Котельникова) аналоговый сигнал (звук) частотой 8 КГц должен "восстанавливаться" цифровым устройством с удвоенной частотой, т.е. 16КГц. Т.о. надо выполнить 16 тыщ раз в секунду OUT (C),A, и столько же перезагрузить аккумулятор. Теперь считаем такты.
Но это по большей части что касается Covox/SD/GS/DMA_USC, там где ЦАПы многоразрядные, а с бипером все сложнее, т.к. он однобитный, и "нормальный" звук на нем можно получить лишь при помощи ШИМ :) Но т.к. скорость компа низкая, то имеем то, что имеем... а не ШИМ. Та же говенная attiny2313 за 1 бакс умеет "пикать" бипером похлеще чем спек, причем ни в чем себе не отказывая :(
Ну тыщу, ну две отсилы. На AY же плееры в ~1200 где-то укладываются?
Не путайте кислое с круглым.
Плейеры AY-музыки (не digital) тратят от 1000 тактов (самые быстрые) до 16000-20000 тактов (самые медленные типа ASM) исключительно на подготовку и вывод новой порции данных в регистры AY.
Тогда как все биперные плейеры занимаются выводом цифрового звука, при котором генерацией занят сам процессор, и он попросту обязан в это время быть занят. Если плейер тратит 10000 тактов, то генерация идет со скважностью ~1/7 всего времени процессора. Если это звучит приемлимо, можно оставлять. Если нет, то надо тратить 20000 и 30000, и сколько будет нужно для требуемого качества.
В следствии т.Котельникова аналоговый сигнал (звук) частотой 8 КГц должен "восстанавливаться" цифровым устройством с удвоенной частотой, т.е. 16КГц. Т.о. надо выполнить 16 тыщ раз в секунду OUT (C),A, и столько же перезагрузить аккумулятор. Теперь считаем такты.
считаем, математика такая: 16000*12 = 192000 тактов на вывод звука из 3500000 тактов доступных, т.е. 5+%. :) :) :) или же по 3840 тактов в прерывание %)))) ну хорошо, аккумулятор перезагрузить да регистр увеличить, еще пару раз по столько, итого 11520 тактов:) not bad ;)
Ммм, два?
даже если два, то из скольки? это рекордные скорости так-то. можно и на бипере сыграть что-то интересное при показе чего-то мощного на экране, только вот код будет квадратной мощности...
можно и на бипере сыграть что-то интересное при показе чего-то мощного на экране, только вот код будет квадратной мощности...
в ManicMiner и JetSetWilly музыку серъёзной трудно назвать, а вот в DynamiteDan2 поинтересней
NovaStorm
08.10.2013, 21:16
Если это звучит приемлимо, можно оставлять.
Вот в этом-то и вопрос, сколько надо на эффекты тратить времени, чтобы звучало приемлемо(ориентировочно конечно, субъективностью пренебрегаем)?
---------- Post added at 21:16 ---------- Previous post was at 21:12 ----------
можно и на бипере сыграть что-то интересное
Мне не сыграть, мне sfx'ы попердеть =)
Где-то было кажется уже обсуждение... эффекты на бипере при музыке на AY сильно плохая идея?
Вот в этом-то и вопрос, сколько надо на эффекты тратить времени, чтобы звучало приемлемо(ориентировочно конечно, субъективностью пренебрегаем)?
Я не пробовал, тут надо опытным путем.
Лично мне нравятся эффекты в Captain Kelly (как раз в стиле того редактора, что приведен в первом посту).
Музыка типа как в Nosferatu Vampire - мне не нравится, удручающе фонит. Тогда как что-то типа Three Weeks in Paradise или Booty слушать вполне можно.
т.е. 5+%.
Это, как я уже сказал, что касается всяких там ковоксов с едрёной битностью... и кстати... 5% размазанных "по секунде" с определенным периодом, иначе у кого-то уши в трубочку скрутятся :) Иначе бы было бы куча фреймовых игр с sfx-ами на ковоксе.
Barmaley_m
09.10.2013, 00:45
В следствии т.Котельникова (http://ru.wikipedia.org/wiki/Теорема_Котельникова) аналоговый сигнал (звук) частотой 8 КГц должен "восстанавливаться" цифровым устройством с удвоенной частотой, т.е. 16КГц.
Для бипера с одной теоремой Котельникова далеко не уедешь, так как имеет место два существенных фактора:
1) Отсутствует фильтр низких частот, обрезающий зеркальные частоты, которые образуются, в нашем случае, выше 8кГц. Вследствие этого на частотах, превышающих половину частоты дискретизации, также генерируется звук, причем весьма слышимый. Его нельзя игнорировать, за исключением случая, когда половина частоты дискретизации расположена в области выше 14кГц хотя бы.
2) Одноразрядный "ЦАП". На нем невозможно даже синтезировать любые звуки в пределах половины частоты дискретизации. Даже получить чистый тон на частотах, которые не являются дольными от частоты дискретизации, проблематично.
Так что, хоть теорему Котельникова и надо иметь в виду при разработке биперных FX-движков, одной ее недостаточно для полного понимания ситуации.
Для биперных эффектов часто применяется метод "прерывистого синтеза", то есть, какое-то небольшое время процессор занимается синтезом звука на высокой частоте дискретизации, а оставшееся время - рисует графику и т.д. В это время на бипере сигнал имеет постоянный уровень. Несмотря на это безобразие, в спектре сигнала бипера все же присутствуют желаемые частоты. К ним добавляются искажения в виде 50Гц-треска. Это хорошо заметно на звуках движка, описываемого в данном топике. Ну и в играх тоже заметно. Те же Bomb Jack, River Raid, Three weeks in Paradise, Jet Set Willy и т.д.
Также применяется подход, когда во время отрисовки графики и выполнения других долгих, но регулярных задач, проц изредка выводит в бипер новое значение. Примеры - Sea Dragon и др. Это несколько расширяет возможности синтеза и ослабляет 50Гц-треск.
Если изображение на экране обновляется не каждый кадр - то можно использовать целые кадры исключительно для звуковых эффектов. В пределах "звукового" кадра звук может быть сложным и богатым. Для коротких звуковых эффектов часто и не нужно времени больше, чем 1/50с. В отдельных случаях игра может даже замораживаться на время воспроизведения звукового эффекта. При грамотной реализации это можно даже сделать не очень заметным для игрока.
В играх с лучшими биперными эффектами, я думаю, применяются какие-то комбинированные подходы. На данный момент, с моей точки зрения, R-Type непревзойден.
Ну тыщу, ну две отсилы. На AY же плееры в ~1200 где-то укладываются?
Забыл еще добавить 100% времени самого AY.
Для бипера с одной теоремой Котельникова далеко не уедешь, так как имеет место два существенных фактора:
1) Отсутствует фильтр низких частот, обрезающий зеркальные частоты, которые образуются, в нашем случае, выше 8кГц. Вследствие этого на частотах, превышающих половину частоты дискретизации, также генерируется звук, причем весьма слышимый. Его нельзя игнорировать, за исключением случая, когда половина частоты дискретизации расположена в области выше 14кГц хотя бы.
2) Одноразрядный "ЦАП". На нем невозможно даже синтезировать любые звуки в пределах половины частоты дискретизации. Даже получить чистый тон на частотах, которые не являются дольными от частоты дискретизации, проблематично.
Думаю, что можно было бы поэкспериментировать с ШИМ-выводом на частоте килогерц 20. Но это частота полного периода ШИМ, а не частота вывода одного отсчета. При таком подходе, опорная частота уйдет за пределы слышимости, а скважностью определится громкость. Это у нас тактов 175 на период... Хм... Плховатое будет разрешение по громкости... хотя, если приноровиться, то вполне. Только, боюсь, что музыку таким методом не выведешь, только фиксированные оцифровки, причем развернутые по памяти.
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot