(Часть 2)

Создание музыкального визуализатора

В Часть 1 я описал, как я использовал среду кодирования Processing 3 для создания музыкальных клипов посредством кодирования простых анимаций и записи с экрана.

Одной из моих первоначальных целей было написать визуализатор музыки — анимацию, которая реагирует на параметры самой музыки. Особое желание заключалось в том, чтобы я мог представить частоты (высоты звука), присутствующие в музыке, визуальным образом. Такое приложение музыкального визуализатора, основанное на цифровой обработке сигналов (DSP) звука, также можно использовать для проецирования изображений на экран во время исполнения моей музыки.

Преобразование Фурье

Наука, стоящая за анализом частот, присутствующих в музыке, выглядит примерно так: музыка состоит из довольно сложной звуковой волны. Любую сложную звуковую волну можно разбить на набор простых синусоидальных волн, которые говорят вам, как эта звуковая волна собирается вместе. Гений, разработавший это, был французским математиком по имени Жозеф Фурье, и он дал свое имя части математики, которая позволяет разбирать звуковой сигнал на составные части: Преобразование Фурье. Как только вы узнаете, что представляют собой компоненты, вы сможете представить их графически любым удобным для вас способом.

Это прекрасно и имеет смысл для меня в теории, но математика выглядит ужасно! К счастью, это то, что было рассмотрено в курсе Креативное программирование для цифровых медиа и мобильных приложений, за которым я следил, и команда Goldsmiths написала модуль для обработки, который включал Быстрое преобразование Фурье. ', так что мне не нужно было беспокоиться о кодировании этой функции самостоятельно. Однако загвоздка заключалась в том, что, хотя он отлично работал с небольшими фрагментами предварительно записанной музыки, я не мог заставить его работать с более длинными файлами .wav нормальной длины песни или для анализа музыки, воспроизводимой в реальном времени.

Бодание головой

После долгих головоломок я дошел до того, что уже не думал, что смогу решить первоначальную проблему маршрутизации живого звука через уникальный, самопрограммируемый музыкальный визуализатор. Поэтому я вернулся к основам. Отказавшись от звукового модуля, предоставленного в курсе Creative Programming, я заглянул в собственную звуковую «библиотеку» Processing, используя онлайн-документацию. Библиотеки, кстати, путано-названы - я так и не нашел, как их прочитать! Мне нравится думать о них как о невидимых модулях функций, которые вы можете вызывать, почти в стиле Гарри Поттера, с помощью правильных строк кода.

К моему облегчению, в звуковой библиотеке для обработки есть быстрое преобразование Фурье (БПФ), а в справочнике по языку есть пример кода, показывающий, как его вызывать. Мне просто нужно было убедиться, что на моей копии Processing установлена ​​звуковая библиотека, а затем попробовать пример кода.

И бинго, у меня вдруг появилось что-то, что реагировало на ввод со звуковой карты. Просто так. Графика была ужасной — просто нечеткая линия внизу экрана — но у меня, наконец, появились зачатки решения.

Креативный подход

Показав теперь, что я могу заставить частотный анализ работать для звука, который не был предварительно записан, я изменил код своего визуализатора. Я импортировал звуковую библиотеку, включил соответствующие команды и использовал собственную графику, чтобы создать что-то более привлекательное, чем дергающаяся строка в примере кода.

Вы можете указать функции БПФ, как точно анализировать звуковые данные, установив количество частотных диапазонов, на которые вы хотите разбить звук для анализа. Большее количество полос означает, что ваш процессор должен работать усерднее, чтобы не отставать от данных звуковых волн в реальном времени. Я обнаружил, что моему компьютеру удобно работать с 512 полосами, предложенными в примере кода, и что это дает достаточно четкости графике для того вида, которого я хотел добиться.

Я использовал полученный визуализатор для записи видео Quicktime на мою песню Silver Bird, а затем отредактировал результаты в iMovie. Готовое видео вы можете посмотреть по ссылке вверху этой страницы. Это не идеально, я еще не решил проблему записи звука в видео Quicktime — если это вообще возможно. Это означало, что впоследствии мне пришлось попытаться выровнять звук с графикой, что было чрезвычайно сложно, тем более что я хотел сделать видео более интересным, сделав некоторые фрагменты монохромными, а также добавив некоторые ускоренные фрагменты. Мне не всегда удавалось выровнять звук и визуализацию, но есть части видео, где музыкальная визуализация более очевидна, например, здесь.