RPi + HAT or....

A good HAT based transport on RPI or any such i2s based devices with good power supply will be a better solution than a PC-based transport.
Thanks kannan.
That's something I should try.I have the RPi sitting unused.
So if I spend for the HAT and power supply, I get better sound quality.
But what about the interface,Volumio is not convincing .Is there any other option that can come close to the jriver.
The other question is should one need a volumio subscription to enjoy its full feature set??
Jriver is on trial now. I have one month to decide, either spend $59 and get J river. Or spend much more than $ 59 and get HAT transport and power supply . What would you recommend.??
 
Thanks kannan.
That's something I should try.I have the RPi sitting unused.
So if I spend for the HAT and power supply, I get better sound quality.
But what about the interface,Volumio is not convincing .Is there any other option that can come close to the jriver.
The other question is should one need a volumio subscription to enjoy its full feature set??
Jriver is on trial now. I have one month to decide, either spend $59 and get J river. Or spend much more than $ 59 and get HAT transport and power supply . What would you recommend.??
This is what I have found about volumio - They deliberately cripple few features from mpd for example. The sticker support has been removed while compiling. Unlike other players, mpd is a pure audio player. It doesn't do any album/media management. So any client can connect to mpd on port 6600 and issue commands like play, pause, stop, add songs to list, remove songs from list, query what song is playing and is at which position, etc. So there are multiple clients written by different people for mac, ios, linux, windows, android, etc. So if you install mpd without any changes you will be able to use any client. What volumio does is that it has it's own web interface. When you add songs to it to play, let say an entire album of 10 songs, it removes 9 songs and adds just the song currently playing. So if you use any mpd remote or player, it will show only one song. The only app that will display all 10 songs is volumio's own web/android/ios app which is a paid app. So some of the crippling of mpd has been done out of commercial interest or something else.

You will be better off using moode, picore or other distributions. If you don't like their interface you can use any of the clients listed in the link below

e.g. I use cantata on my macbook and linux laptops. I can control the same from my android phone using mpdroid app

Screenshot of Cantata on Macbook Pro. The same interface is available for windows and linux. Cantata allows you to exploit each and very feature of mpd (unlike volumio, moode and others). You can even create a HTTP stream url of your local music file and play it from anywhere in the house. It shows album art, has plugins to fetch lyrics, artist, song, album information. etc. You can scrobble to last.fm, libre.fm. rate your songs in a scale 1-5. I use this scale to play my favourite songs. The rating system works only if you have sticker support (which volumio deliberately cripples it).

Untitled.jpeg

Screenshot 2. Android mpd control app. This is a basic app which allows you to play any song from your collection.

Screenshot_20220609-101240.jpeg
 
Last edited:
@mbhangui i left Volumio long back and now on MoOde Audio.
My Ooher sources include a highly optimized Windows based laptop on JRiver, HAT-based R2R DAC or Chromecast Audio digitally connected to another vintage 20-bit dual PCM1702 ladder DAC.
 
More about sticker support in mpd that volumio disables.

Sticker support allows you to stick any information about songs that is not part of the original mpd code. So without modifying the mpd code, any mpd client developer can keep on adding new information/metadata associated with a song. The information goes into an sqlite database that is configured in mpd.conf file. You are free to have your on schema for this table. All that is required is the song id should be one of the columns. This makes mpd a very flexible player.

mpd is a nirvana for any audiophile who knows bit of scripting and loves to hack.

BTW the database that mpd uses is sqlite, is one of the fastest database known today. Airbus uses it.
Airbus confirms that SQLite is being used in the flight software for the A350 XWB family of aircraft.

 
Last edited:
More about sticker support in mpd that volumio disables.

Sticker support allows you to stick any information about songs that is not part of the original mpd code. So without modifying the mpd code, any mpd client developer can keep on adding new information/metadata associated with a song. The information goes into an sqlite database that is configured in mpd.conf file. You are free to have your on schema for this table. All that is required is the song id should be one of the columns. This makes mpd a very flexible player.

mpd is a nirvana for any audiophile who knows bit of scripting and loves to hack.

BTW the database that mpd uses is sqlite, is one of the fastest database known today. Airbus uses it.


Very interesting conversation with Mr Hipp.
 
Those who say Volumio (or other RPi based players) sounds better than any PC-based players are right. Those who say JRiver or Roon or Audirvana or HQPlayer or Euphony/Stylus is the best sounding PC-based player are also right. The thing is all these players sound different and what sounds best to one person need not be universally true. The only way to truly find out is to hear it for oneself.

Ease of use, library management, stability and consistency, etc are very important factors too and can definitely sway the choice from one to another.
 
