2008-09-30 5 views
45

Итак, как кто-то создает музыкальный визуализатор? Я посмотрел на Google, но я не нашел ничего, что говорит о реальном программировании; в основном просто ссылки на плагины или визуализацию приложений.Создание музыкального визуализатора

Я использую iTunes, но я понимаю, что для этого мне нужен Xcode (я в настоящее время развернут в Ираке и не могу загрузить этот большой файл). Поэтому сейчас я просто заинтересован в том, чтобы изучать «теорию» за ней, например, обрабатывать частоты и все, что требуется.

+0

Вам не нужно XCode программировать для ITunes на Windows. – 2010-03-13 22:52:28

+1

Этот аналогичный вопрос имеет более развитый ответ http://stackoverflow.com/questions/3148008/music-visualization?rq=1 – Rambatino 2014-11-21 23:59:53

ответ

13

Как правило, вы берете определенное количество аудиоданных, запускаете частотный анализ по нему и используете эти данные для изменения отображаемой графики снова и снова. Очевидным способом проведения частотного анализа является FFT, но простой tone detection может работать так же хорошо, с более низкими вычислительными накладными расходами.

Так, например, вы пишете рутину, которая непрерывно рисует ряд фигур, расположенных по кругу. Затем вы используете доминирующие частоты для определения цвета кругов и используете громкость для установки размера.

23

Как визуализатор воспроизводит файл песни, он считывает аудиоданные в очень короткие срезы (обычно менее 20 миллисекунд). Визуализатор выполняет преобразование Фурье на каждом фрагменте, извлекает частотные компоненты и обновляет визуальный дисплей с использованием информации о частоте.

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

Одна из характеристик визуализаторов на основе частотной составляющей заключается в том, что они часто не реагируют на «удары» музыки (например, ударные удары, например) очень хорошо. Могут быть написаны более интересные и отзывчивые визуализаторы, которые объединяют информацию о частотной области с осознанием «всплесков» звука, которые часто соответствуют ударам перкуссии.

+0

Я заметил, что большинство визуализаторов не очень хорошо реагируют на частоты или шипы. Вот почему я заинтересован в том, как они работают, как эксперимент в области образования. – crystalattice 2008-10-01 02:15:30

+0

Жаль, что у MIDI так много ограничений, потому что это дает программисту отличную информацию о том, какие ноты играют и когда. MIDI-визуализаторы отлично реагируют. – MusiGenesis 2008-10-01 15:58:05

2
  1. Разработайте алгоритм нарисовать что-то интересное на экране данного набора переменных
  2. Придумайте способ конвертировать аудио поток в набор переменных, анализирующих такие вещи, как уд/мин частота различных частотных диапазонах, тон и т. д.
  3. Подключите переменные в ваш алгоритм и посмотрите, как он рисует.

Простая визуализация - это та, которая меняла цвет экрана каждый раз, когда музыка переходила через определенное значение частоты. или просто написать bpm на экран. или просто отображение ociliscope.

проверить этот wikipedia article

5

Если вы ищете небольшую загрузку, достаточно портативный набор инструментов, чтобы играть с (и ярым сообществом обратить на), я хотел бы предложить Processing (http://www.processing.org), в частности http://processing.org/learning/libraries/ под ESS. Это должно привести вас к кроличьей дыре. Не сделал бы визуализатор iTunes, но использовался для прототипирования этого: http://www.barbariangroup.com/software/magnetosphere, который стал визуализатором ITunes по умолчанию.

6

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

Преобразование данных в частотную область с использованием БПФ или иное разрешение более сложных эффектов, включая такие вещи, как spectrograms. Обманчиво сложно обнаружить даже совершенно «очевидные» вещи, такие как время барабанных ударов или шаг нот непосредственно с выхода БПФ.

Надежное обнаружение биений и обнаружение тонов являются трудными проблемами, особенно в режиме реального времени. Я не эксперт, но this page пробегает некоторые простые примерные алгоритмы и их результаты.

1

Lee Brimelow имеет a great video tutorial для этого во вспышке. Должен указать вам в правильном направлении, даже если вы хотите реализовать его, используя что-то другое, кроме вспышки.

MDN has a nice tutorial а также для визуализации с помощью API веб-аудио.

18

Для создания BeatHarness (http://www.beatharness.com) Я «просто» использовал БПФ, чтобы получить аудиоспектр, а затем использовать некоторые фильтрующие и краевые/начальные детекторы.

О быстрого преобразования Фурье: http://en.wikipedia.org/wiki/Fast_Fourier_transform

Если вы привыкли к математике вы можете прочитать страницу Пола Бурк в: http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/dft/

(Paul Бурк является имя, которое вы хотите Google в любом случае, у него много информации о тех темах, которые вы либо хотите узнать прямо сейчас, или, вероятно, в ближайшие 2 года;))

Если вы хотите прочитать информацию об обнаружении бит/темпа Google для Масатаки Гото, он написал несколько интересных работ об этом.

Edit:

Его страница: http://staff.aist.go.jp/m.goto/ Интересно читать: http://staff.aist.go.jp/m.goto/PROJ/bts.html

После того, как у вас есть несколько значений, например, бас, полутонах, высокие частоты и громкость (левый и правый), все это до вашего воображение, что с ними делать. Отобразите изображение, умножьте размер на бас, например - вы получите изображение, которое увеличит масштаб и т. Д.

2

Как предложено обработкой @Pragmaticyankee, действительно интересный способ визуализации вашей музыки. Вы можете загрузить свою музыку в Ableton Live и использовать эквалайзер для фильтрации высоких, средних и низких частот от вашей музыки. Затем вы можете использовать плагин VST для преобразования конвертов аудио в сообщения MIDI CC, такие как Gatefish от Mokafix Audio (работает на окнах) или плагин midiAudioToCC от PizMidi (работает на Mac). Затем вы можете отправить эти сообщения MIDI CC на светоизлучающий аппаратный инструмент, который поддерживает MIDI, например, percussa audiocubes. Вы можете использовать куб для каждой частоты, которую вы хотите отобразить, и назначить цвет кубу.Посмотрите на этот пост:

http://www.percussa.com/2012/08/18/how-do-i-generate-rgb-light-effects-using-audio-signals-featured-question/

1

VizKit по Хайко Вихманн, кажется, очень хорошая кросс-платформа (сторонняя сторона) sdk & отправная точка (в ней используется API-интерфейс Visualizer Apple, выпущенный некоторое время назад).

Я только что скомпилировал его с помощью Xcode и включает в себя проект визуальной студии. iTunes потерпел крах один раз, но после этого все закончилось. То, что мне нравится до сих пор: низкие зависимости (пришлось исправлять один путь каркаса на моем env), множество образцов (эквалайзер, спектр, обложки альбомов, гистограммы), very clear architecture, приятная лицензия.

Также доступен на Sourceforge.

2

В последнее время мы добавили процедуры ввода аудиоданных на основе DirectSound в библиотеку визуализации данных LightningChart. LightningChart SDK - это набор компонентов для Visual Studio .NET (WPF и WinForms), вы можете найти это полезным.

С компонентом AudioInput вы можете получать образцы данных формы сигнала в реальном времени с звукового устройства. Вы можете воспроизводить звук из любого источника, например Spotify, WinAmp, CD/DVD-плеера или использовать микрофонный разъем.

С компонентом SpectrumCalculator вы можете получить спектр мощности (FFT-преобразование), который удобен во многих визуализациях.

С компонентом LightningChartUltimate вы можете визуализировать данные во многих различных формах, таких как диаграммы осциллограмм, гистограммы, карты теплоты, спектрограммы, 3D-спектрограммы, 3D-линии и т. Д., И их можно комбинировать. Все рендеринг происходит через ускорение Direct3D.

Наши собственные примеры в SDK имеют научный подход, не имеющий особого развлекательного аспекта, но он определенно может быть использован и для потрясающей визуализации развлечений.

У нас также есть настраиваемый SignalGenerator (развертки, многоканальные конфигурации, синусы, квадраты, треугольники и шумовые сигналы, потоковая передача в реальном времени и аудиовыходы DirectX для отправки волновых данных из динамиков или линейного выхода.

Waveform and 3D spectrogram

Gradient bars [Я CTO компонентов LightningChart, делая этот материал только потому, что мне это нравится :-)]

Смежные вопросы