Avatar billede thomas_fogh Nybegynder
19. maj 2004 - 16:52 Der er 22 kommentarer og
1 løsning

MP3 frekvens data?

Jeg skal analyserer frekvensindholdet af nogle musikfiler, og derfor har valgt at bruge mp3-filer, fordi jeg ved at musikken gemmes som frekvensindhold. Jeg har dog ikke kunnet finde ud af præcis hvordan dette skal læse.
Er der nogen som kender et sted, hvor man finde denne information, eller endnu bedre et sted man kan hente en c++ class, som kan bruges direkte?
Avatar billede thomas_fogh Nybegynder
19. maj 2004 - 17:10 #1
En c++ class som kan bruges til formålet vil udløse en bonus på 500 points :)
Avatar billede overchord Nybegynder
19. maj 2004 - 17:26 #2
Ikke en c++ class, men software:
http://www.perfectdownloads.com/audio-mp3/other/dssf3-full-system-version.htm

Maaate er et c++ toolkit som kan analysere mp3:
http://www.cmis.csiro.au/maaate/docs/index.html
-kommer inklusiv libraries og API under en GPL license
Avatar billede bertelbrander Novice
19. maj 2004 - 19:40 #3
Avatar billede bertelbrander Novice
19. maj 2004 - 19:42 #4
Jeg har vist en FFT funktion til at ligge på en eller anden gammel harddisk.
Det kræver at man laver musikken om til almindlige data, eller bruger .wav filer.
Jeg kan godt se om jeg kan finde den frem.
Avatar billede thomas_fogh Nybegynder
19. maj 2004 - 21:19 #5
I følge reglerne for eksperten.dk må jeg desværre trække de 500 points tilbage.

bertelbrander: Det var netop for at slippe for at beregne FFT jeg vil bruge MP3, da jeg har mange filer, som skal beregnes på...
Avatar billede thomas_fogh Nybegynder
19. maj 2004 - 21:21 #6
overchord: Det er mig selv som skal lave analyseringen, da det er til en skole-opgave...
det er til en playlist-generator, hvis det siger nogen noget :)
Avatar billede overchord Nybegynder
19. maj 2004 - 21:34 #7
OK - saa er det vel "bare" noget med at faa laest header-formatet :
http://mpgedit.org/mpgedit/mpeg_format/MP3Format.html
Avatar billede driis Nybegynder
20. maj 2004 - 00:45 #8
Nu ved jeg ikke præcist, hvad dine krav er, men jeg ville klart vælge at analysere en wave-fil, hvis jeg havde valget mellem de 2 formater. I en wave ligger al data med en simpel header først, og derefter alle samples i tidsområdet, der tilsammen udgør wave filen.

En MP3 har et kompliceret frameformat, som du skal finde ud af at læse - hvor bl.a. en værdi i frekvensområdet kan være repræsenteret ved et variabelt antal bits, som ikke nødvendigvis (læs: sjældent) passer med et helt antal bytes. Desuden benytter en mp3 enkoder sig af en pyskoakustisk model, som populært sagt skærer de frekvenser væk, som det menneskelige øre alligevel ikke kan høre. Det er derfor en mp3 fylder mindre end en wave. Dermed vil du også få en anderledes repræsentation af lyden i frekvensområdet hvis du læser fra en mp3 kontra den tilsvarende wave.

Hvis du bruger wave, skal du køre en FFT på samples, ja, men en FFT er faktisk ikke så svær at implementere, hvis du vil gøre det selv - og ellers findes der mange open source FFT algoritmer på nettet. Sig til hvis du skal bruge mere hjælp til det - jeg har selv skrevet en FFT rutine, som du kan få lov at se, hvis du er interesseret. Det er selvfølgelig langtfra jordens hurtigste, men den er hurtig nok til de fleste formål.
Avatar billede thomas_fogh Nybegynder
20. maj 2004 - 11:17 #9
overchord: tak, men det kun info om frameheader. Det står intet om hvordan selve framen skal læses...
Avatar billede thomas_fogh Nybegynder
20. maj 2004 - 11:19 #10
driis: Ja, en FFT er nem at lave, men tager tid at beregne.
Det betyder ikke noget at frekvenserne er beskåret, så er der bare mindre at regne på :)
Avatar billede thomas_fogh Nybegynder
20. maj 2004 - 11:21 #11
Ups. Skulle have afvist svar :(
Avatar billede driis Nybegynder
21. maj 2004 - 18:17 #12
Har du fået løst dit problem ? Ellers får du naturligvis de point tilbage, du har tildelt mig.
Avatar billede thomas_fogh Nybegynder
21. maj 2004 - 21:11 #13
Nej. Det er stort set umuligt at finde ud af, hvordan selve framen i en mp3-fil skal læses. :(
Avatar billede driis Nybegynder
23. maj 2004 - 20:05 #14
Læg lige et svar her, så får du point tilbage. Jeg har ikke kunnet finde en god forklaring på hvordan du får læst frekvensdata i en mp3

http://www.eksperten.dk/spm/501569
Avatar billede borrisholt Novice
25. maj 2004 - 11:03 #15
Jeg har løsningen, det er ikke C++ kode men Delphi kode .. Så med lidt benarbejde, er du i luften !!

Jeg hjælper gerne med konkrete problemer i oversættelsen ... Ellers plejer arne_v at have ret godt styr på Delphi.

Hvis det har interesse så skriv !

Jens B
Avatar billede borrisholt Novice
25. maj 2004 - 11:05 #16
Hvis du bruger C++ Builder .. Behøver du slet ikke at porte koden :-)

Jens B
Avatar billede driis Nybegynder
25. maj 2004 - 11:22 #17
borrisholt >> Jeg vil da meget gerne se den kode.
Avatar billede borrisholt Novice
25. maj 2004 - 11:25 #18
Avatar billede borrisholt Novice
25. maj 2004 - 11:26 #19
Det er INCL exefil, og nogle test MP3'er, i forskellig frekvens !

Jens B
Avatar billede driis Nybegynder
25. maj 2004 - 11:33 #20
borrisholt >> Tak.
Det er desværre ikke det, spørgeren spørger om her. Dit eksempel kan læse info fra frame-headerne i en mp3. Men spørger ønsker at kunne hente den egentlige lyddata i frekvensområdet ud, og viderebehandle det.
Avatar billede borrisholt Novice
25. maj 2004 - 11:36 #21
Det er rigtigt .. Det havde jeg ikke lige set . Prøv torry.net jeg menet TBassPlayer kan det : http://www.torry.net/quicksearchd.php?String=bas+player&Title=Yes Igen Delphi kode men vel bedere end ingenting ?

Jens B
Avatar billede thomas_fogh Nybegynder
25. maj 2004 - 14:14 #22
borrisholt: Tak for forsøget, jeg kigger lige på TbassPlayer. Jeg har programmeret i Delphi en gang, men det er nu ved at være længe siden :)
Opgaven skulle desværre afleveres i dag, men det er jo spændende alligevel.

driis: Behold du bare pointene som tak for indsatsen... du kan jo eventuelt dele med borrisholt ;) men det må I selv finde ud af...
Avatar billede borrisholt Novice
25. maj 2004 - 14:16 #23
thomas_fogh og andre ... Hvis i ikke er "bange" for Delphi kode, eller bruger C++ builder er torry.net et meget godt sted at lede efter selv særdeles advancerede programmer gtatis Open source !!!

Jens B
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester