C-Net Week
#08
17 января 1998 |
|
Infa #2 - Структура модулей редактора Pro Sound Creator.
┼─────────────┼ KVA ┼─> I N F A # 2 <──────────────────────────────────────────────┼ ┼─────────────┼ MDM 318-721 / 500:0152/1.07 Структура модулей редактора PSC. ( ** - для PSC 1.04, * для PSC 1.03, остальное - общее ) ──────────────────────────────────────────────────────────────── 1. Структура самого файла. 00..24 - байты "PSC V1.00 COMPILATION OF " 25..44 - 20 байт имени музыки 45..48 - байты " BY " 49..66 - 18 байт автора музыки 67..68 - зарезервировано (всегда #20,#20) 69..70 - логический адрес начала Sample'ов (считается от начала модуля) 71..72 - логический адрес начала таблицы Positions 73..73 - начальный Delay (скорость музыки) 74..75 - логический адрес таблицы лог.адресов орнаментов 76.. - лог.адреса самих Sample'ов (по 2 байта) (* - считается от начала модуля, ** - считается от начала данных адресов) .. - лог.адреса самих Ornament'ов (по 2 байта) (* - считается от начала модуля, ** - считается от начала данных адресов) .. - собственно Sample'ы : номер Sample'а (1 байт) в редакторe, сам Sample номер Sample'а в редакторе, сам Sample ... номер Sample'а в редакторе, сам Sample байт #FF .. - собственно Ornament'ы : номер Ornament'а в редакторе, сам Ornament номер Ornament'a в редакторе, сам Ornament ... номер Ornament'а в редакторе, сам Ornament байт #FF .. - собственно Pattern'ы длина Patterna'а, номер Pattern'а в редакторе, канал A, #FE, канал B, #FE, канал C, #FE длина Patterna'а, номер Pattern'а в редакторе, канал A, #FE, канал B, #FE, канал C, #FE ... длина Patterna'а, номер Pattern'а в редакторе, канал A, #FE, канал B, #FE, канал C, #FE байт #FF .. - собственно Positions номер Position (важен токьто для декомпиляции), длина Pattern'a, adr of A, adr of B, adr of C номер Position, длина Pattern'а, adr of A, adr of B, adr of C ... номер Position, длина Pattern'a, adr of A, adr of B, adr of C на какую посицию зациклено, байт #FF, лог. адрес в таблице Positions на нужную позицию ──────────────────────────────────────────────────────────────── 2. Строение Sample'а. Каждая "строка" Sample'а состоит из шести байт: 0..1 - tone add (смещение для чистого тона) 2 - noise add (смещение для шумов) 3 - volume (громкость звука в Sample'е - локальная громкость) 4 - свободный байт (для быстроты Player'a) 5 - Флаг: биты:0 - чистый тон (0-есть, 1-нету) 1 - увеличить на 1 глобальную громкость (1-да, 0-нет) 2 - уменьшить на 1 глобальную громкость (1-да, 0-нет) 3 - шум (0-есть ,1-нет) 4 - огибающая (0-да ,1-нет) 5 - закончить Sample (0-да ,1-нет) 6 - перейти на начало цикла (0-да ,1-нет) 7 - начало цикла (0-да ,1-нет) ──────────────────────────────────────────────────────────────── 3. Строение Ornament'а. Каждая "строка" Ornament'а состоит из двух байт: 0 - Флаг + noise add биты:0..4 - noise add 5 - закончить Ornament (0-да ,1-нет) 6 - перейти на начало цикла (0-да ,1-нет) 7 - начало цикла (0-да ,1-нет) 1 - note add (смещение для ноты) ──────────────────────────────────────────────────────────────── 4. Строение каналов Pattern'ов. #00..#56 - нота #57..#66 - volume (#57=envel,#58=1,#59=2,...,#66=F) #67 + 2 bytes of ADR - адрес тела Sample'а (см.пункт 5) #68 + 2 bytes of ADR - адрес тела Ornament'a (см.пункт 5) #6A..#79 + 1 byte of value - встроенные команды: #6B - glis.dn #6C - glis.up #6D - port. #6E - del. #6F - hld.orn #70 - sldv. #71 - rls orn #7A + 2 bytes of envelope - огибающая (4 старших бита - номер огиб. ,остальные - значение задержки #7B + 1 byte of noise add - смещение шума после каждой ноты (присутсвует ТОЛЬКО на канале B) #7C - pause #7D - rls #80..#9F - номер Sample'а (номер в таблице адресов) #A0..#BF - номер Ornament'а (номер в таблице адресов) #C0..#FF - пауза между следующей командой (нотой) в нотах. #C0 - 1 нота, #C1- 2 ноты, ..., #FF - 64 ноты. В каждой "ноте" сначала идут какие-то параметры, а затем идет пауза до следующей ноты ( после этой команды пропустится нужное количество нот, а затем уже будет все обрабатываться дальше) ──────────────────────────────────────────────────────────────── 5. Некоторые дополнительные возможности декомпилятора. (Player'ом не поддерживаются) Если по адресу 74 модуля (адрес на Sample'ы) находится число #0000, то декомпилятор переходит во второй режим работы : 1. По адресу 74 лежат уже собственно Sample'ы, т.е. адресов Sample'ов и Ornament'ов уже не существует. 2. Команд с #80 по #BF здесь уже не существует. Место них команда пауза между нотами (т.е. она смещается, #81=1 нота, #82=2 ноты, #83=3 ноты,#C0=64 ноты , а команд с #C1 по #FF не существует) 3. Для задания нужного Sample'а или Ornament'а используются команды #67 и #68,где нужно задавать адрес на тело блока. Этот режим был введен для более быстрого написания конвертеров. ──────────────────────────────────────────────────────────────── KVA from E-mage 1998 (c)
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября