Vortex Tracker II v1.0 beta 10

19.12.2004:

1. Встроен новый Vortex Tracker II v1.0 PT3 player for ZX Spectrum Release 6. За
   счет оптимизации он стал более компактным и быстрым (спасибо Ивану Рощину,
   Андрею Богдановичу и Диме Быстрову за советы и помощь).

02.01.2005:

2. Максимальная длина паттерна теперь 100 строк. Это совместимо со всеми
   плеерами как на ZX Spectrum, так и на PC и Atari ST. Но не пытайтесь
   загружать такие треки в редактор PT3 на ZX - загубите трек (специальное
   замечание для организаторов пати).

03.01.2005:

3. При включенном автошаге выделялась область. Исправлено.
4. Шаг подсветки линий треков теперь можно менять (специально для Key-Jee).
   При включенном Auto автоматически выбирается шаг 3,4 или 5 в зависимости
   от длины паттерна. Предложения по усовершенствованию этой функции еще
   принимаются ;)

04.01.2005:

5. Добавлена проверка на размер модуля при компиляции формата PT3. Если размер
   модуля превысит 65536 байт, выдается сообщение об ошибке. Сохраните модуль
   в текстовом формате, а потом думайте, как обойти это ограничение. Самый
   простой вариант предложил Alone Coder - разбить модуль на части, а потом
   проиграть полученные несколько модулей друг за другом. В VT II для этого
   достаточно загрузить один и тот же модуль в несколько окон одновременно,
   убрать лишнее и сохранить под другими именами.
6. При экспорте сделана проверка на превышение размера блока 255 секторов (для
   hobeta) и суммарного максимального размер 65536 при сохранении с плеером.

Vortex Tracker II v1.0 beta 11

23.04.2005:

1. Добавлена поддержка модулей Amadeus (Fuxoft AY Language). Поддержаны как FXM,
так и ZXAYAMAD форматы. Для большинства модулей потребуется ручная доработка,
но даже без нее получаемый PT3 звучит приемлeмо.

24.04.2005:

2. Память под паттерны/сэмплы/орнаменты теперь выделяется при первом
   редактировании и далее остается статичной, то есть при уменьшении длины
   значения неиспользованных строк не теряются и при обратном увеличении длины
   восстанавливаются.
3. Исправлена ошибка: сбой по F7/F8 на чистом (дефолтовом) паттерне.
4. Так как память под паттерны/сэмплы/орнаменты теперь статична, запрет на
   изменение их длины во время проигрывания снят.

26.04.2005:

5. Максимальный размер паттерна теперь ограничен 256 строками. Нумерация строк
   паттерна все еще двухсимвольная, поэтому теперь шестнадцатеричная, если
   кому-то это не понравится, пишите.

1.05.2005:

6. Наконец-то сделаны Undo/Redo. Эта функция пока не прошла всестороннего
   тестирования, но это поправимо с вашей помощью ;) В данный момент во время
   редактирования запоминается любое изменение, однотипные изменения пока не
   группируются, насколько это расточительно с точки зрения памяти должны
   выявить тесты. Жду замечаний.

4.05.2005:

7. По просьбе HalfElf'а добавлена возможность указывать имена файлов в командной
   строке. Имена должны быть разделены пробелами, соответственно, имена файлов,
   содержащие пробелы, должны быть в двойных кавычках.

Vortex Tracker II v1.0 beta 12

29.05.2005:

1. Исправлена ошибка в импорте PT2: память перед импортом сэмпла не очищалась.

14.06.2005:

2. Исправлен коварный недочет: если при открытом диалоге сохранения, экспорта
   или менеджера в режиме циклического проигрывания автоматически менялось окно
   с модулем, то дальнейшие действия в данном диалоге производились уже с новым
   модулем (спасибо Karbofos'у за сообщение). Теперь манипуляции производятся
   исключительно с тем модулем, окно которого было активно в момент открытия
   диалога.

16.09.2005:

3. Добавлена поддержка PSC версий 1.00-1.03.

30.09.2005:

4. Добавлена поддержка компилированных модулей PSM (Pro Sound Maker by Denis
   Dratov), откомпилированных авторским компилятором.

Vortex Tracker II v1.0 beta 13

2.10.2005:

1. Исправлена ошибка в импорте PSM - позиция цикла всегда была равна нулю.

14.03.2006:

2. В добавление к Save As... реализована команда Save (спрашивает имя файла
   только для вновь созданного модуля).
3. Добавлены запросы на сохранение перед закрытием окна модуля или редактора.

17.03.2006:

4. Добавлена эмуляция второго чипа, на который можно выводить любой из открытых
   модулей. При нажатии на Play или Play from start модуль текущего окна будет
   выводиться на первую эмулируемую микросхему, а модуль, указанный в
   соответсвующем ниспадающем списке панели управления, - на вторую. Таким
   образом, теперь можно редактировать два стандартных PT3-модуля, которые
   в последствии можно проиграть одновременно через т.н. TurboSound (Turbo-AY)
   на реальном ZX (см. примеры в ZX-журнале InfoGuide #8).

18.03.2006:

5. Обновлен плеер PT3 для процессора MC68000 (экспорт в формат SNDH). Для сжатия
   табличек применен тот же метод, что и в плеере для Z80, в результате чего
   размер сократился примерно на 1 кб.
6. При экспорте в SNDH введена поддержка TAG'ов нового стандарта SNDH v2 и новое
   расширение имени файла (.SNDH).

19.03.2006:

7. В диалоге Options теперь можно ввести любую частоту AY в диапазоне от 1 до
   3.5 МГц, а также любую частоту прерываний в диапазоне от 1 до 2000 Гц.
8. Добавлена настройка цветов треков (см. диалог Options).

25.03.2006:

9. Исправлено не всегда верное перемещение курсора в треках по PageUp/PageDown.

Vortex Tracker II v1.0 beta 14

01.10.2006:

1. В режиме TS при смене редактируемого модуля его окно автоматически
   выбирается в списке окон (второй чип), что избавляет от необходимости делать
   это вручную (конечно, если Вы постоянно переключаете только два окна
   редактируемой TS-пары).
2. Во время проигрывания в режиме TS треки в окнах двух прослушиваемых модулей
   двигаются синхронно.
3. Во время редактирования модуля в режиме TS (первый чип) автоматически
   вычисляется позиция курсора в окне второго чипа (треки двух окон двигаются
   синхронно).
4. В режиме TS при перемещении курсора в редакторе треков за его пределы (влево
   или вправо) автоматически активизируется окно второго чипа.
5. Функция "Play from position" (F5) теперь работает с текущей строки паттерна.

03.10.2006:

6. Исправлена ошибка: при включенном AutoEnv автоматическое изменение периода
   огибающей не заносилось в список Undo (спасибо Karbofos'у за замечание).

Vortex Tracker II v1.0 beta 15

04.03.2007:

1. Полностью изменен дизайн окна редактируемого модуля для большего удобства
   редактирования в режиме TS (спасибо Znahar'ю за идеи и помощь).
2. Теперь редактировать треки можно при открытом окне 'Tracks Manager'. Оно
   остается поверх других окон и работает с текущим модулем, название которого
   теперь дублируется в заголовке основного окна (специально для Znahar'я).

08.03.2007:

3. Добавлена возможность транспонирования выделенной области трека, функция
   вызывается правой кнопкой мыши из всплывающего меню либо клавишами Num +,
   Num -, Ctrl+Num +, Ctrl+Num - (+-полутон/+-октава). Функция работает как с
   нотами, так и с периодами огибающих.
4. Исправлена ошибка: при использовании AutoStep не обновлялось текущее время.
5. При вставке из буфера обмена теперь можно использовать AutoStep (специально
   для TAD'а).
6. Исправлена ошибка: при попытке проиграть только что созданный (пустой) модуль
   в режиме TS происходил сбой (спасибо Znahar'ю за bug-report).
7. Теперь при всех операциях вставки/удаления/очистки строки паттерна/трека
   можно использовать AutoStep. Это может оказаться крайне полезным для быстрого
   изменения размера паттерна в 2 раза (спасибо TAD'у за идею).
8. Исправлена ошибка: при большинстве операций Undo/Redo не обновлялась
   статистика (продолжительность модуля).
9. Исправлена ошибка: после операций вставки/удаления/очистки строки
   паттерна/трека не обновлялась статистика.

10.03.2007:

10. Внедрен ряд предложений Znahar'я: окно Global Transposition можно не
    закрывать; щелчок правой кнопкой по панели инструментов вызывает меню
    (можно отключить ненужные группы кнопок); запоминание положения и размеров
    главного окна при закрытии.
11. Теперь если в Editor Controls для канала запретить огибающие, вместо них
    можно услышать тон и шум (конечно, если они включены в сэмпле, спасибо TAD
    за сообщение об ошибке и тестовый модуль).
12. В редакторе орнаментов теперь разрешено вводить значения +96 и -96. Это,
    конечно, излишество, но на ZX орнамент -96 используется довольно часто (хотя
    по действию аналогичен -95). Спасибо TAD за информацию.

Vortex Tracker II v1.0 beta 16

30.04.2007:

1. При экспорте используется новый выпуск плеера (Release 7), в котором для
   модулей PT 3.7 обрабатываются спецкоманды вида 1.xx и 2.xx.
2. Добавлен импорт PT 3.7 модулей, сохраненных в режиме TS (модуль автоматически
   преобразуется в два обычных PT3-модуля).

01.05.2007:

3. Во время проигрывания одного модуля, невозможно было ввести номер паттерна
   в другом (исправлено).
4. Исправлена ошибка загрузки всех типов: строчки за пределами длины паттерна не
   очищались (после увеличения длины паттерна мог появиться мусор в последних
   строчках).
5. Добавлен простой анализатор структуры PT v3.6, который позволяет предположить
   наличие в модуле TS-паттернов и выдает соответствующий запрос пользователю
   при загрузке PT3-файлов.
6. Добавлен режим PT 3.7, в котором возможно использование спецкоманд 1.xx и
   2.xx для однократного изменения частоты тона на величину xx вниз и вверх
   соответственно.
7. Выбор новой интерпретации спецкоманды 3xxx во всех диалогах заменен на выбор
   уровня возможностей редактора (Features level): ProTracker 3.5, Vortex
   Tracker II (PT 3.6) и ProTracker 3.7. Каждому уровню соответствует свой
   заголовок при сохраненнении модуля.
8. Произведен небольшой редизайн окна редактора паттернов (специально для Романа
   Кураева).
9. В Highlight step теперь можно вводить 0, что равносильно 256, что в свою
   очередь равносильно отсутствию подсветки (специально для TAD).

Vortex Tracker II v1.0 beta 17

13.05.2007:

1. При открытии TS-модуля теперь автоматически включается TS-режим, при этом,
   если открыты только два окна, они еще и выравниваются по горизонтали.
2. Добавлен загрузчик формата TS-модулей, который разработан для Ay_Emul 2.9
   beta 2.
3. Изменен способ указания второго модуля для режима TS, теперь каждому окну
   индивидуально можно сопоставить любое другое окно.
4. Произведен редизайн окна редактора (специально для Ch41ns4w).

18.05.2007:

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

     copy Module1.txt+Module2.txt Module.txt.

   При сохранении PT3 в конце склейки их двух модулей еще дописывается
   16-тибайтный идентификатор. Проще всего два PT3 модуля склеить, сохранив их
   из редактора, но можно и из командной строки:

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

   где ID - файл следующей структуры:
    +0 Str4 'PT3!'
    +4 Word размер файла Module1.pt3
    +6 Str4 'PT3!'
    +A Word размер файла Module2.pt3
    +C Str4 '02TS'
6. Диапазон AutoStep расширен до +-256.
7. Исправлена ошибка: при отключенном зацикливании если один из TS-модулей
   короче, то по его окончанию игрался первый тик из позиции цикла.
8. Исправлена ошибка: надписи на кнопках выбора чипа и раскладки каналов
   отображались не системным цветом текста окон, а просто черным (спасибо
   Роману Кураеву за багрепорт).

19.05.2007:

9. В дополнение к прежнему встроен новый Turbo-Sound плеер для ZX Spectrum,
   который и используется теперь во время экспорта TS-модулей. Не забывайте
   перед инициализацией TS-плеера загружать в DE адрес второго модуля.
10.Максимальный размер орнамента увеличен до 255, поскольку ограничение в 64
   тика было лишь в редакторе на ZX, a во всех известных плеерах такого
   ограничения нет. Большая длина улучшает и импорт орнаментов ASC и PSC.
11.Улучшен импорт PSC-файлов (в guitar.psc by Mast в паттернах обнулялись
   некоторые номера орнаментов).

Vortex Tracker II v1.0 beta 18

20.11.2008:

1. Перерисовка треков происходила непосредственно внутри нитки визуализации, как
   показала практика, в среде Delphi 7 это может приводить к сбоям. Сейчас
   отрисовка треков производится с помощью сообщений, то есть без гарантии
   равномерности, зато более стабильно.
2. Специально для TAD сделана возможность отключать звучание отдельных сэмплов.
   Реализовано это с помощью инструмента "Toggle samples" (Ctrl+M) в меню Play и
   на панели инструментов. Теперь можно послушать или отключить отдельные партии
   композиции (ударные, основную тему, эхо и т.д.).
3. По многочисленным просьбам в Track Manager номера каналов теперь буквенные
   (A, B и C). В поле для ввода можно как и раньше вводить номера от 0 до 2.

22.11.2008:

4. Специально для TAD сделана комбинация Shift+Backspace, по которой при
   включенном AutoStep можно сделать шаг в обратную сторону.
5. Найдена серьезная ошибка: при редактировании, если введенное значение
   совпадает с имеющимся, изменение в Undo не заносится, но номер строки и
   канала запоминается (если это первое изменение - в произвольном участке
   памяти, что могло привести к сбою, если не первое - в предыдущем действии,
   что тоже ничего хорошего не несет). Исправлено.

24.11.2008:

6. Специально для TAD'а при смене паттерна в текущем окне (например, щелчком по
   OrderList) в окна Tracks Manager и Global Transposition подставляется номер
   текущего паттерна. Дополнительно эта же процедура производится и при
   активации окна модуля.
7. Также по просьбе TAD'а сделана возможность в поле ввода размера паттерна
   нажимать клавиши PageUp и PageDown для изменения размера паттерна на величину
   Highlight Step.
8. В режиме Turbo Sound во время проигрывания теперь можно щелкать по
   OrderList'у ведомого окна для перезапуска проигрывания с выбранной позиции.
9. Для TAD: по клавишам / и * на цифровой клавиатуре теперь можно уменьшить/
   разредить паттерн в два раза (также доступно из всплывающего меню). После
   операции установите вручную новую скорость, если хотите, чтобы темп остался
   прежним.

25.11.2008:

10.Специально для Романа Кураева сделана функция Merge (Ctrl+Alt+V либо
   всплывающее меню), которая работает аналогично Paste за исключением того,
   что пустые значения из буфера обмена не затирают существующие непустые
   значения в паттерне. Функция удобна для реализации эха или вставки второй
   партии в промежутки первой.
11.Операция Copy в Tracks Manager заносилась в Undo, но при этом очищалась
   история предыдущих изменений (исправлено).
12.По просьбе TAD'а операции в Tracks Manager не заканчиваются по достижению
   длины паттерна, а продолжаются в рамках указанного количество строк до
   максимально возможной длины (256). Это позволяет пользователю увеличить длину
   паттерна уже после применения этой функции.
13.Исправлена старая ошибка экспорта на ZX, связанная с неверной релокацией
   плеера для некоторых адресов (например, B1DD для TS-плеера). Ошибка возникала
   тогда, когда младший байт адреса превышал определенное значение, после
   которого необходимо было корректировать старший байт адреса, что не делалось.

26.11.2008:

14.Опять для TAD'а в случае редактирования TS-пары, при изменении первого,
   кнопка Сохранить (а также запрос на сохранение при закрытии) становится
   доступной и при переключении на второй модуль (даже если в нем еще не было
   изменений).

Vortex Tracker II v1.0 beta 19

08.02.2009:

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

Vortex Tracker II v1.0 beta 20

16.06.2022:

1. Линейка ОС Windows 9x больше не поддерживается.
2. Bug fix: при сохранении не TS-модуля в hobeta без плеера длина файла в
   заголовке была на 16 байт больше, чем нужно.
3. Движок вывода цифрового звука как устаревший заменен на соответствующий
   движок из Ay_Emul 2.9 beta 31.
4. Движок эмуляции AY заменен на более совершенный движок из Ay_Emul 2.9 beta
   31 (разница должна быть слышна на нотах октавы 8).
5. Хранение настроек перенесено в файл VT.cfg (по аналогии с Ay_Emul по
   умолчанию создаётся в домашней папке текущего пользователя, но можно
   перенести или просто создать пустой в папке с программой).
6. Загрузчик STC теперь видит авторские строчки вида
   'KSA SOFTWARE COMPILATION OF ' и 'SOUND TRACKER COMPILATION OF ',
   вставленные по методике Ay_Emul.
7. Добавлен импорт некомпилированных модулей Sound Tracker 1.xx (файлы с
   расширением ST1).
8. Добавлен импорт компилированных модулей Sound Tracker 3 (файлы с расширением
   ST3).
9. Добавлен импорт некомпилированных модулей Sound Tracker Pro (файлы с
   расширением STF).
10.Добавлен импорт компилированных модулей ASC Sound Master 0 (файлы с
   расширением AS0).
11.Теперь окна TS-модуля при открытии выстраиваются рядом даже в случае, если
   есть уже открытые модули.
12.Чтобы исключить повторное проигрывание TS-модуля в режиме зацикливания всех
   окон добавлена соответствующая проверка.
13.Теперь перед стартом проигрывания TS-модуля на передний план выводится также
   и второе окно.

17.06.2022:

14.Загрузчик текстовых модулей немного расширен для загрузки vt2, vtp, vts и
   vto Ивана Пирога.

Vortex Tracker II v1.0 beta 21

21.06.2022:

1. Исправлена старая ошибка импорта FTC - длина сэмпла могла превысить
   максимально допустимую, а соответствующей проверки не было (см. модуль
   "Joe of DR\Binary Love 1.ftc").

22.06.2022:

2. Исправлена старая ошибка импорта FTC - музыкант мог указать значения шума в
   соответствующей спец. команде паттерна за пределами 5-битного диапазона
   00..1F, теперь при импорте берутся только нижние 5 бит.

23.06.2022:

3. Проигрыватель для Atari ST (экспорт в SNDH) теперь умеет корректно
   проигрывать PT 3.7 c командами 1.xx и 2.xx.
4. Добавлен импорт Fast Tracker 1.07 и 1.08, в зависимости от указанного в
   заголовке, выбирается таблица нот 1 или 2, а также для версий старше 1.07
   производится отдалённая имитация команды Retrig дублированием связки
   R11R12R13 в соответствующем канале.
5. Орнаменты при импорте FTC принудительно префиксировались командой выключения
   огибающих (если в этой строке уже не стоит команды включения/выключения
   огибающих). Теперь принудительное префиксирование делается только для
   нулевого (пустого) орнамента.

24.06.2022:

6. Убран обратный порядок загрузки при открытии более одного модуля за раз, так
   как это приводило к обратной нумерации модулей, единственный плюс этого
   метода был в том, что первые модули попадали на передний план, а последние -
   на задний.
7. Кнопки Tn, Ns и En на окне модуля переименованы в T, N и E соответственно.

02.07.2022:

8. Добавлен импорт модулей .AY типа ZXAYST11 (аналог ST1).
9. Delphi->Lazarus fix: в beta 20 отрисовщик треков не замечал смену шага
   подсветки линий трека в режиме "Auto".

Vortex Tracker II v1.0 beta 22

29.08.2022:

1. Delphi->Lazarus fix: начиная с beta 20 при загрузке любого модуля
   переменная, хранящая номер текущего паттерна, всегда инициализировалось
   нулевым значением, и если первая позиция загруженного модуля содержала не
   нулевой паттерн, то это приводило к неверной реакции на действия
   пользователя до явного выбора позиции с каким-либо не нулевым паттерном.

07.12.2022:

2. Исправлена ошибка в декодере паттерна PSM для команды F9 "Подпрограмма" (в
   родном компиляторе не реализована, поэтому это к сбою не приводило).

29.03.2023:

3. Количество видимых строк в редакторе орнамента теперь не фиксировано и
   меняется в зависимости от определённой в опциях высоты редактора паттерна
   (по аналогии с редактором сэмплов).
4. Курсор в редакторе сэмпла или орнамента теперь нельзя поставить в серую
   (т.е. не редактируемую) область.
5. Доработано управление курсором в редакторе сэмпла и орнамента (в том числе
   колесом мыши).
6. В редакторе сэмпла и орнамента добавлено всплывающее меню по нажатию на
   правую кнопку мыши, в связи с чем изменение знаков числовых полей и символов
   накопления переназначено на среднюю. Рисование амплитуды оставлено на правой
   кнопке (всплывающее меню в области рисования амплитуды не вызывается).
7. Клавишами управления курсора (при нажатом Shift) или мышкой можно выделять
   область в редакторе сэмпла и орнамента (по аналогии с редактором паттернов).
8. Доработано изменение номера, точки цикла и длины сэмпла/орнамента при вводе
   с клавиатуры (добавлены проверки выхода из диапазона, замена введенного
   мусора на предыдущее значение, завершение редактирования по клавише Enter).

01.04.2023:

9. Автошаг теперь включается также и во время редактирования или изменения
   величины автошага.

02.04.2023:

10.Delphi->Lazarus fix: при удалении позиции не возникало соответствующего
   события (отрисовка нового паттерна и перемещения выделения при удалении
   последней позиции).
11.Delphi->Lazarus fix: при смене номера паттерна/позиции не обновлялось
   соответствующее поле в окнах Tracks Manager и Global Transposition.
12.Delphi->Lazarus fix: в окне Tracks Manager не менялся номер канала при вводе
   его названия или номера в текстовом поле.
13.В окне Tracks Manager номер канала в Location 2 при нажатии с клавиатуры Up
   или Down мог меняться не правильно.
14.Delphi->Lazarus fix: из-за разницы в обработке и возникновении событий во
   время или после редактирования текстовых и числовых элементов управления, не
   всегда адекватно применялись или визуализировались некоторые изменения,
   произведена ревизия кода и адаптированы к поведению Lazarus соответствующие
   обработчики событий практически всех элементов TEdit, TUpDown и т.п.
15.В полях редактирования орнаментов и сэмплов добавлена очистка выделенной
   области, копирование и вырезание её в буфер обмена.
16.В Undo/Redo добавлена возможность отмены описанных в предыдущем пункте
   действий, а также произведена ревизия кода на предмет улучшения отображения
   курсора на момент соответствующего изменения.

03.04.2023:

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

04.04.2023:

19.По аналогии с орнаментами, реализована вставка из буфера обмена сэмплов.
   Скопировать и вставить можно различные части сэмпла (т.е. те, что попали в
   выделенную область). Например, можно скопировать часть столбца со знаками
   отклонений тона, и вставить в любой столбец, в котором допустимы такие знаки
   (даже в столбец со знаками отклонений шума/огибающей). Такие же вольности
   допустимы и с масками (например, маску тона можно скопировать в маску шума),
   и с числами (например можно скопировать столбец с нулевыми отклонениями тона
   и вставить его в столбец с амплитудами, чтобы обнулить их).
20.Исправлена однотипная ошибка транспозиции в импорте STP, STC, FTC и SQT (см.
   в предыдущих beta-версиях Vortex Tracker II конец паттерна 2 в канале A в
   Push\%nom-2a.stp и Push\%nom-2a.stc). Спасибо TAD за обнаружение глюка.

06.04.2023:

21.В строки тестирования сэмпла и орнамента добавлена возможность работы с
   буфером обмена (выделение, копирование, вставка и т.д.). Копировать и
   вставлять данные можно как из строк тестирования, так и из паттерна. По
   нажатию правой кнопки мыши в строке тестирования можно вызвать всплывающее
   меню.

07.04.2023:

22.Регулятор громкости переделан: теперь он не забирает фокус клавиатуры у
   других элементов управления, можно либо просто кликать левой кнопкой мышки,
   или перемещать её с уже нажатой.

08.04.2023:

23.Исправлена ошибка: при вызове Save As... заголовок редактируемого окна
   обновлялся, а главного - нет.

09.04.2023:

24.Исправлена ошибка: список устройств вывода цифрового звука дополнялся теми
   же строками при каждом вызове окна Options.

Vortex Tracker II v1.0 beta 23

25.04.2023:

1. Delphi->Lazarus fix: созданы задачи в bug tracker Lazarus по поводу
   неправильной работы MDI окон, а пока не исправили, соответствующие проблемы
   замаскированы (см. комментарии в коде).

26.04.2023:

2. Исправлена ошибка: в только что созданном модуле отображается нулевой
   непроинициализированный паттерн, а в процедуре ручной установки шага
   подсветки этого не учитывалось, в результате при попытке вручную его
   изменить происходил сбой.
3. Если загружена только одна TS-пара и выбран режим зацикливания "Loop all", 
   повтор мелодии происходил не с позиции цикла, а с начала (исправлено).
4. К управлению звуком каждого из каналов добавлена кнопка S (соло), которая
   при включении глушит все остальные каналы, кроме тех, у которых аналогичная
   кнопка также включена (идея позаимствована из проекта Vortex Tracker II v2.6
   Ивана Пирога).
5. Произведён редизайн вкладки паттернов с целью переноса кнопок управления
   звуком каждого канала в пространство над соответствующим каналом (как в VT
   II v2.6).
6. В окне Options в диалоге выбора шрифтов теперь отображаются только
   моноширинные шрифты, поэтому устрашающая красная надпись о необходимости
   выбора только моноширинных шрифтов убрана.

28.04.2023:

7. Добавлена возможность изменять размер окон редактируемых модулей по высоте,
   количество строк в редактируемом паттерне изменяется в зависимости от высоты
   окна (как в VT II v2.6).
8. Теперь окна TS-пар автоматически прицепляются друг к другу, если размера
   рабочей области достаточно по ширине для двух окон. Окно, открытое или
   созданное первым, отображается слева.
9. Для окон TS-пар при изменении размера или положения одного из окон
   аналогичные изменения производятся и со вторым окном.
10.С вкладки Samples убраны шаблоны строк сэмпла.
11.С вкладок Samples и Ornaments убрана статистика и поля "Copy To".

29.04.2023:

12.Количество видимых строк в редакторах сэмпла и орнамента теперь также
   стало динамическим (зависит от размеров окна с редактируемым модулем).
13.При закрытии окна TS-пары теперь автоматически закрывается и второе (за
   исключением только что связанных и еще не сохранявшихся как TS-пара модулей,
   т.е. с ещё разными именами файлов).
14.При сохранении TS-пары теперь первым сохраняется модуль с наименьшим номером
   окна (то есть тот, который создан или загружен раньше).

01.05.2023:

15.Теперь шрифт треков, заданный в окне Options, применяется не только к новым
   окнам, но и к уже созданным.

02.05.2023:

16.Добавлена настройка шрифтов отдельно для сэмплов, орнаментов и строк их
   тестирования.
17.Добавлена настройка цветов редактора сэмплов и орнаментов, а также их
   тестовых строк.

03.05.2023:

18.Начиная с beta 20 тип чипа не сохранялся на выходе (исправлено).
19.Произведён редизайн окна Options, в т.ч. убрано раздельное управление
   визуальной и аудио раскладкой каналов, теперь они переключаются всегда
   синхронно.
20.При вводе нетипичной частоты чипа или прерываний, повторный вызов окна
   Options приводил к сбою (ошибка SetFocus, т.к. неверно определялась
   способность поля ввода частоты принять клавиатурный фокус).

05.05.2023:

21.Убрана реакция на вращение колеса мыши в редакторе позиций (визуально ничего
   не происходило, но в режиме проигрывания происходил рестарт проигрывания с
   этой позиции).
22.Предпринята попытка обойти свойство сетки Lazarus (из неё сделан редактор
   позиций), из-за которого при движении мыши с нажатой кнопкой происходил
   выбор позиции (в т.ч. той же самой, из-за чего в режиме проигрывания
   происходил частый рестарт её проигрывания). Возможно, в будущем лучше будет
   сделать собственный редактор позиций (по тому же принципу, что и редакторы
   треков, сэмплов и т.д.).

Vortex Tracker II v1.0 beta 24

10.05.2023:

1. Исправлена ещё одна ошибка ручного выбора шага подсветки на только что
   созданном (т.е. пустом и непроинициализированном) паттерне: при попытке
   ввести нулевой шаг происходил сбой.
2. Над соответствующими треками добавлены кнопки "Decimal numbering" и "Decimal
   noise" для переключения в любой момент в десятичный вид нумерации треков и
   отображения периода шума (схожая идея реализована в Vortex Tracker v2.6
   Ивана Пирога).
3. В окно опций с той же целью добавлено два параметра для новых окон: "Decimal
   noise period" и "Decimal line numbering".
4. Стили шрифтов теперь игнорируются (за исключением полужирного начертания).
5. Во время Undo в треках могла неверно отображаться ширина курсора (при
   чередовании изменений нот и параметров). Исправлено.

11.05.2023:

6. Над треком огибающих добавлена кнопка "Envelope as note". Опцию давно
   просили реализовать (впервые много лет назад меня об этом попросил TAD), но
   откладывал в долгий ящик, пока не увидел реализацию в Vortex Tracker II v2.6
   Ивана Пирога и захотел сделать немного по-другому: период огибающих
   заменяется на ноту только в случае, если в одном из каналов указан
   циклический тип огибающей; октава ноты зависит не только от периода
   огибающей, но и от её типа; если тип огибающей указан в нескольких каналах,
   берётся тип из наибольшего по номеру канала (так устроены все известные мне
   плееры).

12.05.2023:

7. Добавлена октава 0 для отображения периодов огибающих до FF и C-0, всё что
   ниже, отображается традиционно в HEX.
8. В окно опций добавлен ещё один параметр для новых окон "Envelope as note",
   который позволяет сделать соответствующий режим отображения периода
   огибающей режимом по умолчанию.
9. Редактирование трека периода огибающей в паттерне доработано для режима
   "Envelope as note": широкий курсор, ввод нотными клавишами, расчёт и
   подстановка ноты в соответствующий канал (если включён AutoEnv); очистка
   выделения и его вырезание/копирование в буфер обмена переписаны так, чтобы
   захватывались все четыре цифры периода огибающей, если на их месте
   отображена нота; переключение режима "Envelope as note" корректирует
   положение курсора и границы выделения в области отображения периода
   огибающей. Для ввода нот из октавы 0 необходимо включить октаву 1 и
   воспользоваться стандартным сочетанием клавиш для ввода ноты на октаву ниже
   (Ctrl+Shift+NoteKey).

13.05.2023:

10.Теперь из буфера обмена в дорожку периода огибающей можно вставлять ноты из
   любого канала. Если при вставке в соответствующей строке целевого паттерна
   в одном из каналов указан тип огибающей, он будет учтён при пересчёте из
   номера ноты в период огибающей, иначе расчёт производится как для огибающей
   типа 8 (такой же результат, как и тип C).
11.Исправлена ошибка: при вставке из буфера обмена в только что созданный (т.е.
   пустой и непроинициализированный) паттерн происходил сбой.
12.Скопированные в буфер обмена периоды огибающей (в любом режиме отображения)
   теперь можно вставить в дорожки нот любого из каналов. Преобразование
   периода в номер ноты производится как для огибающей типа 8/C. Если данные
   периоды использовались с типом A/E, нужно будет вручную транспонировать
   результат на октаву ниже. Если периоды копируются в традиционном режиме
   отображения (HEX), нужно захватывать все четыре цифры перед копированием,
   только в этом случае алгоритм вставки сгруппирует их как одно целое, если
   вставка производится в трек с нотами.

14.05.2023:

13.В окно Options добавлен выбор номера таблицы для новых модулей.
14.Реализована ещё одна идея из Vortex Tracker II v2.6 Ивана Пирога: при смене
   таблицы нот в модуле могут пересчитаться периоды огибающих. В окне Options
   эту функцию можно отключить. Перед пересчётом появляется окно с запросом
   подтверждения операции, т.к. её невозможно отменить через Undo.
15.Транспозиция в треках периода огибающей теперь делается по таблице
   преобразования периодов огибающей в ноты, а не по формуле (идея взята из
   Vortex Tracker II v2.6). По этой причине, те периоды, которые не опознаны
   как ноты (за пределами нотного диапазона или с указанием нециклического типа
   огибающей), теперь не транспонируются.
16.Добавлены всплывающие подсказки для выбранного номера тоновой таблицы, с
   указанием для какой тактовой частоты музыкального чипа они подходят.
17.В меню Windows добавлены пункты Close All для закрытия всех окон и Find
   Module для поиска окна по фрагменту имени файла, названия или имени автора
   (спасибо Александру Бульбе за иконку и код).

16.05.2023:

18.Стандартный метод Cascade Windows заменён на код, предоставленный
   Александром Бульбой. Теперь при выстраивании каскадом окна (в т.ч. TS-пары)
   располагаются лучше.
19.Если одно из окон TS-пары становится активным, на передний план также
   выводится и второе (спасибо Александру Бульбе за код).
20.Позиционирование новых окон теперь производится алгоритмом Cascade Windows
   Александра Бульбы.

17.05.2023:

21.Стандартные методы Tile Vertically и Tile Horizontally заменены
   на код, предоставленный Александром Бульбой.

Vortex Tracker II v1.0 beta 25

28.07.2023:

1. На вкладку Patterns добавлена тестовая строка с теми же свойствами, что и на
   вкладках Samples и Ornaments.
2. Добавлено автозаполнение тестовой строки на вкладке Patterns основными
   параметрами по мере редактирования паттерна.
3. Добавлена возможность автоматически проставлять параметры при вводе ноты.
   С помощью соответствующих кнопок, расположенных над тестовой строкой, можно
   выбрать, какие именно параметры должны при этом добавляться (сэмпл, тип
   огибающей, орнамент, громкость и спец. команда с параметрами). Функция
   включается и отключается кнопкой Auto Parameters. Значения параметров
   задаются в тестовой строке вкладки Patterns.

29.07.2023:

4. Добавлена возможность группировки ряда последовательных действий в Undo. В
   данный момент реализована группировка двух видов изменений: Auto Envelope и
   Auto Parameters. Таким образом, за одно нажатие Undo/Redo можно вернуть все
   действия, которые произвели указанные команды автоматизации ввода.

01.08.2023:

5. В окно редактирования добавлена вкладка Tables, в которую перенесено
   управление выбором номера нотной таблицы, а также добавлена её визуализация
   (в виде таблицы или списка), при этом можно настроить отображение как в
   десятичной, так и в шестнадцатеричной форме.
6. При экспорте на ZX Spectrum TS-пары теперь применяется тот же принцип, что и
   при обычном сохранении: в выбранный для экспорта формат первым из пары
   записывается модуль с меньшим номером окна.
7. Исправлена ошибка: при сохранении с новым именем файла TS-пары при активном
   окне с наибольшим номером, заголовок неактивного окна не обновлялся.
8. Исправлена ошибка: если с момента последнего сохранения изменения вносились
   только в одно окно TS-пары, и если второе не изменённое становилось
   активным, команда Save не срабатывала. Выходом могла стать команда Save
   As... или активирование первого окна.

05.08.2023:

9. Delphi->Lazarus fix: положение и размеры главного окна, сохранённые на
   выходе в файл конфигурации, игнорировались при старте приложения.

07.08.2023:

10.Исправлена ошибка: в списке Undo в каждом изменении хранились координаты
   курсора на момент изменения, однако с тех пор, как появилась возможность
   менять размер окон с редактируемым модулем, такой подход приводил к ошибкам.
   Теперь в списке Undo вместо координат курсора хранятся индексы, которые не
   зависят от размера области редактирования паттерна, сэмпла или орнамента, а
   положение курсора вычисляется на ходу во время работы Undo или Redo.

Vortex Tracker II v1.0 beta 26

19.08.2023:

1. Добавлена группировка изменений в Undo при "рисовании" амплитуды в сэмпле.

24.08.2023:

2. Сочетания клавиш теперь не прошиты жёстко в коде программы, а перенесены в
   отдельный массив, который при старте приложения заполняется значениями по
   умолчанию.

25.08.2023:

3. Добавлены глобальные сочетания клавиш (Alt+цифра) для задания номера октавы
   во всех редакторах одновременно (и в треках, и в тестовых строках). Прежние
   клавиши выбора октавы при нахождении курсора в позиции ноты работают
   по-старому. Идея взята из Vortex Tracker II v2.6.
4. По давнему запросу Nik-O добавлено сохранение сочетаний клавиш в файл
   конфигурации на выходе и их загрузка при запуске приложения. Теперь
   редактированием файла VT.cfg можно переопределить почти все горячие клавиши,
   либо даже задать их для тех действий, для которых они не были определены по
   умолчанию.
5. Массив соответствия кодов клавиш и нот теперь также выгружается/загружается
   из файла конфигурации. Практически любой клавише на клавиатуре можно задать
   какую-либо ноту или выбор номера октавы, но при этом не стоит забывать, что
   некоторые клавиши или их сочетания с Shift или Ctrl+Shift могут быть заняты
   под другие горячие клавиши.

29.08.2023:

6. В окно Options добавлена вкладка Keys для настройки горячих клавиш. С её
   помощью можно достичь того же результата, что и при редактировании файла
   конфигурации, однако бонусом идёт автоматическая проверка конфликтов сразу
   после захвата нового сочетания, а также возможность в любой момент
   восстановить значения по умолчанию или нажать Cancel для отмены.

30.08.2023:

7. Исправлена ошибка: при включенном AutoEnv автоматические изменения периода
   огибающей при вводе данных в тестовой строке заносились в список Undo.
8. Редактируемые сэмпл, орнамент, паттерн, а также тестовые строки теперь не
   перерисовываются принудительно при любом изменении, а помечаются как
   устаревшие, чтобы отрисовка производилась только по мере необходимости. Это
   исключает многократную перерисовку при отмене сгруппированных операций.

Vortex Tracker II v1.0 beta 27

10.09.2023:

1. Теперь при экспорте в SNDH добавлена возможность упаковки результата методом
   PACK-ICE, которым и упакована основная масса SNDH-файлов в сети. Алгоритм
   упаковки восстановлен по исходнику 'unice68_pack.c' by Benjamin Gerard, в
   котором оригинальный исходник PACKICE v2.35 на ассемблере MC68000 переделан
   на C методом псевдосимуляции работы данного процессора Motorola (то есть без
   глубокого анализа самого алгоритма). Теперь, после очистки кода от команд
   ассемблера, замены номеров регистров на переменные с понятными именами, а
   также подробного комментирования, стало легче понять идею, которую реализует
   упаковщик (см. файл ice.pas).

11.09.2023:

2. Исправлена ошибка, возникающая при использовании нескольких мониторов: если
   на выходе сохранились координаты главного окна на втором мониторе, который в
   последствии отсоединили, то при последующем запуске приложения его окно не
   видно на оставшемся мониторе (для исправления применена готовая процедура из
   проекта Ay_Emul).
3. Теперь координаты и размер главного окна читаются и записываются в/из файла
   конфигурации даже в том случае, если окно развернуто на весь экран (чтобы
   использовать их при выключении этого режима). В случае, если окно
   максимизировано, записываются его координаты и размеры до максимизации.
4. Сделано регулирование громкости вращением колеса мыши (работает, если курсор
   мыши наведён на меню или панели главного окна, либо на дочернее окно).

12.09.2023:

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

15.09.2023:

6. Реализован экспорт в PSG. Для обычных модулей PSG-файлы такие же, как и при
   конвертировании в Ay_Emul, для TS-модулей сохраняются 2 PSG-файла (этого
   Ay_Emul пока не умеет). Идея взята из VT II v2.6. Искать в меню File->
   Exports->Convert to PSG... В отличие от Ay_Emul, при конвертировании в PSG
   проигрывание не останавливается. Также игнорируются кнопки глушения T/N/E и
   галочки окошка Toggle samples.

17.09.2023:

7. Исправлена ошибка: если играется модуль, то в других окнах выбор позиции не
   приводил к отображению соответствующего паттерна.
8. Исправлена ошибка: если играется модуль, то в других окнах щелчки по кнопкам
   Mute/Solo приводили к кратковременной приостановке проигрывания.
9. Добавлены горячие клавиши для регулирования громкости. Настраиваются в окне
   Options. По умолчанию не заданы.
10.Исправление: при нажатии Up/Down (в том числе с шифтами) в списке позиций
   происходил рестарт проигрывания текущей позиции.

18.09.2023:

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

21.09.2023:

12.Добавлен экспорт в WAV. Файл генерируется с параметрами, заданными в окне
   Options для эмуляции и цифрового звука. Процесс конвертирования можно
   остановить клавишей Esc или нажатием на кнопку отмены рядом с появляющейся
   полоской прогресса. Во время конвертирования текущее проигрывание не
   останавливается, а также частично сохранён функционал приложения (работает
   визуализация, подсказки, регулирование громкости колесом мыши, переход к
   проигрыванию следующего окна и т.п.).
13.В ходе написания конвертеров в PSG и WAV была полностью переписана обвязка
   кода эмуляции AY и проигрывания с целью устранения конфликтов проигрывания
   и конвертирования, в результате чего и стало возможным запускать эти
   процессы параллельно.

22.09.2023:

14.Исправлена ошибка: в случае работы с TS-парой и если в фоне играется
   какой-либо другой модуль, при щелчках по списку позиций не происходило
   синхронного выбора позиции в связанном TS-окне.
15.Улучшение: в случае работы с TS-парой и щелчке по первой пустой ячейке
   списка позиций, информация о текущем времени обновлялась только в активном
   окне TS-пары.

Vortex Tracker II v1.0 beta 28


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 видит курсор в том месте, где произошло первое
   изменение, то есть там, где он интуитивно и ожидается.

Vortex Tracker II v1.0 beta 29

05.02.2024:

1. Во всплывающее меню редактора треков добавлены пункты для транспонирования
   выделенных нот и периодов огибающих на 3 и 5 полутонов вверх или вниз (как в
   проекте VT v2.6). Горячие клавиши настраиваются в Options (по умолчанию не
   заданы).

13.02.2024:

2. Файлы, указанные в командной строке, теперь открываются в прямом, а не в
   обратном порядке.

14.02.2024:

3. Дочерние MDI формы преобразованы в рамки (TFrame). Это сделано потому, что
   в Lazarus LCL с каждой версией появляются новые баги в обвязке MDI, а старые
   практически не исправляются. Я маскировал ошибки в LCL и сообщал о них в
   багтрекер, но к сожалению в последних версиях даже с этими "костылями" баги
   уже мешают основному функционалу приложения и не всё удалось замаскировать.
   Подход с рамками с одной стороны замедляет отрисовку интерфейса при большом
   количестве одновременно открытых окон, так как их приходится отрисовывать и
   реагировать на действия пользователя (изменение размеров, переключение и
   т.п.) не штатными средствами Windows, но с другой стороны в будущем это
   облегчит портирование проекта на другие операционные системы.
4. Убрана минимизация дочерних окон, а также пункты меню для работы с
   минимизированными окнами (Minimize All и Arrange All). Эти возможности шли
   бонусом к системе MDI Windows, и после отказа от MDI этот не совсем нужный
   для редактора-трекера функционал пришлось бы писать самостоятельно.

15.02.2024:

5. Команды переключения окон горячими клавишами (Ctrl+Tab/F6,Ctrl+Shift+Tab/F6)
   визуализированы в меню Window. Сменить данные сочетания клавиш можно в
   диалоге Options.
6. Улучшено автопереключение на следующее окно во время проигрывания: теперь
   независимо от того, какое сейчас окно на переднем плане, происходит переход
   к окну, следующему за проигрываемым.
7. Теперь после сортировки окон (Tile или Cascade) во время проигрывания, окно
   с проигрываемым модулем выводится на передний план.

16.02.2024:

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

18.02.2024:

11.Теперь если перед началом проигрывания активное окно находится за границами
   видимости рабочей области, производится смещение рабочей области так, чтобы
   проигрываемое окно стало видно.

20.02.2024:

12.На вкладке Ornaments теперь есть режим отображения отклонений тона в виде
   нот относительно базовой, которая задаётся в строке теста орнамента. Идея
   взята из VT v2.6. Переключение режимов производится кнопкой C#.
13.Редактирование орнамента может производиться и в режиме Ornament as notes (с
   помощью клавиш ввода нот/октавы, а также MIDI-клавиатуры).
14.Убраны горячие клавиши кнопок панели инструментов, которые были заданы в
   в их надписях: &New, Cu&t и т.д. (не видны, т.к. вместо них отображаются
   иконки). В таком виде они попали в проект из примера MDI-приложения для
   Delphi, то есть с самого начала. Начали срабатывать из-за того, что на
   панели с недавних пор появились кнопки с надписями вместо иконок, и для их
   отображения в свойствах панели пришлось включить соответствующую опцию.

21.02.2024:

15.На вкладке Samples теперь есть режим отображения отклонений тона в виде нот
   относительно базовой, которая задаётся в строке теста сэмпла. Идея взята из
   VT v2.6. Переключение режимов производится кнопкой C#.
16.Исправлена ошибка: если поставить курсор примерно в конец длинного орнамента
   и максимально увеличить высоту окна с модулем, можно было добиться печати
   мусора за пределами максимальной длины орнамента (255).
17.Исправлена ошибка: при изменении размеров окна модуля, положение курсора
   внутри редактора орнамента неожиданно менялось, что приводило к выделению
   случайной области.
18.Редактирование колонки отклонений тона в сэмпле теперь может производиться в
   режиме Sample shifts as notes (с помощью клавиш ввода нот/октавы, а также
   MIDI-клавиатуры, в последнем случае курсор можно располагать не только в
   поле ввода отклонения тона).

22.02.2024:

19.Исправлена ошибка: если поставить курсор примерно в конец длинного сэмпла и
   максимально увеличить высоту окна с модулем, можно было добиться печати
   мусора за пределами максимальной длины сэмпла (64).
20.Улучшено отображение положения курсора в редакторе сэмпла после изменения
   высоты окна (ранее могло спрятаться за пределами поля редактора).
21.Добавлена визуализация номера октавы на вкладках сэмплов и орнаментов, т.к.
   теперь номер октавы в тестовой строке может отличаться от отображаемой в ней
   ноты. Кроме того, это ещё один способ установить номер октавы для данных
   вкладок.
22.В редактор сэмпла добавлены подсказки, подбираемые под текущее положение
   курсора (по аналогии с редактором треков).
23.В Initial parameters диалога Options добавлены две опции для управления
   режимом отображения отклонения тона в виде ноты для сэмплов и орнаментов.
   Опции используются только для вновь создаваемых окон и не влияют на уже
   открытые. По умолчанию отключены.
24.На вкладку Other окна Options добавлено две настройки для управления
   отображением всплывающих подсказок для редактора треков и сэмплов. По
   умолчанию подсказки не всплывают, т.к. они громоздкие, а информация в них
   дублируется на панели состояния внизу главного окна. Идея опционального
   включения подсказок взята из VT v2.6.

23.02.2024:

25.В подсказках для треков описывались клавиши по умолчанию, заменены на
   актуальные.
26.Изменён формат данных треков в буфере обмена, теперь в конец дописывается
   дамп регистров AY для выделенного участка треков. При вставке в треки этот
   аппендикс игнорируется (он необходим только для вставки в сэмпл).
27.Исправлена ошибка, из-за которой возникала неопределённая ситуация при
   вставке треков с некорректными данными (например, после ручной правки буфера
   обмена). При штатном копировании треков в буфер обмена данные всегда
   корректны, поэтому ошибка не проявлялась.

25.02.2024:

28.Добавлена возможность вставки скопированных в буфер обмена треков паттерна
   в сэмпл (аналогично VT v2.6). Для этого используется дописываемый в буфер
   обмена дамп регистров. Номер канала в источнике определяется по левой
   границе выделения. Сэмпл рендерится относительно частоты базовой ноты,
   заданной строке тестирования сэмпла, при этом используется таблица нот
   конечного модуля. Чтобы после вставки ноты в сэмпле визуально точно
   соответствовали источнику, таблицы нот исходного и конечного модуля должны
   совпадать.

27.02.2024:

29.Изменён формат данных орнаментов в буфере обмена, по аналогии с треками
   теперь в конец дописывается дамп регистров AY для выделенного участка
   орнамента (используется для вставки в сэмпл).
30.Теперь скопированный в буфер обмена орнамент можно вставить в сэмпл,
   используются те же правила, что и при вставке в сэмпл скопированного
   паттерна (идея взята из VT v2.6).
31.Теперь скопированный в буфер обмена фрагмент паттерна можно вставить и в
   орнамент (идея взята из VT v2.6). Отклонения нот вычисляются относительно
   базовой ноты, заданной в строке тестирования орнамента.
32.По аналогии с VT v2.6 в редактор треков добавлены клавиши Alt+Up и Alt+Down
   для перемещения курсора вверх или вниз на абсолютную величину шага AutoStep.
   Данные сочетания клавиш можно заменить на свои в окне Options.
33.Двойным щелчком мыши по полям сэмпла/орнамента в редакторе треков и строчках
   тестирования можно перейти к просмотру/редактированию этого инструмента.

28.02.2024:

34.По просьбе Lee Bee в редакторе треков, сэмплов и тестовых строках реализован
   перенос курсора по достижению крайней правой или крайней левой позиции (в
   том числе и для Ctrl+Right/Ctrl+Left).
35.По просьбе Lee Bee в редакторе треков, сэмплов, орнаментов и в тестовых
   строках теперь можно вводить числа с цифровой клавиатуры.
36.На вкладку Samples добавлена кнопка Recalc sample tone shifts on changing
   base note. Если она нажата, то при каждой смене ноты в строке теста сэмпла
   будет производиться пересчёт смещений тона таким образом, чтобы итоговая
   высота сэмпла относительно этой новой ноты не изменилась. В режиме "смещения
   как ноты" результат неизменности высоты сэмпла можно не только услышать, но и
   увидеть. Идея взята из VT v2.6.
37.Номера октавы для редактора треков и тестовой строки паттерна теперь
   устанавливаются синхронно.

29.02.2024:

38.Сочетания клавиш Ctrl+0..9 в редакторе треков теперь можно использовать для
   быстрой установки величины автошага (как в VT v2.6). Режим AutoStep при этом
   также включается. Сменить сочетания клавиш можно в Options.

Vortex Tracker II v1.0 beta 30

04.03.2024:

1. В прошлой версии допущена ошибка: неверно копировалось в буфер обмена
   содержимое тестовой строки (исправлено).

05.03.2024:

2. В меню Window появился список редактируемых модулей.
3. По просьбе Lee Bee в диалоге Options в Initial parameters появилась
   настройка автошага для редактора треков (по умолчанию 1).
4. Специально для Lee Bee модифицирована кнопка выбора раскладки каналов
   звукового чипа на панели инструментов главного окна: теперь в диалоге
   Options можно задать для неё список. Например, отметив галочками Mono и ABC,
   щелчками по указанной кнопке перебираем только эти две раскладки.

06.03.2024:

5. Диалоги Global Transposition и Tracks Manager не закрывались по Esc, если
   был запущен вывод звука (например, если начато редактирование трека), так
   как срабатывала соответствующая глобальная горячая клавиша для выключения
   звука (исправлено).
6. Добавлено закрытие диалога Toggle Samples при нажатии клавиш Esc или Enter.
7. Операция Compress pattern переименована в Shrink pattern (как в VT v2.6).

07.03.2024:

8. Добавлена давно запланированная функция из TODO, неплохая реализация которой
   подсмотрена в VT 2.6: во всплывающее меню треков добавлены команды Swap
   channels left/right. Горячие клавиши по умолчанию Alt+Left и Alt+Right. Перед
   вызовом достаточно поставить курсор в один из каналов (если курсор в колонке
   периодов огибающих или шума, считается что выбран крайний левый канал), либо
   выделить диапазон строк. В первом случае переставятся местами ноты с
   параметрами одной строки, во втором - выделенного диапазона строк.
9. Теперь при вызове инструмента Toggle Samples можно видеть неиспользованные
   сэмплы (галочки не активны). Во время редактирования и при переключении окон
   эта информация обновляется. Идея подсмотрена в VT 2.6.
10.По запросу Lee Bee появились Quick jump keys для быстрого перехода в начало,
   1/4, 2/4 и 3/4 паттерна. Клавиши продублированы во всплывающем меню треков.
   Редактор треков не обязательно должен быть активен, достаточно того, чтобы
   была активна вкладка Patterns. По умолчанию на клавишах F9, F10, F11 и F12.

08.03.2024:

11.В редактор орнаментов и сэмплов добавлены клавиши для удаления строки со
   сдвижкой и вставки с раздвижкой (по аналогии с редактором паттернов). По
   умолчанию Backspace или Ctrl+Y для удаления, и Insert или Ctrl+I для
   вставки.
12.Добавлена настройка ещё нескольких цветов, которые ранее были жёстко прошиты
   в коде: пространства вне паттерна в редакторе треков, пустого пространства,
   которое может возникнуть после максимальной длины сэмпла или орнамента, а
   также фона главного окна.
13.Двойной щелчок по фону главного окна теперь можно использовать для вызова
   диалога открытия файлов (идея взята из VT 2.6).

09.03.2024:

14.По давней просьбе TAD добавлена подсветка строк в редакторе орнаментов и
   сэмплов с шагом скорости проигрывания. По умолчанию выключена. Идея
   опционального включения этой возможности подсмотрена в VT v2.6.
15.Теперь путь к папке при открытии или сохранении модуля запоминается на
   выходе в файле конфигурации. При первом запуске таковой становится папка
   'Modules' или 'Modules for test' в каталоге с программой, либо сам этот
   каталог, если их в нём нет.
16.Пути к паттернам, сэмплам и орнаментам теперь запоминаются. При первом
   запуске это либо папка с программой, либо подпапки в ней: Patterns, Samples
   и Ornaments соответственно.
17.Добавлена опция для отключения предупреждений о невозможности отменить
   операцию. Если её включить, то такие операции как транспонирование всего
   модуля или Swap Channels в Tracks Manager будут производиться без
   дополнительного подтверждения со стороны пользователя. Чтобы не ошибиться,
   следите за подсказками, которые специально добавлены для таких случаев (как в
   строке статуса, так и всплывающие). По умолчанию запрос на подтверждение
   есть.
18.Если в режиме зацикливания Loop all не удалось сделать следующее окно
   активным (например, было открыто модальное окно вроде About), проигрывание
   останавливается (ранее текущее окно начинало проигрываться заново).
19.Теперь рабочая область прокручивается при активизации окна, скрытого более
   чем на половину своей ширины или высоты, раньше прокрутки не было, если был
   виден хотя бы кусочек рамки.

Vortex Tracker II v1.0 beta 31

10.03.2024:

1. Исправлена визуальная ошибка (на функциональности не сказывалась): начиная с
   beta 29 в названиях на кнопках TS при открытии TS-пары заголовки окон
   поменялись местами.

11.03.2024:

2. Отлов глюков после отказа от MDI: добавлена проверка для исключения
   автопрокрутки рабочей области, если окно активизировано щелчком левой кнопки
   мыши (были неожиданные смещения при попытке передвинуть мышкой окно, частично
   скрытое за границами этой области).
3. Улучшение: проверка файлов в командной строке проводилась до максимизации
   главного окна, поэтому при открытии нескольких окон они размещались на
   меньшем пространстве, чем могли бы (в частности, могли распасться окна
   TS-пары, если до максимизации для двух окон места не хватало).

12.03.2024:

4. Косметическое изменение: теперь в текстовый файл не сохраняются пустые
   паттерны, которых нет в списке позиций. Такие пустые паттерны возникают в
   момент редактирования списка позиций при вводе любых чисел (например, если вы
   ввели '32', то в фоне создаётся два пустых паттерна 3 и 32, хотя в списке в
   итоге остаётся только второй).
5. На случай ручного редактирования текстового модуля (например, в Блокноте),
   при его загрузке добавлена дополнительная проверка: если данные паттерна не
   обнаружены, но он сам есть в списке позиций, то принудительно создаётся
   пустой. Это позволяет избежать сбоя, так как большинство функций в Vortex
   Tracker II не делают дополнительных проверок для паттернов, присутствующих
   в списке.

14.03.2024:

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

15.03.2024:

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

16.03.2024:

8. Исправлена ошибка: если курсор находится в треках периода огибающих или шума,
   при смене раскладки каналов он теперь не смещается в неожиданную позицию.

Vortex Tracker II v1.0 beta 32

24.03.2024:

1. Приложение подготовлено для локализации интерфейса. В папке languages можно
   найти файлы перевода стандартных сообщений на 23 языка. Выбор языка
   осуществляется автоматически, но его можно поменять в окне Options. Также в
   этой папке можно найти шаблон VT.pot, который можно использовать для перевода
   интерфейса на необходимый вам язык. Его достаточно переименовать в файл вида
   "VT.<id>.po", где <id> - стандартный идентификатор языка (например, de или
   fr), и отредактировать в текстовом редакторе или в каком-либо редакторе
   PO-файлов. Если хотите, чтобы ваш перевод попал в дистрибутив Vortex Tracker
   II, пришлите его мне.
2. Добавлен перевод интерфейса на русский язык. Файл VT.ru.po в папке languages
   можно использовать как пример перевода на ваш язык.

25.03.2024:

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

26.03.2024:

5. Стандартная полоса прокрутки списка позиций переделана, теперь она работает
   только с заполненными ячейками плюс одна пустая, чтобы было наглядно видно,
   сколько позиций из 256 возможных реально используются.
6. Добавлены горячие клавиши Home/End в редактор списка позиций для быстрого
   перехода в начало и конец списка.

27.03.2024:

7. При работе с модулем во время проигрывания какого-либо другого модуля,
   удаление и вставка позиции в списке позиций были запрещены (исправлено).
8. При работе с модулем во время проигрывания какого-либо другого модуля и
   нажатии правой кнопки мыши на списке позиций проигрываемого модуля, не
   происходило активации его окна, в результате команды всплывающего меню
   применялись к модулю, окно которого осталось активным (исправлено).

28.03.2024:

9. В редакторе списка позиций добавлена возможность выбирать диапазон непустых
   ячеек. Сделать это можно либо мышью с нажатой левой кнопкой, либо клавишами
   управления курсором при нажатом Shift.
10.Во всплывающем меню редактора списка позиций команда Insert Position
   переименована в "Добавить позиции". Логика её работы также изменена, теперь
   она объединяет в себе сразу две команды, с которыми знакомы пользователи VT
   v2.6. Вместо дублирования выделенного паттерна создаются новые в необходимом
   количестве. Если выделена одна или более непустых позиций, то производится
   вставка такого же количества паттернов сразу после выделения. Если выделена
   пустая ячейка, то новыми паттернами заполняется она и предшествующие ей
   пустые ячейки. Длина новых паттернов соответствуют длине паттерна перед
   местом добавления новых позиций, или 64, если список был пуст.
11.Во всплывающем меню редактора списка позиций команда Delete Position
   переименована в "Удалить позиции". Теперь её можно использовать для удаления
   не только текущей позиции, но и всех выделенных.

29.03.2024:

12.В меню редактора списка позиций добавлено ещё две команды, аналогичные VT
   v2.6: "Дублировать позиции" и "Клонировать позиции" (работают с выделенными
   позициями). Клавиши по умолчанию не заданы, если необходимо, определите в
   окне "Настройки". Первая команда работает аналогично Insert Position из
   предыдущих версий: создаёт соответствующее количество позиций с теми же
   паттернами сразу после выделенных. Вторая команда делает тоже самое, но
   заполняет позиции предварительно созданными паттернами с тем же содержимым,
   что и исходные.
13.В меню позиций добавлена команда "Выделить все", клавиши по умолчанию Ctrl+A
   и Ctrl+Num5.
14.Команды "Выделить всё" визуализированы в различных всплывающих меню.
15.В меню редактора списка позиций добавлена еще одна команда, идея которой
   подсмотрена в VT v2.6: "Сменить размер паттернов...". Предназначена для
   группового изменения размера паттернов: введённый в диалоге запроса размер
   будет применён ко всем паттернам в выделенных позициях.

30.03.2024

16.В меню редактора списка позиций добавлена команда "Перенумеровать паттерны",
   аналогичная реализованной в VT 2.6. Команда присваивает паттернам новые
   номера в порядке использования в списке позиций.

31.03.2024

17.Команды редактирования, которые нежелательно или нельзя выполнять во время
   проигрывания модуля/паттерна, в Vortex Tracker II запрещены. Однако они всё
   таки могли выполниться при нажатии на Undo или Redo. Теперь перед их
   выполнением во время Undo/Redo проигрывание принудительно останавливается.
18.Во всплывающее меню редактора списка позиций добавлены команды работы с
   буфером обмена: Копировать, Вырезать, Вставить и Смешать. Горячие клавиши
   можно переопределить. При вырезании выполняется операция "Удалить позиции".
   Скопированный или вырезанный фрагмент можно вставить (в месте вставки позиции
   раздвинутся), либо смешать (вставить внутрь выделения, если выделено более
   одной ячейки, либо от выделенной ячейки в последующие без раздвижки). Если
   вставка осуществляется за пределы заполненных ячеек, то список просто
   дополнится с конца. Если выделены последние заполненные ячейки, то
   подмешивание может выйти за пределы выделения (длина списка увеличится).
19.Исправлена ошибка: сбой при вставке в паттерн/сэмпл/орнамент/тестовые строки
   пустого буфера обмена.

Vortex Tracker II v1.0

03.07.2024:

1. В меню "Окно" добавлен режим "Развёрнуто", при включении которого активные
   окна модуля или TS-пары отображаются распахнутыми на всю высоту рабочей
   области. Горячие клавиши по умолчанию не заданы (можно задать в настройках).
   Разворачивание окон можно также производить щелчком по соответствующей кнопке
   заголовка или двойным щелчком по самому заголовку. Вернуться к обычному
   режиму можно щелчком по соответствующей кнопке главного меню или по любому
   неактивному окну.

04.07.2024:

2. В дистрибутив добавлена коллекция орнаментов и сэмплов из проекта Vortex
   Tracker v2.6 dev 22.
3. В меню "Справка" добавлены пункты для вызова различных справочных материалов.

08.07.2024:

4. Исправлена визуальная ошибка: если во время открытия группы файлов какой-либо
   автоматически закрывался из-за несоответствия формата (с выводом
   соответствующего сообщения), из заголовка главного окна исчезала информация о
   текущем (активном) модуле.

09.07.2024:

5. Обнаружен модуль ASC, в котором в колонке шума встречаются числа вне
   допустимого для формата PT3 диапазона (см. начало паттерна 1 в
   ASC\FORHOL.asc). В импорт ASC внесено соответствующее исправление.
