Как работает алгоритм деформации Ableton?
Я ищу любую документацию или точную информацию о функции деформации Ableton. Я понимаю, что это как-то связано с поиском переходных процессов, выравниванием их с равномерным ритмом и соответствующим смещением аудиосэмплов. Я надеюсь найти способы приблизить деформацию с помощью более простых инструментов редактирования звука.
Я понимаю, что это уникальное устройство, действительно любая информация о том, как оно работает, будет полезна.
Итак... у кого-нибудь есть 411?
3 ответа
Функция автоматического деформирования в wayton live состоит в основном из двух этапов обработки: обнаружение ударов с помощью алгоритма автоматического обнаружения ударов и динамическое изменение темпа в соответствии с информацией об ударах.
Для определения темпа они лицензировали более старую версию zplane aufTAKT.
В программе умеют жить несколько алгоритмов. Большинство из них работают во временной области (сравните: алгоритмы перекрытия и добавления (OLA)). Два из них, "Complex" и "Complex Pro", также лицензированы от zplane (сравните алгоритмы zplane élastique). Они не являются алгоритмами во временной области. Чтобы узнать больше об алгоритмах частотной области, "Phase Vocoder" был бы лучшим началом Google. Отличное введение в теорию растяжения времени и изменения высоты тона можно найти в книге Цельцера DAFX.
"Деформация" звука должна позволять изменять его скорость без изменения высоты тона. Ableton Live имеет несколько алгоритмов, каждый из которых оптимизирован для различных типов контента. Я объясню, как это работает на общем уровне.
Аудио обычно записывается и определяется количественно сэмплами. Уровень давления измеряется в течение короткого периода времени. Каждое измерение (образец) берется и воспроизводится очень быстро. (44,1 кГц для аудио CD) Это означает, что аудиосигнал находится во временной области.
Если мы просто ускорим что-то, записанное во временной области, мы также изменим его высоту, поскольку частота тесно связана. Что нам нужно сделать, это преобразовать звук из временной области в частотную область. То есть вместо того, чтобы фиксировать общий уровень давления для образца, мы будем вместо этого фиксировать, какие частоты присутствуют.
Для этого сначала значительно снизим частоту дискретизации. Обычно около 10 мс или около того. Это дает нам достаточно времени для запуска преобразования Фурье (обычно реализуемого как БПФ) в окне примера и получения довольно полезных результатов. Более низкие частоты обычно снимаются (так как они плохо вписываются в окно), поэтому для их усиления используются различные алгоритмы. Эти алгоритмы обычно смотрят на окна поблизости.
В любом случае, в итоге мы получаем различные частоты для окон. Это означает, что для ускорения звука мы просто воспроизводим каждое окно в течение более короткого времени, а для замедления звука мы воспроизводим каждое окно в течение более длительного времени. Каждое окно имеет небольшой снимок частот, которые присутствуют в нем.
В этот метод также внесено множество исправлений, чтобы улучшить звучание, но так оно и есть.
Также обратите внимание, что кодирование MP3 работает точно так же.
Вот простая версия такого алгоритма, реализованного в Max/MSP с открытым исходным кодом: