Vortex Tracker II v1.0 beta 28
(c)2000-2023 С.В.Бульба
Автор Сергей Бульба
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.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.

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

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

20.10.2023:

1. На панель инструментов добавлены кнопки управления MIDI-клавиатурой. Кнопкой
   MIDI можно перебирать подключённые клавиатуры. По умолчанию первая
   предложенная системой подключается автоматически. Данной кнопкой можно
   отключить как уже подключённую клавиатуру, так и в целом режим ожидания
   подключения (идея использовать режим ожидания подсмотрена в VT v2.6).
   Информация о том, какая клавиатура подключена, а также, включён ли режим
   ожидания, отображается в статусной строке внизу главного окна при наведении
   курсора на данную кнопку. Кнопка V предназначена для управления установкой
   громкости с MIDI-клавиатуры: если она нажата, скорость нажатия клавиши будет
   преобразована в значения от 1 до F колонки громкости трека или тестовой
   строки. Текущая конфигурация MIDI (в том числе имя устройства) сохраняется в
   файл настроек при закрытии приложения. Операционная система Windows
   предоставляет возможность работы с устройствами MIDI штатными средствами,
   поэтому никаких сторонних библиотек для поддержки MIDI-клавиатур не
   потребовалось.

21.10.2023:

2. Добавлен ввод с MIDI-клавиатуры. Если активны треки, то ввод нот/громкостей
   осуществляется в них, если активна вкладка сэмплов или орнаментов, то ввод
   происходит в соответствующие тестовые строки, в противном случае эти данные
   вводятся в тестовую строку вкладки паттернов. По умолчанию ввод громкостей
   отключён (вводятся только ноты). Курсор не обязательно должен находиться в
   поле ввода ноты, достаточно чтобы он находился где-либо внутри нужного
   канала или трека периода огибающей. Если окно модуля свёрнуто, ввод с MIDI-
   клавиатуры продолжается, но только в одну из тестовых строк (чтобы исключить
   случайное редактирование паттерна).
3. В Options добавлена настройка горячих клавиш для выбора MIDI-клавиатуры (по
   умолчанию Ctrl+Alt+M) и для включения установки громкости ноты с MIDI-
   клавиатуры (по умолчанию не задано).
4. В Options на вкладку Other добавлена настройка возможности работы с MIDI-
   клавиатурой в фоновом режиме (то есть тогда, когда приложение редактора не
   активно или минимизировано на панели задач, в последнем случае ввод из
   редактора паттерна переключается в тестовую строку). Опция будет полезна при
   использовании виртуальных MIDI-клавиатур, которые отбирают фокус. Однако при
   этом несколько запущенных одновременно приложений Vortex Tracker II будут
   также одновременно обрабатывать одни и те же сообщения MIDI-клавиатуры. По
   умолчанию опция выключена.
5. Delphi->Lazarus fix: после переключения вкладки редактируемого модуля,
   клавиатурный фокус мог остаться на каком-либо элементе только что скрытой
   вкладки.

22.10.2023:

6. По просьбе Дмитрия Быстрова на вкладку Samples добавлена кнопка Unroll для
   разворачивания накоплений в сэмпле. После нажатия сформируется новый сэмпл,
   длина которого может отличаться от исходного, и если внутри последнего
   развернутого цикла все строки звучат одинаково, то он уменьшается до одной
   строки (обычно после разворачивания амплитудных накоплений в ней тишина).
   Алгоритм может закончить работу досрочно, если новый сэмпл достиг
   максимально допустимой в PT3 длины. Функционал схож с одним из режимов
   Unloop, реализованным в VT v2.6, но там длина нового сэмпла не
   устанавливается автоматически, а определяется пользователем в диалоге.
   К сожалению, при разворачивании слайдов огибающей алгоритм быстро упирается
   в ограничения формата PT3 (от -16 до +15), в то время как слайды тона и шума
   разворачиваются полностью.

23.10.2023:

7. Улучшена работа на системах без устройства звука (например, работа с
   удалённым рабочим столом по RDP, в настройках которого отключён звук). До
   этого любое редактирование вызывало диалог об ошибке и пользователю каждый
   раз приходилось нажимать одну из его кнопок, чтобы продолжить (при этом
   соседняя кнопка закрывала приложение). Теперь во время редактирования треков
   и работы с тестовой строкой ошибки инициализации звука игнорируются
   автоматически и незаметно для пользователя. При явной попытке начать
   проигрывание (например, нажатием кнопки Play) информация о произошедшей
   ошибке не скрывается, но в диалоге оставлена только одна кнопка OK.

24.10.2023:

8. Пересчёт периодов огибающей при смене номера таблицы нот теперь заносится в
   список Undo, поэтому соответствующий диалог-предупреждение убран. Все
   изменения, вызванные сменой номера таблицы, группируются для возможности
   отмены в один клик.
9. При Undo/Redo группы изменений, все вычисления, связанные с перерисовкой (в
   том числе, вычисление положения курсора и необходимости фокусировки) теперь
   производятся только для первого изменения в группе. Как результат,
   пользователь после Undo/Redo видит курсор в том месте, где произошло первое
   изменение, то есть там, где он интуитивно и ожидается.

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

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

1. Во время сохранения удаляются не использованные паттерны (отсутствующие
в Position List), в результате чего номера паттернов могут измениться, также
удаляются неиспользуемые сэмплы и орнаменты (без перенумерации). Чтобы избежать
потери временно (возможно, случайно) неиспользуемого паттерна, сэмпла или
орнамента, сохраняйте промежуточные редакции в текстовом формате.
2. Для PSM и SQT-файлов используется табличка #1 со второй ноты, что приводит к
потере нот #5E и #5F оригинального модуля (они превращаются в B-8).
3. Некоторые настройки нельзя изменить во время проигрывания, или когда
устройство вывода звука занято (во время редактирования). Нажмите кнопку
'Stop playing/Free device'.
4. Некоторые настройки вступают в силу через промежуток времени, равный
суммарной длине буферов.
5. Некоторые настройки вступают в силу сразу, но с небольшим щелчком, связанным
с временной приостановкой проигрывания.
6. Реализация поддержки MDI-приложений в Lazarus появилась относительно недавно
и имеет множество недостатков, и только часть удалось замаскировать. Так при
разворачивании дочернего окна на весь экран, его иконка не отображается в левом
верхнем углу, хотя при нажатии мышкой в этой области вызывается соответствующее
всплывающее меню; после сворачивания и разворачивания дочерних окон меняется их
размер; проигрывание в режиме Loop all не переходит к следующему модулю, если
открыто какое-либо модальное окно (например, Options или About Vortex Tracker
II).

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

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

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

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

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 - ввод ноты на октаву ниже текущей (особенно полезна в
режиме Envelope as note для ввода нот октавы 0).

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

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

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.

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

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

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

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

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

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

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

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 - навигация по редактируемому
                                                  сэмплу.
Shift+описанные выше клавиши навигации - выделение области.

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

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

В колонках масок '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+'-' ('_') - выключение в соответствующей колонке накопления '_'

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Если активны треки, то ввод нот/громкостей с 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 игнорироваться и т.д.).

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

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

Вкладка 'Design'

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

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

Вкладка 'Chip emulation'

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

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

Вкладка '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 руководствуется указанным выше правилом (см. 'Типы
 заголовков').

Вкладка 'Digital Sound'

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

 Sample rate

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

 Bit rate

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

 Channels

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

 Device

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

 Buffers

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

Вкладка 'Keys'

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

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

В любой момент можно восстановить значения по умолчанию (кнопка Default for
all) или нажать глобальную кнопку Cancel для отмены изменений и закрытия окна
Options.

Вкладка 'Other'

 Application priority

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

 Recalculate envelope period on note table change

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

 Accept MIDI messages in background

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

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

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

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

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

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

Также, можно транспонировать любую из локаций на указанное количество полутонов
в группе Transposition (положительное число полутонов - вверх, а отрицательное -
вниз). Если в группе Area отмечена дорожка огибающих, она также будет
транспонирована (транспонируются только те периоды огибающей, которые
распознаны как ноты в таблицах преобразования, см. пояснение к опции
Recalculate envelope period on note table change окна Options).

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, таблички нот
и громкости упакованы методом Ивана Рощина. Размер плеера примерно 9 кб, адрес
загрузки не фиксирован. Перед сохранением появляется запрос на ввод года
создания модуля, который можно не вводить, в этом же диалоге можно отключить
или включить возможность упаковки получаемого SNDH PACKICE'ом. 

Меню 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.

Меню Files->Exports->Convert to PSG...
--------------------------------------

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

Меню Files->Exports->Convert to WAV...
--------------------------------------

Можно сгенерировать WAV-файл с параметрами, заданными в окне Options для
эмуляции и цифрового звука. Процесс конвертирования можно остановить клавишей
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.

Отдельное спасибо людям, писавшим или пишущим музыку в 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 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
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 года - 24 октября 2023 года
