Lautstärke der Mikrofondaten - LIVE
-
Hallo!
Zu diesem Thema gabs schonmal einen Thread aber ohne konkrete Lösung...angenommen man nimmt in Stereo 16Bit auf bzw spielt damit ab kann man durch alle Samples gehen, das Sample durch 32767 teilen und den Betrag nehmen...ist dann die Lautstärke! Soweit so gut..aber was mache ich bei 8 Bit? Logisch dachte ich durch 128 teilen...aber das scheint nicht zu reichen....
das war Problem1
Jetzt gibts Problem2

Man recordet ja, indem man zB 4KByte an den Treiber schickt die er vollmalen darf...aber während er die vollmalt kann ich die Daten ja nicht schon verwerten..erst danach..das ist ziemlich störend wenn der Lautstärkepegel dann viel zu spät schellt..gibts da ne bessere Möglichkeit als zB 1KByte Daten an den Treiber schicken zu müssen? Beim Playen ist es das gleiche, da fällt es noch extremer auf.Kevin
-
4 KB bei 44,1kHz und 16 bit sind ungefähr 0,05 sek. sagen wir mal doppelt so lang bis du die daten bekommst. ist dir das echt zu langsam?
-
wenn ich mit 8000Hz aufnehme schon
-
hola Surkevin
ich weiß zwar nicht ob es funktioniert, aber koenntest mal testen:
nimm nen eigenen thread fuer das aktualisieren der peaks.
mit waveInGetPosition guckst nach, in welchem buffer er gerade schreibt und wo der zeiger steht. bis dorthin liest du dann die werte des buffers aus.
das machst durchgehend mit einem einer pause von z.b. 5 ms.koennte funktionieren, hab es aber noch nie getestet.
Meep Meep
-
zu problem eins.
bei 8 bit hat man einen offset, dh, 0 = 1000 .. , bei 16 bit ist 0 = 000 ..., könnte sein das es daran liegt, ich weiß net wie du den Betrag bildest. Wenn du nur das erste bit wegskalierst, geht das bei 8 bit nicht, weil von 10... ja andersrum nach unten zählt.
-
Meep Meep, genau das hab ich mir auch gedacht und beim Abspielen gemacht..solang Chef net meckert mach ichs bei waveIn nich...keine Lust mehr...das mit der Lautstärke is sehr tückisch...dafür muss man in 16Bit PCM konvertieren...ziemlich schlimm, da ich auch andere Codecs unterstützt haben will...
Kevin