I have a strange problem: I'm trying to pipe audio input -> output using a I2S 
device @48000 Hz and 32 frames buffer size and 2 periods, to get as low a 
latency as possible.

It works nicely if I either:
1. Use capture + playback and record capture to a wav file (sounds fine).
2. Use playback only and generate sine waves.
3. Pipe capture -> playback with a larger buffer size, such as 64.

But if I have capture + playback, I get a very strange output noise akin 
towards heavy intermodulation distortion.

The rendering thread is (pseudo code):

while (true) {
    if(capture_active) {
       snd_pcm_wait(capture_handle, timeout);
       read_pcm_data_into_buffer(capture_handle, input_buffer);
    }
    do_callback(input_buffer, output_buffer);
    if (playback_active) {
        snd_pcm_wait(playback_handle, timeout);
        write_pcm_data_from_buffer(playback_handle, output_buffer);
    }
}

Any ideas what can go wrong ?
/R


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Alsa-user mailing list
Alsa-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/alsa-user

Reply via email to