Какой алгоритм обработки звука позволяет вам делать подобные визуализации? - PullRequest
6 голосов
/ 05 февраля 2010

Я заинтересован в создании визуализатора OpenGL для MP3 в качестве любимого проекта.

Я наткнулся на это видео на YouTube, которое демонстрирует, как кто-то демонстрирует визуализатор, используемый в сочетании с дополненной реальностью.

http://www.youtube.com/watch?v=SnshyLJSpnc#t=1m15s

Пожалуйста, посмотрите это видео, но игнорируйте аспект дополненной реальности этого видео. Меня интересует только создание визуализатора, а не дополненная реальность.

Какие алгоритмы были использованы для генерации этих паттернов в отношении музыки? Если вы смотрите, вы можете увидеть, как выглядит несколько разных методов визуализации. Первый имеет отчетливый вид:

Первая была похожа на волны, движущиеся по области рендеринга: alt text

В другом «режиме» визуализация двигалась вокруг центра в концентрических кругах: alt text

Любой, кто хорошо разбирается в звуковом программировании, какие алгоритмы можно использовать для создания похожих визуализаций? Какой алгоритм использовал первый? Или с концентрическими кругами?

Любая помощь в указании мне, какие алгоритмы использовались для генерации этих визуализаций на основе музыки, очень мне помогла бы!

Ответы [ 2 ]

8 голосов
/ 06 февраля 2010

Во-первых, все они, по-видимому, основаны на алгоритмах БПФ (быстрых преобразованиях Фурье), которые могут принимать звуковую волну за определенный интервал времени и разделять ее на линейный график спектра XY, где X представляет частотный спектр (обычно от 20 Гц до 20000 Гц), а Y представляет амплитуду или громкость звука на каждой частоте.

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

С этого момента он просто добавляет разные и постепенно усложняющиеся декорации к этой основной уловке. Сначала он добавляет очень базовое цветовое отображение: высота сигнала отображается непосредственно в его цвете: от красного (самый низкий) до темно-синего / индиго (самый высокий), следуя классическому образцу ROYGBIV (красный , оранжевый, желтый, зеленый, синий, индиго, фиолетовый). Помните, что высота также соответствует объему на этой частоте. Насколько я могу судить, он использует это же цветовое отображение повсюду без каких-либо изменений.

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

Все остальное - это все более и более сложные версии, отображающие время (и только время) более сложными способами. Например, на круглом изображении, которое вы показываете вторым, я полагаю, что он отображает время очень быстрым радиальным циклом развертки вокруг очевидного полюса в середине.

3 голосов
/ 23 июля 2011

Взгляните на Princeton Soundlab sndpeek - некоторые базовые, но эффективные эффекты визуализации водопада, реализованные с OpenGL, и источник довольно инструктивный

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...