Det hedder en FFT (Fast Fourier Transform) og er, ganske rigtigt, en hurtig FT :-)
Jeg har konverteret det meste af en header til en freeware-DLL-fil der kan lave FFT'er af alle mulige slags data. Jeg har kun testet den på lyd-data, men det skulle altså også virke på 2D- og 3D-data (men det er der naturligvis ikke brug for her :-)
Hvis du er interesseret, kan jeg godt skrue et sample sammen, men jeg vil først lige høre om du er med på at bruge en DLL-fil, da det nok kommer til at tage noget tid at lave. I øvrigt - har du allerede fået dit program til at afspille WAV-filen, og VIL du i det hele taget det? :-) Eller skal du "bare" lave FFT'er af WAV-filer man ikke hører?
Jeg har nogle wav filer som bliver afspillet når man trykker på en knap. Og så ville jeg gerne have at når man trykker på knappen hvor lyden er i så skal der være et animatin der reagere efter lyden. Og ja jeg kan godt bruge dll filer.
Hvordan spiller du de WAV-filer? Er det et streaming-system du selv har lavet, eller er det et 3rd party library? Det er vigtigt, for der skal jo være adgang til PCM-data (lyddata).
Princippet er, at man læser en lille stump lyd fra harddisken, og viser den som FFT (samtidig med at man spiller den). Hvis du vil lave det med DirectSound, så skal du have fat på DirectX SDK'en (man kan kalde det programmeringsvejledningen).
Ellers kan du godt bruge standard windows-funktioner. Siden lydene er små nok til at kunne afspilles med PlaySound(...) er dette ikke noget performance-mæssigt problem.
Hvor korte er dine lyde i øvrigt? Problemet er, at hvis de er for korte, kan man næsten ikke nå at vise en FFT-animation, de skal altså have en hvis længde. Dette er nødvendigt fordi du laver FFT-grafer som en funktion af n samples, hvor n typisk er 512, 1024, 2048, etc
har du en funktion, der kan tage n samples i en eller anden opløsning og lave en fft analyse på det?
input: en buffer med f.eks. 8/12 bits opløsning svarende til 0.2sek og output skal være f.eks. 20 heltal svarende til 'energien' i 1khz intervaller
Eller har du blot en link eller to omkring emnet?
/doc404
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.