Deja Vu
#04
31 марта 1998 |
![]() |
CODING - Плавное затухание музыки в любой момент времени.

SoundTrack: "CRAZY MAN" BY SEC70R ?!... __________________________________________ Автор: Cardinal/PGC/BD __________________________________________ В этой статье речь пойдет о различных проигрывателях AY-шной музыки. Я вам рас- скажу о довольно важном эффекте (особенно в демомэйкерстве) -о плавном затухании му- зыки в любой момент времени. Сразу скажу, что ни в одном из существующих PLAYER'ов компилированных музонов (будь то Pro Trac- ker; Sound Tracker Pro by KSA и т.д) нет такой функции, которая позволяла бы плавно уменьшать громкость музыки. А посему пой- дем по-порядку... Чтобы сделать этот эффект, надо понять как процессор общается с AY и немножко по- копаться в PLAYERе. В сопроцессоре AY есть 16 регистров, с помощью которых генериру- ются различные звуки. Каждый из этих ре- гистров выполняет свою функцию. Обо всех я говорить не стану, а остановлюсь только на трех. Это регистры R8, R9, R10, младшие 5 битов которых управляют громкостью (ампли- тудой) каналов A, B и C. Вообще, чтобы по- лучить доступ к какому-нибудь регистру AY, нужно его номер (от 0 до 15) занести в порт #FFFD, а значение - в порт #BFFD. Я специально не говорю об этом подроб- но, т.к. это было описано в книге А.Лар- чеко и Н.Родионова "ZX-Spectrum & TR-DOS для пользователей и программистов". Весь этот разговор я завел к тому, что надо в PLAYER'е найти место, где заносятся некоторые значения в регистры R8,R9 и R10. Так вот, надо перед тем местом поставить ловушку, (CALL address, где address - ваша процедурка) которая изменит (уменьшит на определенное значение) байты этих самых значений, прежде чем PLAYER выдаст их в регистры R8, R9 и R10 музыкального сопро- цессора. В приложении вы найдете пять ис- ходников в формате ALASM v3.8c. Каждый ис- ходник годится только для музонов компили- рованных в следующих редакторах и компиля- торах: Sound Tracker Pro by KSA Software; Pro Tracker v2.4; Sound Tracker Song Com- piler v1.2; Sound Tracker Music's Recompi- ler v2.1 by KSA; Pro Tracker v 2.1 by Gol- den Disk. Исходники довольно сырые, но хорошо де- монстрируют эффект. Как ими пользоваться? Загружаете исходник в ассемблер, выходите в STS, подгружаете компилированный музон с PLAYER'ом, возвращаетесь в редактор, под- правляете значение метки MUZAK (она указы- вает на адрес подгружаемого музона), ас- семблируете и запускаете. Если вы услышали музыку, значит со слухом у вас все в пол- ном порядке :-)... Потом попробуйте нажать кнопку "L" - музыка должна плавно затих- нуть. Нажмите на кнопку "K" - музыка заиг- рает с нормальной громкостью. SPACE - вы- ход. Еще раз повторяю, что исходники де- монстрационные, и если вы будете использо- вать их в своих программах - уберите лиш- нее и попробуйте оптимизировать их по дли- не, особенно подпрограмму, начинающуюся с метки GLUSH и до конца, если вам, конечно, это удастся :-). Напоследок хочу сказать, что PLAYGEAR COMPANY слепили часть к PROGRESS MEGADEMO, так что ждите демо от SERIOUS SPECCY GRO- UP! А также хочу поздравить SPECCY с пят- надцитилетием и пожелать ему прожить еще столько же..!
Другие статьи номера:
Похожие статьи:
В этот день... 1 октября
Scream #04(scl),
Bred #02,
Screamergy #01,
Bred #01,
Open Letters #08,
Millenium #01,
Body #2F,
Deja Vu #0A,
X-Magazine #17,
ZX Chart #01,
Skimer #02,
X-Magazine #12,
Body #17,
Bugs #01,
Adventurer #10,
X-Magazine #07,
Wallpaper #05,
Proton #48,
ZX Pilot #29,
Cheat #03 demo,
Proton #48,
Deja Vu #06,
Deja Vu #02,
ZX-News #41,
Spectrum Progress #01,
Nicron #01,
Maximum #18,
ZX Digest #02,
Speccy #01,
Emulate #02,
Speccy #01,
200 #B,
Spectrofon #09,
ZX Revija #01