Yes! I finally got full duplex flawlessly working on my SB Live. It appears that it was the full duplex test program I've been using. There were 2 problems:
1. I decided to modify what Jaroslav had sent me by polling separately on the input and output descriptors in the order that was expected. This caused missed overruns and things to just generally be wrong. 2. For some reason enforcing the order in which read/writes are done from the input/output (accomplished by an integer that toggled between 0 and 1) caused the input stream available size to slowly increase. I'm not sure why #2 is the case, but by processing the input and output when they are available (rather than ensuring the processing order) everything stays synced. The results are a vast improvement over the previous tests I did. Some stress testing still causes some buzzing and clicks to be heard though. Since I'm running both streams in NONBLOCK mode I'm curious when the initial write of 2 fragments of data to the output returns. Does it return immediately, after 1 fragment is written or after 2 fragments? This would determine where the playback and record pointers are in reference to each other (if they share the same buffer). I'll attach the current code for the full duplex test program I used. Its not very general at the moment perhaps a real full-duplex test program should be written for distributing with ALSA? For detailed information uncomment the "#define HISTORY 1" which fills up a history buffer until it gets to a certain size and then exits and displays the results, piping through "less" is a good idea :) -- Josh Green Smurf Sound Font Editor (http://smurf.sourceforge.net) _______________________________________________ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel