Pergunta

Estou interessado em aprender a usar OpenGL e eu tive a idéia de escrever um visualizador de música. Alguém pode me dar algumas dicas de quais os elementos que você precisa e como eu deveria ir sobre aprender a fazer isso?

Foi útil?

Solução

Se você usar o C ++ / CLI, aqui está um exemplo que usos WPF quatro (Fourier que é;). visor

Ele faz referência neste site ( arquivado ) que tem informações consideráveis ??sobre o que a sua pergunta , aqui está anoutline da página específica;

Como nós dividir o som em frequências? Nossos ouvidos fazê-lo, meios mecânicos, matemáticos fazê-lo Usando a transformada de Fourier, e computadores fazê-lo usando FFT.

  1. The Physics of Sound
    • Harmonic Oscillator
  2. Amostragem de sons
  3. Análise de Fourier
  4. Números Complexos
  5. Fourier Transform Digital
  6. FFT

Ahhh, eu achei este ( arquivado ) alguns minutos depois, é um analisador nativo C ++. Código incluído, que deverá fazê-lo fora e correndo.

Outras dicas

A minha abordagem para a criação de BeatHarness ( http://www.beatharness.com ):

  • gravação de áudio em tempo real
  • tem um segmento que executa um FFT no áudio para obter as intensidades de frequência
  • áudio volume calcular para o canal esquerdo e direito
  • filtrar as frequências nas bandas (baixo, meios-tons, triplo)

Agora você tem algumas variáveis ??agradáveis ??para usar em sua exibição de gráficos. Por exemplo, mostrar uma imagem onde o tamanho é multiplicado pelo baixo - isso vai lhe dar uma imagem que vai ampliar a batida. A partir daí é a sua própria imaginação! :)

Você está tentando escrever o seu próprio leitor de áudio / música? Talvez você deve tentar escrever um plugin para um jogador existente para que você possa se concentrar em gráficos, em vez da minúcia de codecs, DSP, e dispositivos de saída de áudio.

Eu sei o Winamp e Foobar tem APIs para plugins de visualização. Tenho certeza de que o Windows Media Player e iTunes também tê-los. Basta escolher um reprodutor de mídia e começar a ler. Alguns deles podem até ter plugins OpenGL existente do qual você pode começar assim que você pode se concentrar em OpenGL puro.

Se você está apenas depois de algum 3D básico ou aceleração 2D, então eu recomendo comprar uma cópia do Dave Astle do " Começando Programação OpenGL Game", que abrange os conceitos básicos de OpenGL em C ++.

Para a parte de análise musical, você deve estudar a base da série de Fourier, em seguida, escolher uma implementação livre de um DFFT algoritmo (digital rápida Transformada de Fourier).

Você pode encontrar implementação de algoritmos de FFT e outras informações úteis em Numerical Recipes em C livro. O livro é livre AFAIK. Há também Numerical Recipes em C ++ livro.

Você pode querer considerar o uso de funções FFT / DCT de libvisual sobre FFTW; eles são muito mais simples de trabalhar com e fornecer dados que são igualmente fácil para trabalhar com por causa do visual geradoras. jogadores vários meios de comunicação e plugins de visualização usar libvisual até certo ponto para os seus visuais. Exemplos: Totem (jogador), goom (plugin para o Totem e outros jogadores), PsyMP3 2.x (jogador)

Do meu ponto de vista ... confira este site: http://nehe.gamedev.net/

realmente bom informações e tutoriais para usar OpenGL

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top