Самый простой и не -хакерский способ обновить среду — выйти из текущего сеанса оболочки и начать новый.
Вы также можете запустить новую оболочку входа в систему из текущей оболочки, но это может иметь нежелательные последствия, такие как изменение PATH
, даже если вы уже изменилиPATH
(переменные среды, которые наследуются новой оболочкой, и не сброшены к тому, что было бы, если бы вы запустили новую оболочку в новом терминале ).
Вы также можете запустить новую оболочку с помощью env -i bash -l
, где env -i
очистит среду перед вызовом новой bash
оболочки входа в систему. Это также может отличаться от запуска новой оболочки в новом терминале, поскольку унаследованная среда не будет такой же.
Пожалуйста, попробуйте что-то вроде
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 вы можете иметь несколько потоков из источника и несколько потоков в приемник.