2009-05-04 23 views
21

Sono interessato ad imparare ad usare OpenGL e ho avuto l'idea di scrivere un visualizzatore musicale. Qualcuno può darmi qualche suggerimento su quali elementi ho bisogno e su come dovrei andare a imparare a fare questo?Come iniziare a scrivere un visualizzatore musicale in C++?

+9

con un "#include", forse? scusate, non potevo aiutare :) –

risposta

13

Se si utilizza C++/CLI, ecco an example che utilizza il display WPF quattro (fourier is;).

Si riferisce a this site che ha informazioni considerevoli su ciò che si sta chiedendo, qui è una linea esterna dalla pagina specifica;

Come suddividere l'audio nelle frequenze ? Le nostre orecchie lo fanno tramite i mezzi meccanici , i matematici lo fanno utilizzando le trasformate di Fourier e i computer utilizzando FFT.

  1. The Physics of Sound 1.2. Oscillatore armonico
  2. Suoni campionati
  3. Fourier Analysis
  4. numeri complessi
  5. digitale Fourier Transform
  6. FFT

Ahhh, ho trovato this pochi minuti dopo, è un analizzatore nativo C++ . Codice incluso, che dovrebbe farti andare e correre.

1

Stai cercando di scrivere il proprio audio /lettore musicale? Forse dovresti provare a scrivere un plug-in per un player esistente in modo da poterti concentrare sulla grafica piuttosto che sui minimi dettagli di codec, dsp e dispositivi di output audio.

So che WinAMP e Foobar hanno API per i plug-in di visualizzazione. Sono sicuro che Windows Media Player e iTunes hanno anche loro. Basta scegliere un lettore multimediale e iniziare a leggere. Alcuni di essi potrebbero anche avere plugin OpenGL esistenti dai quali è possibile iniziare in modo da potersi concentrare sulla pura OpenGL.

+0

Non sto provando a scrivere un lettore o altro, solo qualcosa che prenderà in MP3 e visualizzarlo, ma non so nulla su come collegare tutti quei pezzi. Sono su Linux, quindi mi limiterei a qualcosa di semplice. Non ho davvero pensato di integrarlo in qualcos'altro. – victor

+2

considera l'utilizzo di una libreria come mpg123, libmad o ffmpeg per decodificare quindi mp3 in campioni audio. Da lì ti consigliamo di usare DFT (FFT) per convertire le informazioni audio in frequenza (vedi FFTW). A questo punto avrai dati di frequenza raw simili a quelli che vedi nella maggior parte dei visuliazers (linee mobili di winamp/xmms con picchi). Dopodiché è necessario capire cosa visualizzare in base alla frequenza e ai cambiamenti di frequenza. – basszero

0

Per la parte di analisi musicale, è necessario studiare la base delle serie di Fourier, quindi scegliere un'implementazione gratuita di un algoritmo DFFT (digital fast fourier transform).

4

Il mio approccio per la creazione di BeatHarness (http://www.beatharness.com):

  • registrare audio in tempo reale
  • avere un filo che corre una FFT sul audio per ottenere le intensità di frequenza
  • calcolare audio volume per sinistro e canale destro
  • filtro le frequenze nelle bande (bassi, mezzitoni, acuti)

ora hai alcune belle variabili da usare nel tuo display grafico. Ad esempio, mostra un'immagine in cui la dimensione viene moltiplicata per il basso: questo ti darà un'immagine che ingrandirà il battito. Da lì in poi è la tua immaginazione! :)

0

Si consiglia di prendere in considerazione l'utilizzo delle funzioni FFT/DCT di libvisual su FFTW; sono molto più semplici da utilizzare e forniscono dati altrettanto facili da utilizzare per generare immagini. Diversi lettori multimediali e plug-in di visualizzazione utilizzano in una certa misura le immagini libvisue. Esempi: Totem (lettore), GOOM (plugin per Totem e altri giocatori), PsyMP3 2.x (lettore)

Problemi correlati