Каков идеальный способ воспроизведения -через аудиовход или его мониторинга с помощью arecord, parec или jackd?

Самый простой и не -хакерский способ обновить среду — выйти из текущего сеанса оболочки и начать новый.


Вы также можете запустить новую оболочку входа в систему из текущей оболочки, но это может иметь нежелательные последствия, такие как изменение PATH, даже если вы уже изменилиPATH(переменные среды, которые наследуются новой оболочкой, и не сброшены к тому, что было бы, если бы вы запустили новую оболочку в новом терминале ).

Вы также можете запустить новую оболочку с помощью env -i bash -l, где env -iочистит среду перед вызовом новой bashоболочки входа в систему. Это также может отличаться от запуска новой оболочки в новом терминале, поскольку унаследованная среда не будет такой же.

2
19.06.2021, 08:08
1 ответ

Пожалуйста, попробуйте что-то вроде

pacmd load-module module-loopback source="alsa_input.platform-soc_sound.stereo-fallback" sink="alsa_output.whatever"

, где «alsa _output.whatever» — это фактическое имя строки -out стока. Вы можете увидеть раковины с

pacmd list-sinks | grep name:

I thought "loopback" is a term relegated to capturing system audio

«Петля» — это общий термин для отправки некоторого вывода обратно к некоторому вводу. У вас есть петлевой интерфейс для работы в сети (lo), функция обратной связи на реальных устройствах локальной сети, драйвер обратной связи ALSA, модуль обратной связи Pulseaudio и, возможно, многое другое.

I set default-sample-format and rate in the pulse conf

Не делайте этого, Pulseaudio выполняет передискретизацию. Не связывайтесь ни с чем другим, просто установите соединение module-loopbackот вашего источника к вашему приемнику.

It should be so simple.

Это просто. Я понятия не имею, что вы делаете, чтобы сделать это сложным.

I guess i should bust out a sniffer and probe the chips to see what alsa is doing.

Это интересно делать (, особенно на реальном ПК, с драйверами Intel HDA -на RaspPi это очень скучно ), но поскольку вы работаете на уровне Pulseaudio, а не ALSA, наверное не полезно. Поскольку у вас есть рабочие aplayи arecord, это не должно быть проблемой.


Если у вас есть дополнительное требование (, которое вы никогда не упомянули в своем вопросе )о том, чтобы источник и приемник использовали 96k/24bit, то это будет путешествие в Pulseaudio :Pulseaudio разработан для запуска аппаратных источников/приемников ALSA с разумными значениями по умолчанию, а затем, при необходимости, повышающей/понижающей выборки при потоковой передаче. Возиться с внутренними компонентами Pulseaudio, чтобы изменить это, сложно.

Взгляните на модуль -loopback docs:Вы можете установить желаемую скорость и формат с дополнительными параметрами (и это то, что вы должны сделать ), но нет гарантии, что источник и приемник окажутся в этом режиме, и Pulseaudio не будет где-то делать передискретизацию.

Вы также не сказали, откуда это требование; если вы хотите использовать RaspPi для обработки звука профессионального -уровня -(DAW, цифровой звуковой рабочей станции ),тогда JACK — лучший выбор, чем Pulseaudio. Но все это зависит от вашей ситуации.

Тем не менее, если вы используете module-loopbackвместе с parec --rate=96000 --format=s24le, то конечно он не может изменить битрейт и формат на работающем приемнике, но если вы уже получили нужный формат и битрейт, то просто оставьте его в покое и будьте счастливы.

И да, с Pulseaudio вы можете иметь несколько потоков из источника и несколько потоков в приемник.

1
28.07.2021, 11:23

Теги

Похожие вопросы