Hi, Thanks for your reply. I would like someone from MS( or anyone else) to clarify the stuff. However, i need to modify MAX_OUTPUT_STREAMS . Lets say a user is using 2 Sound recorder instances, my driver ( based on MSVAD Simple) has the ability to supply both of of them with completely different data ( though they have selected my sound device) at the same time. However, if MAX_OUTPUT_STREAMS = 1 , i don't get the CMiniportWaveCyclic::NewStream call because kmixer knows that i support only a single stream, so it will supply cached data ( which is same to both the Sound recorder instances) However, if MAX_OUTPUT_STREAMS > 1, then i get CMiniportWaveCyclic::NewStream calls and then i can return 2 different streams to different applications. Everything works except if i change MAX_OUTPUT_STREAMS > 1 , then the kmixer asks me for 660 or 662 bytes of data, but i amonly supposed to give 441 bytes of data( based on 22050 Hz, 16 bit mono). Also, i couldn't understand "Your "Directsound:MSVAD Wave" will support the multiple streams with the help of kmixer. " , if i understand it right, then kmixer will supply cached data instead of making a new stream. Please clarify. yes, it's crystal clear in 1-to-1 case. Since i am feeding data from a usermode application. Waiting for your reply Thanks On Thu, Feb 12, 2009 at 6:35 PM, swapnil kamble <swap.kamble@xxxxxxxxx>wrote: > Hi, > There is no need to modify MAX_OUTPUT_STREAMS. Keep it to one. Your > "Directsound:MSVAD Wave" will support the multiple streams with the help of > kmixer. So ultimately one stream only but surely will serve your purpose. I > want to know the quality of audio that you are getting. Is it crystal clear > for one to one case ? > > > > On Thu, Feb 12, 2009 at 6:12 PM, Vipin Kumar <vipin@xxxxxxxxxxxxxx> wrote: > >> Hi, >> i am using MSVAD simple as my base for supporting 20 virtual >> microphone streams ( however, only 1 device is there, different streams are >> given different data based on session ID). >> >> However, the moment i change MAX_OUTPUT_STREAMS in SIMPLE.H from >> it's default value 1 to say 2 or 3, everything starts getting garbled, >> >> >> the request CMiniportWaveCyclicStreamMSVAD::CopyFrom which triggers at >> 10 ms means 22050 Hz, 16 bit mono , equals 441 bytes per 10 ms ( when >> MAX_OUTPUT_STREAMS = 1) >> >> >> becomes 660 bytes and sometimes 662 bytes, ( when MAX_OUTPUT_STREAMS >> is greater than 1) >> >> >> my only question is, >> (i) What am i doing wrong.( i have confirmed my results 5 times in >> a row, by interchanging the MAX_OUTPUT_STREAMS to 4 and vice versa ) & >> everytime i got the same results. >> (ii) How to do it ( support multiple capture streams); >> >> >> here's 1 windbg log with MAX_OUTPUT_STREAMS set to 4 >> >> MSVAD: New Format: 22050 >> CMiniportWaveCyclic::NewStream Stream >> Timer Interval 10 Frame Size 441 >> MSVAD: KSSTATE_PAUSE >> MSVAD: KSSTATE_RUN >> 660 >> 662 >> 660 >> 662 >> 660 >> 662 >> 660 >> 662 >> 660 >> 662 >> 660 >> >> Let me know your ideas/ solution >> >> Thanks. >> >> Regards. >> Vipin >> >> >> >> >> >> >> > > > -- > ...Swapnil > > || Hare Krishna Hare Krishna Krishna Krishna Hare Hare || > || Hare Rama Hare Rama Rama Rama Hare Hare || >