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