Hi, David,
I would start by reading a good text on signal processing. You
may need to understand a good deal of math, starting with
Sampling, Fourier Transforms, Filters, and maybe going into
Wavelets, depending on what you want to do. I don’t know if this
is still an up to date book - I haven’t done signal processing
for a while - but a good place to start may be “C Language
Algorithms for Digital Signal Processing” by Paul Embree and
Bruce Kimble, edited by Prentice-Hall, because it has source
code you can suck up. But hey, if I’m barking up the wrong tree,
just disregard this!
Another thing is, even though people may tell you it’s not ok to
do floating point on kernel side, it works, provided you take a
few precautions. OpenGL ICDs have been doing it for a while for
their software implementations of features not provided by their
hardware chips. But maybe you want to take a good look at how
the FPU hardware works, so that you can write your driver and
take full advantage of the machine’s instruction set and still
be able to live within the environment provided by the machine
and OS.
Last but not least, try going into http://developer.intel.com
and searching for “signal processing sample”, there’s a wealth
of information in there, including source code that uses the
SIMD floating point instructions to your maximum advantage!
Hope this helps,
Alberto.
----- Original Message -----
From: “David Lavo”
Newsgroups: ntdev
To: “Windows System Software Devs Interest List”
Sent: Tuesday, December 06, 2005 9:31 PM
Subject: [ntdev] Intro to WDM/KS audio filtering
> Hi everyone,
>
> I’ve been given the task of investigating a way to apply some
> signal processing to the default audio input path. (I think
> the idea is to process voice and sound for input to chat and
> game applications, etc.) I don’t think there will be any
> hardware processing involved at all, just algorithms.
>
> I’m familiar with device drivers, but relatively new to the
> audio processing world. At first glance, the WDM/KS
> documentation and samples seem more complex than what I need.
> I assume that I need to be able to be the default sound
> recording and voice recording device, so I think this rules
> out a user-mode/DirectShow filter. Again, there’s no (custom)
> hardware, so I think I’m looking at creating a virtual audio
> device. And, I don’t need to worry about the output/rendering
> side of the equation.
>
> Can anybody recommend a place to start to at least mock up a
> prototype? (Is the DDK MSVAD-simple example appropriate?)
> And, how much of the likely solution will be KS/Audio specific
> (pins and filter graphs, etc) and how much will be WDM
> filter-driver-style processing?
>
> Thanks for any help,
>
> David
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: xxxxx@ieee.org
> To unsubscribe send a blank email to
> xxxxx@lists.osr.com