Lautstärke Mikrofoneingang (nicht aufnehmen)

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Iguan

Betreff: Lautstärke Mikrofoneingang (nicht aufnehmen)

BeitragSo, Okt 25, 2009 22:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo

Ich wollte mir mal fragen, wie man die Lautstärke der umgebung (Mikrofon an PC angeschlossen) mit BB herausfinden kann. Die Angabe muss nicht in Dezibel sein, sondern kann irgend ein Wert sein. Im Forum und beim Googlen habe ich immer nur was gefunden für die Sound-Aufnahme. Ich möchte aber nichts aufnehmen, sondern nur die Umgebungslautstärke bestimmen. Kann dass die BASS-dll? Kenn mich damit leider überhaupt nicht aus... Rolling Eyes
Soll so eine Art Alarmsystem werden... Razz

mfg

Iguan

Midimaster

BeitragDo, Dez 10, 2009 11:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Also, ich forsch da auch grad rum...

Warum nicht einfach etwas "aufnehmen" und dann im Sample nachschauen, ob es Werte über einem bestimmten Level gibt?


Ich mach das mit OpenAL. Das gibt es eine Funktion, die das Mikrofon in einem Ringbuffer scannt.

Code: [AUSKLAPPEN]
nur symbolischer code.....

;eigener Sample-Speicher:
Global VoidSample:TAudioSample=CreateAudioSample(44100*2,44100,SF_MONO8)

;OpenAL-Init:
Global NumSamples%
Device=alcOpenDevice(Null)
CaptureDevice = alcCaptureOpenDevice(Null, 44100, AL_FORMAT_MONO8, 44100*2);
alcCaptureStart(CaptureDevice)

;Wieviele Samples sind im Ringbuffer?
alcGetIntegerv(CaptureDevice, ALC_CAPTURE_SAMPLES, 4, Varptr(NumSamples))   

;Aus dem Ringbuffer in den eigenen Speicher:
alcCaptureSamples(CaptureDevice, VoidSample.Samples, NumSamples)

;Scannen:
For i=0 to NumSampes
  Wert= VoidSample.Samples[i]
Next



Bei einer 8bit-Aufnahme reichen die Werte zwar von 0 bis 255, aber 127 ist die eigentliche Stille. Gibt es Ausschläge von mehr als z.B. 10 (also Werte <117 oder Wert>137, dann war da was im Raum->also Alarm auslösen.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group