Всегда интересовало, как несколько команд может генерировать такие сложные звуки, напоминающие музыку. Вот кусок кода из заставки Demon Stalker:
Изучив код, я реализовал алгоритм на C, результат превзошел все ожидания: стереоэффект, звуки разной амплитуды, полифония, все это через ШИМ и благодаря сложению вычитанию и логическому И. Таймер оказался не нужен.Код:001046: mov #10000, @#177706 001054: mov #20, @#177712 001062: clr @#177710 001066: mov #3, r1 001072: inc r1 001074: mov #5000, r3 001100: bit r1, @#177710 001104: beq 001124 001106: mov #100, @#177716 001114: mov r1, r2 001116: sob r3, 001100 001120: br 001134 001122: nop 001124: clr @#177716 001130: mov r1, r2 001132: sob r3, 001100 001134: bit #100, @#177716 001142: bne 001072
Подбирая значение decrement, можно менять характер "мелодии", а меняя начальное значение COUNT (05000) — темп.
Наверняка это какой-нибудь известный алгоритм из 70-х, однако я больше ни где с ним не сталкивался, если это не так — респект товарищу KV, надеюсь он меня простит.
Результаты работы генератора выложены на youtube:
Исходники генератора доступны на github: https://github.com/y-salnikov/ds_sound_sdl





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