receptor de bluetooth audio en Linux (Raspberry Pi)

Previos, filtros activos, DACs, CDs, transportes, vinilo, tratamiento de salas,...
Avatar de Usuario
Rafax
Mensajes: 1298
Registrado: Mié May 03, 2006 7:29 pm
Ubicación: Madrid

receptor de bluetooth audio en Linux (Raspberry Pi)

Mensaje por Rafax » Jue May 28, 2015 5:55 pm

Jaimesg, por favor puedes detallar un poco cómo has configurado el linux de la RPi para recibir audio por bluetooth? Tengo un dongle, he intentado googlear pero me pierdo :oops:

gracias

Si alguno lo habéis probado también me vale :D
Jaimesg
Mensajes: 100
Registrado: Sab May 26, 2012 3:57 pm

Re: receptor de bluetooth audio en Linux (Raspberry Pi)

Mensaje por Jaimesg » Jue May 28, 2015 6:51 pm

Rafax aún no estoy con la RPI sigo en el pc, pero los pasos serán parecidos:

- Conectar el dongle
- Instalar bluez y blueman
- Instalar Pulseaudio (yo tengo 4.0)
-

Código: Seleccionar todo

apt-get install pulseaudio-module-bluetooth
-A partir de aquí conectar con el movil y pair. Conectar como "media audio"
- Reproducir algo y en el pulseaudio volume/pavucontrol tiene que aparecer el dispositivo como entrada emitiendo
- Si no suena por los altavoces:

Código: Seleccionar todo

pactl load-module module-loopback
Un saludo
Avatar de Usuario
Rafax
Mensajes: 1298
Registrado: Mié May 03, 2006 7:29 pm
Ubicación: Madrid

Re: receptor de bluetooth audio en Linux (Raspberry Pi)

Mensaje por Rafax » Jue May 28, 2015 7:31 pm

gracias, pero en principio quisiera probar si PA, supongo que bluez podrá salir a ALSA ¿?
Jaimesg
Mensajes: 100
Registrado: Sab May 26, 2012 3:57 pm

Re: receptor de bluetooth audio en Linux (Raspberry Pi)

Mensaje por Jaimesg » Jue May 28, 2015 8:36 pm

Descargate el Dbusviewer, te dará bastante info. Yo personalmente no lo he conseguido pero aqui va mucha info:

https://web.archive.org/web/20100314135 ... z.org/wiki

Especialmente aqui:
https://web.archive.org/web/20100329091 ... wiki/Audio

Y aquí aunque el archivo en sí no es accesible
https://web.archive.org/web/20140704063 ... iled=00031

El tema es que bluez desemboca en dbus, si pudieramos conectar eso directamente a alsa tendriamos bluetooth sin PA.

Un saludo
Avatar de Usuario
Rafax
Mensajes: 1298
Registrado: Mié May 03, 2006 7:29 pm
Ubicación: Madrid

Re: receptor de bluetooth audio en Linux (Raspberry Pi)

Mensaje por Rafax » Dom Jun 07, 2015 5:51 pm

Parece que el camino es Pulseaudio...

Peeeeero me he topado con que en la RPi no consigo hacer funcionar el module-loopback. El un PC si que funciona, pero en la RPi me resulta imposible. En pavucontrol se ve como el loopback está cargado y recibe el audio de la source seleccionada (bluez), pero no reproduce nada.

He probado con éxito la captura del audio que entra por la source bluetooth de pulseaudio:
$ parecord -d bluez_source.2C_1F_23_9A_5D_D3 --file-format=wav blutu.wav

Y Pulseaudio me reproduce las cosas bien (como diría Rajoy)

Bueno HaBer si alguien consigue que funcione module-loopback en la RPi :-/
Avatar de Usuario
Rafax
Mensajes: 1298
Registrado: Mié May 03, 2006 7:29 pm
Ubicación: Madrid

Re: receptor de bluetooth audio en Linux (Raspberry Pi)

Mensaje por Rafax » Lun Jun 08, 2015 12:09 am

Solucionado: debía ser un problema de versiones que afectaba a la RPi. He actualizado la versión de Raspbian de serie (wheezy) a la versión estable vigente en Debian (jessie), el pulseaudio de serie era el 2.0 (que si hace loopback en un PC), este nuevo es el 5.0 (!). Ya funciona el module-loopback en la RPi :shock:, y ya le llega el blutú a Brutefir 8)

Además de regalo mpd 0.19.1 .... pepinazo de RPi 2 camino de convertirse en un FIRtro de 1W :D
Jaimesg
Mensajes: 100
Registrado: Sab May 26, 2012 3:57 pm

Re: receptor de bluetooth audio en Linux (Raspberry Pi)

Mensaje por Jaimesg » Lun Jun 08, 2015 4:18 pm

Genial, perdona por no contestar antes, sí eso me pasó con el PC tuve que actualizar manualmente porque no iba bien.

He hablado con los creadores de bluez y me han recomendado usar pulseaudio porque automatizar la entrada directa a alsa seria bastante complicado y tampoco es que pulseaudio consuma demasiado.

Lo que si he hecho es eliminar jack completamete, creo que no lo voy a utilizar.

Has probado a compliar para arm neon con el nuevo gcc? va como un tiro el brutefir, hasta 65k*8, 4 canales.

Que ancho de banda estas teniendo por bluetooth? con blueman se puede ver

Un saludo
Avatar de Usuario
Rafax
Mensajes: 1298
Registrado: Mié May 03, 2006 7:29 pm
Ubicación: Madrid

Re: receptor de bluetooth audio en Linux (Raspberry Pi)

Mensaje por Rafax » Lun Jun 08, 2015 8:11 pm

Genial, perdona por no contestar antes
nada que perdonar, muchas gracias a tí !
He hablado con los creadores de bluez y me han recomendado usar pulseaudio porque automatizar la entrada directa a alsa seria bastante complicado y tampoco es que pulseaudio consuma demasiado.
Me parece muy razonable. La cosa es que estuve a un tris de capturar el blutú por alsa pero me daba errores porque no reconocía el formato del stream ...
Lo que si he hecho es eliminar jack completamete, creo que no lo voy a utilizar.
Jack permite conexiones tipo pro interesantes, a mi me gusta mucho, claro que si no las vamos a usar pues no es imprescindible.
¿Como entras y sales en Brutefir?
Has probado a compliar para arm neon con el nuevo gcc? va como un tiro el brutefir, hasta 65k*8, 4 canales.
Si, he compilado el Brutefir 1.0m en la RPI2 fenomenal, lo hice con el gcc de wheezy que era 4.7 en un plisplás.
Que ancho de banda estas teniendo por bluetooth? con blueman se puede ver
es A2DP con bw de 41.5 Kb/s parece poco no ¿?
Jaimesg
Mensajes: 100
Registrado: Sab May 26, 2012 3:57 pm

Re: receptor de bluetooth audio en Linux (Raspberry Pi)

Mensaje por Jaimesg » Mar Jun 09, 2015 9:48 pm

Hola. entro por alsa todo, además queda mucha cpu para el resto de cosas (jack me consume bastante). Cargando el módulo aloop. Quedaría por redirigir pulseaudio con alsa a brutefir y adios jack.

Qué tal te va la carga en los 4 cores? a mi me queda completamente descordinada, como si fuera un single thread.

Prueba con el gcc 4.9 que admite neon por primera vez.

Con un samsung galaxy s4 me salen tambien esos 49kb/s pero con un sony no recuerdo el modelo, 160. El limite del sbc es 345*2 lo cual es solo la mitad de cd-audio y debido a la compresion SBC seria equivalente calidad:
http://soundexpert.org/news/-/blogs/blu ... ality-a2dp

He estado indagando creo que tiene que ser posible modificar el bitrate con el que emite el telefono tocando algo de android.

Un saludo
Avatar de Usuario
Rafax
Mensajes: 1298
Registrado: Mié May 03, 2006 7:29 pm
Ubicación: Madrid

Re: receptor de bluetooth audio en Linux (Raspberry Pi)

Mensaje por Rafax » Jue Jun 11, 2015 8:59 am

Buenas,

Estoy probando jack con la tarjeta cirrus consume 1% de CPU claro que solo son 2 canales.

La carga de audio veo que Brutefir se reparte 4 filtros tal que así:

Filters in process 0: 0 2
Filters in process 1: 1 3

y efectivamente htop muestra dos brutefires corriendo.

El tema es que el reparto de filtros se meten en el mismo proceso para cada entrada o salida, si tienes filtros conectados a una misma entrada correrán en el mismo proceso. O sea que en estéreo solo se balancea en dos procesos.

Ya he compilado de nuevo Brutefir con gcc 4.9, pero ¿que es neon?..

El tema del bit rate del blutú es raruno, lo tengo que mirar más a fondo..

Un saludo!
Jaimesg
Mensajes: 100
Registrado: Sab May 26, 2012 3:57 pm

Re: receptor de bluetooth audio en Linux (Raspberry Pi)

Mensaje por Jaimesg » Jue Jun 11, 2015 10:43 pm

Wow eso son buenas noticias! por culpa de un filtro que tengo intercalado para eliminar el crosstalk todo se me metida a un nucleo, ahora puedo funcionar a 2. Creo que no va a ser posible funcionar a 4 porque si partes de stereo aunque realices crossover sigues partiendo de 2 y funcionara en 2 nucleos.

Neon es una arquitectura de hardware para sumas y multiplicaciones de float (32bits) a ultra rapida velocidad (10 veces mas). Cuando hagas el configure echale un ojo a como habilitar neon y compilar para armv7. Vas a notar como poco un 30%.
Teniendo todo funcionando en un nucleo, estamos hablando de 32k*13 me consumia 50% de 1 nucleo... sin compilar con neon la cosa se demadra.

La cirrus va genial no? una buena idea seria utilizar la cirrus para el entorno 100 hz-5k y usar una tarjeta externa para el grave y trebble.

Un saludo
Avatar de Usuario
Rafax
Mensajes: 1298
Registrado: Mié May 03, 2006 7:29 pm
Ubicación: Madrid

Re: receptor de bluetooth audio en Linux (Raspberry Pi)

Mensaje por Rafax » Vie Jun 12, 2015 11:48 am

Efectivamente la clave está en que los dos canales de entrada te obligan a no más que dos únicos procesos Brutefir.

Es muy interesante para optimizar el convolver lo que me comentas de neon y amrv7, muchas gracias, lo investigaré.
La cirrus va genial no? una buena idea seria utilizar la cirrus para el entorno 100 hz-5k y usar una tarjeta externa para el grave y trebble.
Si, la Cirrus es un buen cacharro. La combinación de tarjetas es un tema delicado. Yo he intentado un escenario 2.1, usando la Cirrus para las cajas principales y la tarjeta integrada para el subwoofer, pero no me acaba de ir fina la cosa, la prueba ha sido con jack sobre la Cirrus y la utilidad alsa_out de jack para alcanzar integrada... quiero revisar esto ...

Por cierto, sobre Bluetooth. He reinstalado Raspbian porque había tocado demasidas cosas, y ahora el audio que entra por Bluetooth suena con clipping horribre :| a ver si lo puede arreglar :roll:
Jaimesg
Mensajes: 100
Registrado: Sab May 26, 2012 3:57 pm

Re: receptor de bluetooth audio en Linux (Raspberry Pi)

Mensaje por Jaimesg » Vie Jun 12, 2015 9:33 pm

Por cierto, sobre Bluetooth. He reinstalado Raspbian porque había tocado demasidas cosas, y ahora el audio que entra por Bluetooth suena con clipping horribre :| a ver si lo puede arreglar :roll:
La verdad que es un rollo reinstalar todo, ya sabes divide en cachos pequeños y ve probando individualmente.

Estoy pensando que tiene que haber alguna manera de automatizar un poco el proceso de pairing, que funcione igual que los altavoces bluetooth comerciales, sin que haya que tocar nada. Fijar una contraseña para todos y que acepte conexiones por defecto.

Por cierto has probado softvol de alsa? Estoy intentando incrementar la resolucion de volumen de la tarjeta de sonido pero aun no consigo que salga sonido.

Saludos!
Avatar de Usuario
Rafax
Mensajes: 1298
Registrado: Mié May 03, 2006 7:29 pm
Ubicación: Madrid

Re: receptor de bluetooth audio en Linux (Raspberry Pi)

Mensaje por Rafax » Lun Jun 15, 2015 8:08 pm

Bueno no es demasiado tedioso marcar como trusted a cada dispositivo blutú que se quiera meter en el sistema. Luego ya acepta las conexiones sobre la marcha a demanda del dispositivo de turno.

No he probado el plugin softvol de ALSA, en el FIRtro el volumen se controla atenuando en Brutefir. En todo caso el amixer de las tarjetas suele permitir saltos de 1dB o incluso de .5dB, ¿es eso lo que quieres aumentar de resolución?
Jaimesg
Mensajes: 100
Registrado: Sab May 26, 2012 3:57 pm

Re: receptor de bluetooth audio en Linux (Raspberry Pi)

Mensaje por Jaimesg » Jue Jun 18, 2015 3:52 pm

Es verdad! no habia pensado en el brutefir, hay está todo hecho, thanks