Odyssey paper
#08
31 марта 1999 |
|
С вершин - Описание формата файлов *.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) за неоценимую помощь.
Другие статьи номера:
От авторов - Восьмой номер не заставил себя долго ждать. |
Новости - M.O.T сделал нашему музыканту Wolfу компьютер. |
С вершин - Описание формата файлов *.MOD музыкального редактора Amiga ProTracker. |
Алгоритмы - вращение в трехмерной системе координат. Матрицы. |
Галерея - несколько фоток с Consul Party'97. |
Музыкальная страничка - песня "Все пройдет" - Гражданская Оборона. |
Эпилог - авторы газеты. |
Похожие статьи:
В этот день... 11 ноября