Já tentou parear duas caixas de som Bluetooth ao mesmo tempo no Linux? O som sai apenas em uma delas, sem usar nada além do que vem “de fábrica” com o sistema. Mas se ele tem o servidor de som PipeWire, como é o caso do Manjaro e do novo Linux Kamarada, é possível usar um aplicativo de patchbay para fazer com que o mesmo som saia nas duas caixas de som.
Um patchbay na vida real serve para conectar instrumentos musicais e equipamentos de som. Um aplicativo de patchbay permite conectar aplicativos e dispositivos de reprodução e de gravação de som.
No final de semana passado, eu dei uma festa e usei duas caixas de som Bluetooth que eu tenho, uma JBL GO e uma Frahm CM 300 BT, para reproduzir músicas a partir do meu computador. Uma ficou no ambiente interno e a outra, no ambiente externo. A seguir, mostro como consegui fazer isso.
O servidor de som PipeWire
Antes, permita-me apresentar o PipeWire. Talvez, como eu, você já tenha ouvido falar do ALSA, do PulseAudio ou do JACK, mas não do PipeWire.
O PipeWire é um servidor de som desenvolvido para melhorar significativamente o processamento de áudio e vídeo no Linux, com suporte a tecnologias mais novas como Wayland e Flatpak. Ele foi projetado para roteamento e processamento de áudio e vídeo com baixa latência, e é capaz de conectar múltiplos fluxos multimídia a múltiplos clientes.
A Fedora Magazine apresenta um pouco da história do PipeWire, que nos permite entender onde exatamente ele se encaixa no Linux:
A evolução do subsistema de som do Linux ocorreu em camadas. A camada mais baixa é a camada de hardware, com diversos dispositivos de áudio. Para interagir com os drivers de hardware, o Linux possui uma API padronizada chamada Advanced Linux Sound Architecture (ALSA). Uma camada acima da ALSA, um servidor de som, deve lidar com as interações com os aplicativos do espaço do usuário. Inicialmente, essa camada era composta pelo PulseAudio e pelo JACK, mas foi recentemente substituída pelo Pipewire.
O PipeWire oferece suporte integrado para aplicativos desenvolvidos para PulseAudio, JACK e ALSA, de modo que eles continuam a funcionar quer você esteja usando essas tecnologias, quer você esteja usando o PipeWire.
Como sei se meu servidor de som é o PipeWire?
Para confirmar que você está usando o PipeWire como servidor de som, abra o terminal e execute os comandos a seguir:
1
$ inxi -A
Você deve ver uma menção ao PipeWire na saída (Server-1: PipeWire):
1
2
3
4
5
6
Audio:
Device-1: Intel Raptor Lake High Definition Audio
driver: sof-audio-pci-intel-tgl
Device-2: NVIDIA AD106M High Definition Audio driver: snd_hda_intel
API: ALSA v: k6.16.8-1-MANJARO status: kernel-api
Server-1: PipeWire v: 1.4.8 status: active
Outro comando que você pode usar para testar o uso do PipeWire é o:
1
$ pactl info
Você deve ver algo como Server Name: PulseAudio (on PipeWire 1.4.8) na saída:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Server String: /run/user/1000/pulse/native
Library Protocol Version: 35
Server Protocol Version: 35
Is Local: yes
Client Index: 94
Tile Size: 65472
User Name: linux
Host Name: kamarada-pc
Server Name: PulseAudio (on PipeWire 1.4.8)
Server Version: 15.0.0
Default Sample Specification: float32le 2ch 48000Hz
Default Channel Map: front-left,front-right
Default Sink: alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__Speaker__sink
Default Source: alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__Mic2__source
Cookie: 8d7d:2813
Pareando as duas caixas de som
Apresentado o PipeWire, vejamos o problema que motiva esse tutorial.
Conecte a primeira caixa de som e a defina como saída de som, como você faz normalmente para parear uma caixa de som Bluetooth:
Certifique-se de que o som está saindo nessa caixa de som.
Para isso, você pode, por exemplo, abrir o navegador e por uma música para tocar no YouTube. Se quiser indicações, gosto de testar o som com Moro No Brasil da banda Farofa Carioca ou San Disco Reggaefornia do Jason Mraz. São músicas em que dá pra ouvir bem a percussão, os agudos e os graves.
Com a primeira caixa de som já funcionando, conecte a segunda:
Note que o som continua saindo apenas na primeira. Já vamos resolver isso.
Unindo o som das caixas de som
Para fazer com que o som da primeira caixa de som saia também na segunda caixa de som, vamos usar um aplicativo de patchbay para o PipeWire. Opções incluem o qpwgraph (baseado em Qt) e o Helvum (baseado em GTK). Como o Linux Kamarada usa a área de trabalho GNOME, prefiro usar o Helvum, embora o outro aplicativo deva funcionar bem também.
Para instalar o Helvum no Manjaro ou no Linux Kamarada, instale o pacote helvum dos repositórios oficiais do Manjaro. Isso pode ser feito com:
1
$ pamac install helvum
Caso precise de ajuda para instalar programas no Manjaro, consulte:
- Como instalar programas no Manjaro usando o gerenciador de pacotes Pamac
- Manjaro: como instalar programas pelo terminal com o comando pamac
Depois de instalar o Helvum, inicie-o:
Esta é a tela do Helvum, mostrando quais conexões estão feitas entre aplicativos e dispositivos tanto para saída quanto para entrada de som:
Nesse exemplo, podemos ver que as saídas de som do navegador Firefox (output_FL e output_FR) estão conectadas às entradas de som da caixa de som JBL GO (playback_FL e playback_FR) e enviando som para ser reproduzido por ela. Experimente pausar a música no navegador e veja essa linha ficar tracejada, indicando que a conexão existe, mas não está enviando som.
É possível que nem todos os dispositivos e aplicativos caibam na tela. Nesse caso, você pode rolar para cima ou para baixo, ou reduzir o zoom para que mais elementos caibam na tela:
Agora é possível ver a segunda caixa de som (BT-Frahm).
Para que as caixas de som JBL GO e BT-Frahm reproduzam o mesmo som ao mesmo tempo, conecte as saídas de som da primeira (monitor_FL e monitor_FR) às entradas de som da segunda (playback_FL e playback_FR). Para fazer isso, você pode arrastar uma até a outra e o aplicativo vai desenhar a linha:
Note que agora o mesmo som sai nas duas caixas de som ao mesmo tempo.
Você pode arrastar os aplicativos e dispositivos na tela e rearrumá-los como preferir para que sua visualização fique melhor:
Controlando o volume das caixas de som
Você deve ter notado que o controle de volume da área de trabalho afeta apenas o volume da primeira caixa de som. Para poder ajustar o volume de ambas as caixas de som, vamos usar outro aplicativo, que é o Controle de volume do PulseAudio. Para instalá-lo, instale o pacote pavucontrol:
1
$ pamac install pavucontrol
Depois de instalar o Controle de volume, inicie-o:
Mude para a aba Dispositivos de saída e ajuste o volume de cada caixa de som conforme desejar:
Conclusão
Quando eu tive a ideia de usar duas caixas de som Bluetooth ao mesmo tempo e pesquisei se era possível, não encontrei nenhum tutorial atualizado em português mostrando como fazer, o que me salvou foi a visão geral criada por IA do Google. Por isso, decidi escrever esse tutorial compartilhando como fiz. Se você ficou com alguma dúvida ou tem alguma sugestão de como fazer melhor, ou dica para acrescentar, ou ideia para um próximo tutorial, por favor, escreva nos comentários. Espero que tenha sido útil. Abraço e até a próxima!