alsa-project/alsa-lib issue #257 was opened from cnkoder: **Problem** I am facing problems in using "dsnoop" to share/divide the audio stream into two. When dsnoop plugins' slave is set to be a FIFO it throws an error. executed: sudo arecord -D default -f cd defRecording.wav -c 1 -r 32000 error: ALSA lib pcm_direct.c:1809:(_snd_pcm_direct_get_slave_ipc_offset) Invalid type 'fifo' for slave PCM arecord: main:828: audio open error: Invalid argument This is the current asound.conf settings asound.conf <!-- begin snippet: js hide: false console: true babel: false --> <!-- language: lang-html --> pcm.!default { type asym playback.pcm "playback" capture.pcm "capture1 " } pcm.playback { type plug slave.pcm "eci" } # Stream Output 1: Final pcm.capture1 { type plug slave.pcm "array" } # Stream Output 2: Final pcm.capture2 { type plug slave.pcm "array" } # Used to share the record device pcm.array { type dsnoop slave { pcm "eco" channels 1 } ipc_key 666666 } # Writes audio coming from any sort of player to ec.input, this is read by the echo # cancellation software. pcm.eci { type plug slave { format S16_LE rate 32000 channels 1 pcm { type file slave.pcm null file "/tmp/ec.input" format "raw" } } } # Read FIFO output which contains echo cancelled audio pcm.eco { type plug slave.pcm { type fifo infile "/tmp/ec.output" rate 32000 format S16_LE channels 1 } #ipc_key 666666 } <!-- end snippet --> Note: eco is used to read the FIFO file which contains the echo canceled audio coming in from cancellation software. This software's input is hw:0 and records audio directly from the microphone, and then processes and passes this over to ec.output Dsnoop works well when the slave.pcm is a hardware device but as soon as I point to something else it fails. Is there a workaround or any other solution to tackle this problem? Issue URL : https://github.com/alsa-project/alsa-lib/issues/257 Repository URL: https://github.com/alsa-project/alsa-lib