Vortex Tracker II v1.0 beta 19
(c)2000-2009 С.В.Бульба
Автор Сергей Бульба
E-mail: vorobey@mail.khstu.ru
Страница поддержки: http://bulba.untergrund.net/

История
-------

Vortex Tracker II является продолжением незаконченного проекта Vortex Tracker.
Я и Роман Щербаков начали работу над проектом Vortex Tracker летом 2000 года,
но она была остановлена уже осенью. Тогда мы и не предполагали, что объем работы
окажется настолько большим. Но в августе 2002 года я все-таки решил начать новый
проект уже в одиночку и назвал его Vortex Tracker II.

Что это?
--------

Vortex Tracker II представляет из себя полноценный музыкальный редактор для
создания и редактирования музыки для микросхем звука AY-3-8910, AY-3-8912 или
YM2149F. Вывод звука в редакторе осуществляется путем эмулирования указанных
микросхем через стандартные устройства вывода цифрового звука Windows, то есть
наличие настоящих микросхем не требуется. Программа использует стандартные
средства Win32 и не требует никаких дополнительных библиотек.

Vortex Tracker II может импортировать музыкальные файлы (модули) с ZX Spectrum
следующих типов:

 1) Pro Tracker 3.xx (маска файлов *.pt3);
 2) Pro Tracker 2.xx (*.pt2);
 3) Pro Tracker 1.xx (*.pt1);
 4) Flash Tracker (*.fls);
 5) Fast Tracker (*.ftc);
 6) Global Tracker 1.x (*.gtr);
 7) Pro Sound Creator 1.xx (*.psc);
 8) компилированные модули Pro Sound Maker (*.psm);
 9) компилированные модули ASC Sound Master (*.asc);
 10) компилированные модули Sound Tracker и Super Sonic (*.stc);
 11) компилированные модули Sound Tracker Pro (*.stp);
 12) компилированные модули SQ-Tracker (*.sqt);
 13) модули Amadeus (Fuxoft AY Language) (*.fxm, *.ay).

Тип модуля определяется по указанному расширению (маске), никаких дополнительных
проверок не производится. Данные расширения приняты в известном плеере Ay_Emul.
Любой другой тип файла анализируется как текстовый.

Также импортируются модули PT v3.7+, сохраненные в режиме Turbo Sound, такой
модуль автоматически преобразуется в два обычных PT3-модуля и включается режим
Turbo Sound. Аналогичные модули PT v3.6 не документированы, поэтому перед
импортом VT II производит анализ их структуры и дает возможность пользователю
импортировать либо как TS, либо как обычные PT3.

Любые два трекерных модуля (кроме FXM) могут быть склеены в один файл (при этом
в конце записывается TS-идентификатор длиной 16 байт). В случае склейки
текстовых форматов идентификатор не требуется. При загрузке такого тандема
автоматически включается режим Turbo Sound.

