ACNews #12
07 октября 2002

Guide - Формат модуля Pro Tracker v3.x

<b>Guide</b> - Формат модуля Pro Tracker v3.x
     ▄▄▄▄ ▄  ▄ ▄▄▄ ▄▄▄  ▄▄▄▄
■▄░  ▓ ▄▄ ▓  ▓  ▓  ▓  ▒ ▓▄▄  ▄░ ■▄░ ■▄░ ■▄░ ■▄░ ■▄░ ■▄░ ■▄░ ■▄░
  ■▀ ░▄▄▓ ░▄▄░ ▄░▄ ░▄▄░ ░▄▄▄  ■▀░ ■▀░ ■▀░ ■▀░ ■▀░ ■▀░ ■▀░ ■▀░ ■▀

                 Формат модуля Pro Tracker v3.x

   Указаны  смещения  до  областей  в модуле и их длина в байтах
(десятичные числа).

+0 (13) "ProTracker 3." - идентификационная строка.
+13 (17) "5" (или "4", или даже "3" ) - номер подверсии.
   Следует заметить, что для модулей PTv3.4x и ниже используется
другая, "несимметричная" таблица  громкости, а в модулях PTv3.3x
используется  альтернативная частотная таблица "Pro Tracker", не
совпадающая с одноименной современной!
+14 (16) " compilation of "
+30 (32) название  модуля (ASCII, lat, неиспользованные  символы
 забиты пробелами).
+62 (4) " by "
+66 (32) имя автора (ASCII, lat, неиспользованные символы забиты
 пробелами).
+98 (1) один пробел.
 (то есть первые 99 байт модуля образуют соответствующую строку)

+99 (1) номер частотной таблицы: 0=Pro Tracker, 1=Sound Tracker,
 2=ASM or PSC, 3=RealSound. Табличка занимает 192 байта и содер-
 жит значения периодов для 96 нот,начиная с C-1 (ДО первой окта-
 вы). Период - значение, обратное частоте ноты, помещаемое в со-
 ответствующие регистры AY. Младшие байты (здесь и ниже,за одним
 исключением,которое будет указано) хранятся первыми. Компилятор
 PT сохраняет таблицу, соответствующую модулю, в тело плейера по
 относительному адресу 512. Таблицу громкости он сохраняет в том
 же теле плейера по относительному адресу 256.
+100 (1) значение темпа.
+101 (1) song end (1=в модуле всего одна позиция) - в плейере не
 используется.
+102 (1) song loop (0=зацикливание на начало).
+103 (2) Psa_chn=смещение от начала модуля до таблицы паттернов.
+105 (32*2) смещения  от начала модуля до сэмплов, начиная с ну-
 левого  сэмпла. По два байта  на сэмпл. Нулевой сэмпл в текущих
 версиях  редактора  не используется. Для  всех неиспользованных
 сэмплов смещение равно нулю.
+169 (16*2) смещения  от начала  модуля до орнаментов, начиная с
 нулевого. По два байта на орнамент.Нулевой орнамент - это отсу-
 тствие орнамента,поэтому данные этого орнамента (см.ниже) соде-
 ржат 0,1,0 (можно использовать этот орнамент по своему усмотре-
 нию,НО тогда в сонге нельзя будет использовать сэмплы без орна-
 ментов).Для всех неиспользованных орнаментов смещение равно ну-
 лю.
+201 (?) список  позиций  (ордер).   Содержит  номера  паттернов
 (0...84), умноженные  на 3. Таблица завершается  кодом #ff. Pro
 Tracker v3.3x-v3.5x не поддерживает больше 42 паттернов.
+Psa_chn (?*6) указатель паттернов. Содержит для каждого из име-
 ющихся паттернов смещения:
   ++0 (2) до блока данных канала (трека) A
   ++2 (2) до блока данных канала (трека) B
   ++4 (2) до блока данных канала (трека) C.
 Данные  по смещению шума (отдельная колонка в редакторе) компи-
 лируются в канал B.
+? (?*?) блоки данных каналов, то есть треки.

 Трек содержит следующие данные:
================================================================
#00 - конец трека.
#01, delay, Lsl, Hsl - эффект Gliss(Slide) вверх или вниз. Delay
 - время  в  пятидесятых  долях секунды, по истечении которого к
 периоду  ноты  будет  прибавлена величина Lsl+256*Hsl. Смещение
 накапливается плейером в соответствующей переменной и прибавля-
 ется после формирования частоты ноты, т.е.сначала обрабатывает-
 ся строчка орнамента, а уже потом...
#02, delay, Lmax, Hmax, Lsl, Hsl - эффект  Tone Portamento вверх
 или вниз.Delay - время в пятидесятых долях секунды,по истечении
 которого  к периоду ноты будет прибавлена величина Lsl+256*Hsl.
 Lmax+256*Hmax - максимальное  смещение (беззнаковое), после на-
 копления которого следует прекратить Portamento.
#03, offset - sample offset. Сэмпл начинает играть не сначала.
#04, offset - ornament offset. Орнамент  начинает играть не сна-
 чала.
#05, YEStime, NOtime - vibrate. нота то звучит, то не звучит.
#08, delay, Lsl, Hsl - эффект slide envelope. К значению периода
 огибающей время от времени прибавляется Lsl+256*Hsl.
#09, tempo - указание темпа (в прерываниях на строку). Стандарт-
 ный плейер меньше tempo=3 не играет.
#1x, Henv, Lenv, smp*2 - изменить номер сэмпла и включить огиба-
 ющую типа x-1 с периодом Lenv+256*Henv. При включении огибающей
 она инициализируется, т.е. начинается новый период!
#20-#3f - указать смещение шума (бывает только в канале B)
#4x - указать орнамент номер x.
#50-#Af - указать  высоту ноты и ЗАКОНЧИТЬ анализ текущей строки
 канала.
#B0 - выключить Envelope.
#B1, lines - не анализировать канал в течение lines строк.
 (lines=1 соответствует одной строке)
#Bx, Henv, Lenv - то же, что #1x, но  без сэмпла. То есть просто
 включить огибающую типа x-1 с указанным периодом.
#Cv - указать громкость.(v=0 - пауза и ЗАКОНЧИТЬ анализ строки.)
#D0 - ЗАКОНЧИТЬ анализ строки.
#D1-#Ef - указать номер сэмпла.
#Fx, smp*2 - указать номер орнамента (x) и номер сэмпла.
NB: параменты  эффектов (#0x)  лежат  не сразу после кода номера
эффекта, а ПОСЛЕ КОНЦА СТРОКИ!!! Если используется несколько эф-
фектов на одну ноту (на самом деле так не бывает),то сначала ле-
жат параменты последнего эффекта, потом предпоследнего и так да-
лее...
================================================================

+? (?*(?*4+2)) - сэмплы.
   ++0 (1) - loop
   ++1 (1) - end (1=сэмпл из одной строчки)
   ++2 (?*4) - данные:
      +++0 (1) sv +- N4 N3 N2 N1 N0 Em
      +++1 (1) Nm ts ns Tm V3 V2 V1 V0
 sv=1 - признак съезжания громкости, +- =1 соответствует её уве-
 личению; N4-0 - частота шума ИЛИ смещение огибающей (зависит от
 наличия  маски  шума): смещение  огибающей 0-15 - вниз, 16-31 -
 вверх (N4 интерпретируется как знак); V3-0 - громкость; Tn, Nm,
 Em - маски тона, шума и огибающей соотв., причём если маска ра-
 вна единице,то соответствующий элемент звука выключен; ts, ns=1
 - признаки того, что  текущее  смещение тона или шума/огибающей
 будет запомнено.
      +++2 (2) смещение периода тона (положительное - вверх, от-
 рицательное - вниз).

+? (?*(?+2)) - орнаменты.
   ++0 (1) - loop
   ++1 (1) - end (1=орнамент из одной строчки)
   ++2 (?) - данные: смещения в полутонах (0=нет смещения, поло-
 жительное смещение - вверх, отрицательное - вниз).

жду дополнений!

Дополнения от 10.xi.02:
1. (Sergey Bulba): Таблица ASM or PSC не имеет отношения к соот-
ветствующим  редакторам. Модули из этих редакторов следует импо-
ртировать с таблицей Sound Tracker. Таблица ASM or PSC рассчита-
на так,чтобы при тактовой частоте AY 1.7744 MHz ноты в редакторе
совпадали  с одноименными нотами фортепиано. (Таблица Real Sound
- аналогично, но для 1.75 MHz.)
2. В модуле  может  использоваться  и 0-й сэмпл, если в треке он
хранится вместе с орнаментом (можно нулевым). Итого 32 сэмпла.
3. Проверена информация по поводу Portamento, Loop и #B1.
4. Исправлена информация по поводу сэмплов.



Другие статьи номера:

News - выпущен ZX-Guide#4.5, выпустили RiP#15, прошли CAFe и Paradox, Nik-O выступил с идеей провести виртуальное пати.

Olds - ситуация с материалами к ZX-Format#9.

Guide - Формат модуля Pro Tracker v3.x

Docs - шифрование и дешифровка писем.

Fun - история как Slip/Ottodix познакомился с DemiChron со Владивостока.

ASCII - abstraction.

Почётные и Вечные - Список Заслуженных Пользователей AC Edit.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
От авторов - Вступление.
Наши новости - Обзор работ над которыми трудятся ковровские кодеры.
VTS vs Nemo - выдержки из писем Немо.
Послесловие - О том, что не вошло в этот номер.
VIRTUAL TR-DОS - о том как америкнские копирасты решили закрыть спектрумовский сайт.

В этот день...   19 апреля