The question is how familiar are you with Linux? Do you know how to read man pages. Nothing much is required. Just few steps
1. Connect the external drive to your raspberrypi on a usb 3.0 port
2. Do
journalctl -l, go to the bottom and see the device name.
3. Format your external hard disk to one of the following filesystems (ext4, zfs, xfs, btrfs). ext4 will be a good choice. DONT DONT use NTFS unless you are OK with sub par performance. One uses the mkfs.ext4 to format a filesystem for ext4, mkfs.xfs for xfs, etc, etc
4. Run the
blkid command to get the UUID of the hard disk
3. Edit /etc/fstab and put your entry for your hard disk for the above UUID.
4. mount the disk first time using the
mount command. If the disk mounts, you have scuccessfully added the hard disk. No on every reboot the hard disk will automatically get mounted
For easy reference all files related to my setup are here
https://github.com/mbhangui/pistop/tree/master/example_config/server
I have used mpd extensively and recently also used Logitech media server. I prefer MPD because I find it is the one that is the most efficient and doesn't take any system resource. to install you just need to run the command
apt-get install mpd. Once you have done that you need to edit /etc/mpd.conf to point to your music folder on your external hard disk. mpd will scan your entire music directory in few seconds and build its tag database with tags that are already present in your music files (title, author, album, year, etc).
mpd doesn't come with any interface. It is a client server model where any client can connect to mpd on port 6600 and query mpd for details like what song is playing, what is the position of playback, the song title, song author, etc. It can also issue commands like stop, play, pause, etc. There are plenty of clients available. You are free to chose any client that gives a good graphical interface. I use
cantata on my macbook and linux latop.
Logitech media server is similar. It runs a service written in perl and provides http interface on port 9000. You can use any web browser to connect to LMS on port 9000.
Since I have tried both. Here are few pros and cons of LMS and mpd
MPD: Pros
1. Extremely efficient and tiny code. It has the best code available to buffer music data and send it to the dac. It works flawlessly with ALSA.
Extremly IMPORTANT. mpd passes the music data locally from the hard disk directly to the dac. It doesn't stream the data like LMS.
2. Extremely low latency output. This is expected because the code is small and written in C/C++. Low latency is also because the data is passed directly to the DAC and not via streaming. Also because mpd does nothing that is not related to producing sound. (e.g. recording when the song was played, providing rating button, maintaining playcounts, etc).
3. You can have a satellite system. If you have multiple clients or multiple music playback systems (e.g. multiple RPIs in different rooms). In this case one mpd will provide the song database and it's metadata. slave mpd clients pick can exchange the traffic with miniscule amount of data
4. You can even use the unix telnet command to play song. As a developer who is always on the terminal and uses vi editor for coding, the worst thing that can happen when you have to use the mouse. Using the mouse drastically reduces your typing throughput as your hand has to leave the keyboard. I use tmux to run multiple terminals on different screens. i run the vim on one screen and a terminal based mpd player on another screen. So when I have to pause, stop, play any music, I can do just by switching ther terminal screen and type few letters to do any song operation. There is a command line player for LMS too, but I haven't tried it yet.
5. mpd can play all formats natively (DSD, wav, flac, mpd, ogg, etc). It can also do only the fly conversion if your DAC doesn't support it.
6. mpd serves both as a media server as well as a player.
7. Opens the audio device only when playing. So you can use any other music client when you are not playing song using mpd
8. It can do MQA. It has plugin for both Tidal as well as Qobuz
9. It has 64-bit version.
MPD: Cons
1. No graphical interface. mpd is a pure music player. With few commands that can be sent on port 6600. So for a novice it takes longer to understand mpd. A newcomer often struggles finding the proper gui or client to play music. But there are plenty of clients (linux desktops, command line and web based clients). See
https://www.musicpd.org/clients/
LMS Pros
1. The LMS server is quite efficient even though it is in perl. It does consume more resources than mpd, takes longer to tag files, but is many times better than the so called distributions. Some members call these distributions OS.
2. It stores lot of metadata technically not part of song data (things like user rating for the song, how many times song was played, etc)
3. Plenty of plugins. The material skin plugin gives you a nice web based player. The connection to the internal web interface is persisent and efficient. WHen you use volumio, moode, the so called distributions, they continuously connect to mpd just to display the song played position.
4.
With the chromecast plugin, it can play your local music on google chromecast devices with the albumart. I can effortlessly play song on my android tv. The feature is what I love the most. It plays song even on my google home mini and chromecast audio device.
5. Once you have installed LMS and the player, using it is a breeze.
6. It has 64-bit version
LMS Cons:
1. Takes more resources than a mpd setup.
2. DSD playback is not native. You require to enable a plugin which does DSD over PCM.
3. You don't have LMS in the official debian repository. So you have to download from here
https://mysqueezebox.com/download. The client can be downloaded from here
https://sourceforge.net/projects/lmsclients/files/squeezelite/linux/
4. LMS is just the media server. For playback you need a player. The player is a separate executable called squeezelite.
5. Grabs the audio device even when you are not playing any song. This prevents other players like airplay, spotify from using the audio device. So to play spotify for example, you have to press the power button on the player interface to turn off the player
8. Higher latency than mpd. So sound will not be neutral. Music playback is always by exchanging data from the LMS server to the squeezelite client on the network. So if you are using LMS, then it is important that you use a gigabit network and not wifi connectivity between the LMS server and the squeezelite client.
Using any Linear Power supply for the hat is always better. A good low cost solution is the Allo Shanti LPS.
This is my music interface when using mpd
View attachment 68886
This is my interface for LMS.
View attachment 68887
EDIT:
If you use one of the distributions, the pain of doing setup goes away. You get everything installed and configured. I have tried moode, dietpi and volumio. IMHO moode is the best. It exploits the maximum features of mpd. I have also heard good reviews of picore player which uses LMS. But haven't tried that distribution.