Taula de continguts:

Toca la mateixa música en diverses sales: 3 passos
Toca la mateixa música en diverses sales: 3 passos

Vídeo: Toca la mateixa música en diverses sales: 3 passos

Vídeo: Toca la mateixa música en diverses sales: 3 passos
Vídeo: Night at the Ligament Manor | Critical Role | Campaign 3, Episode 46 2024, De novembre
Anonim
Toca la mateixa música en diverses sales
Toca la mateixa música en diverses sales

Hola a tothom, No sé vosaltres, però m'agrada tenir la mateixa música a tot el meu apartament sense fer que el so sigui massa fort. Per tant, després d’investigar una mica sobre aquest problema, vaig decidir construir diversos altaveus connectats per wifi al mateix servidor de música per reproduir la mateixa música simultàniament a diverses habitacions i en particular al bany.

El sistema es basa en la tecnologia GStreamer, que és la base d’alguns programes increïbles com VLC i en altaveus amb capacitat wifi mitjançant un Raspberry Pi.

Pas 1: construir un altaveu per al bany

Construint un altaveu per al bany
Construint un altaveu per al bany
Construint un altaveu per al bany
Construint un altaveu per al bany
Construint un altaveu per al bany
Construint un altaveu per al bany

Llista de peces:

  • un altaveu a prova de bany
  • un amplificador de 2W (treballant en 12v)
  • un Raspberry Pi Zero (treballant en 5v)
  • un Pimoroni Phat DAC
  • una targeta SD
  • un botó ON / OFF
  • un adaptador de corrent de 12v + un endoll compatible
  • un pas DC / DC (12v-> 5v)
  • una caixa elèctrica
  • alguns cables

La construcció és bastant senzilla.

Al costat electrònic, seguiu aquest diagrama ASCII.

  • Amplificador de botó d'endoll i desconnexió de corrent continu
  • Botó ON / OFF DC / DC reduït Raspberry Pi
  • Altaveu amplificador DAC Raspberry Pi Phat

Pel costat mecànic, talleu tots els forats necessaris a la caixa elèctrica, poseu-hi tot dins i això és tot.

Mitjançant aquesta tècnica, podeu crear tot tipus d’altaveus que vulgueu.

Pas 2: el costat del programari

Tot el vessant del programari es basa en el marc multimèdia de codi obert, GStreamer. Només he utilitzat Linux, però existeix en sistemes operatius diferents, així que imagino que tot es pot adaptar a altres sistemes operatius.

Per començar, heu d’instal·lar Raspbian Lite al Pi, al PHAT DAC i al GStreamer 1.0 amb els connectors “bons”. A l'ordinador utilitzat com a servidor de música, necessiteu el mateix GStreamer. No detallaré aquestes parts perquè altres ho han fet millor que jo. L’últim que cal és que el Pi i el servidor de música hagin d’estar connectats a la mateixa xarxa per cable o wifi.

Per provar si GStreamer està instal·lat correctament, podeu utilitzar aquestes línies d'ordres.

A l’altaveu:

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

Al PC:

$ gst-launch-1.0 audiotestsrc! audioconverteix! audio / x-raw, format = "(string) S16BE", layout = "(string) intercalat", canals = 1, taxa = 44100! rtpL16pay! udpsink host = port RASPBERRYPI_IP = 5000

Després de posar la bona adreça IP en lloc de "RASPBERRYPI_IP", hauríeu d'escoltar un so sinusoïdal a l'altaveu. Això no us agradarà escoltar durant molt de temps, així que no poseu el volum massa fort.

Alguna explicació: el PC produeix el so sinusoïdal mitjançant "audiotestsrc", "audioconvert! Audio / x-raw, format =" (string) S16BE ", layout =" (string) intercalat ", channels = 1, rate = 44100" convert el so en el bon format entès per "rtpL16pay" que crea els paquets d'àudio i finalment "udpsink" envia els paquets mitjançant el protocol UDP. A l'altaveu, és el mateix però invertit, "udpsrc" recupera el flux d'àudio, els paquets "rtpL16depay" i "audioconvert! Autoaudiosink" converteixen el so perquè coincideixi amb el format de la targeta de so automàtica i, per descomptat, el reprodueix.

Així que ara que les coses bàsiques funcionen, és hora d’anar més enllà. L’objectiu és interceptar el so d’una aplicació per enviar-la a través de la xarxa.

- Creem una sortida falsa

$ pactl load-module module-null-sink sink_name = multiHP

- Connectem una entrada a la sortida falsa (silenciem l’aplicació seleccionada (entrada))

$ pacmd list-sinks (llista de sortides)

$ pacmd list-sink-inputs (llista d'entrades)

$ pacmd move-sink-input% input% output (substituïu% input i% output per una de les llistes corresponents)

- Posem la targeta de so al màxim

$ pactl set-sink-volume 0 100%

- Provem al PC la manera de recuperar la sortida falsa (recuperem el so)

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

Heu de tornar a sentir el so de l'aplicació que heu seleccionat.

Genial! Ara és hora d’anar a les últimes línies d’ordres. Aquí teniu les línies d’ordres en el cas de 2 altaveus amb el so que també reprodueix el PC.

En cada altaveus:

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

Al PC:

$ gst-launch-1.0 pulsesrc device = multiHP.monitor! audioconverteix! audio / x-raw, format = "(string) S16BE", layout = "(string) intercalat", canals = 2, taxa = 44100! rtpL16pay! nom del tee = t t. ! cua! udpsink host =% addrpi1 port = 5000 t. ! cua! udpsink host =% addrpi2 port = 5000 t. ! cua! audioconverteix! autoaudiosink

Pas 3: Conclusió

Aquesta instrucció és només el primer pas per a un projecte complet. Només era per explicar el principi. Ara podeu automatitzar fent algun script a l’arrencada de Raspberry Pi i al PC. Podeu adaptar l'ordre GStreamer en funció de les vostres necessitats. Personalment, he modificat la meva antiga ràdio instructiva anterior (per fer-la servir com a altaveu). Hi ha un nombre infinit de coses per fer per millorar aquest sistema de so de diverses habitacions. En particular, tots els altaveus no estan sincronitzats, de manera que teniu alguna variació quan canvieu d'una habitació a una altra.

Espero que proveu de millorar aquesta instrucció.

No dubteu a fer preguntes si necessiteu detalls.

Bon retallador!

Recomanat: