Suporte para múltiplas taxas de amostragem durante a reprodução e gravação em um aplicativo como o Audacity

0

Foi assim que defini os canais da minha placa de som em .asoundrc :

pcm.!default {
    type plug
    slave {
       pcm "hw:1,0"
    }
}

ctl.!default { 
    type hw
    card 1
}

pcm_slave.usb_1 {
    pcm "hw:1,0"
    rate 44100
    channels 8
    buffer_size 4096
    period_size 1024
}

pcm.outch1 {
    type dshare
    ipc_key 1111
    slave usb_1
    bindings [ 0 ]
    hint.description "USB output/playback channel 1 (from output port 1)"
}

pcm.inch1 {
    type dsnoop
    ipc_key 1111
    slave usb_1
    bindings [ 0 ]
    hint.description "USB input/capture channel 1 (from input port 1)"
}

Enquanto o acima funciona bem com aplay e arecord funções / comandos no terminal, tentar reproduzir uma amostra de áudio de 8k com Audacity gera o seguinte erro:

Quando eu verifico a opção Audio device info no menu Help (Ajuda - > Opção de dispositivo de áudio), vejo o seguinte:

Device ID: 2
Device name: USB Audio (hw:1,0)
Host name: ALSA
Recording channels: 8
Playback channels: 8
Low Recording Latency: 0.008707
Low Playback Latency: 0.008707
High Recording Latency: 0.034830
High Playback Latency: 0.034830
Supported Rates:
    44100
    48000
    88200
    96000
==============================
Device ID: 10
Device name: outch1
Host name: ALSA
Recording channels: 0
Playback channels: 1
Low Recording Latency: -1.000000
Low Playback Latency: 0.023220
High Recording Latency: -1.000000
High Playback Latency: 0.023220
Supported Rates:
    44100
==============================
Device ID: 11
Device name: inch1
Host name: ALSA
Recording channels: 1
Playback channels: 0
Low Recording Latency: 0.023220
Low Playback Latency: -1.000000
High Recording Latency: 0.023220
High Playback Latency: -1.000000
Supported Rates:
==============================

Como podemos ver, 8000 ou 16000 não é Supported Rate das informações do dispositivo de áudio. Então, fica bem claro por que o erro foi lançado.

Então, como e onde posso adicionar / definir (modificar minha .asoundrc talvez?) essas taxas de amostra para que qualquer aplicativo (incluindo Audacity claro) possa suportar a reprodução e gravação de arquivos de áudio em qualquer taxa de amostragem desejada .

    
por skrowten_hermit 02.08.2017 / 11:04

1 resposta

2

Os plug-ins dmix / dshare / dsnoop sempre usam uma taxa de amostragem fixa.

Para permitir que o próprio dispositivo seja executado em uma taxa diferente, use o PulseAudio.

Para criar uma nova amostra dos dados do aplicativo antes de ir para o plug-in dshare , envolva um plug-in plug em torno dele:

pcm.outch1 {
    type plug
    slave.pcm {
        type dshare
        ipc_key 1111
        slave usb_1
        bindings [ 0 ]
    }
}
    
por 02.08.2017 / 16:21