Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

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

  1. Физика звука
    • Гармонический генератор
  2. Sampling Sounds
  3. Фурье-анализ
  4. Сложные числа
  5. Цифровое преобразование Фурье
  6. FFT

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

Ответ 2

Мой подход для создания BeatHarness (http://www.beatharness.com):

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

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

Ответ 3

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

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

Ответ 4

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

Ответ 5

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

Ответ 6

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

Ответ 7

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

Ответ 8

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

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

изменить: http://www.opengl.org/code/