BTW the database that mpd uses is sqlite, is one of the fastest database known today. Airbus uses it.
Not trying to be a smartass (OK, maybe just a little bit :rolleyes:) but actually, not quite true the way you worded it. It's the fastest embedded (or personal) database. It's definitely not enterprise class or even client-server ready and hence not comparable with others but for what it is, it is brilliant!
Ease of use, library management, stability and consistency, etc are very important factors too and can definitely sway the choice from one to another.
Add to that the need of an API that allows those who are capable, to plug in the junk that they write so that they can muddy the waters even more. :p
 
Last edited:
Those who say Volumio (or other RPi based players) sounds better than any PC-based players are right. Those who say JRiver or Roon or Audirvana or HQPlayer or Euphony/Stylus is the best sounding PC-based player are also right. The thing is all these players sound different and what sounds best to one person need not be universally true. The only way to truly find out is to hear it for oneself.

Ease of use, library management, stability and consistency, etc are very important factors too and can definitely sway the choice from one to another.
Everyone hears things differently because what we hear is the ear + brain.
Logically speaking, there shouldn't be any difference between volumio, moode, dietpi or other mpd based distributions because none of these distributions produce sound. The real work is done by mpd, shairport-sync, librespotify or the squeezelite player. The value add these distributions do is hide linux from the end user by giving a web interface for the user to play and manage songs/albums using a local library or a service like tidal, qobuz.

All these distributions can do is make the sound worse IMHO by consuming more cpu than an installation where the user installs the RPI OS from the raspberry pi foundation and installs mpd, shairport-sync, librespotify using apt-get. The biggest wastage of CPU usage the distributions do is when you play a song using their interface. Just to display the song position, these distributions continuously exchange HTTP traffic between the browser and httpd server. As it is, the RPI do not have a powerful CPU that can run multiple task intensive jobs. Another way to see how fragile thse RPIs are is to do rsync over ssh from your laptop to RPI with an external SATA disk with good speed (SATA) preferably. The RPI ias a gigabit ethernet. A bit is 1/8 of a byte. So you should be able to do 120 mega bytes per second transfer speed. If you do laptop/desktop to another laptop/desktop file transfer using ftp between your laptop/desktop to RPI you will get around 120 mega bytes per second. You will get the same speed when you transfer from your laptop/desktop to another laptop/desktop using scp. scp is transferring over ssh which involves encryption/decryption and causes CPU to be used on the source as well as the destination. But the moment you do scp or transfer using ssh, you find laptop to RPI speed drop to around 90 mega bytes per second. But from your laptop to another laptop, the speed using scp/ssh doesn't decrease. The reason RPI's speed drops by around 25% is because sshd is doing decryption and the RPI CPU is not as powerful like your desktop CPU. So by continuously exchanging traffic between the browser and the RPI, just to display a silly progress bar is wastage of CPU power that should be used only for producing sound.

So my observation has been that volumio sounds the worst of the distrubutions and moode to be the best. But better than all of these is to avoid all distributions and use mpd and a non-web based mpd client that uses socket on port 6600 to exchange the song position. Players like cantata (non-web based) connect to port 6600 once and only once and use the status command to get the song position. This is far better and less CPU intensive than continuously opening a new TCP/IP connection to port 80 everytime, exchange HTTP traffic with the extra playload of HTTP header. This request is handled by the web server which passes this to a PHP script. The PHP script than opens another TCP SOCK_STREAM connection to mpd on localhost 6600, issues the status command to mpd, gets the reply and sends it back to the client browser with another HTTP payload. Also the horror of this is that it happens every few milliseconds. This is a very convoluted process IMHO and utter waste of CPU, electrical power.

IMHO a desktop is anyday better. But a desktop means more real estate, a fan that will make noise, more electricity and a noisy SMPS that you can do nothing to reduce the noise

A RPI can be powered by a LPS, is noiseless and you can strip the RPI of everthing that has got nothing to do with music. That IMHO is the real value add of a RPI based streamer or RPI with I2S DAC hats connected to the GPIO pins. But exchanging I2S data on the GPIO has limitation of speed. You cannot have native DSD to the best of my knowledge. But you can always connect a very good dac to the USB port of the RPI
 
Last edited:
In my previous post, I forgot to mention picore. I think picore should sound the best on RPIs. It uses LMS which provides its in-built http interface without requiring an external web server. The exchange of data happens much more effciently than what is done by other distributions in using a web browser to talk to mpd.

But if you don't use any of these distributions the one that uses the RPI most efficiently would be to install the official 64bit RPI OS from raspberry foundation, install mpd and use an external mpd client. But can this beat a regular desktop with a noisy SMPS, I'm not sure. I have a powerful HTPC running linux. I feel the HTPC sounds better. But that could be a pacebo effect because lot of DIY hard work went into making that HTPC.
 
If someone wants to do it the hard way this website has step by step instructions. You can even compile mpd if you desire so
This is a good site and components chosen wisely. e.g. For the web client it shows myMPD client. If you ever want to use a web interface to control mpd, it should be myMPD. myMPD was originally a fork of ympd, but it has evolved into a much more featurefull MPD client. What is so special about myMPD compared to volumio, moode, etc?

