Crie um dispositivo ALSA com 1 canal de 2

0

Estou tentando usar o Linphone com meu microfone, mas o som é muito agitado. Depois de mexer um pouco arecord, descobri que, embora o som do meu sysdefaultdispositivo esteja instável, a gravação front:CARD=Genericfunciona melhor e com menos ruído.

No entanto, frontaparentemente só pode ser gravado com 2 canais ativos. O Linphone força o mono na entrada (em teoria, ele poderia usar estéreo, mas não parece haver uma maneira de definir isso na configuração), e assim ele causa um erro alsa, já que ele não pode definir os canais corretamente.

A mesma coisa acontece se eu arecordforçar um canal para o dispositivo:

$ arecord -f cd -d front:CARD=Generic,DEV=0 -c 1 -V stereo /tmp/file
Recording WAVE '/tmp/file' : Signed 16 bit Little Endian, Rate 44100 Hz, Mono
arecord: set_params:1247: Channels count non available

Eu estou, portanto, tentando criar um dispositivo no ALSA que deve diminuir o tamanho do microfone em um único canal, mas parece que não consigo (sou um novato da ALSA). Eu tentei usar essa resposta , mas não funciona:

pcm.front cards.pcm.front
pcm.makemono {           
        type plug      
        slave.pcm {  
                type route                     
                slave.pcm "pcm.front"
                slave.channels 2
                ttable {  
                        0.0 1  
                        1.0 1
                }                   
        }                               
}

...

$ arecord -f cd -d makemono -c1 -V stereo /tmp/file
Recording WAVE '/tmp/file' : Signed 16 bit Little Endian, Rate 44100 Hz, Mono
arecord: set_params:1247: Channels count non available

Como posso fazer isso?

Svalorzen
fonte

Respostas:

2

Você quer um canal de software com dois canais de hardware, então você tem que fazer o mapeamento na direção oposta:

...
ttable {
    0.0 1
    0.1 1
}

E você deve usar a opção correta para especificar o dispositivo:

$ arecord --help | grep -i - ^ -d
-D, --device = NOME, selecione PCM por nome
-d, --duration = # interrompe após # segundos
CL.
fonte
Parece não funcionar infelizmente. Eu ainda recebo o mesmo erro ..
Svalorzen
Isso funciona para mim em hardware estéreo.
CL.
Será que, por alguma razão, meu dispositivo simplesmente não é reconhecido ou há algum outro problema (talvez o slave.pcmcampo)? Se eu colocar o -d random_device_which_does_not_existarecord não se queixa disso. Existe uma maneira de verificar se o dispositivo está sendo analisado corretamente?
Svalorzen
Você não especificou um dispositivo ...
CL.