Управление громкостью огибающей YM2149
karbofosСОВЕРШЕННО РАБОЧАЯ ТЕХНОЛОГИЯ, В РАМКАХ ОБЫЧНОГО ТРАКЕРА БЕЗ ДОРАБОТОК
Причем решение элементарное, и вытекло напрямую из предыдущего поста про сидоры и аигреки, а точнее из раздела про уплывающие громкости, и Retrig.
Напомню, что при маске TnE громкость меняется самостоятельно примерно вот так:
(на самом деле волна треугольная либо пилообразная, но сейчас это не очень важно)
В предыдущем посте мы решили проблему синхростарта пилы и тона (на самом деле не совсем решили - из-за неуловимой фазы тона синхростарт получается в 2х рандомных вариантах, но это тоже не очень важно), значит теперь надо как-то "запрыгнуть" на участок волны, в котором нужная для нас громкость.
Делается это элементарно, и почему никто до этого не догадался - я не знаю.
(А может и догадался 20 лет тому назад, и активно юзает, но мне про это ничего не известно.)
Итак, очевидно, что для того, чтоб сохранить постоянный уровень громкости, сперва нужно синхронизировать тон и пилу по частоте, иначе, судя по графику выше, громкость неминуемо уплывёт по своим делам.
Синхронизировать нужно с какого-то определенного места, потому что это будет наша точка отсчета, от которой мы будем прыгать по волне.
Определиться с этим местом для отсчета нам поможет фишка Retrig из предыдущего поста.
Теперь, запустив звук с ретригера, и синхронизировав пилу и тон по частоте, нужно как-то переместиться по графику.
Переместиться никак нельзя, зато можно "перемотать" волну!
Для этого делаем частотный десинк - добавляем к тону сколько-то единиц, например 5. Ждём один тик, чтоб YM схавал изменения (я делал всё прямо в вортексе, поэтому измеряю в тиках), и чтоб волна "перемоталась" и потом обратно синхронизируем пилу и тон, отняв то, что мы добавили, в нашем случае - 5 единиц.
А теперь... Вжух! Громкость изменилась! И Никуда не плывёт, стоит как вкопанная на одном уровне!
Для следующей смены громкости снова "проматываем" волну с помощью десинка с последующим синком.
Используя этот трюк, неизбежно придётся преодолеть следующий момент:
Для каждой ноты (а при смене таблиц, ещё раз) придётся вычислить (скорее всего на слух, по крайней мере я делал это на слух) значения сдвига тона для синка, а так же значения всех сдвигов для всех нот для попадания в нужную громкость. Так же для классификации сами громкости придётся измерить осцилом или какой-то программкой.
Может это можно как-то вычислить, я не знаю.
Тут можно увидеть осциллограмму, и услышать звук (записано из самого обычного .pt3 файла)
https://www.youtube.com/embed/5bANpEZ83UA
#### Links
[test2.pt3]