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++?
risposta
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.
- The Physics of Sound 1.2. Oscillatore armonico
- Suoni campionati
- Fourier Analysis
- numeri complessi
- digitale Fourier Transform
- FFT
Ahhh, ho trovato this pochi minuti dopo, è un analizzatore nativo C++ . Codice incluso, che dovrebbe farti andare e correre.
Dal mio punto di vista ... controllare questo sito: http://nehe.gamedev.net/
davvero una buona informazione e Tutorial per l'utilizzo di OpenGL
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.
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
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
Se si è appena dopo un 2D di base o 2D accelerato, consiglierei di acquistare una copia di "Beginning OpenGL Game Programming" di Dave Astle che copre le nozioni di base di OpenGL in C++.
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).
È possibile trovare l'implementazione degli algoritmi FFT e altre informazioni utili nel libro Numerical Recipes in C. Il libro è gratuito AFAIK. C'è anche il libro Numerical Recipes in C++.
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! :)
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)
- 1. Come iniziare a scrivere un compositing WM?
- 2. Come iniziare a scrivere applicazioni per iPad?
- 3. Come iniziare a scrivere binding Perl per una libreria C++?
- 4. Batch File per scrivere a Visualizzatore eventi
- 5. Come posso iniziare a scrivere un transpiler? È possibile?
- 6. Dove posso iniziare a scrivere un media server in C# come PlayOn
- 7. Disegna uno staff musicale in C#
- 8. Iniziare a scrivere un'app desktop che parla con un iPhone
- 9. Come devo iniziare a scrivere i driver dei dispositivi?
- 10. C# scrivendo al visualizzatore eventi
- 11. Scrivere un MVC PHP di base, non so come iniziare
- 12. Come posso iniziare a creare un Lettore RSS C#?
- 13. Come posso incorporare un visualizzatore PDF in un'applicazione C++ multipiattaforma?
- 14. Come iniziare a scrivere test di unità per un'applicazione legacy Embedded C - moduli strettamente accoppiati?
- 15. Come scrivere a metà di un file in C++?
- 16. Come scrivere un semplice compilatore in C/++?
- 17. Come iniziare a schermo intero in Monogame?
- 18. Come iniziare con ICU in C
- 19. Come scrivere un file Json in C#?
- 20. Come posso iniziare a contribuire a GNOME?
- 21. Algoritmo per l'imitazione musicale?
- 22. Strumenti di riconoscimento in un file musicale
- 23. Come scrivere macchine a stati con C#?
- 24. C++ scrivere a fronte lima
- 25. Come scrivere "C++" in LaTeX
- 26. C# - Come faccio a leggere e scrivere un file binario?
- 27. Come iniziare a npm in un'altra directory
- 28. Un semplice debug visualizzatore per delphi 2010
- 29. Come iniziare a utilizzare BouncyCastle?
- 30. Come sviluppare un sito web di streaming musicale utilizzando PHP