Mp3 einlesen und FFT errechnen

EGJSoldier

Erfahrenes Mitglied
Hallo zusammen,
ich möchte eine MP3 Datei einlesen und dann die FFT drüberjagen. Also habe ich als erstes die Datei eingelesen:

Code:
    File musicFile1 = new File("D:/music/eminem/16_Titel.mp3");
    byte[] buffer1 = new byte[(int)musicFile1.length()];
    InputStream in1 = new FileInputStream(musicFile1);
    in1.read(buffer1);

So. In meinem buffer1 steht mein Song jetzt als Bytecode. Woher weiß ich jetzt aber, welche Bytes ich für die FFT verwenden muss?

Ich danke schonmal.

David
 
@Ikosaeder: Nur weil auf der Seite FFT und MP3 erwähnt sind, bringt das noch nichts.

@EGJSoldier: Zuerst müsstest du das MP3-File in ein unkomprimiertes gesampeltes Format transferieren (mit Java schwer, nimm lieber z.B. ffmpeg zum konvertieren). Wenn die Daten unkomprimiert (z.B. im WAV-Format) vorliegen, musst du dir nur noch die Spezifikation des Dateiformats anschauen, da sind alle wichtigen Infos drin.
 
Zum dekodieren von mp3s eignet sich ffmpeg nur bedingt. Du benötigst in jedem Fall die Lame library, oder du dekodierst gleich mit lame selbst.
Die von mir verlinkte Seite erklärt FFT, das mp3format und die Anwendung von fft am Beispiel von Mp3.
Es wird zwar nur die Kompression erklärt aber für die Dekompression müssen die Schritte einfach nur umgekehrt werden.
Wenn es nur um die Analyse von MP3's geht, da findet man auch fertige Programme die das machen.
Wenn es um das Programm geht, ist ausführliches Lesen unabdingbar.
 
Zuletzt bearbeitet:
Zurück