AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

BPM auslesen

Ein Thema von Crosaider · begonnen am 25. Okt 2009 · letzter Beitrag vom 26. Okt 2009
Thema geschlossen
Seite 1 von 2  1 2      
Benutzerbild von Crosaider
Crosaider

Registriert seit: 25. Okt 2009
Ort: Arnsberg
11 Beiträge
 
Delphi 7 Personal
 
#1

BPM auslesen

  Alt 25. Okt 2009, 12:09
Hallo @ all

Ich würde gerne ein Programm schreiben, welches die DPM von MP3 Dateien ausließt und in einem Label ausgiebt. Geht das über mit Delphi? Hoffe ihr könnt mir helfen.

Viele Grüße
Crosaider
Ich benutze Delphi 7 und habe Vista 64 Bit
 
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#2

Re: BPM auslesen

  Alt 25. Okt 2009, 12:11
Hi!

Meinst du mit auslesen, bestimmen?
Dann schau mal hier - vllt. findest du da Anregungen:
http://www.delphipraxis.net/internal...t.php?t=164505


Grüße, Frederic
Frederic Kerber
 
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: BPM auslesen

  Alt 25. Okt 2009, 12:44
Zitat von Crosaider:

Geht das über mit Delphi? Hoffe ihr könnt mir helfen.

Na klar, das Einzige was Delphi nicht kann, ist Materie erstellen
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
 
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#4

Re: BPM auslesen

  Alt 25. Okt 2009, 12:58
Zitat von lbccaleb:

Na klar, das Einzige was Delphi nicht kann, ist Materie erstellen
Klar geht das:

Delphi-Quellcode:

Uses Matter {, Antimatter}; //Matter and Antimatter don't mix well, crash :(
var MyAtom: TAtom;

MyAtom:=TAtom.Create(nil);
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
 
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: BPM auslesen

  Alt 25. Okt 2009, 14:01
"Auslesen" ist dezent ausgedrückt "naiv angesetzt" . Die BMP stehen nicht einfach in der Datei (möglich dass es da sogar Tags für gibt, aber oft werden die wohl dann nicht benutzt), sondern du musst schon eine dann nicht mehr so triviale Analyse der Datei machen.
Diese beinhaltet bei BPM-Detection grob:
1) Dekodieren in einen Wavestream
2) Stückchenweise FF-Transformieren (alternativ Lowpass filtern)
3) Geeigneten Grenzwert für "Kick"-Frequenz schätzen
4) Abgrenzung von ziemlich sicheren Kick-Events zu anderen Peaks
5) Bestimmung der Zeitabstände zwischen Kicks -> Kehrwert = BPM

Abhängig von der Güte der Analyse, der Art der Musik und der Musik an und für sich(*), kommt dann am Ende eine mehr oder weniger passende Schätzung heraus, die aber durchaus an verschiedenen Stellen im Lied auch mal unterschiedlich sein kann.

* Bei Techno z.B. ist es recht wahrscheinlich einen realistischen und stabilen Wert zu bekommen. Bei Rock wird's z.T. schon schwieriger, bei Ambient oder Klassik oftmals fast schon unmöglich.

Ein anderer Ansatz geht über eine Form von Dichtefunktion, bei der grob gesagt ermittelt wird wie viel "Energie" in einem Zeitabschnitt steckt. Das ist jedoch höchst mathematisch und abstrakt, sowie recht aufwendig.

Einfach mal "auslesen" ist also fern ab von dem was man tun müsste.

Am Rande: Warum sollte das mit Delphi nicht gehen? Delphi(32) kann genau das gleiche was auch C++ kann, mit Ausnahme der Treiberentwicklung (wobei auch das geht, ist aber ne Mordsverrenkung).
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
 
Benutzerbild von Crosaider
Crosaider

Registriert seit: 25. Okt 2009
Ort: Arnsberg
11 Beiträge
 
Delphi 7 Personal
 
#6

Re: BPM auslesen

  Alt 25. Okt 2009, 16:52
Es gibt ja im Inet genug Programme die das können. Könnte man so ein Programm im Hintergrund starten (also ohne zu sehen das es überhaupt offen ist) die BPM Zahl herausfinden lassen und dann in mein Programm übertragen?

Oder es gibt ja auch noch die BASS.dll. Könnte man damit vielleicht irgendwas machen?
Ich benutze Delphi 7 und habe Vista 64 Bit
 
Benutzerbild von Fussel9
Fussel9

Registriert seit: 25. Mai 2009
322 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: BPM auslesen

  Alt 25. Okt 2009, 17:23
Hi ich kenn mich zwar überhaupt nicht mit dem aus, was du da gerade redest also was BPM ist , aber ich meine mit ShellExecute kann man externe Programme ausführen und wenn deine Form nicht transparent ist kannst du ja den Windowstate auf Maximised stellen und einstellen Allways stay on Top dann sieh man das andere Programm nicht...
 
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#8

Re: BPM auslesen

  Alt 25. Okt 2009, 17:25
BPM = Beats Per Minute, also die Angabe, wieviele *UMTZ* pro Minute im Lied vorkommen. Ich bin aber derselben Meinung wie Medium, dass das wohl nur bei Techno einigermaßen zuverlässig berechenbar ist.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
 
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

Re: BPM auslesen

  Alt 25. Okt 2009, 17:29
Zitat von Crosaider:
Es gibt ja im Inet genug Programme die das können. Könnte man so ein Programm im Hintergrund starten (also ohne zu sehen das es überhaupt offen ist) die BPM Zahl herausfinden lassen und dann in mein Programm übertragen?

Oder es gibt ja auch noch die BASS.dll. Könnte man damit vielleicht irgendwas machen?
Such dir doch ein Programm raus, welches die ermittelten BPM-Werte in ein MP3-Tag schreibt.
Den Tag kannst Du dann mit deinem Programm auslesen.

Hier ist eine Liste mit BPM-Software http://www.mmartins.com/mmartins/bpm...mdetection.asp (englisch)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
 
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
885 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: BPM auslesen

  Alt 25. Okt 2009, 17:34
Bei dem Addon bass_fx.dll zur bass.dll gibt es in der Hilfe einen Abschnitt "BPM/Beat detection". Das könnte das sein, was du suchst. Inwiefern das gut Ergebnisse liefert, weiß ich nicht, und auch nicht, wie man das genau benutzt. Aber einen Blick wäre das bestimmt wert.
The angels have the phone box.
 
Thema geschlossen
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz