Como posso aplicar um plug-in LADSPA a um fluxo PulseAudio?

15

Quero aplicar um plug-in LADSPA a tudo o que flui através do coletor PulseAudio padrão. Como devo configurar isso?

ændrük
fonte

Respostas:

19

A adição de um plug-in LADSPA ao pulseaudio é feita com module-ladspa-sink .

Instalamos este módulo como um coletor de saída, onde podemos definir o módulo de processamento e podemos enviar o sinal processado para esse coletor recém-criado.

Carregue o módulo LADSPA:

Este módulo pode ser carregado em tempo de execução com:

pacmd load-module module-ladspa-sink sink_name=<yourname> master=<sinkname> plugin=<plugin> label=<label> control=<option1>,<option2>,[...]

O nome do coletor principal pode ser lido com o seguinte comando:

 pacmd list-sinks

Dê um nome para o coletor processado, como ele aparecerá na lista de saída em sink_name. Todas as opções adicionais dependem do plug-in que usamos (veja o exemplo abaixo).

Para aplicar o processador LADSPA, escolhemos o coletor de saída em "Configurações de som ..." e agora podemos ouvir o fluxo processado. As opções de controle não podem ser alteradas no tempo de execução.

Descarregue o módulo LADSPA:

Teremos que descarregar o módulo e carregá-lo novamente para diferentes opções. Para encontrar o índice do módulo para descarregar, podemos emitir:

 pacmd list-modules

Para descarregar um módulo, reiniciaremos o servidor de som pulseaudio -kou descarregaremos o módulo com seu número de índice #:

pacmd unload-module <#>

Veja também o wiki de referência do pulseaudio .

Carregue o módulo LADSPA na inicialização:

Depois de encontrar as opções apropriadas, podemos executá-lo por padrão. Isso pode ser feito incluindo-o no /etc/pulse/default.paarquivo de configuração a ser carregado pelo daemon na inicialização:

.ifexists module-ladspa-sink.so
.nofail
load-module module-ladspa-sink <options>
.fail
.endif

Exemplo:

Este é um exemplo de um caso especial para lhe dar uma idéia de como fazê-lo. Neste exemplo, queremos aplicar uma mudança de pitch à nossa saída de som usando o plug-in TAP tap_pitch ( tap-plugins Instalar plug-ins de toque ). Para este plugin, as opções adicionais necessárias para carregar no Pulse Audio são as seguintes:

plugin=tap_pitch # as from /usr/lib/ladspa/ without .so
label=tap_pitch  # defines which label of a plugin to use

Para encontrar as opções de controle apropriadas, navegamos até a documentação do plug-in (aqui, o TAP plugin pitch shifter ). Lá encontramos uma boa tabela de quatro controles relevantes que devemos aplicar no control=comando:

control=<semitone>,<rate>,<dry>,<wet>

Deixar uma opção vazia usará o padrão nesse caso.

Portanto, o comando a seguir aplicará um deslocamento de pitch de uma oitava para baixo do meu coletor mestre alsa_output.pci-0000_00_14.2.analog-stereo(substitua pelo coletor) no coletor de saída ladspa_outcom um deslocamento de semitom de -12, que é uma variação de taxa de -50% e com um nível de misturador seco (não processado) de -90dB, e um nível molhado (processado) de 0dB.

pacmd load-module module-ladspa-sink sink_name=ladspa_out master=alsa_output.pci-0000_00_14.2.analog-stereo plugin=tap_pitch label=tap_pitch control=-12,-50,-90,0

Para alguns plugins, a documentação pode não estar completa ou a configuração apropriada precisará de algumas experiências até que eles estejam corretos.

Takkat
fonte
1
Como posso aplicar um desses filtros (feito de pacmd load-module module-ladspa-sink *) à entrada do microfone? Para que eu possa executar um filtro amplo do sistema, ele se aplica a Mumble, Teamspeak, Skype, Games. Eu quero que outras pessoas aqui a entrada filtrada, não é para mim (apenas).
precisa
O @braindamage não pode testar isso aqui (sem microfone), mas tente com um perfil duplex para o coletor mestre ou tente com <name_of_source> .monitor como mestre.
Takkat