[solved] dsnoop not working with fresh RPi3B and 4-Mic

Hi,

Everything works except for recording from 2 programs simultaneously. I uninstalled/reinstalled. (Full excerpt available.)



Error during reinstall (completed fine):
</s>Error! There are no instances of module: seeed-voicecard<e>

Also, there’s this problem (no dsnoop shown):
</s>$ arecord -l **** List of CAPTURE Hardware Devices **** card 1: seeed4micvoicec [seeed-4mic-voicecard], device 0: bcm2835-i2s-ac10x-codec0 ac10x-codec0-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0 <e>

While troubleshooting, I uncommented 2 sections in the 4-Mic’s /etc/asound.conf but that didn’t resolve the issue.



Multiple recordings test:
</s>$ arecord hello.wav arecord: main:788: audio open error: Device or resource busy<e>

dsnoop test:
</s>$ arecord -D dsnoop test.wav ALSA lib pcm_dsnoop.c:618:(snd_pcm_dsnoop_open) unable to open slave arecord: main:788: audio open error: No such file or directory<e>

Help appreciated, thanks!

Hi there,


  1. please try the audacity to record and play and see if it works.



    Open Audacity and select AC108 & 4 channels as input and bcm2835 alsa: - (hw:0:0) as output to test:



    $ sudo apt update

    $ sudo apt install audacity

    $ audacity // run audacity








  2. please specify the detail info as below and see if it works.



    arecord -Dac108 -f S32_LE -r 16000 -c 4 hello.wav // only support 4 channels

    aplay hello.wav // make sure default device

    // Audio will come out via audio jack of Raspberry Pi





    thanks.

    Bill

Is it okay to skip the Audacity test? I’m using the latest Rasbian Lite.



The results are:

</s>$ arecord -Dac108 -f S32_LE -r 16000 -c 4 hello.wav Recording WAVE 'hello.wav' : Signed 32 bit Little Endian, Rate 16000 Hz, Channels 4<e>

…and one second later (for simultaneous recording):

</s>$ arecord -Dac108 -f S32_LE -r 16000 -c 4 hello2.wav arecord: main:788: audio open error: Device or resource busy<e>

…playing works fine and I can hear the audio

</s>$ aplay hello.wav Playing WAVE 'hello.wav' : Signed 32 bit Little Endian, Rate 16000 Hz, Channels 4<e>

Cannot record from multiple apps using RPi 3B



I’m beginning to think this device doesn’t work with dsnoop on the non-plus version of RPi 3B. Can anyone else confirm this?

Here’s what worked for me. Using as /etc/asound.conf. Can now record with multiple scripts simultaneous.

Records at any sample rate. There’s no dmix because that doesn’t work with Pi’s onboard audio.

I have another variation if you have USB audio.



Credit: <LINK_TEXT text=“https://www.element14.com/community/thr … hread=true”>https://www.element14.com/community/thread/35824/l/wolfson-and-pocketsphinxcontinuous-error?displayFullThread=true</LINK_TEXT>


[code]
defaults.pcm.rate_converter “samplerate”

pcm.bcm2835 {
type hw
card ALSA
}
pcm.seeed_4mic_voicecard {
type hw
card seeed4micvoicec
}

pcm.softvol {
type softvol
slave {
pcm “pduplex”
}
control {
name “Master”
card 0
}
}

pcm.!default {
type asym
playback.pcm “plug:softvol”
capture.pcm “pduplex”
}

pcm.recmixer {
ipc_key 140325
ipc_key_add_uid true
type dsnoop
slave.pcm “seeed_4mic_voicecard”
}

pcm.duplex {
type asym
playback.pcm “bcm2835”
capture.pcm “recmixer”
}

pcm.pduplex {
type plug
slave.pcm “duplex”
}

ctl.pduplex {
type hw
card 0
}

pcm.dsp0 {
type plug
slave.pcm “duplex”
}

ctl.mixer0 {
type hw
card 0
}
[/code]