С вершин - Описание формата файлов *.MOD музыкального редактора Amiga ProTracker.
С вершин
________
Описание формата файлов *.MOD музыкально-
го редактора Amiga ProTracker.
(C) Russian Digital Computing
Переработка и дополнение: Phantom Lord
Файлы MOD состоят из трех частей: первая-
описание блока инструментов, вторая - нот-
ный текст, третья - сами инструменты. Пер-
вый блок начинается с начала файла. Его
формат приведен ниже (числа десятичные):
+0 - 20 - Имя мелодии, 20 символов, если
меньше - кончается нулем
+20 - 22 - Имя первого инструмента (нуль -
конец)
+42 - 2 - Длина первого инструмента в
словах (для получения длины в байтах умно-
жайте на два). Все числа в формате процес-
сора Motorola, для преобразования в формат
процессоров DEC, Intel, Zilog и т.п. поме-
няйте местами байты в слове перед умноже-
нием
+44 - 1 - Младшие 4 бита, число со знаком
- значение плавной подстройки частоты
+45 - 1 - Громкость по умолчанию для пер-
вого инструмента - в диапазоне 0 · 64
+46 - 2 - Смещение от начала инструмента -
начало области зацикливания (в словах)
+48 - 2 - Длина области зацикливания в
словах.
Дальше идет информация об остальных 30
инструментах, каждая запись по 30 байт,
всего 31 инструмент.После записей об инст-
рументах идет описание мелодии:
+950 - 1 - Длина мелодии в позициях из
списка
+951 - 1 - Не используется
+952 - 128 (независимо от +950) - Список
позиций, каждый его элемент - номер pat-
tern'а от 0 до 63.
+1080 - 4 - Признак формата ProTracker -
буквы "M.K."
+1084 - 1024 - Нотный текст pattern'а 0
Нотный текст каждого pattern'а зани-
мает 1 килобайт. Общее количество pat-
tern'ов можно определить, найдя максималь-
ный номер в списке позиций и вычитая из
него единицу, т.к. pattern'ы нумеруются с
нуля.
Каждая нота занимает четыре байта, в pat-
tern'е идут 64 блока по четыре ноты для
четырех каналов. Pattern'ы идут непрерывно
друг за другом, после окончания послед-
него pattern'а сразу начинается первый
инструмент, за ним второй и т.д. Положе-
ние инструментов в файле можно вычислить
исходя из их длин.
Формат описания ноты.
Нота состоит из четырех байт (с 1 по 4).
_____БАЙТ 1_____ БАЙТ2_
/ /
0000 0000-00000000
Старшие Период Ноты.
четыре бита (12 бит)
номера ин-
струмента.
_____БАЙТ 3_____ БАЙТ4_
/ /
0000 0000-00000000
Младшие Код и информационный байт
четыре бита
номера ин- спецэффекта.
струмента
Нота задается в виде периода, для преоб-
разования используйте таблицу:
Нота Период
от C-1 до B-1 - 856,808,762,720,678,640,
604,570,538,508,480,453
от C-2 до B-2 - 428,404,381,360,339,320,
302,285,269,254,240,226
от C-3 до B-3 - 214,202,190,180,170,160,
151,143,135,127,120,113
Если период равен нулю, значит продолжает
играть предыдущая нота.
Если номер инструмента нулевой - играть
предыдущим инструментом.
Коды спецэффектов приведены ниже:
0 - None/Arpeggio 8 - * NOT USED *
1 - Portamento Up 9 - SampleOffset
2 - Portamento Down A - VolumeSlide
3 - TonePortamento B - PositionJump
4 - Vibrato C - Set Volume
5 - ToneP + VolSlide D - PatternBreak
6 - Vibra + VolSlide E - Misc. Cmds
7 - Tremolo F - Set Speed
Команды с кодом Е:
E0- Filter On/Off E8- * NOT USED *
E1- Fineslide Up E9- Retrig Note
E2- Fineslide Down EA- FineVol Up
E3- Glissando Control EB- FineVol Down
E4- Vibrato Control EC- NoteCut
E5- Set Finetune ED- NoteDelay
E6- Patternloop EE- PatternDelay
E7- Tremolo Control EF- Invert Loop
Описание спецкоманд.
0 - Arpeggio. Если инф. байт - нуль, зна-
чит ничего не делать (т.е. просто иг-
рается нота. Если не нуль, то инструмент
играется так: быстро перемежаются нотные
промежутки, сначала играется нота, потом
нота + младшая шестнадцатиричная цифра инф
байта в полутонах, потом опять нота, потом
нота + старшая цифра инф. байта.
1 - Portamento Up. Плавно повышает тон со
скоростью из информ. байта.
2 - Portamento Down. -//- понижает -//-.
3 - Tone Portamento. С заданной скоростью
доводит тон до тона текущей ноты, т.е. те-
кущая нота начинается не сразу.
4 - Vibrato. Колебания тона с частотой из
старшей цифры инф. байта и амплитудой из
младшей цифры.
5 - Tone Portamento + Volume Slide. Эф-
фект аналогичный эффекту А,но во время его
действия сохраняется действие эффекта 3,
если он до этого был.
6 - Vibrato + Volume Slide.Аналогичен эф-
фекту А, но действие предыдущего эффекта 4
сохраняется.
7 - Tremolo. Быстрое включение-выключение
звука. Старшая цифра инф. байта указы-
вает время, на которое инструмент включа-
ется, а младшая - время выключения.
8 - Не используется.
9 - Sample Offset. Задает смещение от на-
чала инструмента для проигрывания текущей
ноты.
A - Volume Slide. Плавное изменение гром-
кости, старшая цифра инф. байта указывает
скорость увеличения громкости, а младшая -
уменьшения.
B - Position Jump.Переход на заданную по-
зицию в списке pattern'ов после исполнения
текущей ноты.
C - Set Volume. Указание громкости теку-
щей ноты в пределах 0-64 (если не указана,
берется из списка инструментов).
D - Pattern Break. Обрывает воспроизведе-
ние текущего pattern'а после исполнения
текущей ноты и переходит к следующему pat-
tern'у по списку.
E - Misc. Commands.Старшая цифра инф.бай-
та задает номер команды из дополнительных
шестнадцати, младшая цифра - код этой ко-
манды.
F - Set Speed. Установка темпа. Если в
диапазоне 0-F, то грубая, если больше, то
плавная.
Дополнительные команды:
E0- Filter On/Off. Судя по всему, это ка-
кой-то аппаратный фильтр верхних-нижних
частот.
E1- Fineslide Up. ---
E2- Fineslide Down. ---
E3- Glissando Control ---
E4- Vibrato Control ---
E5- Set Finetune. Плавная настройка тона
в пределах одного полутона.
E6- Patternloop. ---
E7- Tremolo Control. ---
E8- Не используется.
E9- Retrig Note. Повторение тек. ноты с
темпом из младшей цифры.
EA- FineVol Up. ---
EB- FineVol Down. ---
EC- NoteCut. ---
ED- NoteDelay. ---
EE- PatternDelay. ---
EF- Invert Loop. ---
Все перечисленное было получено методом
научного тыка ... Остается только поблаго-
дарить Дмитрия Комиссарова (XPEHsoft) за
неоценимую помощь.
Другие статьи номера:
|
|
|
|
С вершин - Описание формата файлов *.MOD музыкального редактора Amiga ProTracker.
|
|
|
|
|
|
|
|
|