Как начать писать музыкальный визуализатор на C ++?[закрыто]

StackOverflow https://stackoverflow.com/questions/819953

Вопрос

Я заинтересован в том, чтобы научиться использовать OpenGL, и у меня возникла идея написать музыкальный визуализатор.Кто-нибудь может дать мне несколько советов о том, какие элементы мне понадобятся и как мне следует научиться это делать?

Это было полезно?

Решение

Если вы используете C ++ / CLI, то вот пример который использует отображение WPF four (то есть фурье;).

Он ссылается этот сайт (архивировано), который содержит значительную информацию о том, о чем вы спрашиваете, вот ссылка с конкретной страницы;

Как мы разделяем звук на частоты?Наши уши делают это механическими средствами, математики делают это с помощью преобразований Фурье, а компьютеры делают это с помощью БПФ.

  1. Физика звука
    • Генератор гармонических колебаний
  2. Сэмплирование Звуков
  3. Анализ Фурье
  4. Комплексные числа
  5. Цифровое Преобразование Фурье
  6. БПФ

Аааа, я нашел это (архивировано) через несколько минут это собственный анализатор C ++.Включен код, который должен заставить вас начать работу.

Другие советы

Мой подход к созданию красоты (http://www.beatharness.com) :

  • запись звука в режиме реального времени
  • у вас есть поток, который запускает БПФ на аудио, чтобы получить значения частоты
  • расчет громкости звука для левого и правого каналов
  • отфильтруйте частоты в диапазонах (низкие, средние тона, высокие частоты).

теперь у вас есть несколько полезных переменных для использования в вашем графическом дисплее.Например, покажите картинку, где размер умножен на басы - это даст вам картинку, которая увеличит размер такта.С этого момента все зависит от вашего собственного воображения !:)

Вы пытаетесь написать свой собственный аудио / музыкальный проигрыватель? Возможно, вам следует попробовать написать плагин для существующего плеера, чтобы вы могли сосредоточиться на графике, а не на мелочах кодеков, dsp и устройств вывода звука.

Я знаю, что WinAMP и Foobar имеют API для плагинов визуализации. Я уверен, что Windows Media Player и iTunes также имеют их. Просто выберите медиаплеер и начните читать. Некоторые из них могут даже иметь существующие плагины OpenGL, с которых вы можете начать, чтобы вы могли сосредоточиться на чистом OpenGL.

Если вы хотите получить базовый 3D или ускоренный 2D, я бы порекомендовал приобрести копию Начало программирования игр OpenGL " который охватывает основы OpenGL в C ++.

Что касается анализа музыки, вам следует изучить основы ряда Фурье, а затем выбрать бесплатную реализацию алгоритма DFFT (цифрового быстрого преобразования Фурье).

Вы можете найти реализацию алгоритмов FFT и другую полезную информацию в числовых рецептах на языке Си книга. Книга бесплатная AFAIK. Существует также Числовые рецепты в C ++ .

Вы можете рассмотреть возможность использования функций FFT / DCT libvisual поверх FFTW; с ними гораздо проще работать и предоставлять данные, с которыми так же легко работать для создания визуальных элементов. Несколько медиаплееров и плагинов для визуализации в некоторой степени используют libvisual для визуализации. Примеры: Тотем (игрок), GOOM (плагин для Тотема и других игроков), PsyMP3 2.x (игрок)

С моей точки зрения ... проверьте этот сайт:http://nehe.gamedev.net/

действительно хорошая информация и руководства по использованию OpenGL

Редактировать:http://www.opengl.org/code/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top