Vortex Tracker II может сохранять результат только в одном формате: Pro Tracker
3.xx (*.pt3). Данные файлы можно слушать в различных плеерах, эмулирующих
указанные микросхемы звука (наиболее популярен Ay_Emul для Win32), на
компьютерах ZX Spectrum в любом плеере, поддерживающем PT3.xx файлы,
(желательно тот, который умеет анализировать номер версии в заголовке), такие
как Little Viewer, Quick Commander, Real Commander, BestView, Pusher, ZXAmp и
другие. Вы также можете встроить звук в свои программы, воспользовавшись
исходниками Ay_Emul, пакета YM-Engine или SquareTone
(http://bulba.untergrund.net/).

Для удобства предусмотрен рабочий текстовый формат для сохранения промежуточных
версий пишущегося модуля. Он позволяет не потерять временно неиспользуемые
сэмплы, орнаменты и паттерны. Также этот файл удобно редактировать в любом
подходящем текстовом редакторе. Кроме того, это единственная возможность
сохранить написанную музыку в случае, если компиляция PT3 невозможна из-за
выхода размера за 65536 байт.

В режиме Turbo-Sound при сохранении любого из модулей TS-пары в конец файла
также дописывается и второй.

Vortex Tracker II может сохранять модули в удобном для проигрывания на ZX
Spectrum и Atari ST форматах: SNDH (с плеером для Atari ST), HOBETA (с плеером
для ZX Spectrum и без), AY (подтипа EMUL с плеером для ZX Spectrum), SCL и TAP
(в последних двух плеер идет в виде отдельного файла). В случае сохранения
в режиме Turbo-Sound, экспортируется специальный TS-плеер.

Vortex Tracker II можно считать Win32-версией редактора Pro Tracker 3.xx с ZX
Spectrum. Наиболее совместимые с Vortex Tracker II версии на сегодняшний день
Pro Tracker v3.6x-3.7x от Alone Coder (a.k.a. Dima Bystrov). В режиме
совместимости "ProTracker 3.5" Vortex Tracker II полностью совместим с любыми
подверсиями Pro Tracker v3.5x.

Поддержка указанных выше модулей различных музыкальных редакторов осуществлена
с помощью конвертирования их в формат, совместимый с Pro Tracker 3, что
неизбежно приводит к небольшим искажениям звучания, так как все указанные выше
форматы плохо совместимы между собой. Более подробно потери при конвертировании
описаны в файле Trackers limitations.rus.txt.

Чтобы минимизировать потери при конвертировании, а также убрать некоторые
искусственные ограничения и даже ошибки оригинального Pro Tracker 3, Vortex
Tracker II имеет, кроме режима полной совместимости с Pro Tracker 3.5x, ещё и
определенное количество настроек, расширяющих возможности PT3 (например, новая
интерпретация специальной команды 3xxx). Поэтому для того, чтобы модуль
проигрывался на ZX Spectrum правильно, используйте любой релиз Vortex Tracker II
v1.0 PT3 player for ZX Spectrum (один из них встроен в экспортер VT II). Что
касается редактора Pro Tracker 3 на ZX Spectrum, то серия Pro Tracker v3.69x и
старше, выпущенная Alone Coder'ом практически полностью совместима с VT II.

Важное замечание: новая интерпретация команды 3xxx влияет не только на
проигрывание редактируемых модулей, но и на импорт модулей ASC Sound Master.

Во время редактирования автоматически отображается общая продолжительность
модуля в секундах и прерываниях, а также текущее время, вычисляемое по положению
курсора в редактируемом паттерне. Эта функция может оказаться полезной для
демомейкеров.

По сравнению с прошлой версией, произошли следующие изменения:

08.02.2009:

1. TAD обнаружил, что первоначально неиспользованные или недавно загруженные
   сэмплы по случайному принципу могли оказаться заглушенными (с появлением
   Toggle Samples). Исправлено.

План (важное в начале):

1. Прогрессии, чередования.
2. Копирование/вставка для редактора сэмплов и орнаментов.
3. Шаблон нотной строки.
4. Разворачивание накоплений в сэмплах (для AlCo).
5. Перестановка двух нот в соседних каналах (swap) для любителей стерео-
эффектов с автоматической подстановкой параметров.
6. Экспорт в WAV-файл.
7. Послойный ввод паттернов (для TAD).
8. Фильтр группы сэмплов для транспозиции.
9. ... :(

Известные проблемы
------------------

Имеется ряд ошибок/недоработок, которые автору известны, и о которых присылать
баг репоты не нужно.

1. На некоторых звуковых картах любая активность типа вывода графики, дисковых
операций приводит к потрескиванию типа статического электричества (например,
Zoltrix AP3200).
2. При выборе пропорционального шрифта, треки визуально расплываются.
3. Во время сохранения удаляются не использованные паттерны (отсутствующие
в Position List), в результате чего номера паттернов могут измениться, также
удаляются неиспользуемые сэмплы и орнаменты (без перенумерации). Чтобы избежать
потери временно (возможно, случайно) неиспользуемого паттерна, сэмпла или
орнамента, сохраняйте промежуточные редакции в текстовом формате.
4. Для PSM и SQT-файлов используется табличка #1 со второй ноты, что приводит к
потере нот #5E и #5F оригинального модуля (они превращаются в B-8).
5. Некоторые настройки нельзя изменить во время проигрывания, или когда
устройство вывода звука занято (во время редактирования). Нажмите кнопку
'Stop playing/Free device'.
6. Некоторые настройки вступают в силу через промежуток времени, равный
суммарной длине буферов.
7. Некоторые настройки вступают в силу сразу, но с небольшим щелчком, связанным
с временной приостановкой проигрывания.
8. Крайне неудобный регулятор громкости.
9. Буфер обмена не работает с редакторами/тестами сэмплов и орнаментов.

Самые очевидные из этих недоработок рано или поздно будут исправлены.

Краткое руководство
-------------------

Применена следующая раскладка клавиатуры.

 Клавиши в редакторе паттернов
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1. В ячейке ноты

1.1. Клавиши ввода нот (NoteKeys):

                          Q 2 W 3 E R 5 T 6 Y 7 U I 9 O 0 P [ = ]
  Z S X D C V G B H N J M , L . ; /

  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
  | C#| D#| | F#| G#| A#| | C#| D#| | F#| G#| A#| | C#| D#| | F#|
  C   D   E F   G   A   B C   D   E F   G   A   B C   D   E F   G

Т.е. производится имитация клавиатуры фортепиано, охватываются две с лишним
октавы.

1.2. Shift+NoteKeys - ввод ноты на октаву выше текущей.

1.3. Shift+Ctrl+NoteKeys - ввод ноты на октаву ниже текущей.

1.4. A - ввод команды выключения звука в канале (R--).

1.5. K - удаление ноты (---).

1.6. От 1 до 8 на цифровой клавиатуре - выбор текущего номера октавы.

При вводе с цифровой клавиатуры NumLock должен быть включен.

2. Навигация по редактируемому паттерну (управление курсором)

2.1. Up, Down, Left, Right - управление курсором в четырех направлениях.

2.2. PageUp, PageDown - переместить курсор на страницу вверх или вниз.

2.3. Home, End - курсор в начало или в конец строки.

2.4. Ctrl+Right, Ctrl+Left - быстрое перемещение по колонкам вправо и влево.

2.5. Ctrl+PageUp, Ctrl+PageDown - курсор в начало или в конец столбца паттерна.

2.6. Ctrl+Home, Ctrl+End - в начало первого или в конец последнего столбца.

2.7. Щелчки мышью - поместить курсор в нужную ячейку.

2.8. Колесо мыши - промотать паттерн вверх/вниз.

3. Выделение области

3.1. Shift+клавиши управления курсором (п.2.) - выделение прямоугольной области
паттерна.

3.2. Ctrl+A, Ctrl+5 на цифровой клавиатуре - выделить весь паттерн.

3.3. Движение мышью с нажатой левой или правой кнопкой.

3.4. Shift+щелчок мышью - выделить от курсора до нужной ячейки.

3.5. Shift+колесо мыши - не сбрасывать/добавить к выделению.

4. Переход к другим объектам от редактируемого паттерна

4.1. Tab - переход от одного объекта окна к другому по порядку.

4.2. Shift+Tab - то же в обратном порядке.

4.3. ` (обратный апостроф, обычно находится над Tab) - быстрое переключение
     между редакторами паттерна и списка позиций проигрывания.

5. Удаление

5.1. BackSpace - удаление текущей строки трека со сдвижкой.
                                                          
5.2. Ctrl+BackSpace, Ctrl+Y - удаление текущей строки паттерна со сдвижкой.

5.3. Delete - очистка выделенного диапазона или удаление того, что под курсором.

5.4. Ctrl+Delete - очистка содержимого строки паттерна.

5.5. Numpad - - удаление каждой второй строки паттерна со сдвижкой и уменьшение
     размера паттерна в два раза.

6. Вставка пустых строк

6.1. Insert - вставка пустой строки трека с раздвижкой.

6.2. Ctrl+I - вставка пустой строки паттерна с раздвижкой.

6.3. Numpad * - удвоение размера паттерна с раздвижкой и вставкой пустых строк.

7. Работа с выделенной областью паттерна

7.1. Ctrl+C, Ctrl+Insert - копирование выделенного диапазона в буфер обмена.

7.2. Ctrl+X, Shift+Delete - то же, с последующей очисткой содержимого выделения.

7.3. Ctrl+V, Shift+Insert - вставка из буфера обмена (вправо вниз от позиции
     курсора или от левого верхнего угла выделения). В случае если в паттерне
     выделена область, вставка не выйдет за её пределы.

7.4. Ctrl+Alt+V - аналогично простой вставке из буфера обмена, но пустые
     значения не затирают непустые (смешивание).

7.5. Numpad + и Numpad - - транспонирование на 1 полутон вверх и вниз
     соответственно.

7.6. Ctrl+Numpad + и Ctrl+Numpad - - транспонирование на октаву вверх и вниз
     соответственно.

8. Контрольное проигрывание участка паттерна

8.1. Любая нажатая клавиша ввода данных - играть текущую строку.

8.2. Нажатая клавиша Enter - играть паттерн от текущей позиции курсора до
момента отпускания клавиши. Если включено какое-либо зацикливание, паттерн
играется циклически.

9. Прочее

9.1. 0 на цифровой клавиатуре - включить/отключить Auto Envelope.

9.2. Пробел - включить/отключить автошаг (Auto Step).

9.3. Shift+Backspace - при включенном автошаге сделать шаг обратно.

Меню, вызываемое правой кнопкой мыши, дублирует часть клавиатурных комбинаций,
что можно использовать при отсутствии Numpad (ноутбуки и т.п.).

 Общие клавиши
 ~~~~~~~~~~~~~

1. Управление проигрыванием

1.1. F5 - проиграть модуль с текущей позиции.

1.2. F6 - проиграть модуль с начала.

1.3. F7 - проиграть паттерн с текущей строки.

1.4. F8 - проиграть паттерн с его начала.

1.5. Esc - остановить проигрывание/освободить устройство вывода звука,
установить курсор в текущей позиции паттерна и, если возможно, перейти к его
редактированию.

1.6. Ctrl+L - включить/выключить зацикливание проигрывания модуля или паттерна.

1.7. Ctrl+Alt+L - включить/выключить циклическое проигрывание среди всех
открытых окон. Если открыт только один модуль или играется паттерн, работает
как простое зацикливание.

2. Эмуляция микросхемы звука

2.1. Ctrl+Alt+C - выбор микросхемы (AY-3-8910/12 или YM2149F).

2.2. Ctrl+Alt+A - выбор раскладки каналов (Mono, ABC, ACB или BAC; прочие
раскладки выбираются в окне Options).

3. Редактирование

3.1. Ctrl+E - включить/выключить режим автоматического расчета периода
огибающей по её типу и текущей ноте.

3.2. Ctrl+R - включить/выключить автошаг.

3.3. Ctrl+T - вызов/закрытие инструмента Tracks Manager.

3.4. Ctrl+Alt+T - вызов/закрытие инструмента Global Transposition.

4. Стандартные клавиши

4.1. Alt+F4 - завершить работу с Vortex Tracker II.

4.2. Ctrl+F4 - закрыть активное окно с редактируемым модулем.

4.3. Ctrl+F6 - переход между открытыми окнами.

4.4. Ctrl+O - вызов диалога открытия файла.

4.5. Ctrl+S - сохранить редактируемый модуль.

4.6. Tab, Shift+Tab - циклический переход между объектами окна в прямом и
обратном направлении.

4.7. Alt+BackSpace - отменить последнее изменение.

4.8. Alt+Enter - вернуть последнее изменение.


 Клавиши редактора позиций
 ~~~~~~~~~~~~~~~~~~~~~~~~~

1. ` - перейти к/от редактора паттернов.

2. Left, Right или левая кнопка мыши - выделить позицию (во время проигрывания
выделенная позиция автоматически начинает играться с начала).

3. Правая кнопка мыши - выделить позицию и вызвать меню с командами.

4. L - установить позицию для зацикливания.

5. От 0 до 9 - набрать номер паттерна для данной позиции.

6. Del - удалить позицию со сдвижкой.

7. Ins - вставить позицию с раздвижкой.

- В поле редактора сэмпла:

Up, Down, Left, Right, PageUp, PageDown, Home, End, Ctrl+Right, Ctrl+Left,
Ctrl+PageUp, Ctrl+PageDown, Ctrl+Home, Ctrl+End - навигация по редактируемому
                                                  сэмплу
В любом месте редактируемого сэмпла:

T - включить/выключить маску тона
N - включить/выключить маску шума
M - включить/выключить маску огибающих
Alt+Right - добавить текущую строку сэмпла в список шаблонов строк
Alt+Left - скопировать выбранную строку из списка шаблонов строк в текущую
           строку сэмпла

В колонках масок 'TNE':
Space - включить/выключить соответствующую маску

В колонках со знаками '+' и '-':
Space - смена знака
Shift+'=', '=', Numpad '+' - смена знака на '+'
'-', Numpad '-' - смена знака на '-'
Shift+6 ('^') - включение в соответствующей колонке накопления '^'
Shift+'-' ('_') - выключение в соответствующей колонке накопления '_'
0-9,A-F - ввод шестнадцатеричных чисел

В колонках со знаками '^' и '_':
Space - включение/выключение накопления
Shift+6 ('^') - включение накопления '^'
Shift+'-' ('_') - выключение накопления '_'
0-9,A-F - ввод шестнадцатеричных чисел

В последней колонке (управление громкостью) со знаками '+', '-' и '_':
Space - перебор всех трех вариантов
Shift+'-' ('_') - не менять громкость сэмпла '_'
'-',  Numpad '-' - уменьшить громкость сэмпла на единицу '-'
'+',  Numpad '+' - увеличить громкость сэмпла на единицу '+'
0-9,A-F - ввод шестнадцатеричных чисел

В полях ввода чисел:
0-9,A-F - ввод шестнадцатеричных чисел
Space - смена знака числа, в колонке амплитуды - управление громкостью
Shift+'=', '=', Numpad '+' - смена знака на '+'
'-', Numpad '-' - смена знака на '-'
Shift+6 ('^') - включение в соответствующей колонке накопления '^'
Shift+'-' ('_') - выключение в соответствующей колонке накопления '_'

Любая не цифровая клавиша или щелчок мышью сбрасывает счетчик ввода цифр числа.

Щелчок правой кнопкой мыши в поле визуализации амплитуды (знаки '*') - выбор
соответствующей амплитуды.

Движение мышью с нажатой правой кнопкой в этом же поле - "рисование" амплитуды.

Щелчки правой кнопкой мыши по различным полям сэмпла - изменение значений этих
полей.

- В поле редактора орнамента:

Up, Down, Left, Right, PageUp, PageDown, Home, End, Ctrl+PageUp, Ctrl+PageDown,
Ctrl+Home, Ctrl+End - навигация по редактируемому орнаменту

0-9 - ввод десятичного числа

Space - смена знака числа

Shift+'=', Numpad '+' - смена знака на '+'

'-', Numpad '-' - смена знака на '-'

Щелчок правой кнопкой мыши по различным полям орнамента - изменение знака
соответствующего числа.

Если доступен файл orgen.exe, можно нажать кнопку OrGen для запуска плагина
OrGen от Shiru Otaku. Плагин позволяется набирать орнаменты альтернативным
способом.

В строках тестирования сэмпла и орнамента навигация и редактирование аналогично
редактору паттернов.

При редактировании названия и имени автора, длина каждой из строк не более 32
символов.

На окне паттернов можно задать шаг подсветки линий треков. При включенном Auto
автоматически выбирается шаг 3,4 или 5 в зависимости от длины паттерна.

Pro Tracker 3.69x и старше на ZX Spectrum опознает и загружает модули VT II
(допустим как новый заголовок VT II, так и расширение *.pt3). Но есть и
ограничения - не более ~48 паттернов при длине паттернов и орнаментов не более
64 строк. Максимальное количество паттернов в PT3-редакторах на ZX Spectrum
меняется от версии к версии.

Если вы хотите, чтобы модуль проигрывался стандартным плеером компилированных
модулей PT3 на ZX Spectrum, не устанавливайте значения Speed меньше 2 (версии
3.5 и младше - не менее 3), но лучше воспользоваться встроенным в VT II плером,
в котором такого ограничения нет.

Pro Tracker 3.7x и Pro Tracker 3.6xx почти полностью совместимы с режимом 'Pro
Tracker 3.7' и 'Vortex Tracker II (PT 3.6)' соответственно, в то время как
совместимость в режиме "Pro Tracker 3.5" со спектрумовским редактором
соответствующей версии полная.

Режим 'Pro Tracker 3.7' дает только одну новую возможность: с помощью команд
вида 1.xx и 2.xx можно одномоментно изменить частоту тона на величину xx вниз
и вверх соответственно. Если вы не планируете использовать эту возможность, то
использовать этот режим нет смысла.

Выбирая тип заголовка 'Vortex Tracker II 1.0 module: ', вы ничего не теряете в
плане совместимости с ProTracker 3.6xx, зато оказываете серьезную моральную
поддержку автору Vortex Tracker'а!

Кнопка "Сохранить" становится доступной только тогда, когда модуль начинают
редактировать.

Типы заголовков
---------------

Данная версия сохраняет три типа заголовка в конечном PT3-файле.

1) 'Vortex Tracker II 1.0 module: '

Наличие этого заголовка говорит о том, что модуль может содержать все новые
возможности, реализованные в Vortex Tracker II, включая новое поведение команды
3xxx (tone portamento). Тем не менее, модуль может проигрываться и старыми
плеерами как на ZX Spectrum, так и на PC, но новые возможности будут играться
не всегда правильно.

2) 'ProTracker 3.6 compilation of '

