Vortex Tracker II v1.0
(c)2000-2024 С.В.Бульба
Автор Сергей Бульба
E-mail: svbulba@gmail.com
Страница поддержки: 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 0.xx (*.as0);
 10) компилированные модули ASC Sound Master 1.xx (*.asc);
 11) некомпилированные модули Sound Tracker (*.st1, *.ay);
 12) компилированные модули Sound Tracker и Super Sonic (*.stc);
 13) перекомпилированные модули Sound Tracker (*.st3);
 14) некомпилированные модули Sound Tracker Pro (*.stf);
 15) компилированные модули Sound Tracker Pro (*.stp);
 16) компилированные модули SQ-Tracker (*.sqt);
 17) модули 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 для Windows и Linux), на
компьютерах ZX Spectrum в любом плеере, поддерживающем PT3.xx файлы, (желательно
тот, который умеет анализировать номер версии в заголовке), такие как Little
Viewer, Quick Commander, Real Commander, BestView, Pusher, ZXAmp, The Viewer и
другие. Вы также можете встроить звук в свои программы, воспользовавшись
исходниками 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
(в последних двух плеер идёт в виде отдельного файла). В случае сохранения для
ZX в режиме Turbo-Sound, экспортируется специальный TS-плеер.

Vortex Tracker II можно считать PC-версией редактора 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.ru.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.

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

Vortex Tracker II после запуска открывает указанные в командной строке модули,
что можно использовать для настройки функции редактирования в файловых оболочках
типа Far Manager или для настройки файловых ассоциаций.

Пути к последним открытым или сохранённым модулям, паттернам, сэмплам и
орнаментам запоминаются. При первом запуске таковыми становятся папки Modules
(или Modules for test), Patterns, Samples или Ornaments, если они обнаружены в
каталоге с программой.

С историей создания проекта можно ознакомиться в файле History.ru.txt.

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

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

1. Во время сохранения удаляются не использованные паттерны (отсутствующие в
списке позиций), в результате чего номера паттернов могут измениться, также
удаляются неиспользуемые сэмплы и орнаменты (без перенумерации). Чтобы избежать
потери временно (возможно, случайно) неиспользуемого паттерна, сэмпла или
орнамента, сохраняйте промежуточные редакции в текстовом формате.
2. Для PSM и SQT-файлов используется табличка #1 со второй ноты, что приводит к
потере нот #5E и #5F оригинального модуля (они превращаются в B-8).
3. Некоторые настройки нельзя изменить во время проигрывания, или когда
устройство вывода звука занято (во время редактирования). Нажмите кнопку
"Остановить проигрывание/Освободить устройство".
4. Некоторые настройки вступают в силу через промежуток времени, равный
суммарной длине буферов.
5. Некоторые настройки вступают в силу сразу, но с небольшим щелчком, связанным
с временной приостановкой проигрывания.
6. Проигрывание в режиме "Зациклить окна" не переходит к следующему модулю, если
открыто какое-либо модальное окно (например, "Настройки" или "О Vortex Tracker
II").
7. Настройка панели инструментов главного окна из всплывающего меню скрывает
элементы как задумано, а вот возврат их обратно может произойти в неожиданном
месте. Помогает перезапуск приложения.
8. Из-за отказа от MDI при большом количестве открытых модулей на смену
раскладки каналов тратится заметное время. Это связано с тем, что перестановка
кнопок местами приводит к перебору всех элементов родительского окна.
9. Сами редактируемые модули окнами не являются, поэтому нет системной
оптимизации, как для дочерних окон MDI, а имитация MDI работает медленно, что
также особо заметно при большом количестве одновременно открытых модулей:
замедленная перерисовка при изменении размеров и положения элементов/модулей.

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

Вы можете переопределить горячие клавиши редактированием файла конфигурации или
в диалоге "Настройки".

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

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

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

1.1. Клавиши ввода нот ("Нотные клавиши"):

                          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+"Нотные клавиши" - ввод ноты на октаву выше текущей.

1.3. Shift+Ctrl+"Нотные клавиши" - ввод ноты на октаву ниже текущей (особенно
полезна в режиме Envelope as note для ввода нот октавы 0).

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

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

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

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

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

2.1. Вверх, Вниз, Влево, Вправо - управление курсором в четырех направлениях.

2.2. Alt+Вверх, Alt+Вниз - переместить курсор вверх или вниз на абсолютную
величину автошага.

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

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

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

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

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

2.8. F9-F12 - быстро переместиться в начало, первую, вторую и третью четверть.

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

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

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

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

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

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

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

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

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

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

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

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

4.4. Двойной щелчок по ненулевому сэмплу или орнаменту - переход к просмотру/
редактированию соответствующего сэмпла/орнамента.

5. Удаление

5.1. Забой - удаление текущей строки трека со сдвижкой.
                                                          
5.2. Ctrl+Забой, 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 - - транспонирование на октаву вверх и вниз
соответственно.

7.7. Для транспонирования на 3 или 5 полутонов вверх или вниз можно
воспользоваться всплывающим меню или задать клавиши в диалоге "Настройки".

7.8. Alt+Влево и Alt+Вправо - поменять местами текущий и левый/правый каналы.
Перед вызовом достаточно поставить курсор в один из каналов (если курсор в
колонке периодов огибающих или шума, считается что выбран крайний левый канал),
либо выделить диапазон строк. В первом случае переставятся местами ноты с
параметрами одной строки, во втором - выделенного диапазона строк.

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

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

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

9. Прочее

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

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

9.3. Ctrl+0..9 - быстрая установки величины автошага. Режим "Aвтошаг" при этом
также включается.

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

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

 Разделить паттерн. Перед её вызовом необходимо поставить курсор в нужную строку
 паттерна. В результате размер текущего паттерна уменьшится до этой строки и
 будет создан второй с оставшимися строками. Если разделённый паттерн не
 находился в списке позиций, то просто отобразится второй. В противном случае
 все встреченные в списке позиций экземпляры будут заменены на новые пары
 паттернов.

 Упаковать паттерн. Команда работает либо со строками, попавшими в область
 выделения, либо со всем паттерном, если выделения нет. Команда удаляет пустые
 строки и в оставшиеся расставляет (или обновляет) команды изменения скорости
 (Tempo) с таким расчётом, чтобы звучание ни этого паттерна, ни следующих за
 ним по списку позиций не изменилось. Для вычисления начальной скорости
 выбранного для сжатия участка, производится обратный поиск последней
 установленной до этого спец. команды изменения Tempo. Если её не оказалось в
 текущем паттерне, то просматриваются предыдущие по списку позиций паттерны.
 Если и в них не оказалось этой команды, либо если редактируется произвольный
 паттерн (то есть не совпадающий с текущей позицией списка проигрывания), то за
 начальную скорость принимается начальная скорость модуля.

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

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 - включить/выключить циклическое проигрывание среди всех
открытых окон. Если открыт только один модуль или играется паттерн, работает как
простое зацикливание.

1.8. Вращение колеса мыши регулирует громкость (работает, если курсор мыши не
наведён на элементы, также реагирующие на это вращение).

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

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

2.2. Ctrl+Alt+A - выбор раскладки каналов из заданного пользователем списка (по
умолчанию Mono, ABC, ACB или BAC). Прочие раскладки выбираются в диалоге
"Настройки", там же можно настроить и список.

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

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

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

3.3. Ctrl+T - вызов/закрытие инструмента "Управление треками".

3.4. Ctrl+Alt+T - вызов/закрытие инструмента "Глобальное транспонирование".

3.5. Ctrl+M - вызов/закрытие инструмента "Выключатели сэмплов". Можно
использовать для глушения отдельных сэмплов или посмотреть какие сэмплы не
используются в данном модуле (галочки не активны). Во время редактирования и при
переключении окон эта информация обновляется.

3.6. Вверх/Вниз в текстовых полях со стрелками - увеличение или уменьшение
значения на единицу.

3.7. PageUp/PageDown в текстовом поле длины паттерна - увеличение или уменьшение
значения на величину шага подсветки.

3.8. Ctrl+P - включить/выключить автоматическое заполнение параметров из
тестовой строки во время ввода ноты в редакторе паттерна.

3.9. Alt+цифры - установить соответствующий номер октавы в редакторе паттернов и
во всех тестовых строках одновременно.

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

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

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

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

4.4. Ctrl+Shift+F6, Ctrl+Shift+Tab - переход между окнами в обратном
направлении.

4.5. Ctrl+O, двойной щелчок по фону главного окна - вызов диалога открытия
файла.

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

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

4.8. Alt+Забой - отменить последнее изменение.

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

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

Клавиши можно переопределить (или задать, если нет по умолчанию) в диалоге
"Настройки". По умолчанию используются следующие:

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

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

3. Home - перейти к первой позиции.

4. End - если идет проигрывание, перейти к последней позиции, иначе - к первой
пустой ячейке.

5. Shift+управление курсором (пп. 2-4) - выделение диапазона ячеек.

6. Ctrl+A, Ctrl+Num5 - выделить все позиции.

7. Правая кнопка мыши - выделить позицию (если щелчок не по выделенным ячейкам)
и вызвать меню с командами.

8. Ctrl+C - копирование выделенного диапазона ячеек в буфер обмена.

9. Ctrl+X - вырезание в буфер обмена (копирование с последующим выполнением
команды "Удалить позиции").

10. Ctrl+V - вставка из буфера обмена скопированного или вырезанного фрагмента.
В месте вставки позиции раздвинутся. Если вставка осуществляется за пределы
заполненных ячеек, то список просто дополнится с конца.

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

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

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

14. Delete - команда "Удалить позиции". Удаляет выделенные позиции со сдвижкой.

15. Insert - команда "Добавить позиции". Создаются новые паттерны в необходимом
количестве. Если выделена одна или более непустых позиций, то производится
вставка такого же количества паттернов сразу после выделения с раздвижкой. Если
выделена пустая ячейка, то новыми паттернами заполняется она и предшествующие ей
пустые ячейки. Длина новых паттернов соответствуют длине паттерна перед местом
добавления новых позиций, или 64, если список был пуст.

16. Команда "Дублировать позиции". Создаёт соответствующее выделенному
количество позиций с раздвижкой с теми же паттернами сразу после выделенных.

17. Команда "Клонировать позиции". Работает аналогично команде "Дублировать
позиции", но заполняет позиции предварительно созданными паттернами с тем же
содержимым, что и исходные.

18. Команда  "Сменить размер паттернов...". Предназначена для группового
изменения размера паттернов: введённый в диалоге запроса размер будет применён
ко всем паттернам в выделенных позициях.

19. Команда "Перенумеровать паттерны". Присваивает паттернам новые номера в
порядке использования в списке позиций.

 Клавиши в поле редактора сэмплов
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Вверх, Вниз, Влево, Вправо, PageUp, PageDown, Home, End, Ctrl+Вправо,
Ctrl+Влево, Ctrl+PageUp, Ctrl+PageDown, Ctrl+Home, Ctrl+End - навигация по
редактируемому сэмплу.

Shift+описанные выше клавиши навигации - выделение области.

В любом месте редактируемого сэмпла:

T - включить/выключить маску тона
N - включить/выключить маску шума
M - включить/выключить маску огибающих
` - перейти к/от тестовой строки.

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

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

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

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

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

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

В режиме отображения отклонений тона в виде нот относительно базовой, которая
задаётся в строке теста сэмпла (переключение режимов производится кнопкой C#),
редактирование колонки отклонений тона может производиться с помощью клавиш
ввода нот/октавы, а также MIDI-клавиатуры, в последнем случае курсор можно
располагать не только в поле ввода отклонения тона.

По умолчанию щелчок правой кнопкой мыши (ПКМ) в поле визуализации амплитуды
(знаки '*') - выбор соответствующей амплитуды. В диалоге "Настройки" можно
переопределить этой действие на левую кнопку мыши (ЛКМ).

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

Щелчки средней кнопкой мыши (СКМ) по различным полям сэмпла - изменение значений
этих полей.

Щелчок ПКМ на выделении - вызов всплывающего меню.

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

Ctrl+C/Ctrl+X - скопировать/вырезать выделенный фрагмент в буфер обмена.

Ctrl+V - вставить из буфера обмена от позиции курсора или внутрь выделения.
Можно вставлять разнородные данные, например знаки или значения отклонения тона
можно вставить в знаки или значения отклонения шума/огибающих.

Если в буфере обмена находится фрагмент паттерна, то его также можно вставить в
сэмпл, при этом производится рендеринг - генерирование нового сэмпла, который
будет звучать как исходный фрагмент паттерна.

Delete - очистить выделенную область или то, что под курсором.

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

Insert, Ctrl+I - вставка пустой строки сэмпла с раздвижкой.

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

Вверх, Вниз, Влево, Вправо, PageUp, PageDown, Home, End, Ctrl+PageUp,
Ctrl+PageDown, Ctrl+Home, Ctrl+End - навигация по редактируемому орнаменту.

Shift+описанные выше клавиши навигации - выделение области.

` - перейти к/от тестовой строки.

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

Пробел - смена знака числа

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

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

В режиме отображения отклонений тона в виде нот относительно базовой, которая
задаётся в строке теста орнамента (переключение режимов производится кнопкой
C#), ввод отклонений производится клавишами ввода нот/октавы или с
MIDI-клавиатуры.

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

Щелчок ПКМ на выделении - вызов всплывающего меню.

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

Ctrl+C/Ctrl+X - скопировать/вырезать выделенный фрагмент в буфер обмена.

Ctrl+V - вставить из буфера обмена от позиции курсора или внутрь выделения.

Delete - очистить выделенную область или то, что под курсором.

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

Insert, Ctrl+I - вставка нулевого тика орнамента с раздвижкой.

 Плагин для редактирования орнамента
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

 Строки тестирования на вкладках паттернов, сэмплов и орнаментов
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

На вкладках паттернов, сэмплов и орнаментов присутствуют тестовые строки для
быстрой проверки звучания заданной комбинации параметров (нота, сэмпл, огибающие
и т.д.).

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

На вкладке паттернов над строкой тестирования можно обнаружить группу кнопок
"Авто параметры", с помощью которой можно управлять режимом автоматического
заполнения параметров при вводе ноты в полях редактора паттерна. Например, если
нажаты кнопки S и C (сэмпл и спец. команда), то при вводе ноты в каком-либо
канале рядом автоматически пропишутся номер сэмпла и спец. команда с её
параметрами.

На вкладке сэмплов рядом с тестовой строкой находится кнопка "Делать пересчёт
сдвигов тона в сэмпле при смене базовой ноты". Если она нажата, то при каждой
смене ноты в строке теста сэмпла будет производиться пересчёт смещений тона
таким образом, чтобы итоговая высота сэмпла относительно этой новой ноты не
изменилась. В режиме "смещения как ноты" результат неизмененности высоты нот
можно не только услышать, но и увидеть.

 Прочие элементы для редактирования
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

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

На вкладке сэмплов и орнаментов шаг подсветки определяется начальной скоростью
проигрывания модулей. Если подсветка не уместна, её можно отключить в настройках
(по умолчанию выключена).

На вкладке сэмплов нажатием на кнопку "Разв" можно развернуть накопления в
сэмпле. После нажатия сформируется новый сэмпл, длина которого может отличаться
от исходного, и если внутри последнего развернутого цикла все строки звучат
одинаково, то он уменьшается до одной строки (обычно после разворачивания
амплитудных накоплений в ней тишина). Алгоритм может закончить работу досрочно,
если новый сэмпл достиг максимально допустимой в PT3 длины. К сожалению, при
разворачивании слайдов огибающей алгоритм быстро упирается в ограничения формата
PT3 (от -16 до +15), в то время как слайды тона и шума разворачиваются
полностью.

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

 Использование MIDI-клавиатуры для ввода нот и их громкостей
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Управление MIDI-клавиатурой осуществляется кнопками панели инструментов.

Кнопкой MIDI (горячая клавиша по умолчанию Ctrl+Alt+M) можно перебирать
подключённые клавиатуры. Первая предложенная системой (или запомненная ранее в
файле конфигурации) подключается автоматически. Данной кнопкой можно отключить
как уже подключённую клавиатуру, так и в целом режим ожидания подключения.
Информация о том, какая клавиатура подключена, а также, включён ли режим
ожидания, отображается в статусной строке внизу главного окна при наведении
курсора на данную кнопку.

Кнопка V предназначена для управления установкой громкости с MIDI-клавиатуры:
если она нажата, скорость нажатия клавиши будет преобразована в значения от 1 до
F колонки громкости трека или тестовой строки.

Текущая конфигурация MIDI (в том числе имя устройства) сохраняется в файл
настроек при закрытии приложения.

Если активны треки, то ввод нот/громкостей с MIDI-клавиатуры осуществляется в
них, если активна вкладка сэмплов или орнаментов, то ввод происходит в
соответствующие тестовые строки (или непосредственно в активный сэмпл/орнамент,
если включен режим отображения отклонений тона в виде нот), в противном случае
эти данные вводятся в тестовую строку вкладки паттернов. По умолчанию ввод
громкостей отключён (вводятся только ноты). Курсор не обязательно должен
находиться в поле ввода ноты, достаточно чтобы он находился где-либо внутри
нужного канала или трека периода огибающей.

 Замечания по возможностям редакторов PT3 разных версий
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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 вниз и
вверх соответственно. Если вы не планируете использовать эту возможность, то
использовать этот режим нет смысла.

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

Данная версия сохраняет три типа заголовка в конечном 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 игнорироваться и т.д.).

Использование автошага
----------------------

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

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

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

Также можно использовать клавиши Alt+Вверх и Alt+Вниз для перемещения курсора
вверх или вниз на абсолютную величину автошага (работает даже при отключённом
автошаге).

Режим Turbo-Sound
-----------------

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

Для удобства редактирования двух модулей в режиме TS синхронизируются треки двух
окон как во время проигрывания, так и во время редактирования (как положение
курсора в треках, так и их отображение), автоматически переключается
редактируемое окно при достижении курсора крайней правой или левой позиции в
треках, при сохранении любого из модулей 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.

Меню Файл->Настройки...
-----------------------

Вызывает диалог "Настройки" (можно также вызвать, нажав на соответствующую
кнопку на панели). Все настройки применяются сразу, однако в любой момент можно
нажать на кнопку Отменить (или просто закрыть окно) и вернуться к настройкам,
которые были до вызова диалога "Настройки". Для того, чтобы настройки
запомнились, нажмите кнопку OK.

Вкладка "Оформление"

Щёлкая по полям группы "Элементы оформления", можно настроить шрифты и цвета
элементов редактируемого паттерна, сэмпла, орнамента или строк их тестирования
(ориентируйтесь на подсказки, появляющиеся при наведении курсора). Диалог выбора
шрифта отображает только моноширинные шрифты типа Courier, Courier New,
Fyxedsys, Lucida Console. Благодаря тому, что все символы в таких шрифтах имеют
одинаковый размер по ширине, становится возможной скоростная печать треков и
простой расчёт координат для отображения курсора и выделения.

Здесь же можно настроить начальные: количество видимых строк трека (от 3 до 64);
номер таблицы нот; величину автошага; десятичную/шестнадцатеричную систему для
отображения колонок номеров строк и периодов шума в паттерне; а также режимы
отображения отклонений тона (в сэмпле и орнаменте) и периода огибающей (в
треках) как ноты. В дальнейшем эти параметры можно менять у каждого окна
индивидуально, при этом при изменении размеров окна количество строк в треках,
сэмплах и орнаментах синхронно пересчитывается.

Вкладка "Эмуляция чипа"

Выберите тип микросхемы, частоту чипа, частоту прерываний, расположение каналов
при проигрывании (в т.ч. визуальное при редактировании) и один из двух
алгоритмов передискретизации. Некоторые настройки вступают в силу сразу,
остальные - по истечении указанного внизу вкладки времени. Некоторые эффекты
играются правильно только при включённом фильтре (группа Resampler), но загрузка
процессора выше. По умолчанию VT настроен на оптимальное качество звучания, но
если ваша система не справляется (появляются паузы в звучании), включите
усреднение (Averager), либо уменьшите разрядность, а если надо и частоту сэмплов
на вкладке "Цифровой звук".

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

Вкладка "Совместимость"

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

 Уровень возможностей

  - 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)'.

 Сохранить с заголовком

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

Вкладка "Цифровой звук"

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

 Частота сэмплов

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

 Бит на сэмпл

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

 Каналы

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

 Устройство

  По умолчанию 'Wave mapper'.

 Буферы

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

Вкладка "Клавиши"

Можно переопределить почти все горячие клавиши, либо задать их для тех действий,
для которых они не были определены по умолчанию. Также здесь практически любой
клавише на клавиатуре можно задать какую-либо ноту или выбор номера октавы.
Выберите нужную категорию, затем нужное действие в таблице и нажмите "Задать
клавиши" или "Удалить клавиши".

Сразу после захвата нового сочетания производится проверка конфликтов (некоторые
нотные клавиши или их сочетания с Shift или Ctrl+Shift могут быть заняты под
другие горячие клавиши, также как некоторые глобальные сочетания могут
пересечься с локальными). Если совпадения блокирующие, диалог подтверждения
предлагает их удалить, в противном случае можно просто проигнорировать
совпадение и всё равно добавить.

В любой момент можно восстановить значения по умолчанию (кнопка "По умолчанию
все") или нажать глобальную кнопку "Отменить" для отмены изменений и закрытия
окна "Настройки".

Вкладка "Другие"

 Приоритет приложения

  Позволяет установить приоритет приложения - нормальный или повышенный.

 Язык (language)

  Выбор языка интерфейса приложения. По умолчанию опция "auto/en" выбирает язык
  системы. Можно ввести <id> вашего языка или выбрать из списка. В папке
  languages можно найти файлы перевода стандартных сообщений на 23 языка. Также
  в этой папке можно найти шаблон VT.pot, который можно использовать для
  перевода интерфейса на необходимый вам язык. Его достаточно переименовать в
  файл вида "VT.<id>.po", и отредактировать в текстовом редакторе или в
  каком-либо редакторе PO-файлов. Если хотите, чтобы ваш перевод попал в
  дистрибутив Vortex Tracker II, пришлите его автору Vortex Tracker II.

 Пересчитывать периоды огибающей при смене таблицы нот

  Данная опция разрешает автоматический пересчёт периодов огибающей при смене
  номера таблицы нот. Огибающие пересчитываются по таблицам преобразования
  периодов в ноты и обратно (используются также в режиме отображения периодов
  огибающей как нот), поэтому если период больше #00FF или ниже C-0, либо
  используется не с циклическим типом огибающей (8, A, C или E), его пересчёт не
  производится.

 Принимать сообщения MIDI в фоне

  Разрешает работу с MIDI-клавиатурой в фоновом режиме (то есть тогда, когда
  приложение редактора не активно или минимизировано на панели задач, в
  последнем случае ввод из редактора паттерна переключается в тестовую строку).
  Опция будет полезна при использовании виртуальных MIDI-клавиатур, которые
  отбирают фокус. Однако при этом несколько запущенных одновременно приложений
  Vortex Tracker II будут также одновременно обрабатывать одни и те же сообщения
  MIDI-клавиатуры. По умолчанию опция выключена.

 Показывать всплывающую подсказку в редакторе треков/сэмпла/орнамента

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

 Подсвечивать строки в редакторах сэмпла и орнамента

  Включить подсветку строк в редакторе орнаментов и сэмплов с шагом скорости
  проигрывания.

 Не спрашивать подтверждения для неотменяемых операций

  Отключить предупреждения о невозможности отменить операцию. Такие операции как
  транспонирование всего модуля или Swap Channels в Tracks Manager будут
  производиться без дополнительного подтверждения со стороны пользователя. Чтобы
  не ошибиться, следите за подсказками, которые специально добавлены для таких
  случаев (как в строке статуса, так и всплывающие).

 Рисовать амплитуду левой кнопкой мыши (ЛКМ)

  По умолчанию амплитуда рисуется в правой области редактора сэмпла правой
  кнопкой мыши (чтобы исключить случайное редактирование при работе с левой
  областью).

Управление треками
------------------

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

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

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

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

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

Операции "Переместить" и "Обменять" невозможно отменить через Undo, поэтому
перед их выполнением пользователю показывается соответствующий запрос. Его можно
отключить в настройках. Чтобы не ошибиться, следите за подсказками (как в строке
статуса, так и всплывающими).

Глобальное транспонирование
---------------------------

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

Операцию транспонирования всего модуля невозможно отменить через Undo, поэтому
по аналогии с "Управлением треками" появляется запрос-предупреждение, который
можно отключить в настройках.

Меню Файл->Сохранить и Файл->Сохранить как...
---------------------------------------------

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

Меню Файл->Экспорт->Сохранить в SNDH (Atari ST)
-----------------------------------------------

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

Меню Файл->Экспорт->Сохранить с плеером ZX Spectrum
---------------------------------------------------

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

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

Меню Файл->Экспорт->Конвертировать в PSG...
-------------------------------------------

Позволяет конвертировать модуль в поток регистров в формате PSG. Для обычных
модулей PSG-файлы такие же, как и при конвертировании в Ay_Emul, для TS-модулей
сохраняются 2 PSG-файла (этого Ay_Emul пока не умеет). В отличие от Ay_Emul, при
конвертировании в PSG проигрывание не останавливается. Также игнорируются кнопки
глушения T/N/E и галочки окошка "Выключатели сэмплов".

Меню Файл->Экспорт->Конвертировать в WAV...
-------------------------------------------

Можно сгенерировать WAV-файл с параметрами, заданными в диалоге "Настройки" для
эмуляции и цифрового звука. Процесс конвертирования можно остановить клавишей
Esc или нажатием на кнопку отмены рядом с появляющейся полоской прогресса. Во
время конвертирования текущее проигрывание не останавливается, а также частично
сохранён функционал приложения (работает визуализация, подсказки, регулирование
громкости колесом мыши, переход к проигрыванию следующего окна и т.п.).

Файл конфигурации
-----------------

При старте Vortex Tracker II ищет файл конфигурации VT.cfg сначала в папке с
программой, а если не находит, в папке AppData текущего пользователя (обычно
C:\Users\<имя пользователя>\AppData\Local\Vortex Tracker II), и, при его
отсутствии, автоматически создаёт по второму пути с настройками по умолчанию.

Файл VT.cfg можно перенести в папку с программой (или создать там пустой), если
по какой-то причине не хотите, чтобы он находился в AppData. Также его можно
защитить от изменений (например, установкой атрибута Read Only или
редактированием прав доступа в файловой системе), в этом случае произведённые в
редакторе изменения в настройках не будут сохраняться на выходе из программы.

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

Спасибо:

- Роману Щербакову (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'у за пожелания по проекту.
- Nik-O за пожелания по проекту.
- Ивану Пирогу и команде Vortex Tracker II v2.6 за идеи и коллекцию
инструментов.
- Александру Бульбе за иконку закрытия всех окон, код некоторых функций и идеи.
- Benjamin'у Gerard'у за опубликованный в unice68_pack.c оригинальный исходник
упаковщика SNDH-файлов PACK-ICE на ассемблере MC68000.
- Lee Bee за пожелания по проекту.

Отдельное спасибо людям, писавшим или пишущим музыку в Vortex Tracker II:
4Mat
AER
Akasaka
Alex Rostov
Alexander Boolba
Alone Coder
And
ant1
Aprisobal
Asi
Astamur Panov
AZ
Bey Elder
Beyker
Biozoom
Black Fox
Bloobop
Bonysoft
buzzkej
Byteman
casecoma
Cat-Man
Ch41ns4w
Chip Champion
Cj Echo
Crazy Pixel
Creator
Darkman007
DDp
dead8088
Deetsay
Destr
Dippy
Dj Denson
Dj Kot
Dj Max
DoctorGentleman
EA
Elfh
Ellvis
emook
Esau
Factor6
Firestarter
Frank Triggs
Fubukimaru
funute
Garvalf
Gasman
Gibson
gotoandplay
gyms
isihlabathi
Jangler
Jass
Jerrs
Johnny McGibbitts
Joker
JosSs
Joyrex
jrlepage
Jumperror
Justinas
Kakos_nonos
Karbofos
kas29
Key-Jee
kfaraday
Klim
Kriss
kubikami
Kulor
KUVO
Kyv
Lamer Pinky
Lee Bee
Lee du-Caine aka dC Audio
LiSU
m9m
MAD_DEL
MadMax of KNA
Makinavaja
mborik
Megus
Mic of MPS
Misha Pertsovsky
Mmcm
Mofobaru
Molodcov Alexander
MovieMovies1
neppie
nikhotmsk
Nik-O
Nooly
NVitia
OldFartGamer
Orson
Pak-Zer0
Pator
petet
Pigu
PSB
Quiet
rainwarrior
REAKTIVZ
Riskej
Robyn
Rolemusic
Rubedo
ruguevara
Ryurik
Samanasuke
Sarek
Sayk
Scalesmann
Sentinel
Sharik
Shiru Otaku
Siril
Splinter
Stiffler
Striker of Megasoft
Sultan Paraiso
TAD
tayle
th4 D34D
Tobikomi
Tosha
TristEndo
usagi
V0yager
Vadimatorik
Vedem
Voxel
Wally
wbc
X-Agon
Yerzmyey
z00m
Z23
Ziutek
ZJ Alex Clap
Zlew
Znahar
ZoundMakkr
zxastafiew
и Вы ;)

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

!!! Никогда не перекомпилируйте 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 - звук исказится.

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

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

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

24 августа 2002 года - 4 июля 2024 года
