שרת נגן מוזיקה (באנגלית: Music Player Daemon) (MPD) הוא שרתנגןמוזיקהחינמי בקוד פתוח. מנגן קובצי שמע, מארגן רשימות השמעה ומתחזק מאגרי מוזיקה. על מנת לתקשר עם השרת, יש צורך בתוכנת לקוח. בהפצה התקנית של חבילת MPD נכללת גם את חבילת לקוח נגן מוזיקה (Media Player Client) MPC, זהו לקוח שורת פקודה פשוט דרכו ניתן לשלוט בשרת (נגנה, השהייה, עצירה...) וגם לאחזר נתונים סטטיסטיים מהשרת כמו למשל, מספר הרצועות הכללי במאגר, זמן השמעה מצטבר ועוד.
MPD נכלל לא אחת גם בחומרות שמע קנייניות. פרויקט MPD מתחזק רשימת ספקי תכנה/חמרה שחלקם מפרים את תנאי רישיון GPL[2] ולמעשה עושים שימוש אסור שרת.
עיצוב
MPD פועל בפשטות ברקע ומשמיע מוזיקה מרשימת ההשמעה, לרוב אלו הם קבצים בתבנית MU3 המאוחסנים בתקייה מסוימת במחשב האישי. תוכניות לקוח מתקשרות עם MPD כדי לתפעל ולשלוט בפעולות השרת, ברשימת ההשמעה ובמסד הנתונים. MPD אינו נגן מוזיקה בעל תכונות מלאות כמו אמארוק, אך תכנות הלקוח, יכולות ומשמשות בתפקיד זה.
MPD משתמש במסד נתוני קבצים שטוחים לתחזוק המידע אודות קובצי מוזיקה כשאינו פועל. לאחר אתחול השרת, מסד הנתונים מועלה כולו לזיכרון המחשב כך שהצורך בגישה תדירה לקונן הקשיח, לאיתור או חיפוש קובצי שמע המאוחסנים בקונן המקומי, מצטמצמת. באופן כללי, קובצי המוזיקה חייבים להיות ממוקמים בתיקיות משנה של תיקיית המוזיקה (Music/) והם מתווספים למסד הנתונים רק כאשר פקודת עדכון נשלחת לשרת. השמעת קבצים שרירותית מותרת, אך רק לקוחות (נגן) מקומיים המקושרים לשרת באמצעות שקע מתחם יוניקס (שקע IPC).
ל-MPD אין עורך תגים מובנה; לכן אפשרות זו מטופלת גם היא על ידי תוכנת הלקוח או תוכניות חיצוניות אחרות, אף על פי שקיימים טלאי צד שלישי שיכולים להוסיף תכונה זו לשרת.[3]
מודל שרת-לקוח מספק מספר יתרונות על פני חלופת נגני המוזיקה 'הכול-כלול'.
השרת יכול להיות מחשב-שרת (headless) הממוקם בכל מקום ברשת (גם מרוחק כמובן).
השמעת מוזיקה יכולה להמשיך בצורה רציפה (כל עוד לא משתמשים במערכת הפעלה חלונות X או באתחול X.)
ניתן להשתמש בתכנות לקוח שונות, למטרות שונות – לקוח קל משקל שפועל כל הזמן ומשמש בעיקר לבקרת ההפעלה, או, לקוח בעל תכונות מלאות יותר המשמש לחיפושים עצימים במסדי נתונים.
אפשר גם להשתמש במספר תכנות לקוח לגישה למסד נתונים אחד בו זמנית, זאת על ידי חיבור מרחוק או בהתחברות לשרת מחשבונות משתמש שונים באותה רשת.
תכונות
משמיע קובצי Ogg Vorbis, FLAC, Opus, WavPack, MP2, MP3, MP4 / AAC, MOD, Musepack, wave וכל קבץ אחר הנתמך על ידי FFmpeg.
ncmpc הוא לקוח ncurses בעל תכונות מלאות דומה לרעיון MOC.[6]
ncmpcpp הוא לקוח ncurses נוסף שמשכפל את תכונות ncmpc, אך כולל בנוסף תכונות חדשות, כגון עורך התיוג.[7]
חיפוש מוזיקה מעשית הוא לקוח ncurses נוסף עם ממשק דמוי Vim.[8]
fmui הוא ממשק משתמש מסוף שנוצר באמצעות fzf ו-mpc.[9]
לקוחות מרשתת
Bragi-MPD תכונות מלאות, ידידותי למכשירים ניידים, צד לקוח שלם, לקוח אינטרנט HTML5 המסוגל לשלוט על מספר מופעים ופלטים מרובים לכל מופע MPD. היכולות שאינן ממשק משתמש מתוחזקות בפרויקט נפרד MPD.js המאפשר ליצור בקלות לקוחות חדשים.
netjukebox הוא תיבת נגינה מבוסס מרשתת עבור MPD, VideoLAN ו-Winamp / httpQ.[10]
אריו מבוססת על GTK + ומשתמשת בלשוניות בממשק שלה.[11]
Cantata פועלת ב-ווינדוס, מאק OS ולינוקס, היא מבוססת על Qt 5 לניהול הספרייה או רשימות ההשמעה, עם תוספות כמו עורך תגים, מילות-שיר ואחזור תמונות-עטיפה מהמרשתת, כמו כן, תמיכה בהתקני אחסון בנפח גדול.[12] קנטטה זכתה למשיכה מסוימת מהפיכתה לנגן השמע התקני של הפצת לינוקס קובונטו[13] באוקטובר 2017 על חשבון נגן השמע Amarok.[14]
Gimmix מספק ממשק פשוט עם טביעת רגל זיכרון קטנה מאוד.[15]
gmpc הוא לקוח ה-gtk+-2 הוותיק ביותר (gtk+-3 גרסת הפיתוח), והוא מספק דרכים רבות ושונות לתחקר את אוסף מוזיקה ונתוני מטא עשירים כמו מילות-שיר, תמונות-עטיפה, מידע אודות אמן/אלבום, אמן/אלבום/רקע, אמנים דומים ועוד. הלקוח מתיימר להיות עשיר בתכונות, עם זאת קל משקל במידה מספקת שיפעל כל הזמן בתצורת חומרה ירודה.[16]
לקוח נגן מוזיקה חכם (IMPC) מבוסס ב-GTK+ 3.0 ותומך באחזור מידע קשור (מאמרים, תמונות-עטיפה, תמונות) בזמן השמעת שיר ותוך כדי כך לומד לסווג תוכן קשור.
Qmobilempd מספק לקוח מבוסס Qt4 מתאים במיוחד למכשירים ניידים כמו Symbian.[18]
Qmpdplasmoid מספק לקוח המוטמע ישירות בשולחן העבודה KDE.[19]
Sonata משתמשת ב-+GTK כדי לספק ממשק משתמש להשמעת קבצים וניהול רשימות השמעה.[20]
עוד
לקבלת רשימה מלאה יותר של תכנות ויישומי לקוח, ניתן לעיין באתר MPD ב-musicpd.org[21] או בויקי של לקוחות MPD ב-Fandom[22].
מקצת מיישומי הלקוח הם כה קלי משקל וברמת מורכבות נמוכה שלמעשה הם פשוט תסרטים (סקריפט) של מספר שורות קוד בודדות, שמשתמשות בתוכנות של חבילת mpc לשיגור פקודות לשרת MPD. פקודות אלו יהיו לרוב מעין 'פקדי שליטה' בסיסיים של נגן שמע (כגון: הפעלה, עצירה, דילוג, השהיה וכדומה).
לקוחות מסוימים מגיעים עם ממשק משתמשHTML או AJAX ודורשים התקנה פשוטה יחסית, לרוב הם יותקנו על אותו מחשב עליו ממוקם השרת. לקוחות מסוג זה מחייבים התקנת דפדפן במחשב ממנו מעוניינים להשמיע מוזיקה, וכמובן, תקשורת לשרת.