Music Player Daemon

שרת נגן מוזיקה (באנגלית: Music Player Daemon) (MPD) הוא שרת נגן מוזיקה חינמי בקוד פתוח. מנגן קובצי שמע, מארגן רשימות השמעה ומתחזק מאגרי מוזיקה. על מנת לתקשר עם השרת, יש צורך בתוכנת לקוח. בהפצה התקנית של חבילת MPD נכללת גם את חבילת לקוח נגן מוזיקה (Media Player Client) [https://linux.die.net/man/1/mpc MPC], זהו לקוח שורת פקודה פשוט דרכו ניתן לשלוט בשרת (נגנה, השהייה, עצירה...) וגם לאחזר נתונים סטטיסטיים מהשרת כמו למשל, מספר הרצועות הכללי במאגר, זמן השמעה מצטבר ועוד.

MPD נכלל לא אחת גם בחומרות שמע קנייניות. פרויקט MPD מתחזק רשימת ספקי תכנה/חמרה שחלקם מפרים את תנאי רישיון GPL<ref></ref> ולמעשה עושים שימוש אסור שרת.

== עיצוב ==
MPD פועל בפשטות ברקע ומשמיע מוזיקה מרשימת ההשמעה, לרוב אלו הם קבצים בתבנית MU3 המאוחסנים בתקייה מסוימת במחשב האישי. תוכניות לקוח מתקשרות עם MPD כדי לתפעל ולשלוט בפעולות השרת, ברשימת ההשמעה ובמסד הנתונים. MPD אינו נגן מוזיקה בעל תכונות מלאות כמו [https://amarok.kde.org/en אמארוק], אך תכנות הלקוח, יכולות ומשמשות בתפקיד זה.

MPD משתמש במסד נתוני קבצים שטוחים לתחזוק המידע אודות קובצי מוזיקה כשאינו פועל. לאחר אתחול השרת, מסד הנתונים מועלה כולו לזיכרון המחשב כך שהצורך בגישה תדירה לקונן הקשיח, לאיתור או חיפוש קובצי שמע המאוחסנים בקונן המקומי, מצטמצמת. באופן כללי, קובצי המוזיקה חייבים להיות ממוקמים בתיקיות משנה של תיקיית המוזיקה (Music/) והם מתווספים למסד הנתונים רק כאשר פקודת עדכון נשלחת לשרת. השמעת קבצים שרירותית מותרת, אך רק לקוחות (נגן) מקומיים המקושרים לשרת באמצעות (שקע IPC).

ל-MPD אין עורך תגים מובנה; לכן אפשרות זו מטופלת גם היא על ידי תוכנת הלקוח או תוכניות חיצוניות אחרות, אף על פי שקיימים טלאי צד שלישי שיכולים להוסיף תכונה זו לשרת.<ref></ref>

מודל שרת-לקוח מספק מספר יתרונות על פני חלופת נגני המוזיקה 'הכול-כלול'.

* תכנות לקוח יכולות לתקשר עם השרת 'מרחוק' על גבי הרשת-הפנים-ארגונית או דרך המרשתת.
* השרת יכול להיות מחשב-שרת (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 מופסק.

== לקוחות ==
ncmpcpp
ל- MPD מגוון ממשקי קצה המתקשרים עם השרת באמצעות פרוטוקול מותאם אישית<ref>[https://www.musicpd.org/doc/protocol Protocol Reference] – Music Player Daemon Community Wiki</ref> בחיבור TCP. יישומי לקוח לרוב מיישמות סוגים שונים של ממשקים.

=== לקוחות מסוף ===
* mpc (חלק מפרויקט MPD) הוא ממשק שורת פקודה פשוט למרבית אפשרויות השרת.<ref></ref>
* ncmpc הוא לקוח ncurses בעל תכונות מלאות דומה לרעיון MOC.<ref></ref>
* ncmpcpp הוא לקוח ncurses נוסף <tt>שמשכפל</tt> את תכונות <tt>ncmpc</tt>, אך כולל בנוסף תכונות חדשות, כגון עורך התיוג.<ref></ref>
* חיפוש מוזיקה מעשית הוא לקוח ncurses נוסף עם ממשק דמוי Vim.<ref></ref>
* fmui הוא ממשק משתמש מסוף שנוצר באמצעות fzf ו-mpc.<ref></ref>

=== לקוחות מרשתת ===
* Bragi-MPD תכונות מלאות, ידידותי למכשירים ניידים, צד לקוח שלם, לקוח אינטרנט HTML5 המסוגל לשלוט על מספר מופעים ופלטים מרובים לכל מופע MPD. היכולות שאינן ממשק משתמש מתוחזקות בפרויקט נפרד [https://github.com/bobboau/MPD.js MPD.js] המאפשר ליצור בקלות לקוחות חדשים.
* netjukebox הוא תיבת נגינה מבוסס מרשתת עבור MPD, VideoLAN ו-Winamp / httpQ.<ref></ref>
* O!MPD הוא לקוח עשיר בתכונות המבוסס על PHP ו-MySQL

=== לקוחות גרפיים ===
* אריו מבוססת על GTK + ומשתמשת בלשוניות בממשק שלה.<ref></ref>
* Cantata פועלת ב-ווינדוס, מאק OS ולינוקס, היא מבוססת על Qt 5 לניהול הספרייה או רשימות ההשמעה, עם תוספות כמו עורך תגים, מילות-שיר ואחזור תמונות-עטיפה מהמרשתת, כמו כן, תמיכה בהתקני אחסון בנפח גדול.<ref></ref> קנטטה זכתה למשיכה מסוימת מהפיכתה לנגן השמע התקני של הפצת לינוקס קובונטו<ref>kubuntu</ref> באוקטובר 2017 על חשבון נגן השמע Amarok.<ref></ref>
* Gimmix מספק ממשק פשוט עם טביעת רגל זיכרון קטנה מאוד.<ref></ref>
* gmpc הוא לקוח ה-gtk+-2 הוותיק ביותר (gtk+-3 גרסת הפיתוח), והוא מספק דרכים רבות ושונות לתחקר את אוסף מוזיקה ונתוני מטא עשירים כמו מילות-שיר, תמונות-עטיפה, מידע אודות אמן/אלבום, אמן/אלבום/רקע, אמנים דומים ועוד. הלקוח מתיימר להיות עשיר בתכונות, עם זאת קל משקל במידה מספקת שיפעל כל הזמן בתצורת חומרה ירודה.<ref></ref>
* לקוח נגן מוזיקה חכם (IMPC) מבוסס ב-GTK+ 3.0 ותומך באחזור מידע קשור (מאמרים, תמונות-עטיפה, תמונות) בזמן השמעת שיר ותוך כדי כך לומד לסווג תוכן קשור.
* mpdlirc מתממשק ל-MPD באמצעות שלט רחוק אינפרא אדום.<ref></ref>
* Qmobilempd מספק לקוח מבוסס Qt4 מתאים במיוחד למכשירים ניידים כמו Symbian.<ref></ref>
* Qmpdplasmoid מספק לקוח המוטמע ישירות בשולחן העבודה KDE.<ref></ref>
* Sonata משתמשת ב-+GTK כדי לספק ממשק משתמש להשמעת קבצים וניהול רשימות השמעה.<ref></ref>

=== עוד ===
לקבלת רשימה מלאה יותר של תכנות ויישומי לקוח, ניתן לעיין באתר MPD ב-musicpd.org<ref></ref> או בויקי של לקוחות MPD ב-Fandom<ref></ref>.

מקצת מיישומי הלקוח הם כה קלי משקל וברמת מורכבות נמוכה שלמעשה הם פשוט תסרטים (סקריפט) של מספר שורות קוד בודדות, שמשתמשות בתוכנות של חבילת <tt>mpc</tt> לשיגור פקודות לשרת MPD. פקודות אלו יהיו לרוב מעין 'פקדי שליטה' בסיסיים של נגן שמע (כגון: הפעלה, עצירה, דילוג, השהיה וכדומה).

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

קיימות גם תכנות לקוח המיושמת כתוסף לדפדפן פיירפוקס,<ref></ref> אחר כמתקע חלונית Xfce,<ref></ref> אחד כיישום Wii,<ref></ref> ואחד נוסף כיישום מיקרוסופט סטור עבור ווינדוס 8/ווינדוס RT.

במהלך השנים נוצרו חבילות ספריה רבות שנועדו לאפשר ולתמוך בכתיבת יישומי לקוח שיתקשרו עם שרת MPD, בשפות תכנות רבות, כגוןC ,Python, Ruby, Perl, Lua ו-Haskell.

חבילת <tt>[https://melpa.org/#/libmpdee libmpdee]</tt><ref></ref> היא ספריית Emacs Lisp המאפשרת לשלוט ב-MPD מ-Emacs.<ref></ref>

== קישורים חיצוניים ==

* 

== הערות שוליים ==

קטגוריה:נגני שמע דיגיטליים