Lautstärke von WAV File rausfinden?
-
- Beiträge: 36
- Registriert: 09.03.2005 20:17
Lautstärke von WAV File rausfinden?
Hi!
Ich würd gern ne WAV Datei abspielen und zeitmäßig die lautstärke in einer Textdatei mitloggen.
Gibt ja keine Funktion in der stdlib, kennt jemand ne Möglichkeit?
Ich würd gern ne WAV Datei abspielen und zeitmäßig die lautstärke in einer Textdatei mitloggen.
Gibt ja keine Funktion in der stdlib, kennt jemand ne Möglichkeit?
Setz das ganze in eine Variable und verändere diese. Dann schreibst du die Werte dieser Variable in deine Log-Datei.
Code: Alles auswählen
InitSound()
volume.l = 100
LoadSound(0,"musik\anarchist.wav")
SoundVolume(0,volume)
Debug volume
Ich verkaufe Rechtschreibfehler und jede menge GROßBUCHSTABEN. Alles unbegrenzt zu haben.
-
- Beiträge: 36
- Registriert: 09.03.2005 20:17
hmm thx, aber das ist nicht ganz was ich meinte 
Es geht quasi um ne equalizer Animation ^^ Sound besteht ja eigentlich nur aus Frequenz- und Lautstärkeinformationen. Ich möchte jetzt einfach die lautstärke abfragen können um sagen zu können, wo die Sounddatei wie laut ist. ^^
Zum Beispiel um in einem Gespräch Sprechpausen identifizieren zu können.

Es geht quasi um ne equalizer Animation ^^ Sound besteht ja eigentlich nur aus Frequenz- und Lautstärkeinformationen. Ich möchte jetzt einfach die lautstärke abfragen können um sagen zu können, wo die Sounddatei wie laut ist. ^^
Zum Beispiel um in einem Gespräch Sprechpausen identifizieren zu können.
-
- Beiträge: 36
- Registriert: 09.03.2005 20:17
es gibt die bass.dll (www.un4seen.com) (dort gibts auch nen pb-wrapper)
und die Fmod.dll (www.fmod.org) (zum wrappen such mal hier im forum und oder purearea.net bei den userlibs)
ist beides nicht all zu komplex.
me preferred immer die bass, weiss aber auch nicht recht warum. ich glaub die issn hauch kleiner
und die Fmod.dll (www.fmod.org) (zum wrappen such mal hier im forum und oder purearea.net bei den userlibs)
ist beides nicht all zu komplex.
me preferred immer die bass, weiss aber auch nicht recht warum. ich glaub die issn hauch kleiner
pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Du musst die Amplitude auslesen:
http://forums.purebasic.com/english/vie ... wav+ffmpeg
Dort hatte ich mal geposted wie man die Lautstärke herausfindet (sie zus. maximiert und z.B. neu via Std.out und ffmpeg recodiert).
http://forums.purebasic.com/english/vie ... wav+ffmpeg
Dort hatte ich mal geposted wie man die Lautstärke herausfindet (sie zus. maximiert und z.B. neu via Std.out und ffmpeg recodiert).
Hier gibts die OOP Option für PureBasic.
Bei einer Equalizer-Animation reicht die Amplitude nicht, Du mußt das WAV-File stückchenweise per FFT konvertieren und dann hast Du erst das Frequenzspektrum inkl. der Lautstärke der einzelnen Frequenzbänder. Wenn Du das nicht machst, kannst Du nur eine "Oszillator"-Animation erzeugen, aber eben kein Spektrum.


ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
-
- Beiträge: 36
- Registriert: 09.03.2005 20:17
Würde mir auch reichen 
Der Code ist wirklich nützlich ^^
auch wenn ich noch net wirklich check, wo im File was steht.
Hab mir jetzt mal den ersten Teil angeguckt, in dem er in einer Schleife die Amplitude ausliest, guckt ob sie höher als der bisherige maxwert ist und diesen angleicht ^^
hab jetzt einfach mal mit
versucht das ganze auszugeben..
da gibts aber ne ganze menge negative Zahlen!? Was hab ich falsch gemacht?
Und nochmals vielen Dank für die schnellen Tipps!

Der Code ist wirklich nützlich ^^
auch wenn ich noch net wirklich check, wo im File was steht.
Hab mir jetzt mal den ersten Teil angeguckt, in dem er in einer Schleife die Amplitude ausliest, guckt ob sie höher als der bisherige maxwert ist und diesen angleicht ^^
hab jetzt einfach mal mit
Code: Alles auswählen
PrintN(Str(*mem\w))
da gibts aber ne ganze menge negative Zahlen!? Was hab ich falsch gemacht?
Und nochmals vielen Dank für die schnellen Tipps!
- Vermilion
- Beiträge: 1846
- Registriert: 08.04.2006 16:00
- Computerausstattung: Apple iMac (2010) & HP Notebook
- Wohnort: Heidekreis
Das ist nicht falsch. Solch eine Audiodatei besteht halt nur aus einer Sinuskurve, so musst du dir das vorstellen, die nicht ganz "kurvig" ist, sondern in ihrer Genauigkeit Form halt nur durch ihre Abtastrate (Frequenz, Hz, 44100KHz heißt 44100 Abtastungen in einer Sekunde) definiert ist.

Diese Sinuskurve repräsentiert gleichzeit auch in gewisser Weise die Schwingung der Lautsprechermembran, um den Klang zu erzeugen. Es ist eigentlich recht simpel.
Die Amplituden (Höchst- und Tiefstpunkte) sind übrigens für die Lautstärker verantwortlich.

Diese Sinuskurve repräsentiert gleichzeit auch in gewisser Weise die Schwingung der Lautsprechermembran, um den Klang zu erzeugen. Es ist eigentlich recht simpel.
Die Amplituden (Höchst- und Tiefstpunkte) sind übrigens für die Lautstärker verantwortlich.