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 aprender a hacer esto?¿Cómo comenzar a escribir un visualizador de música en C++?
Respuesta
Si usa C++/CLI, aquí está an example que usa WPF cuatro (fourier es decir) pantalla.
Él hace referencia al this site que tiene información considerable acerca de lo que está preguntando, aquí está una línea de la página específica;
¿Cómo dividimos el sonido en frecuencias? Nuestros oídos lo hacen por medios mecánicos , los matemáticos lo hacen usando transformadas de Fourier, y las computadoras lo hacen usando FFT.
- The Physics of Sound 1.2. Oscilador armónico
- muestrear sonidos
- análisis de Fourier
- números complejos
- Digital transformada de Fourier
- FFT
Ahhh, me encontré con this unos minutos más tarde, es un nativo de C++ analizador . Código incluido, eso debería ponerlo en funcionamiento.
Desde mi punto de vista ... ver este sitio: http://nehe.gamedev.net/
muy buena información y tutoriales para el uso de OpenGL
edición: http://www.opengl.org/code/
¿Estás tratando de escribir su propio audio /¿reproductor de música? Tal vez deberías intentar escribir un complemento para un reproductor existente para que puedas enfocarte 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 e iTunes también los tienen. Solo elige un reproductor multimedia y comienza a leer. Algunos de ellos incluso pueden tener complementos de OpenGL existentes desde los cuales puede comenzar para que pueda enfocarse en OpenGL puro.
No estoy tratando de escribir un reproductor ni nada, solo algo que contendrá un MP3 y lo visualizará, pero no sé nada sobre cómo conectar todas esas piezas. Estoy en Linux, así que me quedaré con algo simple. Realmente no he pensado en integrarlo en otra cosa. – victor
considere usar una biblioteca como mpg123, libmad o ffmpeg para decodificar luego mp3 en muestras de audio. Desde allí, querrá usar DFT (FFT) para convertir el audio en información de frecuencia (vea FFTW). En este punto, tendrá datos de frecuencia en bruto similares a los que ve en la mayoría de visuladores (winamp/xmms líneas móviles con picos). Después de eso, necesita averiguar qué hacer según la frecuencia y los cambios en la frecuencia. – basszero
Si buscas algo de 3D básico o 2D acelerado, te recomiendo comprar una copia del "Beginning OpenGL Game Programming" de Dave Astle 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, y luego elegir una implementación gratuita de un algoritmo DFFT (transformada digital rápida de Fourier).
Puede encontrar la implementación de algoritmos FFT y otras informaciones útiles en el libro Numerical Recipes in C. El libro es gratis AFAIK. También hay Numerical Recipes in C++ libro.
Mi enfoque para la creación de BeatHarness (http://www.beatharness.com):
- grabar audio en tiempo real
- tener un hilo que se ejecuta una FFT en el audio para obtener las intensidades de frecuencia
- cálculo de audio volumen para canal izquierdo y derecho
- filtro de las frecuencias en las bandas (graves, medios tonos, agudos)
ahora tiene algunas variables agradables para usar en su pantalla gráfica. Por ejemplo, muestre una imagen donde el tamaño se multiplique por el bajo; esto le dará una imagen que ampliará el ritmo. A partir de ahí es su propia imaginación! :)
Es posible que desee considerar el uso de las funciones de FFT/DCT de libvisual sobre FFTW; es mucho más fácil trabajar con ellos y proporcionar datos que son igualmente fáciles de usar para generar efectos visuales. Varios reproductores de medios 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)
- 1. ¿Cómo escribir un visualizador de música basado en web?
- 2. Crear visualizador de música
- 3. ¿Cómo comenzar a escribir aplicaciones para iPad?
- 4. Dibujar un equipo de música en C#
- 5. ¿Cómo debo comenzar a escribir controladores de dispositivos?
- 6. Creación de un iPhone Visualizador de música basado en Fourier Transform
- 7. ¿Cómo puedo comenzar a crear un lector de C# RSS?
- 8. visualizador de depurador de Visual C++?
- 9. ¿Cómo comenzar a programar un microcontrolador?
- 10. ¿Cómo puedo comenzar y escribir el código en joomla?
- 11. Cómo comenzar a probar (jMock)
- 12. Netbeans MPI C++ ¿cómo comenzar?
- 13. Cómo comenzar con ICU en C
- 14. Cómo escribir una DLL de visualizador nativa personalizada para Visual Studio 2012 depurador?
- 15. ¿Cómo escribir un compilador simple en C/++?
- 16. Cómo escribir en C++
- 17. C++: ¿Cómo escribir un const_iterator?
- 18. Visualizador/visualizador HTML de Java puro para usar en un panel desplazable
- 19. Cómo escribir aplicaciones de procesamiento de audio en C++?
- 20. ¿Cómo debería comenzar a jugar con 3D?
- 21. ¿Cómo comenzar a usar ndepend?
- 22. ¿Cómo aprendo a escribir un emulador de consola?
- 23. Cómo comenzar a desarrollar el software Maemo
- 24. Distinguir instrumentos en un archivo de música
- 25. cómo comenzar a usar openID en un proyecto asp.net mvc3?
- 26. ¿Cómo comenzar a hacer TDD en un proyecto django?
- 27. Cómo comenzar a escribir pruebas unitarias para una aplicación heredada de Embedded C: ¿módulos muy estrechamente acoplados?
- 28. Cómo aprender a escribir código C++ idiomático
- 29. Cómo comenzar a crear una API de aplicación en .NET
- 30. ¿Cómo puedo aprender a escribir código C eficiente y mantenible?