Music Player Daemon

שרת נגן מוזיקה (באנגלית: Music Player Daemon) (MPD) הוא שרת נגן מוזיקה חינמי בקוד פתוח. מנגן קובצי שמע, מארגן רשימות השמעה ומתחזק מאגרי מוזיקה. על מנת לתקשר עם השרת, יש צורך בתוכנת לקוח. בהפצה התקנית של חבילת MPD נכללת גם את חבילת לקוח נגן מוזיקה (Media Player Client) MPC, זהו לקוח שורת פקודה פשוט דרכו ניתן לשלוט בשרת (נגנה, השהייה, עצירה...) וגם לאחזר נתונים סטטיסטיים מהשרת כמו למשל, מספר הרצועות הכללי במאגר, זמן השמעה מצטבר ועוד. MPD נכלל לא אחת גם בחומרות שמע קנייניות. פרויקט MPD מתחזק רשימת ספקי תכנה/חמרה שחלקם מפרים את תנאי רישיון GPL ולמעשה עושים שימוש אסור שרת. MPD פועל בפשטות ברקע ומשמיע מוזיקה מרשימת ההשמעה, לרוב אלו הם קבצים בתבנית MU3 המאוחסנים בתקייה מסוימת במחשב האישי. תוכניות לקוח מתקשרות עם MPD כדי לתפעל ולשלוט בפעולות השרת, ברשימת ההשמעה ובמסד הנתונים. MPD אינו נגן מוזיקה בעל תכונות מלאות כמו אמארוק, אך תכנות הלקוח, יכולות ומשמשות בתפקיד זה. MPD משתמש במסד נתוני קבצים שטוחים לתחזוק המידע אודות קובצי מוזיקה כשאינו פועל. לאחר אתחול השרת, מסד הנתונים מועלה כולו לזיכרון המחשב כך שהצורך בגישה תדירה לקונן הקשיח, לאיתור או חיפוש קובצי שמע המאוחסנים בקונן המקומי, מצטמצמת. באופן כללי, קובצי המוזיקה חייבים להיות ממוקמים בתיקיות משנה של תיקיית המוזיקה (Music/) והם מתווספים למסד הנתונים רק כאשר פקודת עדכון נשלחת לשרת. השמעת קבצים שרירותית מותרת, אך רק לקוחות (נגן) מקומיים המקושרים לשרת באמצעות שקע מתחם יוניקס (שקע IPC). ל-MPD אין עורך תגים מובנה; לכן אפשרות זו מטופלת גם היא על ידי תוכנת הלקוח או תוכניות חיצוניות אחרות, אף על פי שקיימים טלאי צד שלישי שיכולים להוסיף תכונה זו לשרת. מודל שרת-לקוח מספק מספר יתרונות על פני חלופת נגני המוזיקה 'הכול-כלול'. תכנות לקוח יכולות לתקשר עם השרת 'מרחוק' על גבי הרשת-הפנים-ארגונית או דרך המרשתת. השרת יכול להיות מחשב-שרת (headless) הממוקם בכל מקום ברשת (גם מרוחק כמובן). השמעת מוזיקה יכולה להמשיך בצורה רציפה (כל עוד לא משתמשים במערכת הפעלה חלונות X או באתחול X.) ניתן להשתמש בתכנות לקוח שונות, למטרות שונות – לקוח קל משקל שפועל כל הזמן ומשמש בעיקר לבקרת ההפעלה, או, לקוח בעל תכונות מלאות יותר המשמש לחיפושים עצימים במסדי נתונים. אפשר גם להשתמש במספר תכנות לקוח לגישה למסד נתונים אחד בו זמנית, זאת על ידי חיבור מרחוק או בהתחברות לשרת מחשבונות משתמש שונים באותה רשת. משמיע קובצי Ogg Vorbis, FLAC, Opus, WavPack, MP2, MP3, MP4 / AAC, MOD, Musepack, wave וכל קבץ אחר הנתמך על ידי FFmpeg. שליטה מרחוק ב-MPD ברשת (IPv4 ו-IPv6 נתמכים). השמעת הזרמות מדיה בתבנית HTTP ,FLAC, OggFLAC, MP3 ו-Ogg Vorbis. קורא וטומן מידע מטא נתונים (ID3 : ID3v1 ו-ID3v2), תגובות Vorbis ו-Metadata MP4. מאפשר חיפוש במידע מטא נתונים. תמיכה בחוצץ השמעה (מונע דילוגים עקב עומס גבוה או חביון רשת). השמעה ללא פערים בין רצועות. תמיכה בהצלבה. תמיכה בהזחה קדימה/אחורה בתוך רצועה. שמירה, טעינה ונהל רשימות השמעה (בתבנית M3U). תמיכה מובנית בתקן Zeroconf. המרה בקצב הדגימה המקורי libsamplerate ו-native. תמיכה ב-ALSA, PulseAudio, OSS, MVP, JACK, ווינדוס ו-macOS. יכול לשמש כמקור להזרמת Icecast ב-Ogg Vorbis ו-MP3. ניתן להמיר תבניות אחרות ל-Ogg / MP3 בזמן אמת לפני הפלט לשרת ההזרמה. שרת הזרמת HTTP מובנה, המסוגל להפיק Ogg Vorbis והזרמת MP3 באיכות לפי בחירה ובזמן אמת. אין תלות בממשק משתמש גרפי. המוזיקה תמשיך להתנגן בין אם יישופ הלקוח פועל או לא, ותמשיך להתנגן גם אם שרת ה-X מופסק. ל- MPD מגוון ממשקי קצה המתקשרים עם השרת באמצעות פרוטוקול מותאם אישית בחיבור TCP. יישומי לקוח לרוב מיישמות סוגים שונים של ממשקים. mpc (חלק מפרויקט MPD) הוא ממשק שורת פקודה פשוט למרבית אפשרויות השרת. ncmpc הוא לקוח ncurses בעל תכונות מלאות דומה לרעיון MOC. ncmpcpp הוא לקוח ncurses נוסף שמשכפל את תכונות ncmpc, אך כולל בנוסף תכונות חדשות, כגון עורך התיוג. חיפוש מוזיקה מעשית הוא לקוח ncurses נוסף עם ממשק דמוי Vim. fmui הוא ממשק משתמש מסוף שנוצר באמצעות fzf ו-mpc. Bragi-MPD תכונות מלאות, ידידותי למכשירים ניידים, צד לקוח שלם, לקוח אינטרנט HTML5 המסוגל לשלוט על מספר מופעים ופלטים מרובים לכל מופע MPD. היכולות שאינן ממשק משתמש מתוחזקות בפרויקט נפרד MPD.js המאפשר ליצור בקלות לקוחות חדשים. netjukebox הוא תיבת נגינה מבוסס מרשתת עבור MPD, VideoLAN ו-Winamp / httpQ. O!MPD הוא לקוח עשיר בתכונות המבוסס על PHP ו-MySQL אריו מבוססת על GTK + ומשתמשת בלשוניות בממשק שלה. Cantata פועלת ב-ווינדוס, מאק OS ולינוקס, היא מבוססת על Qt 5 לניהול הספרייה או רשימות ההשמעה, עם תוספות כמו עורך תגים, מילות-שיר ואחזור תמונות-עטיפה מהמרשתת, כמו כן, תמיכה בהתקני אחסון בנפח גדול. קנטטה זכתה למשיכה מסוימת מהפיכתה לנגן השמע התקני של הפצת לינוקס קובונטו באוקטובר 2017 על חשבון נגן השמע Amarok. Gimmix מספק ממשק פשוט עם טביעת רגל זיכרון קטנה מאוד. gmpc הוא לקוח ה-gtk+-2 הוותיק ביותר (gtk+-3 גרסת הפיתוח), והוא מספק דרכים רבות ושונות לתחקר את אוסף מוזיקה ונתוני מטא עשירים כמו מילות-שיר, תמונות-עטיפה, מידע אודות אמן/אלבום, אמן/אלבום/רקע, אמנים דומים ועוד. הלקוח מתיימר להיות עשיר בתכונות, עם זאת קל משקל במידה מספקת שיפעל כל הזמן בתצורת חומרה ירודה. לקוח נגן מוזיקה חכם (IMPC) מבוסס ב-GTK+ 3.0 ותומך באחזור מידע קשור (מאמרים, תמונות-עטיפה, תמונות) בזמן השמעת שיר ותוך כדי כך לומד לסווג תוכן קשור. mpdlirc מתממשק ל-MPD באמצעות שלט רחוק אינפרא אדום. Qmobilempd מספק לקוח מבוסס Qt4 מתאים במיוחד למכשירים ניידים כמו Symbian. Qmpdplasmoid מספק לקוח המוטמע ישירות בשולחן העבודה KDE. Sonata משתמשת ב-+GTK כדי לספק ממשק משתמש להשמעת קבצים וניהול רשימות השמעה. לקבלת רשימה מלאה יותר של תכנות ויישומי לקוח, ניתן לעיין באתר MPD ב-musicpd.org או בויקי של לקוחות MPD ב-Fandom. מקצת מיישומי הלקוח הם כה קלי משקל וברמת מורכבות נמוכה שלמעשה הם פשוט תסרטים (סקריפט) של מספר שורות קוד בודדות, שמשתמשות בתוכנות של חבילת mpc לשיגור פקודות לשרת MPD. פקודות אלו יהיו לרוב מעין 'פקדי שליטה' בסיסיים של נגן שמע (כגון: הפעלה, עצירה, דילוג, השהיה וכדומה). לקוחות מסוימים מגיעים עם ממשק משתמש HTML או AJAX ודורשים התקנה פשוטה יחסית, לרוב הם יותקנו על אותו מחשב עליו ממוקם השרת. לקוחות מסוג זה מחייבים התקנת דפדפן במחשב ממנו מעוניינים להשמיע מוזיקה, וכמובן, תקשורת לשרת. קיימות גם תכנות לקוח המיושמת כתוסף לדפדפן פיירפוקס, אחר כמתקע חלונית Xfce, אחד כיישום Wii, ואחד נוסף כיישום מיקרוסופט סטור עבור ווינדוס 8/ווינדוס RT. במהלך השנים נוצרו חבילות ספריה רבות שנועדו לאפשר ולתמוך בכתיבת יישומי לקוח שיתקשרו עם שרת MPD, בשפות תכנות רבות, כגוןC ,Python, Ruby, Perl, Lua ו-Haskell. חבילת libmpdee היא ספריית Emacs Lisp המאפשרת לשלוט ב-MPD מ-Emacs. מדיה וקבצים בנושא Music Player Daemon בוויקישיתוף אתר האינטרנט הרשמי של Music Player Daemon (באנגלית) https://www.musicpd.org/news/2013/10/mpd-0-dot-18-released/ Commercial Products running MPD, www.musicpd.org, 2018-02-13, נבדק ב-2018-02-15 Tag editing patches, nomius.blogspot.com, 2008-01-02, נבדק ב-2013-03-18 Protocol Reference – Music Player Daemon Community Wiki Client:Mpc – Music Player Daemon Community Wiki, mpd.wikia.com, 2013-02-28, נבדק ב-2013-03-18 Client (2008-11-28), Client:Ncmpc – Music Player Daemon Community Wiki, mpd.wikia.com, נבדק ב-2013-03-18 ncmpcpp MPD client, ncmpcpp.rybczak.net, נבדק ב-2013-03-18 Practical Music Search fzf mpd user interface netjukebox – the flexible media share Ario, Ario-player.sourceforge.net, נבדק ב-2013-03-18 Cantata – Qt5 Graphical MPD Client for Linux, Windows, macOS, Haiku, github.com, נבדק ב-2018-03-14 kubuntu Amarok | Rediscover Your Music!, amarok.kde.org Gimmix, אורכב מ-המקור ב-2017-01-02, נבדק ב-2015-09-29 Gnome Music Player Client, gmpclient.org, נבדק ב-2013-11-13 Client:MpdLIRC – Music Player Daemon Community Wiki, mpd.wikia.com, אורכב מ-המקור ב-2013-05-13, נבדק ב-2013-03-18 qmobilempd – MPD (musicpd) client, code.google.com, נבדק ב-2013-03-18 mpdqml plasmoid, kde-look.org, נבדק ב-2013-03-18 Sonata Music Client for MPD, אורכב מ-המקור ב-2017-01-02, נבדק ב-2015-09-29 MPD Clients, musicpd.org, 2017-10-13, נבדק ב-2017-10-13 Clients, Music Player Daemon Wiki (באנגלית) Music Player Minion, mpd.wikia.com, 2010-02-27, אורכב מ-המקור ב-2013-05-13, נבדק ב-2013-03-18 xfce4-mpc-plugin, goodies.xfce.org, 2012-06-30, נבדק ב-2013-03-18 WiiMPC, WiiBrew.org, 2009-08-10, נבדק ב-2013-03-18 MPD Client Libraries, mpd.wikia.com, 2013-03-05, נבדק ב-2013-03-18 "An Emacs lisp client library for mpd".