CODING - Плавное затухание музыки в любой момент времени.

Deja Vu #04
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 с  пят-
надцитилетием и пожелать ему  прожить  еще
столько же..!