У дроновых инструментов вылезла неприятная штука: то, что слышишь при игре,
и то, что получается при сведении в файл, расходилось. Не по громкости — по
высоте. Экспортированный дрон оказывался чуть расстроен относительно того,
что я только что слушал.
Две настоящие причины нашлись и починились.
Первая: движок применял медленные изменения раз в кусок, а куском был кусок,
который присылает программа-хост. При игре он один, при экспорте другой —
и результат разошёлся на десятки процентов. Теперь размер куска свой,
собственный, и сведение совпадает с прослушкой сэмпл в сэмпл.
Вторая тоньше. В инструменте есть аналоговый дрейф — медленное блуждание
высоты в пределах десятой доли полутона, ради живости. Оно шло само по себе,
от момента запуска плагина. При экспорте хост создаёт плагин заново, блуждание
стартует из другой точки — и материал уезжает. Теперь дрейф считается от
позиции в песне: где бы вы ни нажали play, в сороковом такте он один и тот же.
А потом симптом остался. Я мерил, строил гипотезы, собрал лесенку из шести
схем, чтобы поймать ступень, на которой высота уезжает.
Не уезжала. Ableton держал в кэше старую сборку и запускал её. Я неделю
измерял код, который не выполнялся.
Урок дороже бага: проверка правки в DAW начинается с доказательства, что хост
взял свежую сборку. Дата файла, пересканирование, перезапуск — до всех
измерений, а не после.
Попутно нашлась настоящая поломка, которую иначе никто бы не искал. Если хост
менял частоту дискретизации на ходу, плагин продолжал считать по старой — и
весь инструмент звучал почти на полтора полутона выше. Слышно всем, кто
переключил студию с 44 на 48 килогерц.
Post #365
33
- 🔥 1