Daftar Isi:

Mainkan Musik yang Sama di Beberapa Kamar: 3 Langkah
Mainkan Musik yang Sama di Beberapa Kamar: 3 Langkah

Video: Mainkan Musik yang Sama di Beberapa Kamar: 3 Langkah

Video: Mainkan Musik yang Sama di Beberapa Kamar: 3 Langkah
Video: KALIAN MELIHAT TRAMPOLIN APA AIR KOLAM RENANG???! #shorts 2024, Juli
Anonim
Mainkan Musik yang Sama di Beberapa Kamar
Mainkan Musik yang Sama di Beberapa Kamar

Halo semuanya, Saya tidak tahu tentang Anda, tetapi saya suka memiliki musik yang sama di seluruh apartemen saya tanpa mengubah suaranya terlalu keras. Jadi setelah sedikit riset tentang masalah ini, saya memutuskan untuk membuat beberapa speaker yang semuanya terhubung dengan wifi ke server musik yang sama untuk memutar musik yang sama secara bersamaan di beberapa ruangan dan khususnya di kamar mandi.

Sistem ini didasarkan pada teknologi GStreamer yang merupakan dasar dari beberapa perangkat lunak luar biasa seperti VLC dan speaker dengan kemampuan wifi menggunakan Raspberry Pi.

Langkah 1: Membangun Pembicara untuk Kamar Mandi

Membangun Pembicara untuk Kamar Mandi
Membangun Pembicara untuk Kamar Mandi
Membangun Pembicara untuk Kamar Mandi
Membangun Pembicara untuk Kamar Mandi
Membangun Pembicara untuk Kamar Mandi
Membangun Pembicara untuk Kamar Mandi

Daftar Bagian:

  • speaker bukti kamar mandi
  • penguat 2W (bekerja pada 12v)
  • sebuah Raspberry Pi Zero (bekerja pada 5v)
  • sebuah Pimoroni Phat DAC
  • kartu SD
  • tombol ON/OFF
  • adaptor daya 12v + steker yang kompatibel
  • DC/DC step-down (12v->5v)
  • kotak listrik
  • beberapa kabel

Konstruksinya cukup sederhana.

Di sisi elektronik, ikuti diagram ASCII ini.

  • Penguat tombol ON/OFF colokan DC
  • Tombol ON/OFF DC/DC step-down Raspberry Pi
  • Speaker amplifier Raspberry Pi Phat DAC

Di sisi mekanis, potong semua lubang yang diperlukan di kotak listrik, masukkan semuanya ke dalam dan itu saja.

Dengan menggunakan teknik ini, Anda dapat membuat semua jenis speaker yang Anda inginkan.

Langkah 2: Sisi Perangkat Lunak

Semua sisi perangkat lunak didasarkan pada kerangka kerja multimedia open source, GStreamer. Saya hanya menggunakan Linux tetapi ada di OS yang berbeda, jadi saya membayangkan semuanya dapat diadaptasi untuk OS lain.

Sebagai permulaan, Anda harus menginstal Raspbian Lite di Pi, PHAT DAC dan GStreamer 1.0 dengan plugin "baik". Di komputer yang digunakan sebagai server musik, Anda memerlukan GStreamer yang sama. Saya tidak akan merinci bagian-bagian itu karena orang lain telah melakukan ini lebih baik dari saya. Hal terakhir yang diperlukan adalah Pi dan server musik harus terhubung ke jaringan yang sama dengan kabel atau wifi.

Untuk menguji apakah GStreamer diinstal dengan benar, Anda dapat menggunakan baris perintah tersebut.

Pada pembicara:

$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, saluran=(int)1, payload=(int)96' ! rtpL16depay! konversi audio! autoaudiosink

Di komputer:

$gst-launch-1.0 audiotestsrc ! konversi audio! audio/x-raw, format="(string)S16BE", layout="(string)interleaved", channels=1, rate=44100 ! rtpL16bayar! udpsink host = port RASPBERRYPI_IP = 5000

Setelah Anda memasukkan alamat IP yang baik alih-alih "RASPBERRYPI_IP", Anda akan mendengar suara sinusoidal di speaker. Itu bukan sesuatu yang ingin Anda dengar untuk waktu yang lama, jadi jangan terlalu keras.

Beberapa penjelasan: PC menghasilkan suara sinusoidal menggunakan "audiotestsrc", "audioconvert ! audio/x-raw, format="(string)S16BE", layout="(string)interleaved", channels=1, rate=44100" convert suara dalam format yang baik dipahami oleh "rtpL16pay" yang membuat paket audio dan akhirnya "udpsink" mengirimkan paket menggunakan protokol UDP. Pada speaker, itu sama tetapi terbalik, "udpsrc" memulihkan fluks audio, de-paket "rtpL16depay" dan "audioconvert ! autoaudiosink" mengubah suara agar sesuai dengan format kartu suara otomatis dan tentu saja, memainkannya.

Jadi sekarang hal-hal dasar berfungsi, sekarang saatnya untuk melangkah lebih jauh. Tujuannya adalah untuk mencegat suara aplikasi untuk mengirimkannya melalui jaringan.

- Kami membuat keluaran palsu

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

- Kami menghubungkan input ke output palsu (membungkam aplikasi yang dipilih (input))

$pacmd list-sinks (daftar keluaran)

$pacmd list-sink-inputs (daftar input)

$pacmd move-sink-input %input %output (ganti %input dan %output dengan salah satu daftar yang sesuai)

- Kami menempatkan kartu suara secara maksimal

$pactl set-sink-volume 0 100%

- Kami menguji di PC cara memulihkan keluaran palsu (memulihkan suara)

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

Anda harus mendengar lagi suara aplikasi yang telah Anda pilih.

Besar! Sekarang saatnya untuk pergi ke baris perintah terakhir. Berikut adalah baris perintah dalam kasus 2 speaker dengan suara juga dimainkan oleh PC.

Pada setiap Pembicara:

$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, payload=(int)96' ! rtpL16depay! konversi audio! autoaudiosink

Di komputer:

$gst-launch-1.0 pulsesrc device=multiHP.monitor ! konversi audio! audio/x-raw, format="(string)S16BE", layout="(string)interleaved", channels=2, rate=44100 ! rtpL16bayar! nama kaos = t t. ! antre ! udpsink host=%addrpi1 port=5000 t. ! antre ! udpsink host=% port addrpi2=5000 t. ! antre ! konversi audio! autoaudiosink

Langkah 3: Kesimpulan

Instruksi ini hanyalah langkah pertama untuk menyelesaikan proyek. Itu hanya untuk menjelaskan prinsipnya. Sekarang Anda dapat mengotomatisasi dengan membuat beberapa skrip pada boot Raspberry Pi dan di PC. Anda dapat menyesuaikan perintah GStreamer tergantung pada kebutuhan Anda. Saya pribadi memodifikasi instruksi saya sebelumnya (BRAND NEW OLD RADIO) untuk menggunakannya sebagai pembicara. Ada banyak hal yang harus dilakukan untuk meningkatkan sistem suara multi-ruangan ini. Secara khusus, semua speaker tidak disinkronkan, sehingga Anda memiliki beberapa variasi saat berpindah dari satu ruangan ke ruangan lain.

Saya harap Anda akan mencoba dan meningkatkan instruksi ini.

Jangan ragu untuk bertanya jika Anda membutuhkan detail.

Pengemudi yang baik!

Direkomendasikan: