В чём может быть проблема? Как поправить?
Проблема оказалась в кривизне реализации воспроизведения VGM в XGM-движке SGDK.
Во-1: нельзя делать скругление на паттерн, активно использующий семплы DAC. При закруглении на такой паттерн, на слух явно слышно протормаживание, рвущее зацикливание трека. Решение: немного переделать трек - в хвост дописать все паттерны, не включая того, где семплов DAC уже нету, а зацикливание поставить на этот самый паттерн без DAC.
Во-2: SGDK корректно работает с VGM, у которых указано либо 50 либо 60 Гц. Если поставить 48 Гц, то из-за кривизны расчёта таймингов со временем накопится ошибка, и с 3-го , 4-го и последующих разов зацикливание будет не на то что нужно, трек будет "спотыкаться".
В общем, котЭ недоволен!
Попутно решил задачу, связанную с уменьшением общей громкости в треках дефлемаска, чтобы музыка не забивала звуки в игре.
Так как основная масса треков используют дефолтные значения громкости инструментов, то пришлось распарсить весь трек и подправить все инструменты в нём.
TL выходным операторам FM, затухание огибающим PSG и уровень громкости всех DAC семплов.
Но в целом получил, что я хотел!
Правда мне непонятно, в чём товарищ Делек измеряет громкость семплов на ползунках(-100 тишина, 0 -единичное усиление, +100 субъективно в 1,5-2 раза громче). Наверное, в попугаях!
И ещё в алгоритме 4 операторы 2 и 3 поменяны местами, для написания музыки - это пофигу, но когда пишешь парсер или конвертер - это архи-важно. Написал об этом Делеку в дискорд, пока тишина.