Hallo,
ich bastele am WAVE-Capture mittels Mikrofon, das geht mit WAVEIN, aber ich bekomme jedesmal am Anfang ein 150 ms langes Störgeräusch drauf. Bei manuellen Aufnahmen mit dem Windows Recorder oder Audacity ist das genauso.
Weiß einer von Euch, wie es zu dieser Störung kommt? Kann man die vielleicht durch Einstellung des Soundsystems unterbinden oder muß ich die ersten 150 ms immer löschen?
Vielen Dank für Eure Hinweise.
Olaf
Störgeräusch bei WAVEIN
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Störgeräusch bei WAVEIN
Wenn das immer 150 ms sind, kann das ein Problem der Hardware bzw. des Treibers sein; hast du das mit anderer Hardware getestet?ore12 hat geschrieben:muß ich die ersten 150 ms immer löschen?
Eventuell hast du aber auch einen 150 ms großen Puffer, der ohne überschrieben zu werden, ausgegeben wird.
Für alles Weitere wird Weiteres (=Informationen/Code) benötigt.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Re: Störgeräusch bei WAVEIN
Ich habe das Problem mit dem Störgeräusch auf Vergleichs-PCs nicht gefunden - scheint also was mit der speziellen Konfiguration zu tun zu haben.
Der WAVEIN-Mechanismus, den ich benutze, ist sicher der gleiche wie bei den meisten Audio-Aufnahmeprogrammen:
Ich allokiere Speicher für einen entsprechenden Ringpuffer, mache dann
...
fehlerWert := WaveInPrepareHeader ( waveHandle, pWaveHeader, SizeOf ( TWAVEHDR ) );
...
fehlerWert := waveInOpen(@waveHandle,
WAVE_MAPPER,
ptrWaveFmtEx,
Integer ( @bufferFilledCallBack ),
Integer ( self ),
CALLBACK_FUNCTION);
...
fehlerWert := WaveInStart ( waveHandle ) //jetzt geht die Aufnahme los -----> und landet via TMemoryStream in einer WAV-Datei...
...
Das ist, denke ich, die Standard-Prozedur mit DirectShow.
Ich habe mal die Waveform einer Audacity-Aufnahme als BMP angehängt - die sieht genauso aus wie meine selbstprogrammierten Aufnahmen mit der Störung am Anfang.
Viele Grüße
Olaf
Der WAVEIN-Mechanismus, den ich benutze, ist sicher der gleiche wie bei den meisten Audio-Aufnahmeprogrammen:
Ich allokiere Speicher für einen entsprechenden Ringpuffer, mache dann
...
fehlerWert := WaveInPrepareHeader ( waveHandle, pWaveHeader, SizeOf ( TWAVEHDR ) );
...
fehlerWert := waveInOpen(@waveHandle,
WAVE_MAPPER,
ptrWaveFmtEx,
Integer ( @bufferFilledCallBack ),
Integer ( self ),
CALLBACK_FUNCTION);
...
fehlerWert := WaveInStart ( waveHandle ) //jetzt geht die Aufnahme los -----> und landet via TMemoryStream in einer WAV-Datei...
...
Das ist, denke ich, die Standard-Prozedur mit DirectShow.
Ich habe mal die Waveform einer Audacity-Aufnahme als BMP angehängt - die sieht genauso aus wie meine selbstprogrammierten Aufnahmen mit der Störung am Anfang.
Viele Grüße
Olaf
- Dateianhänge
-
- screen_capture.bmp (1.05 MiB) 1474 mal betrachtet
-
- Beiträge: 565
- Registriert: So 26. Aug 2012, 09:03
- OS, Lazarus, FPC: Windows(10), Linux(Arch)
- CPU-Target: 64Bit
Re: Störgeräusch bei WAVEIN
Hallo
Nur mal so als nebenfrage:
In welcher unit befindet sich "WaveInOpen"???
Nur mal so als nebenfrage:
In welcher unit befindet sich "WaveInOpen"???
Programmer: A device to convert coffee into software.
Rekursion: siehe Rekursion.
Rekursion: siehe Rekursion.
Re: Störgeräusch bei WAVEIN
mmsystem unter WindowsKomoluna hat geschrieben:Hallo
Nur mal so als nebenfrage:
In welcher unit befindet sich "WaveInOpen"???