myMPD uses web sockets and it by itself provides http interface without requiring an external web browser. This totally avoid the problem that volumio and moode have. i.e. the need to frequently exchange information between client and server just to show the silly progress bar. So mympd opens a connection to mpd port 6600 just once and as long as it is running, it will use the same socket. The idea of writing in C and using websockets comes from ympd.

Like cantata myMPD also uses the sticker functionality of mpd.
 
Last edited:
This is OT and perhaps could be moved to a separate thread but given that we are discussing about CPU usage by unnecessary functionality et al [which incidentally is absolutely right], I just downloaded, wrote to a USB stick, booted from it and played - all in 15 minutes from this totally minimalist Linux distro/player which has just one function - music playback. Check out wtfplay: http://wtfplay-project.org/

Try it - it sounds very very good. Unfortunately, for me [and I am more than a little biased here], playback on my [I say "my" because old Bill G. won't recognize it as his :)] Windows equals/trumps it in SQ.
 
This is OT and perhaps could be moved to a separate thread but given that we are discussing about CPU usage by unnecessary functionality et al [which incidentally is absolutely right], I just downloaded, wrote to a USB stick, booted from it and played - all in 15 minutes from this totally minimalist Linux distro/player which has just one function - music playback. Check out wtfplay: http://wtfplay-project.org/

Try it - it sounds very very good. Unfortunately, for me [and I am more than a little biased here], playback on my [I say "my" because old Bill G. won't recognize it as his :)] Windows equals/trumps it in SQ.
wtfplay has text interface like old MS-DOS terminal, right? I think you made me try this years ago.
 
Installed LMS on my Mac Mini as advised in earlier posts. Also found a player SqueezePlayer for Mac and installed that too.

The first run was a bit difficult as I had not got the hang of it. Later after the setup it started playing. Also got an Android app Squeeze Controller. IT worked :D

  • But then, I tried to change the speaker from Mac's internal speaker. No go.
  • This work was happening in another room where I have the PC monitor. Took the Mac to the AV rack, connected it to the TV and iFi DAC, switched on. LMS started. SqueezePlayer also came on. It showed all the albums, songs. Tried playing and it says file not playable!! The same song played earlier in the other room.
What could be wrong?
 
Well ,looks like Im the only one vouching for audirvana studio. I prefer its sound signature ( windows laptop using audirvana remote) , and its toggles seamlessly between tidal and wave files stored in the hard disc of the laptop. It sound good only as long it runs on battery though.
In my system the Rpi4 on volumio and ifi power has a blacker background but sounds slightly thinner and uneven in comparision.
 
Last edited:
Installed LMS on my Mac Mini as advised in earlier posts. Also found a player SqueezePlayer for Mac and installed that too.

The first run was a bit difficult as I had not got the hang of it. Later after the setup it started playing. Also got an Android app Squeeze Controller. IT worked :D

  • But then, I tried to change the speaker from Mac's internal speaker. No go.
When you use LMS there are two components.
  1. The library manager. This is the LMS server which provides a web server on port 9000. Suppose your ip of your mac mini is 192.168.1.100. Then you need to point your browser to http://192.168.1.100:9000. LMS can be run on one machine anywhere on the network. The machine where you install LMS should be the one where your hard disk having music or your NAS device having the music connected. When you install squeezelite on any machine on the same network, it will show in the player list of LMS. The screen shot when you connect to port 9000 is at the bottom. Here you can configure the server settings like the skin, location of your music collection, etc. Lot of folks chose the Material Skin in the server settings - interface
  2. Squeezlite player. This is the component that deals with the sound. It is the component that produces the sound. It will play on the device where your Mac OS directs the sound
  • This work was happening in another room where I have the PC monitor. Took the Mac to the AV rack, connected it to the TV and iFi DAC, switched on. LMS started. SqueezePlayer also came on. It showed all the albums, songs. Tried playing and it says file not playable!! The same song played earlier in the other room.
What could be wrong?
You can select the dac to which you want to play by clicking on the speaker icon or you can use the audio midi setup to select where the sound goes. I will boot by mac mini and post screenshots.

In the screenshot below, I have run the audio midi setup. My DAC shows up as "Speaker". When you click on the volume control icon on mac, it shows all sound devices, including airplay devices. I have selected Speaker. This speaker is actuall the name given by mac for my DAC. For some reason, the mac developers have not displayed the correct device name reported by the DAC and it shows the name as speaker. In this particular dac, the dac reports Speaker as the mixer control name and that's what mac is erroneously reporting as the name for the DAC.

I don't have squeezelite installed on my mac mini. I will try that too.
Untitled.jpg

1654862117020.png
 
Last edited:
@Subbu68 There is a separate thread here

and reach out to @surfatwork. I believe he is the inhouse expert on LMS.
 
Back
Top