The lion kingdom revisited this project after 3 years, to do single channel vlog recording again. Apparently, there was no way for jack to play back while recording from 2 soundcards, so that's why monitoring was dropped for recording stereo.
Using the same board as a voice recorder with monitoring & a stereo recorder without monitoring ended up requiring 2 different executables. To record a single channel with monitoring, you have to run jackd & then usbmic.c
/root/jack2-1.9.12/build/jackd -P70 -p16 -t2000 -dalsa -dhw:1 -p256 -n3 -r48000 -s &
/root/usbmic
This picks 1 of the 2 soundcards, as specified with the -dhw:1 option. Jackd handles the full duplex I/O in what was deemed to be a very efficient loop.
To record stereo from 2 soundcards without monitoring, you have to kill jackd & run usbmic2.c. Jackd was abandoned for stereo in favor of using raw alsa calls.
This requires a /root/.asoundrc file to merge the 2 soundcards.
root@raspberrypi:~# cat .asoundrc
pcm.merge {
type multi;
slaves.a.pcm hw:1
slaves.a.channels 1;
slaves.b.pcm hw:2
slaves.b.channels 1;
bindings.0.slave a;
bindings.0.channel 0;
bindings.1.slave b;
bindings.1.channel 0;
}
ctl.merge {
type hw
card 0
}
It still may be possible to record stereo with monitoring, thereby allowing a single executable to be used for stereo & mono. Some ideas are directing playback to the virtual merged device instead of a single soundcard or using raw alsa calls for playback instead of jackd. Unfortunately, there's no reason to monitor stereo recordings. That mode wouldn't be used for vlogging.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.