<< 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,где нужно задавать адрес на тело блока.
Этот режим был введен для более быстрого написания конвертеров.
Other articles: