Raspberry Pi / Linux – tocar em placa de áudio diferente da padrão

Depois de instalar uma placa de áudio externa (USB) no Raspberry Pi, configurei o sistema para reconhecer o dispositivo como padrão.

Isso foi muito bom, pois qualquer coisa que for executado (áudio) será tocado na placa USB.

 

Mas como posso tocar algo na saída original do Raspberry Pi, com o USB sendo o padrão?

Embora eu não tenha encontrado muitas citações sobre isso, minha necessidade é justamente a de usar as duas placas para funções diferentes, a USB (de melhor qualidade) para tocar musica e a “nativa” para tocar um aviso sobre o andamento do programa.

Para saber a lista de dispositivos disponíveis no sistema de som, basta executar o comando:

aplay -l

Uma lista será retornada (para um usuário que tenha acesso ao sistema de áudio), como esta a seguir:

 

lista de placas de som

lista de placas de som

Observe os índices (números) que estão foram circulados em vermelho, eles serão utilizados para direcionar o acesso para os diferentes canais.

Para tocar na placa USB, sendo ela a padrão, bastaria chamar o player normalmente:

mpg321 /local/musica.mp3

Mas para ficar do modo direcionado, vamos add os comandos:

mpg321 -o alsa -a hw:0,0 /local/musica.mp3

A novidade é o

hw:0,0

O primeiro 0 (zero) é a placa de som (card) neste caso é a card 0, sendo a USB. (Observe a lista da imagem acima)

Já o segundo 0 (zero) é o dispositivo 0, no caso da USB, só tem um dispositivo mapeado nesta placa, assim, só temos o dispositivo 0 (zero).

Na placa “nativa” que está sendo reconhecida como card 1, (bcm2835) temos 2 dispositivos, sendo que o dispositivo 0 (zero) é o conector de plug P2 (tipo de fone de ouvido) e o dispositivo 1, é do HDMI.

De forma simples, para tocar na placa “nativa” (bcm2835) via conector azul (na placa versão B):

mpg321 -o alsa -a hw:1,0 /local/musica.mp3

E para tocar no HDMI, seria (obs.: este não testei):

mpg321 -o alsa -a hw:1,1 /local/musica.mp3

Agora basta escolher a saída e pronto!

Maiores detalhes para múltiplas placas de som, podem ser encontradas em:

http://alsa.opensrc.org/MultipleCards

Detalhes sobre o player mpg321:

http://manpages.ubuntu.com/manpages/intrepid/man1/mpg321.1.html

 

Para ajustar o volume pode usar o comando a seguir, onde o numero depois da letra c é o índice da placa de som:

alsamixer -c 0

A imagem abaixo ilustra o uso do comando alsamixer:

controle de volume com alsamixer

controle de volume com alsamixer

Para ajustar o volume via prompt de comando:

amixer sset Speaker 50%

Note apenas que o percentual do comando amixer é diferente do alsamixer, onde este ultimo, leva em conta a não linearidade da audição humana, tornando o 50% auditivamente “metade” do volume, coisa que já não obtive com o comando amixer.

Durante a pesquisa, eu encontrei também, a possibilidade de poder tocar simultaneamente nos diversos canais de som, entretanto eu não testei, mas pode ser uma boa referencia:

http://askubuntu.com/questions/75518/linking-multiple-sounds-cards-in-order-to-play-sound-over-all-of-them-simultâneo

O comando principal é este:

sudo apt-get indstall paprefs

e para usar:

paprefs &

Boa sorte!