Я хочу применить фильтр, в частности SWE glame-bandpass-iir, только к одному из нескольких выходных каналов.
Я все еще в недоумении после просмотра примеров, перечисленных ниже. Я вполне уверен, что module-ladspa-sink
и module-remap-sink
являются решением моих потребностей. Однако я не могу понять документы по module-remap-sink
. Для простоты давайте предположим, что цель состоит в том, чтобы front L/R soundcard jack
выводил нефильтрованный звук, а rear L/R soundcard jack
выводил фильтрованный звук.
sink_name: The name for the new virtual sink.
master: The name of the sink of which channels you're remapping.
channels: Channel count of the new sink.
channel_map: List of the channels that this sink will accept.
master_channel_map: The channels in the master sink, where the channels listed in channel_map will be relayed to. channel_map and master_channel_map must have equal number of channels listed, because the channels will be mapped based on their position in the list, i.e. the first channel in channel_map will be relayed to the first channel in master_channel_map and so on.
remix: Allow remixing of the mono or stereo streams to multiple channels (default is yes; set to "no" if you don't want the stereo stream to be up-mixed to all channels except subwoofer and channels named aux0-aux15).
http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules#module-remap-sink
Ниже приведен фильтр раковина, которую я хочу использовать:
### LADSPA Sink
.ifexists module-ladspa-sink.so
.nofail
load-module module-ladspa-sink sink_name=ladspa_out master=alsa_out plugin=bandpass_iir_1892 label=bandpass_iir control=660.0,440.0,2
.fail
.endif
Может ли кто-нибудь любезно объяснить, как я выполняю source
-> ladspa_out
-> center jack on soundcard
. В частности, как мне это заполнить?
load-module module-remap-sink filt_sink <?> 2 <?left,?right> <?m_left,?m_right> <?yes>
В случае необходимости я использую встроенный звук i945: alsa.long_card_name = "Intel ICH7 with ALC850 at irq 17"
I Я попробовал почти все конфигурации как /etc/pulse/default.pa
, так и ~/pulse/default.pa
, которые я могу представить без успеха. Я пытался использовать различные перестановки module-udev-detect
| module-alsa-sink
для настройки alsa с 4 или 6 каналами, названными передний левый, передний правый, левый, правый, aux0-4, задний левый, задний правый и module-remap-sink
и module-combine-sink
, а также предполагаемый module-ladspa-sink
. Хотя фильтр будет работать с одним, двумя или четырьмя каналами, было невозможно одновременно получать нефильтрованный выход через любые другие каналы.
Я спросил на #pulseaudio на irc и мне сказали, что то, что я хочу, невозможно с одним пульсом. Я был бы очень признателен, если бы кто-то мог указать мне либо конкретное решение для импульсной аудиосигнала, либо решение с другими инструментами.
Спасибо.
Мы можем сделать это с тонкой настройкой модуля приемника LADSPA pulseaudio . Этот модуль загружает приемник, к которому будет применен любой плагин LADSP. Обычно применяется применение фильтра ко всем каналам, но мы также можем определить отдельный канал для назначения фильтра путем переназначения и последующего объединения каналов.
Используются следующие команды Pulse Audio :
Получите действительные sink_name
и channel_map
:
pacmd list-sinks
[ 1122] Загрузить фильтр LADSPA:
load-module module-ladspa-sink sink_name=ladspa_out master=alsa_out plugin=<filer> label=<label> control=<control>
Создать новый переназначенный приемник:
load-module remap-sink sink_name=<name> master=<sink> channels=<n> master_channel_map=<list> channel_map=<list>
Создать новый комбинированный приемник:
pacmd load-module module-combine-sink sink_name=<name> sink_properties=device.description=<displayed_name> slaves=<list_of_n_sinks> channels=<n>
Чтобы получить желаемый эффект, нам нужно загрузить фильтр LADSPA, чтобы создать ladspa_out -поток с отфильтрованным звуком из данного тонуть. Затем нам нужно создать отдельные именованные приемники для каждого аудиоканала. Каналы, к которым мы хотим применить фильтр, должны использовать ladspa_out -sink в качестве главного, каналы, которые мы должны очистить, должны использовать нефильтрованный приемник в качестве главного. Наконец, мы снова объединяем отдельные каналы, чтобы дать нам новый комбинированный приемник.
pacmd load-module module-ladspa-sink sink_name=ladspa_out master=alsa_output.pci-0000_00_14.2.analog-stereo plugin=bandpass_iir_1892 label=bandpass_iir control=660.0,440.0,2
Новый приемник ladspa_out
создается с использованием фильтра bandpass_iir с заданными элементами управления, применяемыми к аудиосигналу от нашего основного приемника (замените с главным приемником из шага 1. выше)
pacmd load-module module-remap-sink sink_name=remapR master=ladspa_out channels=1 master_channel_map=front-right channel_map=front-right
Для спереди справа создается фильтрованный отфильтрованный приемник с именем remapR
] аудиоканал из отфильтрованного приемника ladspa_out
.
pacmd load-module module-remap-sink sink_name=remapL master=alsa_output.pci-0000_00_14.2.analog-stereo channels=1 master_channel_map=front-left channel_map=front-left
Нефильтрованный приемник remapL
для левого переднего аудиоканала создается из нашего нефильтрованного главного приемника, как определено выше.
pacmd load-module module-combine-sink sink_name=combine sink_properties=device.description=myCombine slaves=remapL,remapR channels=2
Новый приемник combine
(или любое другое выбранное вами имя) будет создан с 2
каналами, используя нефильтрованный приемник remapL
для левого канала и отфильтрованный приемник remapR
для правого. канал.
Теперь мы можем выбрать этот вновь созданный приемник (отображаемый как «myCombine») в настройках звука, чтобы левый канал не фильтровался, а правый канал фильтровался сверху с помощью фильтра LADSP сверху.
Если у нас более двух каналов, нам придется выполнить эти шаги для всех каналов, заменив каждый канал фильтрованными или нефильтрованными сигналами, чтобы снова объединить их на последнем шаге.