Tabla de contenido:

Reproducir la misma música en varias habitaciones: 3 pasos
Reproducir la misma música en varias habitaciones: 3 pasos

Video: Reproducir la misma música en varias habitaciones: 3 pasos

Video: Reproducir la misma música en varias habitaciones: 3 pasos
Video: 🎼 Cómo reproducir MÚSICA en varios dispositivos a la vez con ALEXA o GOOGLE HOME 🎼 2024, Diciembre
Anonim
Reproduzca la misma música en varias habitaciones
Reproduzca la misma música en varias habitaciones

Hola a todos, No sé ustedes, pero me gusta tener la misma música en todo mi apartamento sin que el sonido sea demasiado alto. Entonces, después de investigar un poco sobre este problema, decidí construir varios parlantes todos conectados por wifi al mismo servidor de música para reproducir la misma música simultáneamente en varias habitaciones y en particular en el baño.

El sistema se basa en la tecnología GStreamer, que es la base de un software increíble como VLC y un altavoz con capacidad wifi que utiliza una Raspberry Pi.

Paso 1: construcción de un altavoz para el baño

Construyendo un altavoz para el baño
Construyendo un altavoz para el baño
Construyendo un altavoz para el baño
Construyendo un altavoz para el baño
Construyendo un altavoz para el baño
Construyendo un altavoz para el baño

Lista de:

  • un altavoz a prueba de baño
  • un amplificador de 2W (funciona con 12v)
  • una Raspberry Pi Zero (trabajando en 5v)
  • un Pimoroni Phat DAC
  • una tarjeta SD
  • un botón de ENCENDIDO / APAGADO
  • un adaptador de corriente de 12v + un enchufe compatible
  • un reductor DC / DC (12v-> 5v)
  • una caja eléctrica
  • algunos cables

La construcción es bastante sencilla.

En el lado electrónico, siga este diagrama ASCII.

  • Amplificador de botón de encendido / apagado de enchufe de CC
  • Botón ON / OFF DC / DC reductor Raspberry Pi
  • Altavoz amplificador Raspberry Pi Phat DAC

En el lado mecánico, corta todos los agujeros necesarios en la caja eléctrica, mete todo dentro y ya está.

Con esta técnica, puede crear todo tipo de altavoces que desee.

Paso 2: El lado del software

Todo el lado del software se basa en el marco multimedia de código abierto, GStreamer. Usé solo Linux pero existe en diferentes sistemas operativos, así que imagino que todos se pueden adaptar para otros sistemas operativos.

Para empezar, tienes que instalar Raspbian Lite en el Pi, el PHAT DAC y el GStreamer 1.0 con los complementos "buenos". En la computadora utilizada como servidor de música, necesita el mismo GStreamer. No detallaré esas partes porque otros lo han hecho mejor que yo. Lo último que se necesita es que el Pi y el servidor de música tengan que estar conectados a la misma red por cable o wifi.

Para probar si GStreamer está instalado correctamente, puede usar esas líneas de comando.

En el altavoz:

$ gst-launch-1.0 udpsrc port = 5000 caps = 'application / x-rtp, media = (string) audio, clock-rate = (int) 44100, encoding-name = (string) L16, encoding-params = (string) 1, canales = (int) 1, carga útil = (int) 96 '! rtpL16depay! audioconvert! autoaudiosink

En la PC:

$ gst-launch-1.0 audiotestsrc! audioconvert! audio / x-raw, formato = "(cadena) S16BE", diseño = "(cadena) intercalado", canales = 1, tasa = 44100! rtpL16pay! udpsink host = RASPBERRYPI_IP puerto = 5000

Después de poner la buena dirección IP en lugar de "RASPBERRYPI_IP", debería escuchar un sonido sinusoidal en el altavoz. Eso no es algo que le gustará escuchar durante mucho tiempo, así que no ponga el volumen demasiado alto.

Alguna explicación: la PC produce el sonido sinusoidal usando "audiotestsrc", "audioconvert! Audio / x-raw, format =" (string) S16BE ", layout =" (string) interleaved ", channels = 1, rate = 44100" convert el sonido en el buen formato entendido por "rtpL16pay" que crea los paquetes de audio y finalmente "udpsink" envía los paquetes usando el protocolo UDP. En el altavoz, es el mismo pero invertido, "udpsrc" recupera el flujo de audio, "rtpL16depay" desempaqueta y "audioconvert! Autoaudiosink" convierte el sonido para que coincida con el formato de la tarjeta de sonido automática y, por supuesto, lo reproduce.

Entonces, ahora que lo básico funciona, es hora de ir más allá. El objetivo es interceptar el sonido de una aplicación para enviarla a través de la red.

- Creamos una salida falsa

$ pactl módulo de carga módulo-nulo-sumidero nombre_del_dispositivo = multiHP

- Conectamos una entrada a la salida falsa (silenciar la aplicación seleccionada (entrada))

$ pacmd list-sinks (lista de salidas)

$ pacmd list-sink-inputs (lista de entradas)

$ pacmd move-sink-input% input% output (reemplace% input y% output por una de las listas correspondientes)

- Ponemos la tarjeta de sonido al máximo

$ pactl set-sink-volume 0100%

- Probamos en la PC la forma de recuperar la salida falsa (recuperar el sonido)

$ gst-launch-1.0 pulsesrc device = multiHP.monitor! audioconvert! autoaudiosink

Debería volver a escuchar el sonido de la aplicación que ha seleccionado.

¡Excelente! Ahora es el momento de ir a las líneas de comando finales. Aquí están las líneas de comando en el caso de 2 altavoces con el sonido también reproducido por la PC.

En cada altavoz:

$ gst-launch-1.0 udpsrc port = 5000 caps = 'application / x-rtp, media = (string) audio, clock-rate = (int) 44100, encoding-name = (string) L16, encoding-params = (string) 2, carga útil = (int) 96 '! rtpL16depay! audioconvert! autoaudiosink

En la PC:

$ gst-launch-1.0 pulsesrc device = multiHP.monitor! audioconvert! audio / x-raw, formato = "(cadena) S16BE", diseño = "(cadena) intercalado", canales = 2, tasa = 44100! rtpL16pay! nombre de la camiseta = t t. ! cola ! udpsink host =% addrpi1 puerto = 5000 t. ! cola ! udpsink host =% addrpi2 puerto = 5000 t. ! cola ! audioconvert! autoaudiosink

Paso 3: Conclusión

Este instructivo es solo el primer paso para un proyecto completo. Fue solo para explicar el principio. Ahora puede automatizar haciendo un script en el arranque de la Raspberry Pi y en la PC. Puede adaptar el comando GStreamer según sus necesidades. Personalmente modifiqué mi instructable anterior (BRAND NEW OLD RADIO) para usarlo como altavoz. Hay un número infinito de cosas que hacer para mejorar este sistema de sonido multisala. En particular, todos los altavoces no están sincronizados, por lo que tiene alguna variación cuando cambia de una habitación a otra.

Espero que intente mejorar este instructivo.

No dude en hacer preguntas si necesita detalles.

¡Buen calderero!

Recomendado: