(продолжение, начало тут).
Итак, нужна ли пятая (4-я, если считать с 0) частотная таблица? =)
Я не стал бы спрашивать не имея готового ответа =) Yep! Нужна =) И что же хорошего можно придумать? =)
Природный звукоряд для C/Am, друзья мои =) Без приближений равномерной темперации, без умножения предыдущей ступени звукоряда на жуткий корень двенадцатой степени из 2.
Какие выгоды?
1) целочисленные соотношения интервалов:
C[9/8]D[10/9]E[16/15]F[9/8]G[10/9]A[9/8]B
Дают нам чистые квинты:
C-G (относятся как 3/2)
E-B (относятся как 3/2)
A-E (относятся как 3/2)
И другие добрые последствия.
Дополнительные ступени (чёрные клавиши) рассчитаны как интервал в 16/15.
Вообще, как оказалось, Иван Рощин давно (6/2001) уже написал популярную статью на эту тему:"Частотная таблица с нулевой погрешностью". В которой отлично всё просчитал =)
Так как исходные данные были одни и те же - результат получился одинаковый - частотная таблица натурального звукоряда, и оптимальная частота звукового сопроцессора для неё.
2) более половины рассчитанных периодов нот основных ступеней - кратны 16, это значит, что огибающая звучит чисто и отсутствуют биения при наложении Envelope+Tone.
(Разумеется биения и эффект морфирования звуковой волны можно всегда получить, сместив частоту тона вверх или вниз).
Недостатки: частотная таблица корректна только для до-мажор или ля-минор.
Преодоление недостатка: любую тональность можно получить простым изменением частоты сопроцессора:
1520640 С/Am
1520640 * 2^(1/12) = 1611062 C#/A#m
1611062 * 2^(1/12) = 1706861 C#/A#m
и так далее:
Код:
1520640 1520640 C/Am
1611061,96 1611062 C#/A#m
1706860,69 1706861 D/Bm
1808355,91 1808356 D#/Cm
1915886,35 1915886 E/C#m
2029810,88 2029811 F/Dm
2150509,71 2150510 F#/D#m
2278385,67 2278386 G/Em
2413865,54 2413866 G#/Fm
2557401,45 2557401 A/F#m
2709472,45 2709472 A#/Gm
2870586,07 2870586 B/G#m
3041280 3041280 C/Am
-------------
Всё это становится легко и приятно в VortexTracker II, который я под это дело модифицировал =)
1) добавлена пятая (0..4) частотная таблица
2) в настройках добавлены вышеприведённые частоты для всех возможных тональностей (модуль записывается в ключе C/Am а фактически воспроизводится в ключе, заданным частотой сопроцессора).
3) частота сопроцессора и номер частотной таблицы сохраняется в рабочем файле (.txt) в параметрах ChipFreq (новый параметр) и NoteTable соответственно.
4) При загрузке модуля частота из него выставляется в настройках чипа (который, как вы помните - один на весь редактор, так что будьте внимательны, при редактировании треков с разными частотами сопроцессора).
Вроде-бы всё.
UPD1:
CTRL + HOME – в самый верх канала
CTRL + END – в самый низ канала
CTRL + UP – в самый верх канала
CTRL + Down – в самый низ канала
CTRL + PGUP – в середину паттерна (канала) (32-ая позиция)
CTRL + PGDown – в 3/4 паттерна (канала) 48-я позиция
NUM_PLUS – следующий паттерн
NUM_MINUS – предыдущий паттерн
CTRL + NUM_PLUS – паттерн следующей позиции, следующая позиция
CTRL + NUM_MINUS – паттерн предыдущей позиции, предыдущая позиция
SHIFT + NUM_PLUS – транспонирование на полутон
SHIFT + NUM_MINUS – транспонирование на полутон
CTRL + SHIFT + NUM_PLUS – транспонирование на октаву
CTRL + SHIFT + NUM_MINUS – транспонирование на октаву
NUM[*] или CapsLock – делает MUTE Всем каналам кроме текущего, на каналах с Envelope и Noise – вкл/выкл Envelope/Noise на всех каналах.
сдвижка/раздвижка паттерна - CTRL+SHIFT + [/] и CTRL+SHIFT +[*]
UPD2:
Теперь если находясь в канале огибающей нажать на любую клавишу, соответствующую ноте, в канал проставится её частота (с коэффициентами у AutoEnvelope) Это на порядок удобнее чем собственно сам AutoEnvelope (так как практически всегда сами каналы забиты и экспериментировать негде).
Вручную цифровое значение огибающей можно ввести данные ввести удерживая Shift (Shift + [0..9 A..C]).
Наконец-то к каналу огибающей начали относиться с должным уважением =) и приблизили его к нормальным нотам =)
UPD3:
Теперь огибающая отображается как нота, если её период совпадает с периодом ноты (note period/16 = envelope period).
режим отображается галочкой в верхнем правом углу окна редактора, гоячая клавиша для его смены -> [/] на цифровой клавиатуре.
UPD4:
Ура-Ура! =) добавлен переключатель Hex/Dec:
File -> Options -> Compatibility -> "Dec Base".
сборка: VT_N06.exe
UPD5:Ура-ура! =) Встречаем!
Поддержка горячих клавиш в Sample Editor.
CTRL+HOME, CTRL+END/ CTRL+PGDOWN, CTRL+PGUP/ - в начало/конец семпла.
INS - Дублирование текущей позиции семпла с раздвижкой.
DEL - Удаление текущей позиции семпла со сдвижкой.
SHIFT + HOME - установка позиции на которую происходит зацикливание (loop)
SHIFT + END - установка последней позиции (Lenght).
CTRL + INS - копирование в текущую позицию семпла позиций, ограниченных зацикливанием - Loop / length.
в режиме редактирования добавлена горячая клавиша CTRL + `
- быстрое переключение в режим Sample Editor.
UPD6: 25.o7.2oo9
Ура-Ура! =)
Множество кавайных и полезных изменений =)
1) при создании или открытии файла фокус сразу устанавливается на окно редактирования (можно сразу начинать рулить с клавиатуры, не выбирая окно мышью)
к мышке можно практически не прикасаться.
2) находясь на любом элементе MDI-формы можно горячей клавишей перейти в один из режимов:
CTRL+` - редактор паттернов,
CTRL+1 - редактор семплов,
CTRL+2 - редактор орнаментов,
3) в редакторе семплов и орнаментов добавлены следующие горячие клавиши:
CTRL+[+] (плюс на цифровой клавиатуре) - следующий семпл (орнамент)
CTRL+[-] (плюс на цифровой клавиатуре) - предыдущий семпл (орнамент)
CTRL+HOME, CTRL+PGUP - в начало семпла (орнамента)
CTRL+END, CTRL+PGDOWN - в конец семпла (орнамента)
INS - Дублирование текущей позиции семпла (орнамента) с раздвижкой.
DEL - Удаление текущей позиции семпла (орнамента) со сдвижкой.
SHIFT + HOME - установка позиции на которую происходит зацикливание (loop).
SHIFT + END - установка последней позиции (Lenght).
4) копирование/вставка семплов/орнаментов:
CTRL + A - выбор всех позиций семпла (орнамента),
CTRL+INS - копирование выделенных позиций семпла (орнамента) в буфер.
(выделенными считаются "зацикленные" позиции).
SHIFT+INS - вставка позиций семпла (орнамента) из буфера в текущую позицию
5) в режиме орнамента реализован ввод смещений как нот
то есть при нажатии на кнопку Z, которая соответсвует ноте С (до) будет введено нулевое смещение. при нажатии на кнопку X, которая соответсвует ноте D (ре) будет введено смещение +2, и т.д.
Кажется все изменения =)
+ улучшено транспонирование огибающей. - она транспонируется строго по таблице нот (а не умножается на коэффициент, что приводил к неправильному транпонированию в нетемперированных звукорядах).
Сборка VT_N09.exe (см. первый пост темы).
UPD7: 26.o7.2oo9
В новой версии VT_N0A_RC.exe:
1) пофиксены баги.
2) транспонирование громкости:
выделить только позицию с громкостью (SHIFT + CURSOR)
затем нажать SHIFT+[+] или SHIFT+[-] - для смещения громкости выделенном фрагменте вверх или вниз.
либо нажать CTRL+SHIFT+[+] или CTRL+SHIFT+[-] - для смещения громкости выделенном фрагменте вверх или вниз, но только для каждой нечётной громкости для упрощения создания эхоэффекта.
и самое клёвое:
3) автоматическая конвертация огибающей из частотной таблицы в частотную таблицу =)
при смене частотной таблицы период огибающей автоматически корректируется так, чтобы соответсвовать той же ноте, какая была в предыдущей частотной таблице.
периоды, которые не распознались как ноты - транспонируются просто пропорционально.
Данная версия носит гордое название "Релиз кандидата". то есть все фичи, которые я планировал добавить в VT - я добавил. Теперь будут только вылавливаться баги.
UPD8: 26.o7.2oo9
подправлена автоконвертация - не на всех музонах она отрабатывала (отваливалась на пустых паттернах).
UPD9: 26.o7.2oo9 day
Косметическая, но очень полезная фича. Подсветка в семплах и орнаментах позиций, соответствующих выставленной в модуле скорости.
То есть если Speed = 3, то будет подсвечена каждая 3-я позиция.
UPD:A: 27.o7.2oo9 night
горячие клавиши листания семплов/орнаментов в редакторе семплов орнаментов (CTRL+[+] и CTRL+[-]) теперь работают и в режиме "тестовой строки" (тестирование семпла/орнамента).
UPD:B o5.o8.2oo9 night
Ура-Ура! =) новая версия =)
VT_1.2RC5.exe:
1) исправлен баг с ошибками редактора при закрытии окна во время проигрывания.
2) теперь фрагменты семпла при копировании/вставке выделяются не с помощью установки начала/конца петли повтора, а независимым счётчиком.
то есть SHIFT+HOME, SHIFT+END - это по-прежнему установка начала/конца петли.
а SHIFT+UP/SHIFT+DOWN - это выделение фрагмента семпла для копирования.
CTRL+INSERT - копирование.
SHIFT+INSERT- вставка.
выделение снимается если отпустить SHIFT и передвинуть курсор куда-нибудь.
UPD:B o5.o8.2oo9 night 2
Внезапно ещё одно улучшение:
1) можно тестировать текущий семпл прямо во время редактирования, без необходимости заходить в "Тестовую строку".
для этого нужно всего-лишь нажать нотную клавишу с зажатым SHIFT'ом.
и текущий семпл или орнамент будут проигрываться.
Любые изменения в них сразу будет слышно.
UPD:B o5.o8.2oo9 Day
UPD:B o5.o8.2oo9 Day 2
(O_O)
VT_1.2RC888.exe:
UPD:B o5.o8.2oo9 Day 3
(O_O)
UPD:B o5.o8.2oo9 Day 4
(O_O)
VT_1.2RCAAA.exe: "@" -> "]".
UPD:B o5.o8.2oo9 Day 5
VT_1.2RCBBB.exe: Custom INT Freq Set (bugfix).
Изменения описаны в последнем посте темы (в это сообщение текст уже не влезает).
UPD:B 19.o9.2oo9 Day 5VT_1.2RCCCP.7z (333.1 Кб)