Этот заголовок говорит о том же, что и предыдущий, просто некоторые плееры
отказываются воспринимать PT3 без такого вида заголовка. Хочу заметить, что
проигрывать модули, написанные в Pro Tracker 3.6xx и Vortex Tracker II,
плеерами, написанными ранее и использующими плееры от PT 3.5x или более ранние,
в любом случае нельзя - с тех пор в плеерах найдено и исправлено много ошибок,
а в форматы добавлены новые возможности.

3) 'ProTracker 3.7 compilation of '

Наличие этого заголовка указывает на то, что в дополнение к возможностям PT 3.6
модуль может содержать команды глиссандо 1.xx и 2.xx (с нулевой дельтой). При
этом скольжение тона как таковое не происходит, а происходит одномоментное
изменение частоты тона на виличину xx вниз или вверх соответственно.

4) 'ProTracker 3.5 compilation of '

Данный заголовок говорит о том, что функции версий 3.6 и выше не реализованы или
должны проигрываться так, как это делалось в плеерах до версии 3.6 (3xxx должна
интерпретироваться по-старому, 1.xx и 2.xx игнорироваться и т.д.).

Использование AutoStep
----------------------
При редактировании треков можно задать шаг автоматической прокрутки треков после
выполнения практически любой операции редактирования паттерна (ввод ноты,
сэмпла, чисел в соответствтующих колонках треков, раздвижка/сдвижка/очистка
строк и т.д.). Треки могут прокручиваться как вперед (положительный шаг), так и
назад (отрицательный). Функцию можно быстро включать и выключать, нажимая Space
или Ctrl+R.

