Hallo zusammen,
ich suche schon lange nach einer Möglichkeit entweder eine WAV-Datei über den Soundkarteneingang aufzunehmen oder die Frequenz an dem Eingang zu ermitteln.
Bisher habe ich jeglich veraltete C+±Sourcen gefunden…
Ich würde mich über Antworten sehr freuen.
MfG
CodeFetch
Hi!
Du hast 2 Möglichkeiten:
- Managed DirectX (DirectSound)
- Verwenden von z.B. des WinMM API über P/Invoke
In VB.NET hab’ ich zwar nichts, aber vll. hilft Dir ja auch ein C# Artikel weiter:
http://www.codeproject.com/KB/audio-video/cswavrec.aspx
Gruß,
Martin
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Du hast 2 Möglichkeiten:
- Managed DirectX (DirectSound)
- Verwenden von z.B. des WinMM API über P/Invoke
In VB.NET hab’ ich zwar nichts, aber vll. hilft Dir ja auch
ein C# Artikel weiter:
http://www.codeproject.com/KB/audio-video/cswavrec.aspx
den kenn ich schon… der hat mir nicht wirklich weitergeholfen…
ich habe eine lösung gefunden, ich weiss nur nicht mehr woher ich sie hab…
für die leute die es interessiert, habe ich es mal geuploadet:
Form1 ist ein Beispiel zur Einbindung
http://vininc.de/.soundrecord.zip
Hallo nochmal!
Die Klasse SSVoiceRecordCtrl in den hochgeladenen Sourcen nutzt halt MCI zur Ansteuerung des Audiogeräts, aber wie das mit MCI eben so ist: Es ist eine recht einfache Schnittstelle, bei der man keinen direkten Zugriff z.B. auf die gesampelten Audiodaten hat, anders als bei den von mir vorgeschlagenen Wegen.
(Und der Autor hat offenbar von strukturierter Fehlerbehandlung auch noch nichts gehört: On Error Goto ER - bäh!)
Du hast also jetzt mehrere Möglichkeiten, Sounds aufzunehmen. Kommst Du dann klar oder brauchst Du noch was?
Gruß,
Martin
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Die Klasse SSVoiceRecordCtrl in den hochgeladenen Sourcen
nutzt halt MCI zur Ansteuerung des Audiogeräts, aber wie das
mit MCI eben so ist: Es ist eine recht einfache Schnittstelle,
bei der man keinen direkten Zugriff z.B. auf die gesampelten
Audiodaten hat, anders als bei den von mir vorgeschlagenen
Wegen.
(Und der Autor hat offenbar von strukturierter
Fehlerbehandlung auch noch nichts gehört: On Error Goto ER -
bäh!)
Du hast also jetzt mehrere Möglichkeiten, Sounds aufzunehmen.
Kommst Du dann klar oder brauchst Du noch was?
hallo martin,
ich müsste es irgendwie noch schaffen aus der fertigen wav-datei die geräuschlosen stellen zu entfernen, sodass ich nur noch 2 und 4khz-töne habe… vielleicht weisst du ja rat?!
Hi!
Die „geräuschlosen Stellen“ zu entfernen ist vermutlich noch relativ einfach machbar. Z.B. Audiodatei einlesen und blockweise über die Audiodaten 'drüberlaufen. Für jeden Block die Durchschnittslautstärke berechnen (je nach Format (signed/unsigned, 8/16bit) etwas unterschiedlich) und, wenn die Lautstärke unter dem gewünschten Schwellwert ist, den Block verwerfen. Anderenfalls den Block in die Ausgabedatei schreiben.
Eine Klasse zum Behandlen von WAV-Dateien findet sich m.W. nach auch auf CodeProject (evtl. sogar bei dem bereits geposteten Link zum Audiorecorder). Wie Du die Lautstärke ermittlest findest Du mit ein wenig googeln raus.
Wenn Du jetzt aber noch bestimmte Frequenzbereiche rausfiltern willst, wird’s kompliziert. Dann müsstest Du eine FFT machen, um an die einzelnen Frequenzbänder zu kommen.
Gruß,
Martin
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]