LINUX.ORG.RU

Ответ на: комментарий от James_Holden

да я уже понял, у меня микрофон работает в стерео его слышно только в правом, как сделать что бы он был слышен и в левом?

SPRATAY
() автор топика
Ответ на: комментарий от SPRATAY

да я уже понял, у меня микрофон работает в стерео его слышно только в правом, как сделать что бы он был слышен и в левом?

Типичный микрофон - моно. На многих железках (особенно не на бытовых карточках) микрофон подключается к одному моно входу, а второй моно вход пустует. Система же их видит не как два моно, а как один стерео.

В pipewire это решается так, надо добавить в конфиг в раздел context.modules (в ~/.config/pipewire/pipewire.conf или в одном из файлов ~/.config/pipewire/media-session.d/):

    # Monimic from stereo for e-mu 0404 usb
    {   name = libpipewire-module-loopback
        args = {
            node.name = "E-Mu_0404_Left_Channel"
            node.description = "E-Mu 0404 Левый канал"
            capture.props = {
                audio.position = [ FL ]
                stream.dont-remix = true
                node.target = "alsa_input.usb-E-MU_Systems__Inc._E-MU_0404___USB_E-MU-DD-3F04-07D80609-0C489-STATION_01-00.analog-stereo"
                node.passive = true
            }
            playback.props = {
                media.class = "Audio/Source"
                audio.position = [ MONO ]
            }
        }
    }

node.name - Сюда поставить своё имя нового виртуального устройства node.description - Сюда его описание node.target - Сюда нужно поставить имя своего стерео микрофона, найти можно в «pactl list sources» audio.position в capture.props - канал из этого стерео источника, в котором у тебя есть звук. В моём случае это левый, у тебя похоже будет FR. audio.position в playback.props - тут моно, из левого канала я получаю виртуальный моно микрофон.

Тут можно глянуть, как делаются подобные вещи в pipewire: https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Virtual-Devices

В отличие от пульсы конфиги не особо простые, легко запутаться. После рестарта должно появиться устройство «E-Mu 0404 Левый канал» которое можно будет выбрать и использовать.

Еще можно попробовать создать это устройство методом пульсы, через pactl. Pipewire это поддерживает, но не всегда работает как в пульсе.

altwazar ★★★★
()
Последнее исправление: altwazar (всего исправлений: 5)
Ответ на: комментарий от altwazar

да уж очень сложно вкурить просто в пульсе делаеться так load-module module-remap-source master=alsa_input.pci-0000_00_14.2.analog-stereo master_channel_map=front-left,front-right channels=2 channel_map=mono,mono

SPRATAY
() автор топика
Ответ на: комментарий от SPRATAY

Команды пульсы должны работать с pipewire (pactl команда_пульсы).

У меня при этом иногда вылазили странности, но это мог быть и косяк с моей стороны.

altwazar ★★★★
()
Ответ на: комментарий от SPRATAY

Не смотрел родные для pipewire способы, пульсовский работает:

pactl set-sink-volume @DEFAULT_SINK@ +5%
pactl set-sink-volume @DEFAULT_SINK@ -5%
pactl set-sink-volume @DEFAULT_SINK@ 100%
altwazar ★★★★
()
Ответ на: комментарий от altwazar

вот так будет выглядеть однострочной

pw-loopback --capture-props='audio.position=[FR FL]' --playback-props='media.class=Audio/Source node.name=my-source audio.position=[MONO MONO]'

SPRATAY
() автор топика
Ответ на: комментарий от SR_team
[I] media-libs/ladspa-sdk
     Доступные версии:      1.17-r1 {ABI_MIPS="n32 n64 o32" ABI_S390="32 64" ABI_X86="32 64 x32"}
     Установленные версии:  1.17-r1(21:28:29 21.01.2022)(ABI_MIPS="-n32 -n64 -o32" ABI_S390="-32 -64" ABI_X86="64 -32 -x32")
     Домашняя страница:     https://www.ladspa.org/
     Описание:              The Linux Audio Developer's Simple Plugin API

[I] media-libs/rnnoise
     Доступные версии:      0.4.1_p20210122 {doc}
     Установленные версии:  0.4.1_p20210122(21:29:02 21.01.2022)(-doc)
     Домашняя страница:     https://jmvalin.ca/demo/rnnoise/ https://gitlab.xiph.org/xiph/rnnoise
     Описание:              Recurrent neural network for audio noise reduction

как быстро чекнуть что бы не искать?

SPRATAY
() автор топика
Последнее исправление: SPRATAY (всего исправлений: 2)
Ответ на: комментарий от SPRATAY

Хз, что за дистр у тебя. У меня одноименная либа librnnoise_ladspa.so по пути /usr/lib/ лежит.

P.S. Этот конфиг не сводит в моно, он только шумы удаляет, но там же или в доке pipewire можно найти пример с моно и добавить в node

SR_team ★★★★★
()
Ответ на: комментарий от SR_team

Кажись в генту не завезли еще это библиотеку, но сам конфиг есть лол)

ls /usr/share/pipewire/filter-chain/
demonic.conf                  sink-virtual-surround-5.1-kemar.conf
sink-dolby-surround.conf      sink-virtual-surround-7.1-hesuvi.conf
sink-eq6.conf                 source-rnnoise.conf
sink-matrix-spatialiser.conf
SPRATAY
() автор топика
Ответ на: комментарий от SPRATAY

Запусти с PIPEWIRE_DEBUG=2 перед командой. Без неё не видно часть ошибок выполнения. Нужен librnnoise_ladspa, он может быть не опакечен в дистрибутиве.

altwazar ★★★★
()
Ответ на: комментарий от altwazar
PIPEWIRE_DEBUG=2 pipewire -c filter-chain/source-rnnoise.conf
[E][07002.669167] default      | [ ladspa_plugin.c:  270 load_ladspa_plugin()] failed to load plugin 'librnnoise_ladspa': Нет такого файла или каталога
[E][07002.669196] mod.filter-chain | [module-filter-ch: 1248 setup_graph()] no inputs
[E][07002.669211] mod.filter-chain | [module-filter-ch: 1730 pipewire__module_init()] can't load graph: Недопустимый аргумент
[E][07002.669289] pw.conf      | [          conf.c:  412 load_module()] 0x55bad31e18b0: could not load mandatory module "libpipewire-module-filter-chain": Недопустимый аргумент
[E][07002.669498] default      | [      pipewire.c:  123 main()] failed to create context: Недопустимый аргумент
SPRATAY
() автор топика
Ответ на: комментарий от SR_team

нашел в своем дистре, соберу, выложу лог

чето сильно глушит его, мне там ничего менять не надо?

еще не подбирает автоматом моновский

SPRATAY
() автор топика
Последнее исправление: SPRATAY (всего исправлений: 2)
Ответ на: комментарий от SPRATAY

тресхолд можно уменьшить до 0. Он шипящие буквы в начале слов сильно обрезает (Например от слова «Слово» останется лишь «Лово»)

еще не подбирает автоматом моновский

скопируй секции capture.props и playback.props из конфига для моно, которые тебе выше давали в соответствующие секции конфига с rnnoise

SR_team ★★★★★
()
Последнее исправление: SR_team (всего исправлений: 1)
Ответ на: комментарий от SR_team

а в домашнее не как сделать и по отдельным файлам?

SPRATAY
() автор топика
Последнее исправление: SPRATAY (всего исправлений: 1)
Ответ на: комментарий от SPRATAY

Перезапустить сервис pipewire и, возможно, pipewire-media-session или wireplumber

SR_team ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.