תוכן עניינים:

נגן את אותה מוזיקה בכמה חדרים: 3 שלבים
נגן את אותה מוזיקה בכמה חדרים: 3 שלבים

וִידֵאוֹ: נגן את אותה מוזיקה בכמה חדרים: 3 שלבים

וִידֵאוֹ: נגן את אותה מוזיקה בכמה חדרים: 3 שלבים
וִידֵאוֹ: תפסתי אותה על חםםםם!!!!!! 2024, יולי
Anonim
נגן את אותה מוזיקה בכמה חדרים
נגן את אותה מוזיקה בכמה חדרים

שלום כולם, אני לא יודע מה איתכם אבל אני אוהב שתהיה אותה מוזיקה בכל הדירה שלי בלי להפוך את הצליל חזק מדי. אז לאחר קצת מחקר על בעיה זו, החלטתי לבנות מספר רמקולים המחוברים כולם באמצעות wifi לאותו שרת מוזיקה על מנת להשמיע את אותה מוסיקה בו זמנית במספר חדרים ובפרט בחדר האמבטיה.

המערכת מבוססת על טכנולוגיית GStreamer שהיא הבסיס לתוכנות מדהימות כמו VLC ועל רמקול עם יכולת wifi באמצעות פטל פטל.

שלב 1: בניית רמקול לשירותים

בניית רמקול לאמבטיה
בניית רמקול לאמבטיה
בניית רמקול לאמבטיה
בניית רמקול לאמבטיה
בניית רמקול לאמבטיה
בניית רמקול לאמבטיה

רשימת חלקים:

  • רמקול חסין אמבטיה
  • מגבר 2W (עובד על 12V)
  • פטל פייס אפס (עובד על 5V)
  • DAC של פימורוני פאט
  • כרטיס SD
  • כפתור הפעלה/כיבוי
  • מתאם מתח 12V + תקע תואם
  • הורדת DC/DC (12v-> 5v)
  • תיבת חשמל
  • כמה כבלים

הבנייה די פשוטה.

בצד האלקטרוני, עקוב אחר תרשים ASCII זה.

  • מגבר כפתור ON/OFF כבל DC
  • לחצן הפעלה/כיבוי DC/DC צעד אחר צעד פטל פטל
  • רמקול מגבר Raspberry Pi Phat DAC

בצד המכני, חתכו את כל החורים הדרושים בתיבת החשמל, הכניסו הכל פנימה וזהו.

באמצעות טכניקה זו, אתה יכול ליצור כל מיני רמקולים שאתה רוצה.

שלב 2: צד התוכנה

כל צד התוכנה מבוסס על מסגרת מולטימדיה בקוד פתוח, GStreamer. השתמשתי אך ורק בלינוקס אך היא קיימת במערכת הפעלה שונה, כך שאני מתאר לעצמי שניתן להתאים את כולם למערכת הפעלה אחרת.

בתור התחלה, עליך להתקין את Raspbian Lite על ה- Pi, ה- PHAT DAC ו- GStreamer 1.0 עם התוספים ה"טובים ". במחשב המשמש כשרת המוסיקה, אתה צריך את אותו GStreamer. לא אפרט על החלקים האלה כי אחרים עשו זאת טוב ממני. הדבר האחרון שצריך הוא שהפי ושרת המוסיקה צריכים להיות מחוברים לאותה רשת באמצעות כבל או wifi.

על מנת לבדוק אם GStreamer מותקן כראוי, תוכל להשתמש בשורות הפקודה האלה.

על הרמקול:

$ gst-launch-1.0 udpsrc port = 5000 caps = 'application/x-rtp, media = (string) audio, rate-rate = (int) 44100, encoding-name = (string) L16, encoding-params = (string) 1, ערוצים = (int) 1, מטען = (int) 96 '! rtpL16 לתשלום! המרת אודיו! אודיו -אודיו

במחשב האישי:

$ gst-launch-1.0 audiotestsrc! המרת אודיו! אודיו/x-raw, format = "(string) S16BE", layout = "(string) interleaved", ערוצים = 1, שיעור = 44100! rtpL16 לשלם! udpsink host = RASPBERRYPI_IP יציאה = 5000

לאחר שתשים את כתובת ה- IP הטובה במקום "RASPBERRYPI_IP", אתה אמור לשמוע צליל סינוסי ברמקול. זה לא משהו שתאהב לשמוע במשך זמן רב, אז אל תשים את עוצמת הקול חזק מדי.

הסבר כלשהו: המחשב מייצר את הצליל הסינוסי באמצעות "audiotestsrc", "audioconvert! Audio/x-raw, format =" (string) S16BE ", layout =" (string) interleaved ", ערוצים = 1, rate = 44100" convert הצליל בפורמט הטוב המובן על ידי "rtpL16pay" היוצר את מנות השמע ולבסוף "udpsink" שולח את המנות באמצעות פרוטוקול UDP. ברמקול זה אותו דבר אך הפוך, "udpsrc" משחזר את שטף האודיו, "rtpL16depay" de-packets ו- "audioconvert! Autoaudiosink" ממיר את הצליל כך שיתאים לפורמט של כרטיס הקול האוטומטי וכמובן, מנגן אותו.

אז עכשיו כשהדברים הבסיסיים עובדים, הגיע הזמן ללכת רחוק יותר. המטרה היא ליירט את צליל היישום על מנת לשלוח אותו דרך הרשת.

- אנו יוצרים פלט מזויף

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

- אנו מחברים קלט לפלט המזויף (השתיק את היישום שנבחר (קלט))

כיורי רשימה של $ pacmd (רשימת תפוקות)

$ pacmd list-sink-input (רשימת תשומות)

$ pacmd move-sink-input %input %output (החלף %input ו- %output באחת מהרשימות המתאימות)

- שמנו את כרטיס הקול למקסימום

$ pactl set-sink-volume 0 100%

- אנו בודקים במחשב את הדרך לשחזר את הפלט המזויף (לשחזר את הצליל)

$ gst-launch-1.0 pulsesrc device = multiHP.monitor! המרת אודיו! אודיו -אודיו

עליך לשמוע שוב את צליל היישום שבחרת.

גדול! עכשיו הגיע הזמן ללכת על שורות הפקודה האחרונות. להלן שורות הפקודה במקרה של 2 רמקולים כאשר הצליל גם מנוגן על ידי המחשב.

על כל רמקולים:

$ gst-launch-1.0 udpsrc port = 5000 caps = 'application/x-rtp, media = (string) audio, rate-rate = (int) 44100, encoding-name = (string) L16, encoding-params = (string) 2, מטען = (int) 96 '! rtpL16 לתשלום! המרת אודיו! אודיו -אודיו

במחשב האישי:

$ gst-launch-1.0 pulsesrc device = multiHP.monitor! המרת אודיו! אודיו/x-raw, format = "(string) S16BE", layout = "(string) interleaved", ערוצים = 2, rate = 44100! rtpL16 תשלום! שם טי = t t. ! תור! udpsink host =%addrpi1 port = 5000 t. ! תור! udpsink host =%addrpi2 port = 5000 t. ! תור! המרת אודיו! אודיו -אודיו

שלב 3: מסקנה

מדריך זה הוא רק השלב הראשון לפרויקט שלם. זה היה רק כדי להסביר את העיקרון. כעת תוכל לבצע אוטומציה על ידי יצירת סקריפט על האתחול של Raspberry Pi ובמחשב האישי. אתה יכול להתאים את הפקודה GStreamer בהתאם לצורך שלך. אני אישית שיניתי את ההוראה הקודמת שלי (BRAND NEW OLD RADIO) על מנת להשתמש בה כרמקול. יש אינסוף דברים לעשות כדי לשפר את מערכת הסאונד מרובת החדרים. בפרט, כל הרמקולים אינם מסונכרנים, כך שיש לך וריאציה כלשהי כאשר אתה עובר מחדר לחדר אחר.

אני מקווה שתנסה לשפר את ההנחיה הזו.

אל תהסס לשאול שאלות אם אתה צריך פרטים.

מתעסק טוב!

מוּמלָץ: