MPD
PuppyPlayer using mpd / mpc / ncmpdpp / ympd / davemp / MPDroid
mpd
is the server side of a client/server architecture that runs on the system that will be producing the audio. It can be controlled using local and remote clients, one of which is mpc
. There are many, many additional mpd
clients, of which two are suitable for our purposes. ncmpcpp
is an ncurses
-based client for use on the local console or a remote terminal. davemp
is a perl-based, self-contained web client that can be used via any browser.
PuppyLinux "LuPu" 5.2.8 is based on Ubuntu Lucid. Thus, PuppyLinux can install standard Ubuntu Lucid packages. In order to install and use mpd
(Media Player Daemon) the following packages must be downloaded and installed, when using the Puppy Package Manager, including all required dependencies. I have a local copy of each of this files at //tater/music/mpd/PKGs/
:
* adduser_3.112ubuntu1_all.deb * base-files_5.0.0ubuntu20_i386.deb * debconf_1.5.28ubuntu4_all.deb * debconf-i18n_1.5.28ubuntu4_all.deb * libasound2_1.0.22-0ubuntu7_i386.deb * libavcodec52_0.5.1-1ubuntu1_i386.deb * libavformat52_0.5.1-1ubuntu1_i386.deb * libavutil49_0.5.1-1ubuntu1_i386.deb * libcue1_1.3.0-1_i386.deb * liblocale-gettext-perl_1.05-6_i386.deb * libmms0_0.4-2_i386.deb * libmpdclient2_2.1-1_i386.deb * libpam-modules_1.1.1-2ubuntu2_i386.deb * libpython2.6_2.6.5-1ubuntu6_i386.deb * libresid-builder0c2a_2.1.1-8_i386.deb * libshout3_2.2.2-5ubuntu1_i386.deb * libsidplay2_2.1.1-8_i386.deb * libtext-charwidth-perl_0.04-6_i386.deb * libtext-iconv-perl_1.7-2_i386.deb * libtext-wrapi18n-perl_0.06-7_all.deb * libwavpack1_4.60.1-1_i386.deb * mpc_0.19-2_i386.deb * mpd_0.15.4-1ubuntu3_i386.deb * passwd_4.1.4.2-1ubuntu2_i386.deb
A little manual installation work shows that for mpd
these are the required packages:
* libavutil49_0.5.1-1ubuntu1_i386.deb * libcue1_1.3.0-1_i386.deb * libmms0_0.4-2_i386.deb * libresid-builder0c2a_2.1.1-8_i386.deb * libshout3_2.2.2-5ubuntu1_i386.deb * libsidplay2_2.1.1-8_i386.deb * mpd_0.15.4-1ubuntu3_i386.deb
Each package must be installed using:
$ cp /mnt/music/mpd/PKGS/*deb /root $ for pkg in /root/*deb ; do echo $pkg ; /usr/local/petget/installpkg.sh $pkg done
mpd
requires a particular 'version' of libmpcdec.so
, so create this soft-link:
$ ln -s libmpcdec.so.6.1.0 /usr/lib/libmpcdec.so.3
''Note: The 'trimmed' lupu_528.sfs
that I have created for 128MB USB flash drives and the Wyse thin client is missing libcurl-gnutls.so.4.2.0
(and softlink libcurl-gnutls.so.4
). This file and softlink need to be copied to /usr/lib
.
Now, modify /etc/mpd.conf
with these changes:
$ cp -p /etc/mpd.conf /etc/mpd.conf.ORIG $ cat /etc/mpd.conf.ORIG | \ sed '/music_directory/ s|/var/lib/mpd/music|/mnt/music|' | \ sed '/playlist_directory/ s|/var/lib|/mnt/music|' | \ sed '/db_file/ s|/var/lib|/mnt/music|' | \ sed '/user/ s/mpd/root/' | \ sed "/host/ s/localhost/`hostname`/" | > /etc/mpd.conf
One key item to note, is that mpd
can use a music repository on a remote CIFS/SMB system, but I have found that the mounted share must use the noserverinfo
option, viz:
$ mount -o noserverinfo,password=none //tater/music /mnt/music
mpc
is a command-line client for MPD. It is the reference client provided by the MPD developers and has basic, but complete, facilities for controlling the music daemon from the console or remote terminal. It depends only on the libmpdclient2
library.
To recap:
libmpdclient2_2.1-1_i386.deb
ncmpdpp
is an ncurses
-based console client that is extremely useful, using full-screen layouts and color-coding. A local copy of this package is also found in the //tater/music/mpd/PKGs
directories. It depends on two packages. The first is required to run at all, the second is required when doing tag editing:
libtag1-vanilla_1.6.2-0ubuntu1_i386.deb
libtag1c2a_1.6.2-0ubuntu1_i386.deb
ympd
is a self-contained web-client written in C. It provides MPD controls to any system running a browser with late-version JavaScript support (Opera 11 won't work, but Opera 12 does). It can run on the same machine as MPD or on another system, but it makes sense to have it run on the same system.
ympd
is not an official debian or ubuntu package, and I had to build it from the source package. I fired up a spare Puppy Linux 5.2.8 box, and mounted the DEVX SFS package on-the-fly and untar'd the source. Following the build instructions, I created build
in the top source package directory. My only difficulty with the build was a missing library. I had to load the libmpdclient2-dev
package. Once done, the build was successful. Running the binary only requires the ordinary, non-dev libmpdclient2
package, so that simplifies the install for everyday use.
To recap, ympd
, once built, requires:
libmpdclient2_2.1-1_i386.deb
The following perl modules are needed by davemp:
HTTP-Server-Simple-0.26.tar.gz
JSON-XS-1.0.tar.gz
MPDroid
is an Android device client. It is a project hosted on GitHub and I was able to download the APK package directly from GitHub directly, avoiding the whole Google Play/Marketplace hassle. It turns out that the latest stable release, v1.7.2, works fine on my Nook HD+ tablet, but it will not install on my older Nook Color or Nook Tablet. I found that v1.05 will work on these devices, again downloading the APK directly from GitHub. These APK files are situated with other MPD files at //tater/music/mpd
.
MPDroid_1_07_2_final.apk
: v1.7.2 : Nook Tablet HD+com.namelessdev.mpdroid-v30.apk
: v1.5.0 : Nook Color & Nook Tablet