Aus MP3 Audiospur momentanes Frequenzspektrum mit WPF anzeigen (Musikvideo erstellen)

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von CyberFreak44.

    Aus MP3 Audiospur momentanes Frequenzspektrum mit WPF anzeigen (Musikvideo erstellen)

    Hallo Leute.

    Um eventuelle Missverständnisse zu vermeiden, erkläre ich gleich jetzt, was ich vorhabe und auch wo das Problem liegt.

    Und zwar möchte ich mir ein Programm machen, mit dem ich aus einer mp3-Datei ein Musikvideo erstellen kann.
    Dargestellt soll erstmals nur ein kleines Frequenzspektrum (zB. 20 Balken) welches sich entsprechend zur Musik ändert.
    Das Programm möchte ich mit vb.net und WPF programmieren.
    Ich habe es mir wie folgt vorgestellt:
    1. Es wird eine mp3-Datei (also halt der Pfad dorthin) ausgewählt
    2. Die mp3-Datei wird stückchenweise abgespielt (den Sound braucht man nicht zu hören, sonder nur kleine Zeitabschnitte werden genommen)
    3. Von diesen Zeitabschnitten (oder auch Zeitpunkten, wenn nur so möglich) sollen die einzelnen Frequenzanteile ermittelt werden
    4. Diese werden in mehrere Klassen (Bereiche) aufgeteilt und summiert
    5. Je nach dem, was man für Werte der einzelnen Klassen erhält, sollen bei dünnen Rechtecken die Länge entsprechend angepasst werden
    6. Man hat hierbei eine fix vorgegebene Anzahl von Rechtecken, welche auf einer horizontalen Linie platziert sind und die Höhe der Balken wird eben eingestellt
    7. Da diese sich in einem Grid befinden, ist es dann relativ einfach, dieses Grid als Bild zu rendern und abzuspeichern
    8. Da das Video am Schluss optimal 60 fps (ansonsten 50 fps) haben sollte, muss somit jede Sekunde der Audiospur in 60 Teile geteilt und jeder Teil als Bild gespeichert werden.
    9. Letztendlich muss man nur noch die Bilder zu einem Video zusammensetzen
    10. Der Ton muss hierbei nicht unbedingt direkt ins Video übernommen werden (das kann ich ansonsten auch mit einem anderen Programm machen)

    Das Problem, bei dem ich jetzt nicht weiterkomme, ist die Verarbeitung der mp3-Datei.
    Beginnend mit dem auslesen der Audiospur, aber vor allem die Aufteilung und herauslesen der Frequenzen ist das größte Problem.
    Da ich nun schon ziemlich lange noch einer Möglichkeit gesucht habe, aber leider nicht fündig wurde, dachte ich mir, dass es am besten ist, wenn ich einfach hier frage.

    Bei meinen Recherchen hab ich erfahren, dass man dazu eine FFT verwenden sollte.
    Allerdings weiß ich nicht, wo genau ich da ansetzten soll, da ich ja nicht mal weiß, wie ich auf die Audiospur direkt zugreife.
    Es wird auch teilweise von Bass.dll gesprochen und somit hab ich auch versucht, das zu nutzen.
    Allerdings hab ich Bass.dll überhaupt nicht zum laufen gebracht und versuche deshalb nun etwas eigenständiges.

    Da man so was ja von verschiedenen Musikplayern kennt, muss es da doch eine Möglichkeit geben (die ich halt leider nicht kenne).

    Ich würde mich über jede Hilfe freuen, auch wenn es nur ein Ideenanstoß ist.
    Und da ich ja auch mehrere Foren durchforstet habe und nicht wirklich eine hilfreiche Antwort finden konnte, wird es sicher auch den einen oder anderen, der ein ähnliches Problem hat, freuen, wenn er mit diesem Thread auf eine Lösung kommt.

    Schon mal Danke im voraus für jegliche Hilfe.
    Es gibt für alles eine Lösung, auch wenn es nicht so ausschaut! ^^
    Ich empfehle dir auch die Bass.dll(bzw. eine vergleichbare Blbliothek), ist das einfachste und du sparst sehr sehr viel Zeit. Wenn du das wirklich selbst machen willst, schau dir erstmal das Dateiformat an, danach kannste einzelne frames auslesen und verarbeiten.

    Riskiere mal einen Blick auf diese Seite, wenn du damit nichts anfangen kannst, wird das wohl fuer dich noch nicht machbar sein.
    mpgedit.org/mpgedit/mpeg_format/MP3Format.html

    Hier findest du ein Beispiel, wie du den Sound "visualisieren" kannst mit der Bass.dll:
    dev-reference.net/index.php?th…t=bass.dll%2Bfft#post5388
    And i think to myself... what a wonderfuL World!
    Hey,

    Danke für die schnelle Antwort.

    Hab mir das MP3-Format mit deinem Link angeschaut, doch wie du vermutet hast, kann ich momentan damit noch nicht so viel anfangen.
    Du hast vermutlich recht, dass es besser ist, wenn ich es doch noch mal mit der Bass.dll versuche.
    Allerdings hab ich ja schon versucht Bass.dll mit Visual Studio 2015 (bzw. Blend for Visual Studio 2015) zu verwenden, aber leider bin ich da nicht Erfolg überschüttet worden.
    Vermutlich hab ich da generell etwas nicht verstanden, wie ich das machen muss, damit ich Bass.dll nutzen kann.
    Gibt es da irgendwo eine Anleitung, wie man das zum laufen bringt, denn bis jetzt hab ich nicht wirklich eine gefunden.
    Es gibt für alles eine Lösung, auch wenn es nicht so ausschaut! ^^
    Wow, das ging ja richtig schnell.
    Schaut auf jeden Fall viel versprechend aus.
    Allerdings hab ich dafür heute keine Zeit mehr und werds mir dann morgen genauer anschauen.
    Damit dürfte es dann hoffentlich klappen ;D
    Es gibt für alles eine Lösung, auch wenn es nicht so ausschaut! ^^