Формат модуля Pro Tracker v3.6x Указаны смещения до областей в модуле и их длина в байтах(десятичные числа).+0 (13) "ProTracker 3." - идентификационная строка.+13 (17) "6" (или "5", "4", или даже "3" ) - номер подверсии. Следует заметить, что для модулей PTv3.4x и ниже используетсядругая, "несимметричная" таблица громкости, а в модулях PTv3.3xиспользуется альтернативная частотная таблица "Pro Tracker", несовпадающая с одноименной современной!+14 (16) " compilation of " (необязательное - любой текст этой длины).+30 (32) название модуля (ASCII, lat, неиспользованные символы забиты пробелами).+62 (4) " by " (необязательное - любые 4 символа)+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 паттернов. Pro Tracker v3.6x не поддерживает больше 46 паттернов.+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 (в PT3.6x не используется, т.к. возможно неправильное указание направления).#03, offset - sample offset. Сэмпл начинает играть не сначала.#04, offset - ornament offset. Орнамент начинает играть не сна- чала.#05, YEStime, NOtime - vibrate. нота то звучит, то не звучит.#08, delay, Lsl, Hsl - эффект slide envelope. К значению периода огибающей время от времени прибавляется Lsl+256*Hsl.#09, tempo - указание темпа (в прерываниях на строку). Стандарт- ный плейер меньше tempo=2 не играет.NB: параменты эффектов (#0x) лежат не сразу после кода номераэффекта, а ПОСЛЕ КОНЦА СТРОКИ!!! Если используется несколько эф-фектов на одну ноту (на самом деле так не бывает),то сначала ле-жат параменты последнего эффекта, потом предпоследнего и так да-лее...#10, smp*2 - выключить огибающую, поставить 0-й орнамент и изменить номер сэмпла.#1x, Henv, Lenv, smp*2 - изменить номер сэмпла, поставить 0-й орнамент и включить огибающую типа x-1 с периодом Lenv+256*Henv. При включении огибающей она инициализируется, т.е. начинается новый период!#20-#3f - указать смещение шума (бывает только в канале B)#4x - указать орнамент номер x. (огибающая не выключается)#50-#Af - указать высоту ноты и ЗАКОНЧИТЬ анализ текущей строки канала.#B0 - выключить Envelope.#B1, lines - не анализировать канал в течение lines строк. (lines=1 соответствует одной строке). Действует не только на промежуток между этой и следующей нотой, но и далее, пока не указано другое значение lines!#Bx, Henv, Lenv - то же, что #1x, но без сэмпла. То есть просто включить огибающую типа x-1 с указанным периодом.#Cv - указать громкость.(v=0 - пауза и ЗАКОНЧИТЬ анализ строки.)#D0 - ЗАКОНЧИТЬ анализ строки.#D1-#Ef - указать номер сэмпла.#Fx, smp*2 - указать номер орнамента (x) и номер сэмпла. (огибающая выключается)================================================================+? (?*(?*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. Исправлена информация по поводу сэмплов.Дополнение от 24.ii.03:5. Дополнено по поводу выключения огибающей.Дополнение от 25.iii.03:6. Стандарт PTv3.6x - 46 паттернов.7. При переполнении смещения орнамента вниз (точнее, при отрица-тельном номере ноты) подставляется самая низкая нота C-1. Припереполнении вверх результат не определён.Дополнение от 26.vii.03:8. Выше уточнены изменения для PT3.6x.9. Максимальный размер модуля, который можно загрузить в редак-тор, равен #3300 байт, или #4000 байт для "cjf" версии.Дополнение от 20.iii.04:10. PT3+67 имеет 48 паттернов, но не гарантируется, что их будетстолько же во всех следующих версиях.Дополнение от 29.vi.04:11. см.про #10 и #B1.12. в PT3.69 можно указывать номер орнамента без влияния наогибающую. в VTII пока нельзя. все плейеры играют такое.Дополнение от 26.viii.04:13. на строчках сэмпла, где включен шум, накопленное смещениеогибающей игнорируется.Alone Coder