On Tue, 7 Jan 2003, Jeff Pierce wrote:

> I am really getting frustrated.
> 
> I am writting a VOIP app for amateur radio which has been half duplex 
> sound, but now needs to go to FULL duplex.
> My app uses OSS type access, ioctl calls, as many using it only have OSS 
> free from teh kernel distrobutions.
> 
> Ok, I get alsa 0.9.0rc6 and compile and install it for via82c686, which 
> I get running with the half duplex code. No problem. I then write a 
> super simple app using OSS ioctl to test if full duplex will work that 
> way, not using alsa api. It simply reads the /dev/dsp and just writes 
> the buffer right back to /dev/dsp. Run it on and it works no problem. 
> Using alsamixer to change the line out audio on the pcm control, etc.
> 
> Ok I have another Linux box with a SB Vibra16C to do testing between the 
> two boxes. I install alsa 0.9.0rc6 on it and install for sb16. I try 
> running my full duplex app on it. What an abortion!!!
> 
> First, in alsamixer, where is the "mixer" control to keep mic from going 
> directly to output. I find "auto mic", UNMUTING it stops mic from output 
> with no app working.
> 
> Then the really big problem. When running my fullduplex app, the mic 
> audio is once again at the output, albeit at a lower volume and the pcm 
> control HAS NO EFFECT on it, and the actual audio read from and written 
> to /dev/dsp is 5 seconds behind my speaking it, if it makes it at all. 
> This is the audio that the pcm control will vary.
> 
> It seems to me the snd-sb16 has a whole lot of problems, beacause code 
> that works perfectly on a via82c686 alsa driver screws up on a sb16 alsa 
> driver.
> 
> Even my half duplex VOIP code that runs perfectly on oss SB16 and alsa 
> via82c686 has problems running with alsa sb16. Run the sb16 oss drivers 
> and audio is IMMEADIATLY sent to the receiving machine. Run it using 
> alsa sb16 and sometimes it has a 5-7 second delay BEFORE it is sent. 
> Stop the app and restart it,nothing done to alsa drivers, and you do not 
> have the delay.
> 
> What's wrong with the alsa sb16 driver?

See these comments in the SB driver:

 *  Note: This is very ugly hardware which uses one 8-bit DMA channel and
 *        second 16-bit DMA channel. Unfortunately 8-bit DMA channel can't
 *        transfer 16-bit samples and 16-bit DMA channels can't transfer
 *        8-bit samples. This make full duplex more complicated than
 *        can be... People, don't buy these soundcards for full 16-bit
 *        duplex!!!
 *  Note: 16-bit wide is assigned to first direction which made request.
 *        With full duplex - playback is preferred with abstract layer.
 *
 *  Note: Some chip revisions have hardware bug. Changing capture
 *        channel from full-duplex 8bit DMA to 16bit DMA will block
 *        16bit DMA transfers from DSP chip (capture) until 8bit transfer
 *        to DSP chip (playback) starts. This bug can be avoided with
 *        "16bit DMA Allocation" setting set to Playback or Capture.


                                                Jaroslav

-----
Jaroslav Kysela <[EMAIL PROTECTED]>
Linux Kernel Sound Maintainer
ALSA Project, SuSE Labs



-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
Alsa-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-user

Reply via email to