programmgesteuert abrufen BPM eine wave-oder MP3 aus .Net
Habe ich ein Projekt mit einer Anforderung, um die BPM eines wave-oder MP3-Datei programmgesteuert mithilfe .Netto - (VB.Net oder C#).
Kennt jemand eine binäre oder-Bibliothek für diesen oder einen code-snippet zu lenken mich in die richtige Richtung?
- Das ist es nicht .net-spezifisch, aber es gibt viele hilfreiche Informationen und vorgeschlagenen algorithmen auf diese Frage: how-to-detect-bpm-of-the-song-by-programming
- Es ist sehr einfach: Sie machen eine FFT (Fast Fourier Transform) und analysieren Sie Ihre umgewandelten Daten (eine triviale Suche in einem array, auf der Suche nach einem max-Wert). Ich habe geschrieben, meine eigene FFT in Java in etwa 40 Zeilen code oder so (weiß nicht mehr genau, denn es war eine lange Zeit her, aber es war zu kurz). Dies ist ähnlich zu finden, bei welcher DREHZAHL ein Motor dreht sich durch die Analyse ein Auto Lärm (wie, sagen wir, ein Formel-eins-Auto, [aber in der Auto-Motor-Fall, die Sie benötigen, zu wissen, wie viele Zylinder das Auto hat]). Dort gewesen, getan, beide zu bestimmen .wav-BPMs und Auto-Motor-RPMs, in Java, im letzten Jahrhundert 😉
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für den Teil, wo du die Proben von WAV-oder MP3-in .NET-code, den ich verwenden NAudio (auf CodePlex), frei, verwendbar in kommerziellen apps, keine Dokumentation, nur Beispielcode.
Zuerst, wenn Sie möchten, um den sound mit .Net, würde ich empfehlen, fmod, die ist genial und hat eine .Net-wrapper - (http://www.fmod.org).
Weiter, um die BPM gibt es mehrere Methoden, aber die, die ich finde am effektivsten ist die "beat-Spektrum" (hier beschrieben: http://www.rotorbrain.com/foote/papers/icme2001/icmehtml.htm).
Dieser Algorithmus berechnet eine ähnlichkeit matrix durch Vergleich jedes kurze Probe der Musik mit jedem anderen. Sobald die ähnlichkeit zu matrix berechnet wird, ist es möglich, die Durchschnittliche ähnlichkeit zwischen den einzelnen Proben-Paare {S(T);S(T+1)} für jedes Zeitintervall T: das ist der beat Spektrum. Die ersten hohen Gipfel in der beat-Spektrum ist die meiste Zeit der beat-Dauer. Der beste Teil ist, können Sie auch tun, Dinge wie Musik-Struktur oder Rhythmus-Analysen.
Wenn Sie interessiert sind, in diesem Bereich, würde ich vorschlagen, zu Lesen anderen Jonathan Foote Papiere.
Hier ist ein kommerzielles Produkt, das hat eine C# - Bibliothek. Eine Testversion ist ebenfalls verfügbar: http://adionsoft.net/bpm/