[wdmaudiodev] Re: IMiniportWaveCyclicStream::SetFormat() insists on Stereo instead of Mono

  • From: "Don Bell" <0dbell@xxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Fri, 4 May 2007 14:59:29 -0500

BTW, I did trace back the source of this "uncalled for" conversion and
it shows up as early as CMiniportWaveCyclic::NewStream().

Since I never call this function directly, I must assume that it is a
system callback in response for some WaveXXX (or DirectSound) API (it
is actually an implementation of the IMiniportWaveCyclic::NewStream()
interface).

It seems that the audio system decides to convert the mono signal to
stereo in order to support simultenaous output to both speakers.
But... if I have only one "speaker", how do I tell that to the system?

I tried modifying MAX_CHANNELS_PCM in simple.h from 2 to 1, but all it
did was trunctaing alternate frames by half - which is even worse than
having consistently duplicate stream.

Any idea?

Thanks,
Don


On 5/4/07, Don Bell <0dbell@xxxxxxxxx> wrote:
I have written a virtual audio driver based on MSVAD. It works but...
when I try to play through Sound Recorder a Mono .wav file, "somebody"
(either Sound Recorder or the driver itself) insists on setting
nChannels = 2 (instead of 1) in
CMiniportWaveCyclicStreamMSVAD::SetFormat().

I can see this clearly in the debug trace.

Why???

Is there a rule that states that every Mono signal needs to be
converted on playback to Stereo? (so that in sounds equally on both
speakers, giving the illusion of mono)?

How do I force the driver to always set nChannels = 1 (mainly to cut
bandwidth requirements to half, but also to simplify frame handling).

I would appreciate any tip or hint in the matter.

Many thanks in advance,
Don

******************

WDMAUDIODEV addresses:
Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
Subscribe:    mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
Unsubscribe:  mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe
Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx

URL to WDMAUDIODEV page:
http://www.wdmaudiodev.com/

Other related posts: