If I run Chrome from command-line, it prints some errors, which are usually harmless, so I did not pay any attention to them at first. However, when I tried to search for "Not implemented reached in virtual std::string media::AudioManagerBase::GetDefaultOutputDeviceID()" I have found this:
https://github.com/atom/electron/issues/271 (the reason why I ignored this error at first is because it is printed even if I use ALSA directly without custom asoundrc and JACK). In there somebody says "there are quite a lot of the people who fixed that by tweaking ALSA settings. In general you should create default ALSA device or install pulseaudio".
In my asoundrc I have:
Code:
pcm.!default {
type plug
slave.pcm "aloopDuplex" }
But for some reason this is not enough for Chrome. I also tried to create non-default ALSA device by specifying something else instead of "!default", but then I can see it in aplay -L but not in Chrome.
Currently I think this is what happening: when I record my voice online at
http://applove.in/online-voice-recorder/, Chrome uses Default sound device linked to pcm.!default (as expected). But when I try voice recognition, for some reason Chrome links Default device to something else (hw:0,0 maybe) and that of course fails. Perhaps this is what the error "Not implemented ... GetDefaultOutputDeviceID" means - that Chrome sometimes uses hardcoded "Default" ignoring pcm.!default? Also, "online-voice-recorder" fails too if I choose anything but "Default", including "Loopback PCM Default Audio Device".
If Chrome generally requires microphone to be hw:0,0 for "Default" device, is it possible to remap somehow my real card (hw:0) and loopback device (hw:1) so that loopback device would be hw:0? Alternatively, is it possible to create non-default ALSA device which would be visible in Chrome (not just aplay -L)? Perhaps somebody can suggest something I could try?