Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   C# Musikanalyse - Was sagen mir die Werte? (https://www.delphipraxis.net/155483-musikanalyse-sagen-mir-die-werte.html)

Mithrandir 25. Okt 2010 21:20

Musikanalyse - Was sagen mir die Werte?
 
Liste der Anhänge anzeigen (Anzahl: 5)
Bezug nimmt dieser Thread auf den Thread "Die Vision eines intelligenten Mediaplayers...". Damit es dort nicht drunter und drüber geht, kümmere ich mich hier um den Teil der Audioanalyse.

Sodila, weiter gehts. :)

Ich habe mich jetzt die letzten Tage mal hingesetzt und eine Klasse geschrieben, die die PCM-Daten aus Audiodateien auslesen kann, diese einer Fourier-Analyse unterzieht und anschließend ein (logarithmisches) Spektogramm ausgibt. Meine Idee ist, die spektografische Analyse einer Musikdatei zu untersuchen.
Derzeit bin ich am experimentieren, was ich mit den Werten anfangen kann. So addiere ich bspw die (logarithmierten) Werte aller Samples zusammen und teile diesen Wert dann durch die Anzahl der Samples * 10000. So bekomme ich einen Wert, der mir (meiner Meinung nach) etwas über die subjektive Lautheit eines Tracks sagt. So hat bspw "American Idiot" von "Green Day" einen sechs mal höheren Wert als "Hallelujah" von "Jeff Buckley". Das kann aber auch kompletter Zufall sein. Allerdings hat der Sound einer Bombenexplosion einen zehnmal höheren Wert als "Hallelujah". :)

Was mir noch fehlt, sind Möglichkeiten, die Geschwindigkeit eines Liedes zu bestimmen. Kann ich mich da nur auf die Beats Per Minute verlassen? Eher nicht, denn "Der Hummelflug" hat, auf der Geige gespielt, vermutlich recht wenig messbare Beats Per Minute - trotzdem ist das Ding verdammt schnell. ;) Was könnte man also tun? Man könnte bspw. in den höheren Frequenzen nach mehreren Samples hintereinander suchen, die ungefähr einen ähnlichen Wert haben. Dies würde bedeuten (imho), das hier ein Ton recht lange gehalten wird, was ja meist ein Indiz für ein langsames, trauriges Lied ist (imho).

Ich habe euch mal ein paar Spektogramme vorbereitet:

Anhang 32427
Clueso - Gewinner

Anhang 32428
Dire Straits - Brothers in Arms

Anhang 32429
Eminem feat. Rihanna - Love The Way You Lie

Anhang 32430
Hurts - Wonderful Life

Anhang 32431
Jeff Buckley - Hallelujah


Alles in allem - was meint ihr dazu?

Sir Rufo 25. Okt 2010 22:19

AW: Musikanalyse - Was sagen mir die Werte?
 
Die Lautstärke absolut betrachtet bringt eigentlich nichts, denn dann würde es davon abhängen, wie die Aufnahme ausgesteuert bzw. für die jeweilige Veröffentlichung abgemischt wurde.

Je nach Ausgabe (LP, Single, Sampler) ist das gleiche Lied anders ausgesteuert und würde völlig andere Werte ergeben.

Besser wäre es den Dynamik-Umfang zu nehmen, obwohl auch an diesen Werten für die jeweilige Ausgabe gedreht wird.

Versuche doch eine Aufteilung in Zeitabschnitte (z.B. 10sec) und Frequenzbereiche (0-100, 100-500, usw.) und ermittele dafür jeweils den Dynamikumfang. Von diesen Teilen bildest du dann den Mittelwert für die jeweiligen Frequenzbereiche sowie Min und Max.

Ein weiteres Kriterium könnte auch der zeitliche Abstand zwischen einem Peak und "Stille" und auch da einen Mittelwert zu bilden.

Mithrandir 25. Okt 2010 22:35

AW: Musikanalyse - Was sagen mir die Werte?
 
Wie komme ich denn an die Werte für den Dynamikumfang? :gruebel: Oder anders gefragt: Was ist der Dynamikumfang? Wikipedia sagt:

Zitat:

Bezeichnet den Quotienten aus Maximum und Minimum einer physikalischen Größe oder Funktion
Bedeutet das, ich sollte aus einem Sample-Array (entspricht bei 44100 Hz 0,3 Sekunden) den höchsten und den Niedrigsten Wert nehmen, dann den Quotienten der Beiden ermitteln und ich hätte den Dynamikumfang für einen Zeitbereich von 0,3 Sekunden? Ggf. könnte ich dann ja auch noch das Array aufsplitten nach Frequenzen.

Sir Rufo 25. Okt 2010 22:43

AW: Musikanalyse - Was sagen mir die Werte?
 
Dynamik bei Musik ist der Unterschied zwischen der leisesten und lautesten Passage.

Eine gute Bolera-Aufnahme die man direkt am Anfang gut aus den Boxen kommt, zerfetzt dir zum Schluss die Kalotten.

Dafür gibt es dann aber wieder einen Dynamik-Kompressor, der die leisen Passagen lauter macht und die lauten leiser. Sinnvoll, wenn man sich von der Musik berieseln lassen und keinen Schockeffekt gebrauchen kann. Ansonsten audiophil ein NoGo

omata 26. Okt 2010 00:00

AW: Musikanalyse - Was sagen mir die Werte?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich stehe ja mehr auf konkrete Dinge (Sourcecode) und nicht nur auf Bilder...

Namenloser 26. Okt 2010 03:01

AW: Musikanalyse - Was sagen mir die Werte?
 
Lautheit und Dynamik kannst du imo beides vergessen, weil die, wie bereits gesagt wurde, bei jeder Ausgabe unterschiedlich sind (siehe auch Loudness War). Es gibt sogar ein sehr nützliches Tool, um solche Unterschiede zu kompensieren, namens ReplayGain. ReplayGain analyisiert mithilfe eines speziellen Algorithmus die durchschnittliche sowie den Peak (und noch einige andere Statistken) eines Tracks, um zu berechnen um wie viel dB der Track leiser abgespielt werden müsste, um der Norm (üblicherweise 89dB wenn ich mich nicht irre) und schreibt einen ID3-Tag mit eben diesem Wert in die Datei. Da sich hierbei die Stimmung des Liedes ja auch nicht verändert, eignen sich Lautstärke und Dynamik als Anhaltspunkte für die "Stimmung" eines Liedes wohl eher nicht.

Das war jetzt natürlich alles stark vereinfacht dargestellt, was auch daran liegt, dass ich selbst praktisch keine Ahnung davon habe. Vielleicht findest du bei ReplayGain trotzdem ein paar Ansätze, die du gebrauchen kannst, denn es werden ja mehrere Algorithmen verwendet und verrechnet.

Mithrandir 26. Okt 2010 08:48

AW: Musikanalyse - Was sagen mir die Werte?
 
Hm, naja. Ich habe mir MP3Gain heruntergeladen. Ein Track wurde um 3 dB angepasst. Wie zu erwarten war, hat sich der von mir errechnete Durchschnittswert um 2 Punkte verändert. Bei einer Skala von 0 bis 100 ist das, zugegebenermaßen, nicht viel. Hat vielleicht jemand zufällig einen Track, bei dem MP3Gain noch agressiver zuschlagen muss? Mich würden mal Vergleichswerte interessieren.

@Omata: Danke für den QT. :) Ich veröffentliche meinen, sobald er a) vernünftig implementiert ist und b) die neue Version von SmallTune fertig ist. :)

//Edit: Die Spektogramme sind übrigens immernoch fast identisch. Hätte mich auch gewundert, wenn nicht. :) Die Dynamik-Analyse von Sir Rufo habe ich noch nicht implementiert. Ggf. müsste man hier noch ein wenig mit der Mathematik spielen.

