Სარჩევი:

ითამაშეთ იგივე მუსიკა მრავალ ოთახში: 3 ნაბიჯი
ითამაშეთ იგივე მუსიკა მრავალ ოთახში: 3 ნაბიჯი

ვიდეო: ითამაშეთ იგივე მუსიკა მრავალ ოთახში: 3 ნაბიჯი

ვიდეო: ითამაშეთ იგივე მუსიკა მრავალ ოთახში: 3 ნაბიჯი
ვიდეო: ეკჰარტ ტოლე - "აწმყოს ძალა" - აუდიო წიგნი - Audible Read Along 2024, ივლისი
Anonim
ითამაშეთ იგივე მუსიკა მრავალ ოთახში
ითამაშეთ იგივე მუსიკა მრავალ ოთახში

Გამარჯობა ყველას, მე არ ვიცი შენ შესახებ, მაგრამ მე მიყვარს ერთი და იგივე მუსიკა მთელ ჩემს ბინაში ისე, რომ ხმა არ გამოვიღო ძალიან ხმამაღლა. ამ პრობლემის შესახებ მცირედი კვლევის შემდეგ, მე გადავწყვიტე ავაშენო რამდენიმე დინამიკი, რომლებიც ყველა wifi- ით არის დაკავშირებული ერთსა და იმავე მუსიკალურ სერვერზე, რათა ერთსა და იმავე მუსიკას ერთდროულად ვუკრავ რამდენიმე ოთახში და კერძოდ აბაზანაში.

სისტემა დაფუძნებულია GStreamer ტექნოლოგიაზე, რომელიც არის ისეთი გასაოცარი პროგრამული უზრუნველყოფის საფუძველი, როგორიცაა VLC და სპიკერი wifi შესაძლებლობებით Raspberry Pi- ს გამოყენებით.

ნაბიჯი 1: სპიკერის შექმნა აბაზანისთვის

სპიკერის შექმნა აბაზანისთვის
სპიკერის შექმნა აბაზანისთვის
სპიკერის შექმნა აბაზანისთვის
სპიკერის შექმნა აბაზანისთვის
სპიკერის შექმნა აბაზანისთვის
სპიკერის შექმნა აბაზანისთვის

Სიის ნაწილი:

  • აბაზანის დამცავი სპიკერი
  • 2W გამაძლიერებელი (მუშაობს 12 ვ -ზე)
  • Raspberry Pi Zero (მუშაობს 5 ვ -ზე)
  • Pimoroni Phat DAC
  • SD ბარათი
  • ჩართვის/გამორთვის ღილაკი
  • 12 ვ კვების დენის ადაპტერი + თავსებადი შტეფსელი
  • DC/DC ნაბიჯი ქვემოთ (12v-> 5v)
  • ელექტრო ყუთი
  • ზოგიერთი კაბელი

მშენებლობა საკმაოდ მარტივია.

ელექტრონულ მხარეს მიჰყევით ამ ASCII დიაგრამას.

  • DC დანამატის ჩართვის/გამორთვის ღილაკის გამაძლიერებელი
  • ჩართვის/გამორთვის ღილაკი DC/DC ქვევით Raspberry Pi
  • Raspberry Pi Phat DAC გამაძლიერებელი სპიკერი

მექანიკურ მხარეს, გაჭერით ელექტრული ყუთში საჭირო ყველა ხვრელი, მოათავსეთ ყველაფერი შიგნით და ეს ყველაფერი.

ამ ტექნიკის გამოყენებით თქვენ შეგიძლიათ შექმნათ თქვენთვის სასურველი ყველა სახის დინამიკი.

ნაბიჯი 2: პროგრამული მხარე

ყველა პროგრამული მხარე ემყარება ღია კოდის მულტიმედიურ ჩარჩოს, GStreamer. მე ვიყენებდი მხოლოდ Linux– ს, მაგრამ ის არსებობს სხვადასხვა OS– ზე, ასე რომ, მე წარმომიდგენია, რომ ყველაფერი შეიძლება ადაპტირებული იყოს სხვა OS– სთვის.

დასაწყისისთვის, თქვენ უნდა დააინსტალიროთ Raspbian Lite Pi– ზე, PHAT DAC– ზე და GStreamer 1.0– ზე „კარგი“მოდულებით. კომპიუტერზე, რომელიც გამოიყენება როგორც მუსიკალური სერვერი, გჭირდებათ იგივე GStreamer. მე არ დავაკონკრეტებ იმ ნაწილებს, რადგან სხვებმა ეს ჩემზე უკეთ გააკეთეს. ბოლო რაც საჭიროა არის ის, რომ Pi და მუსიკალური სერვერი უნდა იყოს დაკავშირებული იმავე ქსელთან კაბელით ან wifi– ით.

იმისათვის, რომ შეამოწმოთ არის თუ არა GStreamer სწორად დაინსტალირებული, შეგიძლიათ გამოიყენოთ ეს ბრძანების ხაზები.

სპიკერზე:

$ gst-launch-1.0 udpsrc პორტი = 5000 caps = 'application/x-rtp, media = (string) audio, clock-rate = (int) 44100, encoding-name = (string) L16, encoding-params = (string) 1, არხები = (int) 1, დატვირთვა = (int) 96 '! rtpL16 გადასახადი! აუდიოკონვერტირება! ავტოაუდიოსინკი

კომპიუტერზე:

$ gst-launch-1.0 audiotestsrc! აუდიოკონვერტირება! audio/x-raw, format = "(string) S16BE", layout = "(string) interleaved", არხები = 1, განაკვეთი = 44100! rtpL16pay! udpsink მასპინძელი = RASPBERRYPI_IP პორტი = 5000

მას შემდეგ რაც დააყენებთ კარგ IP მისამართს "RASPBERRYPI_IP" - ის ნაცვლად, თქვენ უნდა მოისმინოთ სინუსოიდალური ხმა დინამიკზე. ეს არ არის ის, რისი მოსმენაც დიდი ხნის განმავლობაში მოგწონთ, ასე რომ ნუ აამაღლებთ ხმას ძალიან ხმამაღლა.

ზოგიერთი ახსნა: კომპიუტერი აწარმოებს სინუსოიდულ ბგერას "audiotestsrc", "audioconvert! Audio/x-raw, format =" (string) S16BE ", layout =" (string) interleaved ", channel = 1, rate = 44100" convert ხმა კარგი ფორმატით "rtpL16pay" ესმის აუდიო პაკეტებს და საბოლოოდ "udpsink" აგზავნის პაკეტებს UDP პროტოკოლის გამოყენებით. დინამიკზე ის იგივეა, მაგრამ შემობრუნებული, "udpsrc" აღადგენს აუდიო ნაკადს, "rtpL16depay" დე-პაკეტებს და "audioconvert! Autoaudiosink" აკონვერტებს ხმას, რათა შეესაბამებოდეს ავტომატური ხმის ბარათის ფორმატს და, რა თქმა უნდა, უკრავს მას.

ასე რომ, ახლა, როდესაც ძირითადი მასალები მუშაობს, დროა წავიდეთ უფრო შორს. მიზანი არის პროგრამის ხმის ჩამორთმევა, რათა ის გაიგზავნოს ქსელში.

- ჩვენ ვქმნით ყალბ გამომავალს

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

- ჩვენ ვუკავშირდებით შეყვანის ყალბ გამომავალს (გააჩუმეთ არჩეული აპლიკაცია (შეყვანა))

$ pacmd სია-ნიჟარები (გამომავალი სია)

$ pacmd სია-ჩაძირვა-შეყვანა (შეყვანის სია)

$ pacmd move-sink-input %input %output (შეცვალეთ %input და %output ერთი შესაბამისი სიით)

- ჩვენ ხმის კარტს ვაყენებთ მაქსიმუმზე

$ pactl set-sink-volume 0 100%

- ჩვენ ვამოწმებთ კომპიუტერზე ყალბი გამომუშავების აღდგენის გზას (ხმის აღდგენა)

$ gst-launch-1.0 pulsesrc მოწყობილობა = multiHP.monitor! აუდიოკონვერტირება! ავტოაუდიოსინკი

თქვენ კვლავ უნდა მოისმინოთ არჩეული პროგრამის ხმა.

დიდი! ახლა დროა წავიდეთ საბოლოო ბრძანების ხაზებზე. აქ არის ბრძანების სტრიქონი 2 დინამიკის შემთხვევაში, რომელსაც ასევე აქვს კომპიუტერი.

თითოეულ დინამიკზე:

$ gst-launch-1.0 udpsrc პორტი = 5000 caps = 'application/x-rtp, media = (string) audio, clock-rate = (int) 44100, encoding-name = (string) L16, encoding-params = (string) 2, დატვირთვა = (int) 96 '! rtpL16 გადასახადი! აუდიოკონვერტირება! ავტოაუდიოსინკი

კომპიუტერზე:

$ gst-launch-1.0 pulsesrc მოწყობილობა = multiHP.monitor! აუდიოკონვერტირება! audio/x-raw, format = "(string) S16BE", layout = "(string) interleaved", არხები = 2, განაკვეთი = 44100! rtpL16pay! ჩაის სახელი = t t. ! რიგი! udpsink მასპინძელი =%addrpi1 პორტი = 5000 ტ. ! რიგი! udpsink მასპინძელი =%addrpi2 პორტი = 5000 ტ. ! რიგი! აუდიოკონვერტირება! ავტოაუდიოსინკი

ნაბიჯი 3: დასკვნა

ეს ინსტრუქცია მხოლოდ პირველი ნაბიჯია პროექტის დასრულებისთვის. ეს იყო მხოლოდ პრინციპის ახსნა. ახლა თქვენ შეგიძლიათ ავტომატიზირება გაუკეთოთ სკრიპტს Raspberry Pi ჩატვირთვისას და კომპიუტერზე. თქვენ შეგიძლიათ შეცვალოთ GStreamer ბრძანება თქვენი საჭიროებიდან გამომდინარე. მე პირადად შევცვალე ჩემი წინა ინსტრუქცია (ახალი ძველი ძველი რადიო), რათა გამოვიყენო ის როგორც სპიკერი. უსასრულო რაოდენობაა გასაკეთებელი ამ მრავალ ოთახიანი ხმის სისტემის გასაუმჯობესებლად. კერძოდ, ყველა დინამიკი არ არის სინქრონიზებული, ასე რომ თქვენ გაქვთ გარკვეული ცვალებადობა როდესაც გადადიხართ ოთახიდან მეორეში.

ვიმედოვნებ, რომ თქვენ შეეცდებით გააუმჯობესოთ ეს სასწავლო.

ნუ დააყოვნებთ კითხვების დასმას, თუ გჭირდებათ დეტალები.

კარგი მეკარე!

გირჩევთ: