Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Beats per minute aus MP3 auslesen...Wie? (https://www.delphipraxis.net/113765-beats-per-minute-aus-mp3-auslesen-wie.html)

torud 14. Mai 2008 12:37


Beats per minute aus MP3 auslesen...Wie?
 
Hallo Wissende,

ich weiss, dass diese Frage vielleicht etwas ungewöhnlich bis fast unmöglich ist, aber vielleicht hat sich ja schon mal jemand damit befasst.

Ich würde gern wissen, ob es möglich ist die Beats per minute mit der ein Song gespielt wird aus einer MP3-Datei auszulesen.

SirThornberry 14. Mai 2008 12:42

Re: Beats per minute aus MP3 auslesen...Wie?
 
direkct auslesen kannst du es nur wenn es im id3-tag gespeichert ist. Ansonsten musst du die Audiodaten analysieren und da macht es keinen Unterschied ob es eine Wavedatei oder mp3datei ist.

FAlter 14. Mai 2008 12:45

Re: Beats per minute aus MP3 auslesen...Wie?
 
Hi,

eigentlich wird das nicht in den MP3s gespeichert. Es könnte zwar sein, dass es in den ID3v2-Daten steht, da kann ja nahezu alles drinstehen (benutzerdefinierte Tags), aber wenn überhaupt, dann ist das nicht standardisiert und außerdem wird dieser Zusatz dann kaum mal vorhanden sein.

Bei einem Stück, wo irgendwelche Perkussionsinstrumente einfach nur den Takt trommeln :mrgreen: oder so könnte eventuell eine Frequenzanalyse, Zählen und dann berechnen funktionieren. Ein guter Algorithmus in dieser Richtung würde eventuell sogar mit Tempowechseln zurechtkommen. Eine andere Möglichkeit fällt mir im Moment aber nicht ein. Und eine allgemein gültige wird es wohl nicht geben.

Mfg
FAlter

Muetze1 14. Mai 2008 13:07

Re: Beats per minute aus MP3 auslesen...Wie?
 
Zitat:

Zitat von FAlter
Es könnte zwar sein, dass es in den ID3v2-Daten steht, da kann ja nahezu alles drinstehen (benutzerdefinierte Tags), aber wenn überhaupt, dann ist das nicht standardisiert und außerdem wird dieser Zusatz dann kaum mal vorhanden sein.

Wie bitte? TBPM frame

torud 14. Mai 2008 13:15

Re: Beats per minute aus MP3 auslesen...Wie?
 
Jo danke. Ich wollte ja hier keinen Streit lostreten. Also es stimmt natürlich, dass man das in den erweiterten Tags auslesen und speichern kann. Das ist schon mal Klasse!

Das man das Auslesen nicht nur auf MP3´s begrenzen muss war mir auch klar.

Nun aber zum wie.

Ich habe mir schon fast gedacht, dass man den Song "irgendwie" laden müsste und dann einmal durchgeht, um "Klangspitzen" in einem bestimmten Frequenzbereich zu suchen und diese zu zählen und "hochzurechnen". Aber wie könnte man das codetechnisch ungefähr machen???

Muetze1 14. Mai 2008 13:21

Re: Beats per minute aus MP3 auslesen...Wie?
 
Zitat:

Zitat von torud
Also es stimmt natürlich, dass man das in den erweiterten Tags auslesen und speichern kann. Das ist schon mal Klasse!

Das ist auch nicht das Problem. Nutze Gausi's MP3 Tools oder andere MP3 Libraries dazu.

ABER: Dieser Tag ist nicht zwingend und somit nur vorhanden, wenn ihn irgendeine Software schonmal geschrieben hat. Winamp in der aktuellen Version bietet den Inhalt des Feldes frei zur Editierung an bei MP3 Dateien und somit muss der darin enthaltene Wert nicht stimmen.

Zitat:

Zitat von torud
Ich habe mir schon fast gedacht, dass man den Song "irgendwie" laden müsste und dann einmal durchgeht, um "Klangspitzen" in einem bestimmten Frequenzbereich zu suchen und diese zu zählen und "hochzurechnen". Aber wie könnte man das codetechnisch ungefähr machen???

Naja, ich vermute erstmal ein Spektrum mit einer FFT ermitteln und dann in den unteren Frequenzen versuchen einen regelmässigen Ausschlag zu ermitteln und diesen dann zu timen. Aber: Da es nun unterschiedliche Takte gibt, hast du auch mal Beats dazwischen (Break Beat ist auch ein gutes Beispiel), von daher muss deine mathematische Lösung schon recht gut sein.

Nuclear-Ping 14. Mai 2008 13:32

Re: Beats per minute aus MP3 auslesen...Wie?
 
Zitat:

Zitat von torud
Ich habe mir schon fast gedacht, dass man den Song "irgendwie" laden müsste und dann einmal durchgeht, um "Klangspitzen" in einem bestimmten Frequenzbereich zu suchen und diese zu zählen und "hochzurechnen". Aber wie könnte man das codetechnisch ungefähr machen???

Schau dir mal BASS oder FMOD an.

Dj_Base 14. Mai 2008 13:38

Re: Beats per minute aus MP3 auslesen...Wie?
 
Zitat:

Zitat von Nuclear-Ping
Schau dir mal BASS oder FMOD an.

Ich würde Dir auch die BASS-Libraries empfehlen. Hab es selber mal damit ausprobiert und fand die Ergebnisse sehr zufriedenstellend.

In der BASS-Hilfe findest Du eigentlich alles, was Du wissen musst.

mfg,
Dj_Base

torud 14. Mai 2008 18:46

Re: Beats per minute aus MP3 auslesen...Wie?
 
Jo habs mal angetestet und werde mich mal reinarbeiten. Aber auf Anhieb konnte ich die Beats per Minute nicht finden...Aber wie gesagt, ich muss mich da mal reinwühlen...

Gausi 14. Mai 2008 18:58

Re: Beats per minute aus MP3 auslesen...Wie?
 
Mit der bass direkt geht das iirc auch nicht. Da braucht es einen Zusatz - bass_fx.dll war das glaube ich.

Zitat:

Zitat von Muetze1
Das ist auch nicht das Problem. Nutze Gausi's MP3 Tools oder andere MP3 Libraries dazu.

Nutz lieber die von Muetze1 oder andere MP3 Libraries dazu. Bei meiner ist der BPM-Frame nicht mit drin. :zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz