Фэйковый музыкальный морфинг и его техническая реализация в
duckstazy. Реализовался он очень просто. У нас есть параметр
power, плавно изменяющийся от 0 до 1 и обратно. Три коротких музыкальных трека проигрываются в петле. Для каждого трека хардкорно задана функция
volume от
power. Функция эта у нас задавалась четырьмя значениями уровня
power. Первый и последний – для
volume = 0. Средние два – для
volume = 1. Чтобы узнать то, какую громкость мы должны выставить определенному треку, применяем линейную интерполяцию на участках: первый-второй и третий-четвертый. Текущая позиция всех треков должна быть одинаковой. Для этого мы ставим их в петлю и запускаем все три трека одновременно. Теперь нам осталось только регулировать их громкость.
Проблемы с MP3-петлей. И вот
Alexis-Scorpio сдал мне свои три трека для морфинга в
MP3, мы с ним долго слушали, и нам казалось, что петля как-то неровно стыкуется на последнем треке. Вроде бы короткая пауза. Вообще без ушей можно догадаться, что пауза была на всех треках в месте стыка. Виной этому, я считаю, был
MP3-формат, чьи кодеры впиливают в начало/конец трека пустые участки для хранения какой-то своей информации (а может и просто так, чтобы было кошернее). На счастье, задолго до первых движений утки мы знали о том, что у нас будет
OGG, где такого ужаса не наблюдается. Леша получил указания сохранять в
WAV все треки, которые я затем жал утилитой «OGGENC2.EXE». Все, никаких проблем в
duckstazy нет. Но сейчас вернемся к
MP3. Солнце светило, и все были рады... Были... Но тут пошел дождь из говна и заляпал людей ненужной информацией. Пока не буду разглашать, зачем нам это нужно. Возможно, скоро будет анонс, и вы сами все узнаете. В общем, если вы хотите проигрывать
MP3-петлю – вам придется вручную обрезать эти паузы в начале и конце трека. Проигрывать и отслеживать петлю также придется самим, учитывая эти паузы (gaps). И самое противное – не у всех кодеров эти паузы получаются одинаковыми, поэтому ручками можно подбирать.