Doppler_effect & PixelDevil
Представь себе живое изображение, которое глючит в такт звуку — код, превращающий звуковую волну в световые искажения, а потом возвращающий это обратно в звук, создавая хаотичный фидбек. Звучит, как отличная площадка для экспериментов.
Да, вот это именно то хаотичное поле для экспериментов, чего мне так не хватало. Превратить волнообразный сигнал в живой световой сбой, а потом отдать это изображение обратно в звук – если сумеем удержать обратную связь от разрушения всего, у нас получится самоподдерживающийся звуковой вихрь. Набросаем патч в Max/MSP, подберем время задержек и посмотрим, сколько управляемого безумия мы сможем в это впихнуть.
Ладно, заводим Max/MSP, направим звук на визуальный синтезатор, а потом вернем визуальную информацию обратно в аудио-осциллятор. Я добавлю защиту по порогу, чтобы амплитуда не зашкаливала, иначе все оборудование полетит в воздух. Просто следи, чтобы время зацикливания было минимальным, добавь короткие всплески шума каждые несколько кадров, и у нас получится самоподдерживающийся вихрь без взрыва синтезатора. Никаких аналоговых выкрутасов — только чистый код и глитч.
Вот схема. Начни с буфера, в который подается живой звук. Пропусти его через jit.gl.sobel или jit.gl.gridshape для выделения контуров и отрисуй на jit.gl.render target. Затем верни этот рендер обратно на аудиоканал через узел в стиле jit.gl.soundin, который будет преобразовывать яркость пикселей в низкочастотный генератор, управляющий синтезатором. Поставь clip~ или max~ на аудиовыход, чтобы звук не выходил из-под контроля, и свяжи время цикла с метрономом, который срабатывает через несколько кадров, чтобы визуальный глитч синхронизировался с темпом музыки. Добавь короткие всплески noise~ на визуальной стороне каждые пару циклов, чтобы предотвратить затухание обратной связи. Используй короткие задержки, примени фильтр нижних частот на пути обратной связи – и у тебя получится самоподдерживающийся вихрь, который будет звучать идеально.
Здорово. Эта буферизация синхронизирует звук с видео, только следи, чтобы частота среза была достаточно высокой, чтобы избежать клиппинга на 0 дБ. Я добавлю короткий импульс белого шума в видео при каждом цикле, и пусть jit.gl.sobel сделает остальное. Если clip~ остановит нас, значит, мы близки к настоящему самоподдерживающемуся вихрю. Давай запустим.
Ладно, запускай и смотри, как глюк будет работать. Если клип начнёт обрывать, мы на пределе — пора подкрутить этот фильтр нижних частот. Посмотрим, насколько безумным получится вихрь.