Кроме очевидных способов применения данной функции, можно рекомендовать
использование автошага в следующих ситуациях: многократная вставка
предварительно скопированного в буфер обмена 2-4-хзначного числа с заданным
шагом (удобно для тиражирования периода огибающих); увеличение/уменьшение
размера паттерна в 2 раза без искажения звучания (для этого устанавливаем шаг
равным 2 или 1 соответственно, ставим курсор во вторую строку паттерна и жмем и
удерживаем Ctrl+I или Ctrl+BackSpace, предварительно или по окончанию
устанавливаем длину паттерна и новую скорость проигрывания), хотя для последней
операции удобнее воспользоваться командами Compress/Expand из всплывающего меню.

Часто пользователи забывают о включенном автошаге, в этом случае поможет
сочетание клавиш Shift+Backspace (один шаг назад).

Режим Turbo-Sound
-----------------
С конца 90-х на ZX безуспешно силами разных людей предпринимались попытки
внедрять и популяризировать различные стандарты подключения двух музыкальных
сопроцессоров одновременно. Известны три схемы: Quadro-AY, Turbo-AY и Turbo-
Sound. Одним из способов использования этих схем является одновременное
проигрывание двух разных модулей (каждый через свою микросхему). В Vortex
Tracker II имеется возможно прослушивать любые два открытых модуля одновременно.
На первый (основной) муз. сопроцессор выводится модуль из текущего окна. Модуль,
который при этом должен выводиться на второй чип, можно указать из списка
открытых модулей, который можно вызвать, нажав соответствующую кнопку на окне
модуля. По умолчанию второй чип отключен (надпись на кнопке "2nd soundchip is
disabled").

Для удобства редактирования двух модулей в режиме TS VT II синхронизирует треки
двух окон как во время проигрывания, так и во время редактирования (как
положение курсора в треках, так и их отображение), автоматически переключает
редактируемое окно при достижении курсора крайней правой или левой позиции в
треках, при сохранении любого из модулей TS-пары дописывает в конец файла
второй, при открытии TS-модулей (включая экспорт TS-формата от PT v3.6+)
автоматически создает TS-пару и, в случае, когда открыта только эта TS-пара,
выстраивает её по горизонтали.

Пример проигрывания на ZX и описание схем можно найти в ZX-журнале InfoGuide #8.

В VT II кроме плеера PT3-файлов для ZX Spectrum встроен и плеер TS-треков,
который и используется при экспорте из режима Turbo-Sound.

Формат хранения модулей Turbo-Sound
-----------------------------------
Кроме того, что каждый из TS-модулей может быть сохранен отдельно, VT II
понимает и склейки двух модулей в одном файле. При этом склеить модули можно как
сохранением из редактора в режиме TS, так и из командной строки:

     copy Module1.txt+Module2.txt Module.txt

для текстового формата и

     copy/b Module1.pt3+Module2.sqt+ID Module.pt3

для стандартных трекерных модулей (кроме FXM), где ID - файл следующей
структуры:

    +0 Str4 'PT3!'
    +4 Word размер файла Module1.pt3
    +6 Str4 'SQT!'
    +A Word размер файла Module2.sqt
    +C Str4 '02TS'

Последний формат понимает и Ay_Emul.

Меню Files->Options...
----------------------

Вкладка 'New window'

Позволяет настроить вид вновь создаваемых окон с треками. Можно настроить
количество видимых строк (от 3 до 64), выбрать и настроить шрифт треков.
Используйте только моноширинные шрифты, типа Courier, Courier New, Fyxedsys,
Lucida Console, иначе треки или будут не ровные, или курсор будет перемещаться
по колонкам трека невпопад. В данной версии выбранный шрифт используется и для
некоторых других элементов управления.

Вкладка 'Windows'

'Channels allocation' позволяет настроить визуальное расположение каналов
микросхемы при редактировании. 'Tracks colors' позволяет настроить цвета
элементов редактируемого паттерна (background - фона, text - текста).
Настройки этой вкладки влияют как на уже открытые модули, так и на открываемые.

Вкладка 'Chip emulation'

Выберите тип микросхемы, частоту чипа, частоту прерываний, расположение каналов
при проигрывании и один из двух алгоритмов эмуляции. Некоторые настройки
вступают в силу сразу, остальные - по истечении указанного в нижнем углу вкладки
времени. Некоторые эффекты играются правильно только при оптимизации
'for quality', а некоторые - только с дополнительно включенным фильтром.
В этом же порядке растет и загрузка процессора. По умолчанию VT настроен на
оптимальное качество звучания, если ваша система не справляется (появляются
паузы в звучании, отключите некоторые функции качества на этой вкладке, либо
уменьшите разрядность, а если надо и частоту сэмплов на вкладке 'Wave out'.
В режиме Turbo-Sound (Turbo-AY) для обоих чипов используются одинаковые
настройки.

Вкладка 'Compatibility'

Это глобальные настройки совместимости. Если необходимо настроить конкретный
модуль, загляните на соответствующую вкладку его окна.

 Features level

 - Pro Tracker 3.5 - старое поведение команды 3xxx, команды 1.xx и 2.xx
       игнорируются. Также, модули ASC будут импортироваться с возможностью
       проигрывания со старыми плеерами PT3.
 - Vortex Tracker II (PT 3.6) - новая интерпретация команды 3xxx. Влияет не
       только на проигрывание, но и на импорт модулей ASC.
 - Pro Tracker 3.7 - допустимо использование спецкоманд 1.xx и 2.xx.
 - Try detect - позволяет редактору во время открытия модуля самому выбрать один
       из первых трех пунктов. При открытии PT3 VT ориентируется по заголовку по
       описанному выше правилу. При открытии PT2 выбирается пункт 'Pro Tracker
       3.5', в остальных случаях - 'Vortex Tracker II (PT 3.6)'.

 Save with header

 Можно рекомендовать VT II сохранить определенный тип заголовка PT3-файла. В
 любом случае, VT II руководствуется указанным выше правилом (см. 'Типы
 заголовков').

Вкладка 'Wave out'

Настройка вывода звука. Все настройки недоступны во время проигрывания. Чтобы
остановить проигрывание, нажмите на соответствующую кнопку данной вкладки.

 Sample rate

  Частота сэмплов, чем больше, тем качественнее, но медленнее. 44100 и 48000
  поддерживают не все устройства вывода звука, при попытке выбора
  неподдерживаемой частоты, будет либо сообщение об ошибке, либо качество
  звучания только ухудшится.

 Bit rate

  Разрядность, чем больше, тем качественнее, но медленнее.

 Channels

  Моно или стерео.

 Wave out device

  По умолчанию, 'Wave mapper'. Для получения полного списка устройств, нажать
  кнопку 'Get full list'.

 Buffers

  Размер буфера и их количество. Экспериментируйте. Чем меньше буфер, тем
  быстрее реакция, а чем больше буферов, тем стабильнее звук. Суммарная длина
  буферов вычисляется внизу данной группы настроек. У меня стабильно работают
  даже 6 буферов по 5 мс.

Вкладка 'Other'

 Application priority

  Позволяет установить приоритет приложения - нормальный или повышенный. Выбор
  последнего - единственный способ добиться стабильности звучания в фоновом
  режиме операционных систем семейства Windows 9x/Me.

Tracks manager
--------------

Для вызова этого инструмента выберите соответствующий пункт в меню Edit или
нажмите соответствующую кнопку на панели инструментов или Ctrl+T. Повторное
нажатие используйте для его скрытия. Окно Tracks manager всегда остается поверх
остальных окон приложения и работает с активным в даный момент модулем (его
название дублируется в заголовке главного окна). Если вам часто нужны функции
данного инструмента, то вы можете не закрывать его, а просто отодвинуть в
сторону.

Tracks manager позволяет скопировать любую область любого паттерна в любое
место любого паттерна.

В группе Location 1 и Location 2 необходимо задать номера паттернов, номер
первой строки и номер канала. В группе Area нужно указать количество строк, при
необходимости нужно пометить для обработки треки огибающих или шума.

После того, как все настроено, вы можете скопировать одну локацию в другую
(нажав соответствующую кнопку в группе Copy), переместить (группа Move) или
поменять местами (группа Swap).

Также, можно транспонировать любую из локаций на указанное количество полутонов
в группе Transposition (положительное число полутонов - вверх, а отрицательное -
вниз). Если в группе Area отмечена дорожка огибающих, она также будет
транспонирована.

Global Transposition
--------------------

Для вызова этого инструмента выберите соответствующий пункт в меню Edit, кнопку
на панели инструментов или нажмите Ctrl+Alt+T. Global Transposition позволяет
транспонировать отдельные (или все) дорожки как всего модуля, так и отдельного
паттерна, что позволяет избежать многократного использования Tracks manager.
Настройка и использование аналогично функции Tracks manager.

Меню Files->Save и Files->Save as...
------------------------------------

Вызывает диалог сохранения модуля. В ниспадающем списке "Тип файла" можно
выбрать формат сохранения: либо рабочий текстовый (TXT), либо окончательный Pro
Tracker 3 (PT3). В последнем случае модуль освобождается от всей лишней
информации, включая неиспользуемые сэмплы, орнаменты и паттерны, а также для
большей компактности производится перенумерация паттернов. В случае, если модулю
сопоставлен другой открытый модуль (то есть включен режим Turbo-Sound), второй
модуль автоматически дописывается в конец файла.

Меню Files->Exports->Save in SNDH (Atari ST)
--------------------------------------------

Сохранение в формате SNDH для проигрывания на Atari ST (или SNDH плеерах-
эмуляторах Atari ST). Проигрыватель в кодах процессора MC68000 универсален - в
него встроены все таблицы (начиная с версии PT 3.3) и во время инициализации
анализируется версия модуля. За основу взяты процедуры из Ay_Emul, таблички нот
и громкости упакованы методом Ивана Рощина. Получаемые SNDH PACKICE'ом не
упаковываются. Размер плеера примерно 9 кб, адрес загрузки не фиксирован. Перед
сохранением появляется запрос на ввод года создания модуля, который можно не
вводить. Текущая версия плеера для Atari ST не поддерживает возможности PT v3.7.

Меню Files->Exports->Save with ZX Spectrum player
-------------------------------------------------

Сохранение с плеером для ZX Spectrum. Можно сохранять в формате HOBETA с плеером
($c) и без плеера ($m), в формате .AY (подтипа EMUL), SCL и TAP. Адрес загрузки
фиксирован, его нужно ввести в появляющемся диалоге. Формат .AY не допускает
использование нулевого адреса. Настройки плеера позволяют отключить зацикливание
модуля: при необходимости установите галочку "Disable loop". В файлах SCL и TAP
плеер и модуль сохраняются в виде двух отдельных файлов, что дает выигрыш в
размере по сравнению с HOBETA, так как в последней еще хранится ненужный "зазор"
под переменные между плеером и модулем. Возможности плеера и инструкции по его
использованию находятся в файле ZXAYPlayer.rus.txt. Исходный текст плеера
поставляется вместе с исходными текстами VT II, а также в виде отдельного архива
на сайте http://bulba.untergrund.net/. В случае, если размер блока больше 255
секторов, сохранение в формате SCL и HOBETA невозможно. Также сохранение
невозможно, если нет места под плеер (в этом случае в диалоге появляются
отрицательные значения адресов).

Если экспортируемый модуль связан с другим (режим Turbo-Sound), то
экспортируются оба, при этом записывается специальный TS-плеер, о возможностях
которого можно почитать в файле ZXTSPlayer.rus.txt.

Благодарности
-------------

Спасибо:

- Роману Щербакову (a.k.a. V_Soft) за идею проекта, а также за логотип 'Vortex',
использованный в окошке 'О программе', иконку и картинки некоторых кнопок.
- Константину Елисееву (а.к.а. Hacker KAY) за помощь в поиске ошибок эмуляции AY
и YM, таблички выходных уровней этих микросхем и за помощь в разгадке устройства
их генератора шума.
- Дмитрию Быстрову (а.к.а. Alone Coder) за информацию по различным версиям Pro
Tracker 3 и за дискуссию по поводу VTII и PT3, сообщения об ошибках и помощь
в их поиске, информацию об ошибках AY-эмуляции в эффекте "Envelope+(Ton=0)".
- Роману Петрову (a.k.a. Megus) за проект идеального трекера для AY, если
удастся завершить Vortex Tracker II, твои идеи помогут мне начать работу над
новым трекером.
- Macros'у за помощь в тестировании, тестовые файлы, предложения по интерфейсу
и обещание всесторонней поддержки проекта.
- Shiru Otaku за plug-in OrGen, тестирование, ряд предложений и за сообщение об
ошибке в интерпретации команды 6.
- Polaris'у за пожелания и тестовые модули.
- Black Groove'у (a.k.a. Key-Jee) за багрепоты, пожелания и тестовые модули.
- Илье Абросимову (a.k.a. EA) за пожелания, замечания, сообщения об ошибках.
- Павлу А. Суходольскому за помощь в отладке FXM-интерпретатора, дискуссию о
  форматах модулей и способах упаковки табличек PT3-плеера.
- Asi за сообщения об ошибках и пожелания.
- Денису Селезневу за картинки для кнопок и вкладок.
- Spectre за помощь в отладке PT3-плеера для ZX, за советы по его
  усовершенствованию и адаптацию его исходных текстов под ассемблеры ZX.
- Ивану Рощину за помощь в написании нового PT3-плеера для ZX.
- Jocker'у за адаптацию исходника PT3 плеера под XAS.
- HalElf'у за использование AY_Emul и VTII в плагине к Far Manager'у xLook.
- Karbofos'у за тестирование, предложения и тестовые модули.
- Ch41ns4w за пожелания по TS-режиму и дизайну.
- Znahar'ю за ведение параллельной ветки редактора, из которой многое уже
позаимствовано.
- TAD'у за предложения, сообщения об ошибках и тестовые модули.
- MMCM'у за пожелания по проекту.

Отдельное спасибо людям, периодически пишущим музыку в Vortex Tracker II:
Shiru Otaku
Key-Jee
EA
Alone Coder
Siril
z00m
Asi
Rolemusic
Karbofos
Kyv
Ch41ns4w
Ryurik
Gibson
TAD
Znahar
Nik-O
Orson
Lee du-Caine aka dC Audio
4Mat
и Вы ;)

Выговор объявляется организаторам ZX части CAFe'2003 за то, что они не знали,
что модули Vortex Tracker II проигрываются стандартным спектрумовским плеером
от любого Pro Tracker'a v3.xx. Стыдно, товарищи ;)

Замечания для создающих журналы/газеты, музыкальные сборники с пати и т.п.
--------------------------------------------------------------------------

!!! Никогда не перекомпилируйте PT3-модули, написанные не вами !!!
!!! Вы даже можете не услышать тех нюансов, которые меняются от версии к
версии, но это не значит, что их не услышат другие !!!
!!! При использовании стандартных плееров на ZX Spectrum, следите чтобы
версия в заголовке модуля и версия редактора, плеер из которого Вы используете,
совпадали !!!
!!! Короче, не губите AY-музыку - пожалейте труд музыкантов !!!

Простая загрузка/сохранение произвольного модуля из произвольного редактора
(включая VT II) может привести к следующим потерям.

1. Модуль, написанный в PT 3.4x и ранее и перекомпилированный в PT 3.5x и выше,
будет играться с неправильной табличкой громкости.
2. Разные версии редакторов по-разному считают константы для 3xxx. Данные
константы полностью игнорируются только моими плеерами, для всех остальных они
важны.
3. PT 3.3x и ранее использовали другую табличку "Pro Tracker".
4. После перекомпиляции невозможно определить истинную версию редактора, в
котором написан модуль, то есть придется играть не тем плеером/алгоритмом.
5. Модуль, написанный в VT II, может содержать большее количество паттернов, чем
способен загрузить PT 3.xx на ZX - будут потери.
6. Модуль, написанный в VT II, может содержать большее число строк в паттерне,
чем может загрузить PT 3.xx на ZX - звук исказится.
7. Модуль, написанный в VT II, может содержать большее число строк в орнаменте,
чем может загрузить PT 3.xx на ZX - звук исказится.

О подверсиях VT II v1.0
-----------------------

Все alpha-версии являлись экспериментальными. С появлением первой beta-версии
проект VT II v1.0 является полноценным редактором. Последующие beta-версии
следует рассматривать не более чем очередные подверсии, их появление ничего
принципиально не меняет, а лишь расширяет функциональность редактора. Надеюсь,
это полностью разъясняет мое отношение к проекту тем, кто ожидает от меня
большего или считает, что проект еще не доделан.

Распространение
---------------

Vortex Tracker II - бесплатная программа. Автор предлагает два комплекта
поставки: обычный (VT.exe с документацией) и исходные тексты (файлы в виде
проекта Delphi 7 с документацией). Вы можете использовать и распространять
исходники свободно, просто ссылайтесь на меня как на автора в документации
проектов, в которых используете все или часть моих исходных текстов и (или)
алгоритмов.

Сергей Бульба

24 августа 2002 года - 23 февраля 2009 года
