Audio Signalverarbeitung in C
-
Hallo,
bin auf der Suche nach einem einfachen Weg, über den ich die Abtastwerte von dem digitalisierten Mikrofoneingang bekommen kann und anschließend diese Werte in veränderter Form über den Lautsprecher Ausgang abspielen lassen kann.
Die Mic-Signal-Abtatswerte sollte also alle paar ms in einem Buffer bereitliegen.
Weiß nicht, ob ich hier im richtigen Forumsteil bin,aber für Hilfe wäre ich echt dankbar!Gruß
-
auf einem PC unter windoof?
oder wie?
-
Windows: DirectSound (einfach) oder ASIO (low latency).
Wenn du Latenzzeiten unter ~~20ms brauchst wirst du an ASIO wohl nicht vorbeikommen.Andere OS' weiss ich nücht...
-
ich glaub, die openAL kann samplen
-
-
Es gibt doch bei der Win-API auch die waveIn/waveOut Funktionen. Die sollten es dafür eigentlich auch tun.
-
Mit waveIn + waveOut hat man nach meiner Erfahrung noch schlechtere Karten als mit DirectSound was geringe Latenzzeiten angeht. Ich hatte das mal probiert und nicht wirklich hinbekommen, unter ~0.5 Sekunden im voraus gequeuet hat das immer zu "stotterigem" Sound geführt. War noch mit Windows 2000 und ner Terratec Karte mit zugegebenermassen sehr schrottigen Treibern, allerdings funktionierte die mit DirectSound recht problemlos und ohne stottern.
Aber...: ausprobieren.
BTW: Unter Windows XP haste min. 30ms Latenzzeit (nicht 20), sobald der "KMixer" Filter verwendet wird. Und mit DirectSound kann man den AFAIK nicht umgehen, mit z.B. ASIO allerdings sehrwohl. Weiss ich jetzt genauer weil ich zufällig in der MSDN drübergestolpert bin...
Direkt mit dem Treiber zu sprechen (Kernel Streaming) wäre noch eine Möglichkeit, aber wohl etwas aufwändig.
-
Er hat ja nichts über das benötigte Zeitverhalten der SV geschrieben.
Wenn es bloß darum geht, irgendwie Samples in den Rechner hinein und dann wieder heraus zu bekommen, geht es mit den wave-Funktionen vermutlich erstmal am einfachsten.
-
hustbaer schrieb:
Direkt mit dem Treiber zu sprechen (Kernel Streaming) wäre noch eine Möglichkeit, aber wohl etwas aufwändig.
direkt die soundhardware ansprechen wär' noch besser. aber dann geht's eben nur mit einer speziellen soundkarte
