[wdmaudiodev] Re: Expose multiple Audio Sources as a single virtual microphone

  • From: Zubin Polra <zubin.polra2007@xxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Fri, 12 Jun 2015 21:20:41 +0530

Msvad is good sample in wdk 8.0. You can create virtual capture device and
adapter driver for it.
On Jun 12, 2015 9:12 PM, "Thomas Terhaar" <thomas.terhaar@xxxxxxxxxxxxx>

Hello List,

my employer asked me to research the possibility of a very specific task:

Is it possible to write a driver that takes multiple audio signals (at
least 2), mix the audio signals and expose the result as a single (virtual)
microphone ?

A bit of background :

We have created a web-based video-chat platform where a web site visitor
can initiate a video-chat with an advisor to discuss things.

The functionality to start a video-chat is embedded into the web site of
our customers (Telecom providers, Banks, Insurance companies,… to name a

The Audio/Video streaming stuff is handled by a Flash module or WebRTC
when available.

One of our customers now wants to do the following :

The advisor gets a call from a web site visitor, they start talking.

The discussion becomes more specific and the advisor wants to consult a
colleague/supervisor by calling him over a SIP-Softphone.

The web site visitor should be able to follow the discussion, so we
somehow have to be able to route the audio from the SIP-Phone to the
customer over the wire !

The gotcha here is, the SIP-Phone typically doesn’t offer any kind of
audio-device, it receives the audio over the network and renders it
directly to an audio-output.

So the driver I’m envisioning should have the following abilities :

- Take an audio input device (typically a microphone from a
headset) and the default audio-output device (loopback) as input

- Mix the signals

- Expose the result as a virtual microphone that can be selected
in Flash and WebRTC-enabled Browsers as input,
so the customer receives the mixed signal from the advisors (and also
himself because of loopback; that’s an issue I’m aware of)

Is this possible at all ?

I’m working (mainly) as a C# developer (with some C/C++ background) but I
have ZERO experience regarding Windows driver development,

so any hint on where to start is much appreciated !

Just finished downloading the WDK and the Samples-Pack, can you recommend
some examples to have a deeper look into ?

Best regards,


Other related posts: