ZX Element
#02
06 июня 1998 |
|
Из неопубликованого - Структуры модулей PSC.
<< MOVE А теперь, для тех кто заинтересовался музыкальным редактором PSC - приводим кое-какую любoпытныю информацию. Кстати, в скором времени должна выйти новая версия Рго Sound Creator. Eце круче, удобнее и навороченнее. Структура модулей редактора PSC. ---------------------------------------------------------------- (c) MVA from E-mage /г.Гродно/ 1. Структура самого файла. QQ..24 - байты "PSC V1.QQ COMPILATIOU OF " 25..44 - 2Q байт имени музыки 45..48 - байты " ВУ " 49..66 - 18 байт автора музыки 67..68 - зарезервировано (всегда #2Q,#2Q) 69..7Q - логический адрес начала Sample`ов (считается от начала модуля) 71..72 - логический адрес начала таблицы Positions 73..73 - начальный Delay (скорость музыки) 74..75 - логический адрес таблицы лог.адресов орнаментов 76.. - лог.адреса самих Sample`ов (по 2 байта) .. - лог.адреса самих Ornament`ов (по 2 байта) .. - co6ctbehho Sample`ы : номер Sample`a (1 байт) в редакторе, сам Sample номер Sample`a в редакторе, сам Sample ... номер Sample`a в редакторе, сам Sample байт #FF .. - co6ctbehho Ornament`ы : номер Ornament`a в редакторе, сам Ornament номер Ornament`a в редакторе, сам Ornament ... номер Ornament`a в редакторе, сам Ornament байт #FF .. - co6ctbehho Pattern`ы длина Patterna`a, номер Pattern`a в редакторе, канал A, #FE, канал В, #FE, канал С, #FE ... длина Patterna`a, номер Pattern`a в редакторе, канал A, #FE, канал В, #FE, канал С, #FE байт #FF .. - co6ctbehho Positions номер Position (важен токьто для декомпиляции), длина Pattern`a, adr of A, adr of В, adr of С номер Position, длина Pattern`a, adr of A, adr of В, adr of С ... номер Position, длина Pattern`a, adr of A, adr of В, adr of С на какую посицию зациклено, байт #FF, лог. адрес в таблице Positions на нужную позицию ---------------------------------------------------------------- 2. Строение Sample`a. Каждая "строка" Sample`a состоит из шести байт: Q..1 - tone add (смецение для чистого тона) 2 - noise add (смецение для шумов) 3 - volume (громкость звука в Sample`е - локальная громкость) 4 - свободный байт (для быстроты Player`a) 5 - Флаг: биты: Q - чистый тон (Q-есть, 1-нету) 1 - увеличить на 1 глобальную громкость (1-да, Q-нет) 2 - уменьшить на 1 глобальную громкость (1-да, Q-нет) 3 - шум (Q-есть ,1-нет) 4 - oгибaюцaя (Q-да ,1-нет) 5 - закончить Sample (Q-да ,1-нет) 6 - перейти на начало цикла (Q-да ,1-нет) 7 - начало цикла (Q-да ,1-нет) ---------------------------------------------------------------- 3. Строение Ornament`a. Каждая "строка" Ornament`a состоит из двух байт: Q - Флаг + noise add биты: Q..4 - noise add 5 - закончить Ornament (Q-да ,1-нет) 6 - перейти на начало цикла (Q-да ,1-нет) 7 - начало цикла (Q-да ,1-нет) 1 - поте add (смецение для ноты) ---------------------------------------------------------------- 4. Строение каналов Pattern`ов. #QQ..#56 - нота #57..#66 - volume (#57=envel,#58=1,#59=2,...,#66=F) #67 + 2 bytes of ADR - адрес тела Sample`a (см.пункт 5) #68 + 2 bytes of ADR - адрес тела Ornament`a (см.пункт 5) #6A..#79 + 1 byte of value - встроенные команды: #6В - glis.dn #6С - glis.up #6D - port. #6E - del. #6F - hld.orn #7Q - sldv. #71 - rls orn #7A + 2 bytes of envelope - oгибaюцaя (4 старших 6uta - номер oru6. ,остальные - значение задержки #7В + 1 byte of noise add - смецение шума после каждой ноты (присутсвует ТОЛЬКО на канале В) #7С - pause #7D - rls #8Q..#9F - номер Sample`a (номер в таблице адресов) #AQ..#BF - номер Ornament`a (номер в таблице адресов) #CQ..#FF - пауза между следyюцей командой (нотой) в нотах. #CQ - 1 нота, #С1- 2 ноты, ..., #FF - 64 ноты. В каждой "ноте" сначала идут какие-то параметры, a затем идет пауза до следyюцей ноты ( после этой команды пропустится нужное количество нот, a затем уже будет все o6pa6aтывaться дальше) ---------------------------------------------------------------- 5. Некоторые дополнительные возможности декомпилятора. (Player`ом не поддерживаются) Если по адресу 74 модуля (адрес на Sample`ы) находится число #QQQQ, то декомпилятор переходит во второй режим работы : 1. По адресу 74 лежат уже co6ctbehho Sample`ы, т.е. адресов Sample`ов и Ornament`ов уже не сyцествyет. 2. Команд с #8Q по #BF здесь уже не сyцествyет. Место них команда пауза между нотами (т.е. она смецaется, #81=1 нота, #82=2 ноты, #83=3 ноты,#CQ=64 ноты , a команд с #С1 по #FF не сyцествyет) 3. Для задания нужного Sample`a или Ornament`a используются команды #67 и #68,где нужно задавать адрес на тело блока. Этот режим был введен для более быстрого написания конвертеров.
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября