MPD - Music Player Daemon

  • Αγαπητοί φίλοι και φίλες.

    Με ιδιαίτερη χαρά σας προσκαλούμε στην κοπή της πρωτοχρονιάτικης πίτας του AVClub στη Θεσσαλονίκη για το 2024 την Κυριακή 07 Απριλίου και ώρα 14.00

    Δηλώστε τη συμμετοχή σας εδώ, θα χαρούμε πολύ να σας γνωρίσουμε από κοντά.

tuxx

Supreme Member
3 January 2014
3,319
/dev/null
Ανοίγω αυτό το θέμα ώστε να συζητήσουμε γενικώς για το δημοφιλές πρόγραμμα αναπαραγωγής μουσικής MPD.

url: http://www.musicpd.org/


- Τι είναι ο MPD

Πρόκειται για ένα open source πρόγραμμα αναπαραγωγής μουσικής, δημοφιλές στον κόσμο του Linux (παρότι παίζει σχεδόν σε όλα τα OS) εδώ και πολλά χρόνια. Βασικό του χαρακτηριστικό είναι η client/server λογική λειτουργίας. Εγκαθίσταται σε ένα computer (server) όπου είναι και το transport μας και ελέγχεται είτε από τον ίδιο υπολογιστή είτε από οποιοδήποτε pc/smartphone/tablet το οποίο βρίσκεται στο ίδιο δίκτυο, με κατάλληλα προγράμματα τα οποία λέγονται clients.

Όσοι είστε συνηθισμένοι σε προγράμματα αναπαραγωγής για windows/mac (foobar, amarra κλπ) θα πρέπει να μπείτε σε μια διαφορετική λογική, καθώς ο MPD δεν έχει γραφικό περιβάλλον. Δεν είναι ένας τυπικός player στον οποίον φορτώνουμε μια playlist και ξεκινά την αναπαραγωγή με το πάτημα ενός κουμπιού. O MPD έχει λογική server. Είναι ένα service το οποίο εκκινεί στο background και για να επικοινωνήσουμε μαζί του θέλουμε οπωσδήποτε κάποιον client (συνήθως gui). Για τους clients θα μιλήσουμε εκτενώς αργότερα.

- Εγκατάσταση και ρύθμιση του MPD

Σε linux διανομές ο MPD εγκαθίσταται μέσα από τον package manager της διανομής(apt/synaptic, pacman κλπ).

Εγκατάσταση και ρύθμιση σε MAC: http://mpd.wikia.com/wiki/Mpd_on_OS_X_Snow_Leopard

Εγκατάσταση και ρύθμιση σε Windows: http://www.musicpd.org/download/win32/ http://mpd.wikia.com/wiki/Windows_Compatibility


Στα παραπάνω links θα βρείτε και σχετικές οδηγίες για ρύθμισή του, αλλά για να είμαι ειλικρινής, αυτό είναι και το πιο δύσκολο κομμάτι της όλης διαδικασίας καθώς όλο το configuration γίνεται μέσα από το editing ενός αρχείου, του mpd.conf. Ένα παράδειγμα ενός configuration (από τη διανομή Archphile που φτιάχνω εγώ) είναι το παρακάτω:

Code:
###################################
##Archphile Default Configuration##




follow_outside_symlinks         "yes"
follow_inside_symlinks  "yes"
db_file         "/var/lib/mpd/mpd.db"
log_file        "/var/log/mpd.log"
pid_file        "/var/run/mpd/pid"
music_directory         "/var/lib/mpd/music"
playlist_directory      "/var/lib/mpd/playlists"
state_file      "/var/lib/mpd/mpdstate"
user    "mpd"
bind_to_address         "any"
port    "6600"
log_level       "default"
volume_normalization    "no"
audio_buffer_size       "2048"
buffer_before_play      "20%"
filesystem_charset      "UTF-8"
id3v1_encoding  "UTF-8"
gapless_mp3_playback    "yes"
auto_update     "no"
mixer_type      "disabled"
group   "audio"
max_connections "20"
restore_paused "yes"


decoder {
                plugin "ffmpeg"
            enabled "no"
}


input {
                plugin "curl"
}


audio_output {
enabled         "yes"
type            "alsa"
name            "MY DAC"
device          "hw:0,0"
auto_resample   "no"
auto_channels   "no"
auto_format     "no"
dsd_usb         "yes"
}

Στο παρόν νήμα παρόλα αυτά δε θα εστιάσω καθόλου στο configuration του αρχικά, αλλά θα αρκεστώ στην πρόταση έτοιμων λύσεων παρακάτω. Σε γενικές γραμμές άξιο αναφοράς είναι πως τόσο το resampling (με sox κλπ) όσο και η λειτουργία σε bit perfect mode είναι πολύ εύκολα ρυθμίσιμες με ελάχιστες γραμμές στο configuration.


- Διαχείριση μουσικής βιβλιοθήκης

Ο MPD λειτουργεί με library. Όλη η μουσική που υπάρχει στο path που έχουμε ορίσει να βλέπει, σκανάρεται με το πάτημα ενός κουμπιού από τον client και μπαίνει σε μια βάση δεδομένων. Δεν μπορούμε να κάνουμε browse και να παίξουμε ένα αρχείο το οποίο δεν υπάρχει στη library.

- Clients

Υπάρχουν πραγματικά πολλοί clients. Θα δώσω screenshots για μερικούς από αυτούς και links για διάφορους άλλους.


GMPC (Linux/Unix/Mac Os X/Windows)




YMPD (web interface - Linux)




Mpdroid (Android)




Για κατόχους Apple συσκευών:

Mpod https://itunes.apple.com/us/app/mpod/id285063020?mt=8
Mpad https://itunes.apple.com/us/app/mpad/id423097706?mt=8


Λίστα με σχεδόν όλους τους clients: http://mpd.wikia.com/wiki/Clients


- Έτοιμες λύσεις:

Όπως ανέφερα και πιο πάνω, o MPD υποστηρίζει πληθώρα λειτουργικών συστημάτων, παρόλα αυτά αποτελεί κυρίως ένα software προοριζόμενο για Linux. Επειδή όμως για κάποιον μη εξοικειωμένο με το Linux το στήσιμο του OS και στη συνέχεια του MPD είναι σχεδόν αδύνατον, υπάρχουν κάποιες ευκολότερες εναλλακτιές.

Για PC:

http://www.ap-linux.com/
http://linux.voyage.hk/


Για embedded boards (Raspberry Pi, Cubox, Udoo κλπ):

https://volumio.org/
http://www.runeaudio.com/
http://tcmods.org/
http://archphile.org/


Μια που εμπλέκομαι ενεργά στο Archphile, θα κάνω μια ιδιαίτερη αναφορά στα τελευταία, καθώς είναι ο πιο εύκολος τρόπος να δοκιμάσουμε και να χρησιμοποιήσουμε τον MPD. Οι παραπάνω Linux διανομές προορίζονται για το Raspberry Pi αλλά και για διάφορες άλλες συσκευές. Έχουν εγκατεστημένο MPD και επίσης έχουν εγκατεστημένο και client στο ίδιο OS το οποίο είναι προσβάσιμο στο τοπικο δίκτυο μια που οι clients αυτοί είναι web interfaces. Παρόλα αυτά σε όλες τις διανομές μπορούμε να χρησιμοποιήσουμε ταυτόχρονα όσους εναλλακτικούς clients θέλουμε.


- Αρχεία αναπαραγωγής που υποστηρίζονται:

Εξαρτάται από το configuration του εκάστοτε MPD. Ένα παράδειγμα από τον MPD του archphile είναι το παρακάτω:

Code:
[root@archphile ~]# mpd -V
Music Player Daemon 0.19.9

Copyright (C) 2003-2007 Warren Dukes <[email protected]>
Copyright (C) 2008-2014 Max Kellermann <[email protected]>
This is free software; see the source for copying conditions. There is NO
warranty; not even MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Database plugins:
simple proxy upnp

Storage plugins:
local

Decoders plugins:
[mad] mp3 mp2
[oggflac] ogg oga
[flac] flac
[sndfile] wav aiff aif au snd paf iff svx sf voc w64 pvf xi htk caf sd2
[audiofile] wav au aiff aif
[dsdiff] dff
[dsf] dsf
[faad] aac
[ffmpeg] 16sv 3g2 3gp 4xm 8svx aa3 aac ac3 afc aif aifc aiff al alaw amr anim apc ape asf atrac au aud avi avm2 avs bap bfi c93 cak cin cmv cpk daud dct divx dts dv dvd dxa eac3 film flac flc fli fll flx flv g726 gsm gxf iss m1v m2v m2t m2ts m4a m4b m4v mad mj2 mjpeg mjpg mka mkv mlp mm mmf mov mp+ mp1 mp2 mp3 mp4 mpc mpeg mpg mpga mpp mpu mve mvi mxf nc nsv nut nuv oga ogm ogv ogx oma ogg omg opus psp pva qcp qt r3d ra ram rl2 rm rmvb roq rpl rvc shn smk snd sol son spx str swf tgi tgq tgv thp ts tsp tta xa xvid uv uv2 vb vid vob voc vp6 vmd wav webm wma wmv wsaud wsvga wv wve
[pcm]

Output plugins:
null fifo alsa httpd

Encoder plugins:
null vorbis wave flac

Input plugins:
file alsa curl ffmpeg mms

Playlist plugins:
extm3u m3u pls xspf asx rss cue embcue

Protocols:
file:// http:// https:// mms:// mmsh:// mmst:// mmsu:// gopher:// rtp:// rtsp:// rtmp:// rtmpt:// rtmps:// alsa://


Tι δεν υποστηρίζεται:

Επισήμως δεν υποστηρίζονται SACD και DVD-A ISO. Παρόλα αυτά, το Archphile αυτή τη στιγμή προσφέρει εναλλακτικό πακέτο MPD όπου υποστηρίζει επιτυχώς και τα δύo:

http://archphile.org/blog/experimental-package-sacddvd-iso-support/

Eπίσης από τις δοκιμές που έχω κάνει, δεν έχω καταφέρει ακόμη να αναπαράξω APE, αν και μάλλον κάτι δεν κάνω σωστά, οπότε και επιφυλάσσομαι.



- Ποιότητα αναπαραγωγής

Ο ΜPD σε συνδιασμο με Linux OS χαίρει μεγάλης εκτίμησης από την Computer Audio κοινότητα για την ποιότητα αναπαραγωγής του. Δεν είναι τυχαίο ότι αποτελεί την καρδιά γνωστών και ακριβών εμπορικών λύσεων. Παρόλα αυτά δεν είμαι αρμόδιος να αναφερθώ σε συγκρίσεις με άλλα δημοφιλή προγράμματα καθώς δεν έχω μπει σε διαδικασία Α/Β τεστ.


- Πλεονέκτημα έναντι των εναλλακτικών λύσεων

Χρησιμοποιώντας συγκεκριμένες διανομές, ή στήνοντάς τον από το μηδέν σε κάποιο Linux OS, μπορούμε να φτιάξουμε ένα εντελώς custom headless σύστημα, λιτό, χωρίς γραφικό περιβάλλον και με ελάχιστα services ανοιχτά. Έτσι το γυμνό OS που έχουμε στήσει, ασχολείται αποκλειστικά με την αναπαραγωγή μουσικής χωρίς να διακόπτεται από οποιαδήποτε άλλη διεργασία.
 
Last edited:

tuxx

Supreme Member
3 January 2014
3,319
/dev/null
Γράφω για να ανακαλέσω αυτό που έγραψα παραπάνω αναφορικά με τα APE αρχεία. Υποστηρίζονται κανονικά αρκεί ο MPD να έχει χτιστεί με υποστήριξη fffmpeg και το τελευταίο να έχει ενεργοποιηθεί στo mpd.conf με τις παρακάτω γραμμές:


Code:
decoder {
plugin ffmpeg€
enabled œyes€
}
 
Last edited:

kiriak

Supreme Member
27 November 2006
3,949
μπράβο και από μένα, :SFGSFGSF:

να επισημάνω ότι για PC, υπάρχει και το MPDpup
http://murga-linux.com/puppy/viewtopic.php?t=81984
http://avclub.gr/forum/showthread.php/99254-%CF%80%CE%BF%CE%BB%CF%8D-%CE%B5%CF%8D%CE%BA%CE%BF%CE%BB%CE%BF-%CF%83%CF%84%CE%AE%CF%83%CE%B9%CE%BC%CE%BF-MPD-server-mpdPup

βέβαια, όπως μου είπε ο tuxx πρόκειται για παλιά έκδοση mpd, όπως επίσης παλιά έχει και το voyage. Οπότε μένει το ap-linux, το οποίο όμως είναι 1.2 Gb, απορώ τι περιέχει μέσα;
όποιος ξέρει άλλη διανομή για pc, ας το αναφέρει εδώ για να το ξέρουμε,

πάντως στα καλά του mpdPup είναι το ελάχιστο μέγεθος (60 Mb), ότι εγκαθίσταται σε ένα στικάκι και δεν αλλάζει τίποτα στον υπολογιστή και είναι plug and play, απλά ασχολείσαι 10 λεπτά με ένα wizard όπου σε ρωτά αν θες bitperfect, βρίσκει το dac σου, του δίνεις το path των αρχείων της μουσικής κια τυχόν password κλπ



και με την ευκαιρία να ευχαριστήσω και δημόσια τον tuxx που χωρίς να γνωριζόμαστε καν,
προσφέρθηκε να μου δώσει το pc του για να δοκιμάσω με τα ίδια μου τα αυτιά και αν μου αρέσει να στήσει ένα ίδιο και στο δικό μου,
άσχετα αν λόγω δικής μου έλειψης χρόνου δεν κάναμε ακόμη κάτι

φίλε μου σε ευχαριστώ πολύ και για αυτό αλλά και για όλη την προσφορά σου στο θέμα computer audio εδώ
 

tuxx

Supreme Member
3 January 2014
3,319
/dev/null
Να σαι καλά!

Το ξέχασα το mpdump, οπότε μπαίνει και αυτό στη λίστα.

Αναφορικά με το AP, είναι κανονικό desktop σύστημα με αρκετό software και γι αυτό έχει και τόσο όγκο. Προσωπικά δε θα χρησιμοποιούσα διανομή με γραφικό για τη δουλειά αυτή, αλλά αυτό είναι δικό μου κόλλημα. Μπορεί να τα πηγαίνει περίφημα το AP.
 

kiriak

Supreme Member
27 November 2006
3,949
έχω και εγώ το ίδιο κόλλημα, άλλωστε είτε δεν υπάρχει οθόνη είτε ο χειρισμός γίνεται με smartphone/ tablet / 'αλλο pc
 

tuxx

Supreme Member
3 January 2014
3,319
/dev/null
Ο MPD είναι απλά ένα πρόγραμμα. Το UEFI αφορά σε OS. Εφοσον λοιπόν εγκαταστάσεις κάποιο Linux OS του οποίου ο installer υποστηρίζει UEFI, θα μπορέσεις να εγκαταστήσεις μετά και τον MPD.

Το uefi δεν απενεργοποιειται;
 

DomieMic65

Supreme Member
10 July 2006
9,681
Αθήνα
Ο MPD είναι απλά ένα πρόγραμμα. Το UEFI αφορά σε OS. Εφοσον λοιπόν εγκαταστάσεις κάποιο Linux OS του οποίου ο installer υποστηρίζει UEFI, θα μπορέσεις να εγκαταστήσεις μετά και τον MPD.

Το uefi δεν απενεργοποιειται;

Αφορά σε OS ή σε (δεν ξέρω αν το λέω σωστά) στο firmware του μηχανήματος το οποίο δεν αλλάζει με το OS!

Aπό όσο το έχω ψάξει και προσπαθήσει να μπουτάρω οτιδήποτε ακόμα και στικ με win ... όχι το άτιμο... με έχει παιδέψει πολύ γιατί τότε που πήρα το win laptop μου ένας από τους λόγους ήταν να το κάνω dual boot με κάποιο linux και να έχω να ασχολούμαι... αλλά δεν τα κατάφερα!!
Υπάρχει το λεγόμενο legacy mode αλλά δεν κατάφερα να το κάνω να δουλέψει...

Πολύ σπαστ@..κο πράγμα το uefi!!!!
 
26 June 2006
14,830
Athens
Εγώ που έχω PC, θέλω linux + headless, χειρισμό μέσω web interface / tablet (με κάποιο στοιχειώδες παραθυρικό περιβάλλον), αναπαραγωγή DoP και μισώ (πλέον) το daphile, τι μου προτείνετε?
:)

--- Αυτόματη συγχώνευση μηνύματος ---

... και boot / λειτουργία ΜΟΝΟ από stick.
 

tmjuju

Administration Team
Staff member
21 January 2007
21,651
Εγώ που έχω PC, θέλω linux + headless, χειρισμό μέσω web interface / tablet (με κάποιο στοιχειώδες παραθυρικό περιβάλλον), αναπαραγωγή DoP και μισώ (πλέον) το daphile, τι μου προτείνετε?
:)

--- Αυτόματη συγχώνευση μηνύματος ---

... και boot / λειτουργία ΜΟΝΟ από stick.

Ρε φίλε, υπάρχουν τόσα και τόσα,
Τα περισσότερα τα ξέρεις κιόλας, δεν θα τα ακούσεις πρώτη φορά
Χωρίς καν να ρωτάς, βουρ στο ψητό

Και μιας και είσαι σε PC, παρατά το το άτιμο το usb only … γιατί να περιορίζεις με αυτό τον τρόπο τις επιλογές σου ???
Βαλε ένα ssd

Εγώ την άποψή μου την έχω καταθέσει , δεν υπάρχει καλύτερο από το δίκο σας Linux
Από όποιο σημείο και να ξεκινήσετε, τελικά με τον καιρό θα καταλήξετε να βάλετε και λίγο χεράκι και να φτιάξετε κάτι το πιο προσωποποιημένο
 

tuxx

Supreme Member
3 January 2014
3,319
/dev/null
Η διανομή που έχει παρουσιάσει ο kiriak σου κάνει αλλά ειναι πολύ παλιός ο mpd της και δεν ξέρω πως θα τα πάει με dsd.
 

Δημοκηδής

Μέλος Σωματείου
23 June 2006
9,927
Εγώ που έχω PC, θέλω linux + headless, χειρισμό μέσω web interface / tablet (με κάποιο στοιχειώδες παραθυρικό περιβάλλον), αναπαραγωγή DoP και μισώ (πλέον) το daphile, τι μου προτείνετε?
:)

--- Αυτόματη συγχώνευση μηνύματος ---

... και boot / λειτουργία ΜΟΝΟ από stick.

χαχαχχ,έχασα τεύχη ... γιατί μισείς το νταφίλ ;;;;

η πρόταση μου είναι να ακολουθήσεις το παράδειγμα μου (που και μένα ο Πάνος με παρακίνησε) ... pi2 με archphile ... χειρισμός από client προγραμματάκι μέσω του win7 λάπτοπ μου, είτε από το κινητό μου ... παίζει τα πάντα, τι dop και μ@λ@κίες ... όλα native ... α, συγνώμη ξέχασα ... δεν έχεις ακόμη dac να παίζει native dsd ... αλλά όπου να ´ναι θα πάρεις ...
 

tuxx

Supreme Member
3 January 2014
3,319
/dev/null
Έπεσε στην αντίληψή μου και μια διανομή desktop, η οποία μεταξύ άλλων προγραμμάτων έχει και τον MPD:

http://www.audio-linux.com/


Απ' ότι βλέπω ο άνθρωπος που την έχει φτιάξει έχει εντελώς proffessional linux audio προσέγγιση, με realtime kernel, threaded irqs. jackd κλπ κλπ, ενώ το σύστημα είναι desktop based.


Προσωπικά διατηρώ μεγάλη αμφιβολία για το κατά πόσο μια real time προσέγγιση με χρήση jack θα έχει ακουστό αποτέλεσμα σε ένα απλό σύστημα dedicated στην αναπαραγωγή μουσικής. Όλα αυτά θα είχαν τεράστια σημασία σε ένα Linux based DAW.


Όποιος διαθέτει το αντίτιμο μπορεί να αγοράσει το image στην τιμή των 30 ευρώ περίπου και να δοκιμάσει. Σε κάθε άλλη περίπτωση οι γνώστες του Archlinux μπορούν να ξεκινήσουν από vanilla Archlinux και μετά να βάλουν τα απαιτούμενα πακέτα από το AUR:

https://aur.archlinux.org/packages/?O=0&C=0&SeB=m&K=jhernberg&outdated=&SB=n&SO=a&PP=50&do_Search=Go
 

sokmav

AVClub Fanatic
5 February 2012
14,227
Απάντηση: Re: MPD - Music Player Daemon

Έπεσε στην αντίληψή μου και μια διανομή desktop, η οποία μεταξύ άλλων προγραμμάτων έχει και τον MPD:

http://www.audio-linux.com/
Μια τέτοια προσέγγιση χρησιμοποιώ κι εγώ με το AP Linux v.2 Μιχάλη.
Jack server σε realtime,σε περιβάλλον flux και με audacious.
Το έχω ξαναπεί,ηχητικά στο δικό μου σύστημα και χώρο ακούγεται καλύτερα από οτιδήποτε άλλο έχω δοκιμάσει.
H διαφορά είναι πως είναι δωρεάν.
 

tuxx

Supreme Member
3 January 2014
3,319
/dev/null
Ναι το φαντάζομαι ότι θα έχουν ομοιότητες, απλώς προσωπικά δεν αντιλαμβάνομαι το κέρδος από το ελάχιστο latency.

Όταν παλιά προσπαθούσα να γράψω κιθάρα μέσω του guitar rig σε windows DAW, η ανάγκη για το ελάχιστο δυνατό latency ήταν πασιφανής. Αν δεν φρόντιζες γι' αυτό, βάραγες μια πενιά και ακουγόταν μετά από αρκετά mSec. Δεν μπορώ όμως να βρω κοινά ανάμεσα σε αυτή τη διαδικασία και στην αναπαραγωγή ενος flac.

Ένα laptop που έχω στήσει με Archphile λογική το έστησα με realtime kernel και ομολογώ ότι δεν κατάλαβα τίποτε επιπλέον από το udoo μου που κινείται στην κλασική απλή λογική.