Difference between revisions of "PROTRACKER372 PTDOC W"

From MSX MUSIC WIKI
Jump to: navigation, search
(Tags: Mobile edit, Mobile web edit)
(Дополнения от 10.xi.02:)
(Tags: Mobile edit, Mobile web edit)
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
==Формат модуля Pro Tracker v3.7x==
 
==Формат модуля Pro Tracker v3.7x==
  
  Расширение .m или .pt3.
+
Расширение .m или .pt3.
  Указаны  смещения  до  областей  в модуле и их длина в байтах
+
Указаны  смещения  до  областей  в модуле и их длина в байтах
 
(десятичные числа).
 
(десятичные числа).
  
 
+0 (13) "ProTracker 3." - идентификационная строка. В модулях от Vortex Tracker отсутствует!
 
+0 (13) "ProTracker 3." - идентификационная строка. В модулях от Vortex Tracker отсутствует!
 
+13 (17) "7" (или "6","5","4", или даже "3" ) - номер подверсии.
 
+13 (17) "7" (или "6","5","4", или даже "3" ) - номер подверсии.
  Следует заметить, что для модулей PTv3.4x и ниже используется другая, "несимметричная" таблица  громкости, а в модулях PTv3.3x используется  альтернативная частотная таблица "Pro Tracker", не совпадающая с одноимённой современной!
+
Следует заметить, что для модулей PTv3.4x и ниже используется другая, "несимметричная" таблица  громкости, а в модулях PTv3.3x используется  альтернативная частотная таблица "Pro Tracker", не совпадающая с одноимённой современной!
+14 (16) " compilation of " (необязательное - любой текст этой
+
+14 (16) " compilation of " (необязательное - любой текст этой длины).
длины).
 
 
+30 (32) название  модуля (ASCII, lat, неиспользованные  символы забиты пробелами).
 
+30 (32) название  модуля (ASCII, lat, неиспользованные  символы забиты пробелами).
 
+62 (4) " by " (необязательное - любые 4 символа)
 
+62 (4) " by " (необязательное - любые 4 символа)
+66 (32) имя автора (ASCII, lat, неиспользованные символы забиты
+
+66 (32) имя автора (ASCII, lat, неиспользованные символы забиты пробелами). (то есть первые 98 байт модуля образуют соответствующую строку)
пробелами).
 
(то есть первые 98 байт модуля образуют соответствующую строку)
 
 
+98 (1) Для обычных AY музонов: код #20.
 
+98 (1) Для обычных AY музонов: код #20.
        Если используется TS: число паттернов N (в текущей версии должно быть #30). Паттерны первого AY нумеруются N-1,N-2,... Паттерны второго AY нумеруются 0,1,2,...
+
Если используется TS: число паттернов N (в текущей версии должно быть #30). Паттерны первого AY нумеруются N-1,N-2,... Паттерны второго AY нумеруются 0,1,2,...
        В списке позиций стоят паттерны N-1,N-2,...
+
В списке позиций стоят паттерны N-1,N-2,...
 
+99 (1) номер частотной таблицы: 0=Pro Tracker (она же 1625000), 1=Sound Tracker, 2=1750000 (другое название, не соответствующее содержанию - ASM or PSC), 3=RealSound (она же  1625000+, плохая попытка передвинуть табл. 0 под 1.75MHz). Табличка занимает 192 байта и содержит значения делителей частоты для 96 нот, начиная с C-1 (ДО первой октавы). Делитель частоты - значение, помещаемое в соотвующие регистры AY. Младшие байты (здесь  и  ниже, за одним исключением, которое  будет  указано)  хранятся  первыми.
 
+99 (1) номер частотной таблицы: 0=Pro Tracker (она же 1625000), 1=Sound Tracker, 2=1750000 (другое название, не соответствующее содержанию - ASM or PSC), 3=RealSound (она же  1625000+, плохая попытка передвинуть табл. 0 под 1.75MHz). Табличка занимает 192 байта и содержит значения делителей частоты для 96 нот, начиная с C-1 (ДО первой октавы). Делитель частоты - значение, помещаемое в соотвующие регистры AY. Младшие байты (здесь  и  ниже, за одним исключением, которое  будет  указано)  хранятся  первыми.
Компилятор  PT3 (текущие версии PT3 собираются без компилятора) сохраняет таблицу, соответствующую модулю, в  тело  плейера  по относительному адресу 512. Таблицу громкости он сохраняет в том же теле плейера по относительному адресу 256.
+
Компилятор  PT3 (текущие версии PT3 собираются без компилятора) сохраняет таблицу, соответствующую модулю, в  тело  плейера  по относительному адресу 512. Таблицу громкости он сохраняет в том же теле плейера по относительному адресу 256.
 
+100 (1) значение темпа.
 
+100 (1) значение темпа.
 
+101 (1) song end (1=в модуле всего одна позиция) - в плейере не используется.
 
+101 (1) song end (1=в модуле всего одна позиция) - в плейере не используется.
Line 26: Line 23:
 
+105 (32*2) смещения  от начала модуля до сэмплов, начиная с нулевого  сэмпла. По два байта  на сэмпл. Нулевой сэмпл в текущих версиях  редактора  не используется. Для  всех неиспользованных сэмплов смещение равно нулю.
 
+105 (32*2) смещения  от начала модуля до сэмплов, начиная с нулевого  сэмпла. По два байта  на сэмпл. Нулевой сэмпл в текущих версиях  редактора  не используется. Для  всех неиспользованных сэмплов смещение равно нулю.
 
+169 (16*2) смещения  от начала  модуля до орнаментов, начиная с  нулевого. По два байта на орнамент.Нулевой орнамент - это отсутствие орнамента,поэтому данные этого орнамента (см.ниже) содержат 0,1,0 (можно использовать этот орнамент по своему усмотрению,НО тогда в сонге нельзя будет использовать сэмплы без орнаментов).Для всех неиспользованных орнаментов смещение равно нулю.
 
+169 (16*2) смещения  от начала  модуля до орнаментов, начиная с  нулевого. По два байта на орнамент.Нулевой орнамент - это отсутствие орнамента,поэтому данные этого орнамента (см.ниже) содержат 0,1,0 (можно использовать этот орнамент по своему усмотрению,НО тогда в сонге нельзя будет использовать сэмплы без орнаментов).Для всех неиспользованных орнаментов смещение равно нулю.
+201 (?) список  позиций  (ордер).  Содержит  номера  паттернов
+
+201 (?) список  позиций  (ордер).  Содержит  номера  паттернов (0...84), умноженные  на 3. Таблица завершается  кодом #ff. Pro Tracker v3.3x-v3.5x не поддерживает больше 42 паттернов.
(0...84), умноженные  на 3. Таблица завершается  кодом #ff. Pro Tracker v3.3x-v3.5x не поддерживает больше 42 паттернов.
+
Pro Tracker v3.6x не поддерживает больше 46 паттернов.
Pro Tracker v3.6x не поддерживает больше 46 паттернов.
+
Pro Tracker v3.69x, v3.7x не поддерживает больше 48 паттернов.
Pro Tracker v3.69x, v3.7x не поддерживает больше 48 паттернов.
 
 
+Psa_chn (?*6) указатель паттернов. Содержит для каждого из имеющихся паттернов смещения:
 
+Psa_chn (?*6) указатель паттернов. Содержит для каждого из имеющихся паттернов смещения:
 
   ++0 (2) до блока данных канала (трека) A
 
   ++0 (2) до блока данных канала (трека) A
 
   ++2 (2) до блока данных канала (трека) B
 
   ++2 (2) до блока данных канала (трека) B
 
   ++4 (2) до блока данных канала (трека) C.
 
   ++4 (2) до блока данных канала (трека) C.
Данные  по смещению шума (отдельная колонка в редакторе) компилируются в канал B.
+
Данные  по смещению шума (отдельная колонка в редакторе) компилируются в канал B.
 
+? (?*?) блоки данных каналов, то есть треки.
 
+? (?*?) блоки данных каналов, то есть треки.
  
Трек содержит следующие данные:
+
==Трек содержит следующие данные:==
================================================================
 
 
#00 - конец трека.
 
#00 - конец трека.
 
  Pro Tracker не работает с модулями, в которых есть треки больше 64 строк. Такие модули можно играть плейерами или редактировать в Vortex Tracker, но в Pro Tracker их загружать нельзя.
 
  Pro Tracker не работает с модулями, в которых есть треки больше 64 строк. Такие модули можно играть плейерами или редактировать в Vortex Tracker, но в Pro Tracker их загружать нельзя.
#01, delay, Lsl, Hsl - эффект Gliss(Slide) вверх или вниз. Delay - время  в  пятидесятых  долях секунды, по истечении которого к периоду  ноты  будет  прибавлена величина Lsl+256*Hsl. Смещение накапливается плейером в соответствующей переменной и прибавляется после формирования частоты ноты, т.е.сначала обрабатывается  строчка  орнамента, а уже  потом... v3.7x: Если delay=0, то
+
#01, delay, Lsl, Hsl - эффект Gliss(Slide) вверх или вниз. Delay - время  в  пятидесятых  долях секунды, по истечении которого к периоду  ноты  будет  прибавлена величина Lsl+256*Hsl. Смещение накапливается плейером в соответствующей переменной и прибавляется после формирования частоты ноты, т.е.сначала обрабатывается  строчка  орнамента, а уже  потом... v3.7x: Если delay=0, то указанное  смещение  прибавляется  к ноте на всём её протяжении  (смещение тона для подгонки под огибающие и т.п.).
указанное  смещение  прибавляется  к ноте на всём её протяжении  (смещение тона для подгонки под огибающие и т.п.).
 
 
#02, delay, Lmax, Hmax, Lsl, Hsl - эффект  Tone Portamento вверх или вниз.Delay - время в пятидесятых долях секунды,по истечении которого  к периоду ноты будет прибавлена величина Lsl+256*Hsl.
 
#02, delay, Lmax, Hmax, Lsl, Hsl - эффект  Tone Portamento вверх или вниз.Delay - время в пятидесятых долях секунды,по истечении которого  к периоду ноты будет прибавлена величина Lsl+256*Hsl.
  Lmax+256*Hmax - максимальное  смещение (беззнаковое), после накопления  которого  следует  прекратить Portamento (с PT3.6x не
+
  Lmax+256*Hmax - максимальное  смещение (беззнаковое), после накопления  которого  следует  прекратить Portamento (с PT3.6x не используется, т.к. возможно неправильное указание направления).
используется, т.к. возможно неправильное указание направления).
 
 
#03, offset - sample offset. Сэмпл начинает играть не сначала.
 
#03, offset - sample offset. Сэмпл начинает играть не сначала.
#04, offset - ornament offset. Орнамент  начинает играть не сна-
+
#04, offset - ornament offset. Орнамент  начинает играть не сначала.
чала.
 
 
#05, YEStime, NOtime - vibrate. Нота то звучит, то не звучит.
 
#05, YEStime, NOtime - vibrate. Нота то звучит, то не звучит.
 
#08, delay, Lsl, Hsl - эффект slide envelope. К значению периода огибающей время от времени прибавляется Lsl+256*Hsl.
 
#08, delay, Lsl, Hsl - эффект slide envelope. К значению периода огибающей время от времени прибавляется Lsl+256*Hsl.
Line 91: Line 83:
 
жду дополнений!
 
жду дополнений!
  
Дополнения от 10.xi.02:
+
==Дополнения от 10.xi.02:==
 
1. (Sergey Bulba): Таблица ASM or PSC не имеет отношения к соответствующим  редакторам. Модули из этих редакторов следует импортировать с таблицей Sound Tracker.
 
1. (Sergey Bulba): Таблица ASM or PSC не имеет отношения к соответствующим  редакторам. Модули из этих редакторов следует импортировать с таблицей Sound Tracker.
 
2. В модуле  может  использоваться  и 0-й сэмпл, если в треке он хранится вместе с орнаментом (можно нулевым). Итого 32 сэмпла.
 
2. В модуле  может  использоваться  и 0-й сэмпл, если в треке он хранится вместе с орнаментом (можно нулевым). Итого 32 сэмпла.
Line 137: Line 129:
  
 
16. 48 паттернов. 64 строки. В TurboSound модулях под второй чип используются паттерны номер (47 паттерн), в списке позиция стоят
 
16. 48 паттернов. 64 строки. В TurboSound модулях под второй чип используются паттерны номер (47 паттерн), в списке позиция стоят
именно эти высокие номера.
 
 
17 (19 aug 06). Дополнения про PT v3.7: +98; slide с delay=0.
 
 
18 (08 may 07). Дополнения про PT v3.7x и про Vortex Tracker.��PT v3.7x и про Vortex Tracker.��
 
 
18 (08 may 07). Дополнения про PT v3.7x и про Vortex Tracker.��
 
 
18 (08 may 07). Дополнения про PT v3.7x и про Vortex Tracker.��v3.7x и про Vortex Tracker.�acker.��ример, в механических валк
 
 
================================================================
 
#00 - конец трека.
 
Pro Tracker не работает с модулями, в которых есть треки больше
 
64 строк. Такие модули можно играть плейерами или редактировать
 
в Vortex Tracker, но в Pro Tracker их загружать нельзя.
 
#01, delay, Lsl, Hsl - эффект Gliss(Slide) вверх или вниз. Delay
 
- время  в  пятидесятых  долях секунды, по истечении которого к
 
периоду  ноты  будет  прибавлена величина Lsl+256*Hsl. Смещение
 
накапливается плейером в соответствующей переменной и прибавля-
 
ется после формирования частоты ноты, т.е.сначала обрабатывает-
 
ся  строчка  орнамента, а уже  потом... v3.7x: Если delay=0, то
 
указанное  смещение  прибавляется  к ноте на всём её протяжении
 
(смещение тона для подгонки под огибающие и т.п.).
 
#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 - указание темпа (в прерываниях на строку). Стандарт-
 
ный плейер (playFAS*.H) меньше tempo=2 не играет. Если в модуле
 
есть tempo=1, используйте медленные плейеры.
 
NB: параменты  эффектов (#0x)  лежат  не сразу после кода номера
 
эффекта, а ПОСЛЕ КОНЦА СТРОКИ!!! Если используется несколько эф-
 
фектов на одну ноту (на самом деле так не бывает),то сначала ле-
 
жат параменты последнего эффекта, потом предпоследнего и так да-
 
лее...
 
 
#10, smp*2 - выключить огибающую, перезапустить орнамент и
 
изменить номер сэмпла.
 
#1x, Henv, Lenv, smp*2 - изменить номер сэмпла, перезапустить
 
орнамент и включить огибающую типа 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=нет смещения, поло-
 
жительное смещение - вверх, отрицательное - вниз).
 
 
Alone Coder
 
 
жду дополнений!
 
 
Дополнения от 10.xi.02:
 
1. (Sergey Bulba): Таблица ASM or PSC не имеет отношения к соот-
 
ветствующим  редакторам. Модули из этих редакторов следует импо-
 
ртировать с таблицей Sound Tracker.
 
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. на строчках сэмпла, где включен шум, накопленное смещение
 
огибающей игнорируется.
 
Дополнение от 27.x.04:
 
14. #1x (Sergey Bulba)
 
Дополнение от 6.xi.04:
 
15. (Sergey Bulba)
 
Почти все таблички сделаны неправильно (не соответствуют
 
идеальной шкале 1750000 и 1773400). Более-менее правильно
 
сделана табличка 1 (SoundTracker), традиционная для ZX Spectrum
 
- она подходит для импорта практически всех существующих на ZX
 
музыкальных редакторов. По сравнению с идеальной шкалой для
 
1773400 Гц сдвинута почти ровно на один тон вниз. Кроме того,
 
24-я нота фальшивит (в редакторе обозначена как B-2, из-за
 
сдвига в один тон должна звучать как A-2). Hо, к сожалению, это
 
единственная табличка, которая подходит под 1773400 Гц
 
(фирменный Спектрум 128).
 
 
Табличка номер 2 практически идеально подходит под частоту AY
 
1750000 Гц, все ноты звучат именно так, как они и отображаются в
 
редакторе.
 
 
К сожалению, таблицы нот разных версий Pro Tracker 3 достаточно
 
сильно отличаются (в особенности таблица 2, которая раньше имела
 
полное право называться ASM or PSC и идеально подходила под
 
частоту 1773400 Гц). Табличка 1 в этом смысле уникальна - она
 
одинакова во всех версиях Pro Tracker 3.
 
 
Табличка #0. Официальное название "ProTracker". Hигде, кроме
 
PT3, не используется. Она не менялась вплоть до версии PT3.4r.
 
Hачиная с других версий PT3.4x и по сей день немного
 
модифицирована. Hе подходит ни под какую из стандартных частот
 
AY.
 
 
Табличка #1. Официальное название "SoundTracker". Эта табличка
 
плавно перетекла из Pro Tracker 2. Является модификацией
 
таблички от Sound Tracker. Единственная табличка, которая
 
одинакова во всех версиях PT3.xx. Подходит для STC, STP, FTC,
 
GTR, PT2, PT1, FLS, с небольшой натяжкой и под SQT (со второй
 
ноты), ASM и PSC. Табличка достаточно близка к частоте 1773400
 
Гц, но смещена относительно нее на 1 тон вниз (то есть C-2
 
звучит как A#1). Hота B-2 (должна звучать как A-2) в этой
 
табличке сильно фальшивит [на 1/9 тона].
 
 
Табличка #2. Официальное название "ASMorPSC". Когда она
 
появилась впервые в версии PT3.4r, она являлась простой
 
модификацией таблички ASM (PSC), без первых двух нот и в
 
точности совпадала с рядом для частоты 1773400 Гц. Hачиная с
 
прочих версий PT3.4x и по сей день она кардинально изменилась,
 
вследствие чего для конвертирования ASM и PSC подходит не
 
больше, чем табличка #1. Первая версия хорошо подходила под SQT.
 
Современная табличка #2 идеально подходит под частоту AY 1750000
 
Гц. Остальные таблички рассчитаны неизвестно под что :(
 
 
Табличка #3. Официальное название "RealSound". Так же, как
 
предыдущая, впервые появилась в версии PT3.4r и изменилась
 
начиная с прочих версий PT3.4x. Табличка является модификацией
 
таблички #0 и смещена относительно нее на полтона вниз.
 
Соответственно, также не подходит ни под одну стандартную
 
частоту AY.
 
 
16. 48 паттернов. 64 строки. В TurboSound модулях под второй чип
 
используются паттерны номер (47-паттерн), в списке позиция стоят
 
 
именно эти высокие номера.
 
именно эти высокие номера.
  

Revision as of 03:11, 21 February 2020

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

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

+0 (13) "ProTracker 3." - идентификационная строка. В модулях от Vortex Tracker отсутствует! +13 (17) "7" (или "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 байт модуля образуют соответствующую строку) +98 (1) Для обычных AY музонов: код #20. Если используется TS: число паттернов N (в текущей версии должно быть #30). Паттерны первого AY нумеруются N-1,N-2,... Паттерны второго AY нумеруются 0,1,2,... В списке позиций стоят паттерны N-1,N-2,... +99 (1) номер частотной таблицы: 0=Pro Tracker (она же 1625000), 1=Sound Tracker, 2=1750000 (другое название, не соответствующее содержанию - ASM or PSC), 3=RealSound (она же 1625000+, плохая попытка передвинуть табл. 0 под 1.75MHz). Табличка занимает 192 байта и содержит значения делителей частоты для 96 нот, начиная с C-1 (ДО первой октавы). Делитель частоты - значение, помещаемое в соотвующие регистры AY. Младшие байты (здесь и ниже, за одним исключением, которое будет указано) хранятся первыми. Компилятор PT3 (текущие версии PT3 собираются без компилятора) сохраняет таблицу, соответствующую модулю, в тело плейера по относительному адресу 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 паттернов. Pro Tracker v3.69x, v3.7x не поддерживает больше 48 паттернов. +Psa_chn (?*6) указатель паттернов. Содержит для каждого из имеющихся паттернов смещения:

  ++0 (2) до блока данных канала (трека) A
  ++2 (2) до блока данных канала (трека) B
  ++4 (2) до блока данных канала (трека) C.

Данные по смещению шума (отдельная колонка в редакторе) компилируются в канал B. +? (?*?) блоки данных каналов, то есть треки.

Трек содержит следующие данные:

  1. 00 - конец трека.
Pro Tracker не работает с модулями, в которых есть треки больше 64 строк. Такие модули можно играть плейерами или редактировать в Vortex Tracker, но в Pro Tracker их загружать нельзя.
  1. 01, delay, Lsl, Hsl - эффект Gliss(Slide) вверх или вниз. Delay - время в пятидесятых долях секунды, по истечении которого к периоду ноты будет прибавлена величина Lsl+256*Hsl. Смещение накапливается плейером в соответствующей переменной и прибавляется после формирования частоты ноты, т.е.сначала обрабатывается строчка орнамента, а уже потом... v3.7x: Если delay=0, то указанное смещение прибавляется к ноте на всём её протяжении (смещение тона для подгонки под огибающие и т.п.).
  2. 02, delay, Lmax, Hmax, Lsl, Hsl - эффект Tone Portamento вверх или вниз.Delay - время в пятидесятых долях секунды,по истечении которого к периоду ноты будет прибавлена величина Lsl+256*Hsl.
Lmax+256*Hmax - максимальное  смещение (беззнаковое), после накопления  которого  следует  прекратить Portamento (с PT3.6x не используется, т.к. возможно неправильное указание направления).
  1. 03, offset - sample offset. Сэмпл начинает играть не сначала.
  2. 04, offset - ornament offset. Орнамент начинает играть не сначала.
  3. 05, YEStime, NOtime - vibrate. Нота то звучит, то не звучит.
  4. 08, delay, Lsl, Hsl - эффект slide envelope. К значению периода огибающей время от времени прибавляется Lsl+256*Hsl.
  5. 09, tempo - указание темпа (в прерываниях на строку). Стандартный плейер (playFAS*.H) меньше tempo=2 не играет. Если в модуле есть tempo=1, используйте медленные плейеры.

NB: параменты эффектов (#0x) лежат не сразу после кода номера эффекта, а ПОСЛЕ КОНЦА СТРОКИ!!! Если используется несколько эффектов на одну ноту (на самом деле так не бывает),то сначала лежат параменты последнего эффекта, потом предпоследнего и так далее...

  1. 10, smp*2 - выключить огибающую, перезапустить орнамент и изменить номер сэмпла.
  2. 1x, Henv, Lenv, smp*2 - изменить номер сэмпла, перезапустить орнамент и включить огибающую типа x-1 с периодом
Lenv+256*Henv. При включении огибающей она инициализируется, т.е. начинается новый период!
  1. 20-#3f - указать смещение шума (бывает только в канале B)
  2. 4x - указать орнамент номер x.
(огибающая не выключается)
  1. 50-#Af - указать высоту ноты и ЗАКОНЧИТЬ анализ текущей строки
канала.
  1. B0 - выключить Envelope.
  2. B1, lines - не анализировать канал в течение lines строк.
(lines=1 соответствует одной строке). Действует не только на промежуток между этой и следующей нотой, но и далее, пока не указано другое значение lines!
  1. Bx, Henv, Lenv - то же, что #1x, но без сэмпла. То есть просто включить огибающую типа x-1 с указанным периодом.
  2. Cv - указать громкость.(v=0 - пауза и ЗАКОНЧИТЬ анализ строки.)
  3. D0 - ЗАКОНЧИТЬ анализ строки.
  4. D1-#Ef - указать номер сэмпла.
  5. 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=нет смещения, положительное смещение - вверх, отрицательное - вниз).

Alone Coder

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

Дополнения от 10.xi.02:

1. (Sergey Bulba): Таблица ASM or PSC не имеет отношения к соответствующим редакторам. Модули из этих редакторов следует импортировать с таблицей Sound Tracker. 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. на строчках сэмпла, где включен шум, накопленное смещение огибающей игнорируется. Дополнение от 27.x.04: 14. #1x (Sergey Bulba) Дополнение от 6.xi.04: 15. (Sergey Bulba) Почти все таблички сделаны неправильно (не соответствуют идеальной шкале 1750000 и 1773400). Более-менее правильно сделана табличка 1 (SoundTracker), традиционная для ZX Spectrum - она подходит для импорта практически всех существующих на ZX музыкальных редакторов. По сравнению с идеальной шкалой для 1773400 Гц сдвинута почти ровно на один тон вниз. Кроме того, 24-я нота фальшивит (в редакторе обозначена как B-2, из-за сдвига в один тон должна звучать как A-2). Hо, к сожалению, это единственная табличка, которая подходит под 1773400 Гц (фирменный Спектрум 128).

Табличка номер 2 практически идеально подходит под частоту AY 1750000 Гц, все ноты звучат именно так, как они и отображаются в редакторе.

К сожалению, таблицы нот разных версий Pro Tracker 3 достаточно сильно отличаются (в особенности таблица 2, которая раньше имела полное право называться ASM or PSC и идеально подходила под частоту 1773400 Гц). Табличка 1 в этом смысле уникальна - она одинакова во всех версиях Pro Tracker 3.

Табличка #0. Официальное название "ProTracker". Hигде, кроме PT3, не используется. Она не менялась вплоть до версии PT3.4r. Hачиная с других версий PT3.4x и по сей день немного модифицирована. Hе подходит ни под какую из стандартных частот AY.

Табличка #1. Официальное название "SoundTracker". Эта табличка плавно перетекла из Pro Tracker 2. Является модификацией таблички от Sound Tracker. Единственная табличка, которая одинакова во всех версиях PT3.xx. Подходит для STC, STP, FTC, GTR, PT2, PT1, FLS, с небольшой натяжкой и под SQT (со второй ноты), ASM и PSC. Табличка достаточно близка к частоте 1773400 Гц, но смещена относительно нее на 1 тон вниз (то есть C-2 звучит как A#1). Hота B-2 (должна звучать как A-2) в этой табличке сильно фальшивит [на 1/9 тона].

Табличка #2. Официальное название "ASMorPSC". Когда она появилась впервые в версии PT3.4r, она являлась простой модификацией таблички ASM (PSC), без первых двух нот и в точности совпадала с рядом для частоты 1773400 Гц. Hачиная с прочих версий PT3.4x и по сей день она кардинально изменилась, вследствие чего для конвертирования ASM и PSC подходит не больше, чем табличка #1. Первая версия хорошо подходила под SQT. Современная табличка #2 идеально подходит под частоту AY 1750000 Гц. Остальные таблички рассчитаны неизвестно под что :(

Табличка #3. Официальное название "RealSound". Так же, как предыдущая, впервые появилась в версии PT3.4r и изменилась начиная с прочих версий PT3.4x. Табличка является модификацией таблички #0 и смещена относительно нее на полтона вниз Соответственно, также не подходит ни под одну стандартную частоту AY.

16. 48 паттернов. 64 строки. В TurboSound модулях под второй чип используются паттерны номер (47 паттерн), в списке позиция стоят именно эти высокие номера.

17 (19 aug 06). Дополнения про PT v3.7: +98; slide с delay=0.

18 (08 may 07). Дополнения про PT v3.7x и про Vortex Tracker.��PT v3.7x и про Vortex Tracker.��

18 (08 may 07). Дополнения про PT v3.7x и про Vortex Tracker.��

18 (08 may 07). Дополнения про PT v3.7x и про Vortex Tracker.��v3.7x и про Vortex Tracker.�acker.��ример, в механических валк