Pregunta

Estoy interesado en aprender a usar OpenGL y tuve la idea de escribir un visualizador de música. ¿Alguien puede darme algunos consejos sobre qué elementos necesitaré y cómo debo ir para aprender a hacer esto?

¿Fue útil?

Solución

Si usa C ++ / CLI, aquí está un ejemplo que usa la pantalla WPF four (fourier es;).

Hace referencia a este sitio ( archivado ) que tiene información considerable sobre lo que está preguntando , aquí hay un resumen de la página específica;

  

¿Cómo dividimos el sonido en   frecuencias? Nuestros oídos lo hacen por   Los medios mecánicos, los matemáticos lo hacen.   utilizando transformadas de Fourier, y   Las computadoras lo hacen usando FFT.

     
      
  1. La física del sonido      
        
    • Oscilador armónico
    •   
  2.   
  3. Sonidos de muestreo
  4.   
  5. Análisis de Fourier
  6.   
  7. Números complejos
  8.   
  9. Transformada digital de Fourier
  10.   
  11. FFT
  12.   

Ahhh, encontré esto ( archivado ) unos minutos más tarde, es un analizador nativo de C ++. Código incluido, que debería ponerlo en marcha.

Otros consejos

Mi enfoque para crear BeatHarness ( http://www.beatharness.com ):

  • grabar audio en tiempo real
  • tiene un subproceso que ejecuta una FFT en el audio para obtener las intensidades de frecuencia
  • calcular el volumen de audio para el canal izquierdo y derecho
  • filtre las frecuencias en bandas (graves, medios tonos, agudos)

ahora tienes algunas buenas variables para usar en tu pantalla gráfica. Por ejemplo, muestre una imagen en la que el tamaño se multiplique por el bajo; esto le dará una imagen que ampliará el ritmo. ¡De ahí en adelante es tu propia imaginación! :)

¿Estás tratando de escribir tu propio reproductor de audio / música? Tal vez debería intentar escribir un complemento para un reproductor existente para poder concentrarse en los gráficos en lugar de en las minucias de los códecs, dsp y dispositivos de salida de audio.

Sé que WinAMP y Foobar tienen API para complementos de visualización. Estoy seguro de que Windows Media Player y iTunes también los tienen. Solo elige un reproductor de medios y comienza a leer. Algunos de ellos pueden incluso tener complementos OpenGL desde los que puedes comenzar para que puedas concentrarte en OpenGL puro.

Si solo buscas algo de 3D básico o 2D acelerado, te recomiendo comprar una copia de Dave Astle " Comenzando la programación de juegos OpenGL " que cubre los conceptos básicos de OpenGL en C ++.

Para la parte de análisis de música, debe estudiar la base de la serie de Fourier, luego elegir una implementación gratuita de un algoritmo DFFT (transformada rápida de Fourier digital).

Puede encontrar la implementación de algoritmos FFT y otra información útil en Recetas numéricas en C libro. El libro es gratis AFAIK. También se encuentra el libro Recetas numéricas en C ++

Es posible que desee considerar el uso de las funciones FFT / DCT de libvisual sobre FFTW; son mucho más simples para trabajar y proporcionan datos con los que es igualmente fácil trabajar para generar imágenes. Varios reproductores multimedia y complementos de visualización utilizan libvisual en cierta medida para sus imágenes. Ejemplos: Totem (jugador), GOOM (complemento para Totem y otros jugadores), PsyMP3 2.x (jugador)

Desde mi punto de vista ... mira este sitio: http://nehe.gamedev.net/

Muy buena información y tutoriales para usar OpenGL

editar: http://www.opengl.org/code/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top