Namenloser 26. Okt 2010 09:11

AW: Musikanalyse - Was sagen mir die Werte?
 
Zitat:

Zitat von Mithrandir (Beitrag 1057811)
Hm, naja. Ich habe mir MP3Gain heruntergeladen. Ein Track wurde um 3 dB angepasst. Wie zu erwarten war, hat sich der von mir errechnete Durchschnittswert um 2 Punkte verändert. Bei einer Skala von 0 bis 100 ist das, zugegebenermaßen, nicht viel. Hat vielleicht jemand zufällig einen Track, bei dem MP3Gain noch agressiver zuschlagen muss? Mich würden mal Vergleichswerte interessieren.

Ich meinte eigentlich etwas anderes - ich habe z.B. in meiner Playlist einige Tracks doppelt, einmal das Original und einmal Remastered. Die Remastered-Versionen sind wegen des Loudness Wars insgesamt lauter gemastert als die Originale. Wenn dein Programm die Lautstärke miteinbezieht, würden die errechneten Stimmungen für beide Lieder doch auseinander gehen, obwohl das Lied eigentlich das selbe ist.

Konkretes Beispiel aus meiner Playlist:
"Holy Wars...The Punishment Due" vom Album "Rust in Peace" von Megadeth:
Original von 1990: -2.57dB
Remastered von 2004: -10.06dB

Mithrandir 26. Okt 2010 10:05

AW: Musikanalyse - Was sagen mir die Werte?
 
Liste der Anhänge anzeigen (Anzahl: 2)
Ok, nun habe ich sehr deutlich gesehen, was du meinst: Der Wert (= Durchschnitt aller Samples) der remasterten Version ist dreimal so groß wie der des Originals. Was mich wieder zum Ausgangspunkt zurück führt: Was für Werte sollte ich analysieren?

Wenn man sich die beiden Spektogramme ansieht, erkennt man ja durchaus charakteristische Eigenschaften:

Anhang 32435
Remastered
Anhang 32436
Original

(Ich bin kein Musiker, von daher hab ich so mit den Fachtermini meine Probleme. :stupid: )

Wenn man bspw. die niedrigen Frequenzen betrachtet, fällt eine Art "Basslinie" auf. Generell fällt auf, dass die Werte über alle Frequenzen stark fluktuieren. Man erkennt sogar, dass ab dem 2. Fünftel des Liedes eine Stimme einsetzt. Betrachtet man die schnellen Änderungen der Amplituden, kann man eigentlich sagen, dass es sich um ein recht schnelles Lied handelt, das, aufgrund der "gefüllten" Frequenzbänder, auch einen recht "lauten" Eindruck macht. (Laut = Lautheit != Lautstärke).

Ich hoffe, dass war so ein bisschen verständlich, was ich damit sagen wollte. Wie gesagt, auch ich bin ein absoluter Laie...

Mithrandir 27. Okt 2010 20:05

AW: Musikanalyse - Was sagen mir die Werte?
 
Sodila - *hust* - kleiner Durchbruch.

Ich habe noch etwas weiter gegraben, und bin in meiner Browserhistory auf MFCC gestoßen. Ich denke nicht, dass es alle meine Probleme lösen wird, aber zumindest kann es mir helfen. Dank MFCC kann ich den Typus eines Liedes ungefähr einordnen. Wie sooft werde ich natürlich Vergleichswerte benötigen. Das sollte aber machbar sein. Nehme ich noch die Beats Per Minute hinzu, sollte ich eigentlich ein Lied einigermaßen gut charakterisieren können. Ich werde jetzt versuchen, eine entsprechende Klasse zu schreiben.

Sollte ich Erfolg haben, poste ichs hier. Wenn nicht, dann auch. :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:44 Uhr.
Seite 1 von 3  1 23      

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