Moode Audio Player for Raspberry Pi

Hi,

Not limited by hardware but by software to DSD64 using DoP in current mainline Raspbian Jessie ALSA 1.0.28 and in latest MPD 0.19.12 release.

This has been bumped to DSD128 in newer 1.0.29 version of ALSA and there is patch to MPD for DSD128 support. Also native bitstream DSD is supported.

Regards,
Tim

2.7 is still using ALSA 1.0.28 if I am not mistaken, right? Direct DSD support would be great. (No hurry, there is plenty to listen to, and DoP, with its really minor problems, is fine).

Also, do you know whether the changes made here http://www.diyaudio.com/forums/pc-based/291712-ultimate-mpd-sacd-iso-native-dsd-more.html are going to be mainlined? (I know, I should probably talk to MPD development team directly... I'lll head to https://forum.musicpd.org and interact there as well.

Roberto
 
I ordered the $50 IFI iPower unit (supposed to arrive in a week or so). At that price, I could afford to experiment. As far as I can tell, it will need an adapter cable to bridge from its bayonet connector to either a microUSB connector or to GPIO pins on the RPi, but maybe I'm just misreading the specs.

It'll probably be a couple weeks before I can post my first impressions.

Regards,
Kent

I have a IFI iPower and it came with the microUSB adapter.
In my case I've made an adapter because I'm power the PI by the Hifibeery Digi+ (via two pins soldered to the Digi+ board).

Regards,
José
 
Larger SD card storage?

It appears desirable to have your music files on the SD card, and I am about to explore that (SD vs NAS). I would like to know if there are options that might allow combining several SD cards in a manner that allows the cards to behave as a single device with a connector to the RPi. This would require some hardware, a specialized formatter and, probably a device driver, so it isn't simple.

512mb cards are presently very expensive, and I would really like about 1gb's worth of space. Moode seems ideal for this configuration.

Skip
 
I ordered the $50 IFI iPower unit (supposed to arrive in a week or so). At that price, I could afford to experiment. As far as I can tell, it will need an adapter cable to bridge from its bayonet connector to either a microUSB connector or to GPIO pins on the RPi, but maybe I'm just misreading the specs.

It'll probably be a couple weeks before I can post my first impressions.

Regards,
Kent
I have a ifi ipower 9v 2a from about six months.
Durio Sound Pro i2s DAC need 9v for power itself and raspberry pi.
1uV ripple on audio band is "science fiction" technical data, but I want to trust on it!
it works very very well on my sistem.[emoji106]
 
I have a Durio Sound Pro, DAC is pcm5102, maximum sample rate is 32bit 384 kHz.
I have tried upsampling from 44 kHz 16bit to 32bit 384 kHz.
Raspberry pi 3 support it without problems, music go out from loudspeakers, all is fine.
Looking in "Audio info" Output Stream is lower, 32bit 192kHz.
Why? Someone can help me?
2016-08-31 21.27.02.png
 
I have tested crossfeed, fantastic job Tim!
Only two very little and stupid comments...
Set up one has ine error:
Is written 725 Hz but it should be 700Hz. See Bauer official page:

Screenshot_2016-08-31-21-41-30.png

Second is a question. When crossfeed is" on" Output Stream pass from 16bit to 32bit. Is it normal?

Screenshot_2016-08-29-21-27-08.png

Thanks a lot again for this fantastic feature!
[emoji39] [emoji39] [emoji39] [emoji39]
 
It appears desirable to have your music files on the SD card, and I am about to explore that (SD vs NAS). I would like to know if there are options that might allow combining several SD cards in a manner that allows the cards to behave as a single device with a connector to the RPi. This would require some hardware, a specialized formatter and, probably a device driver, so it isn't simple.

512mb cards are presently very expensive, and I would really like about 1gb's worth of space. Moode seems ideal for this configuration.

Skip

Sorry, Skip, but I'm confused.

1. Why do you see this as a competition between only local SD and remote NAS? What about local USB Thumb drives (or even USB hard drives)? These don't require the hardware lashup you envision (and, I believe, are more reliable). If you need more than one, you can plug them into a USB hub.

2. More to the point, in what way are 512MB SD cards very expensive? Here in Maryland, I can buy multi-gigabyte class 10 uSD cards for well under $1 a GB. I can get USB thumb drives for even less. For example, this weekend Best Buy is offering a SanDisk 128GB USB 3.0 thumbdrive on sale for $25!

Am I missing something?

Regards,
Kent
 
Thanks Kent,

Last things first! I actually meant gigabytes versus terabytes. It's the 512gb cards that are a bit pricey. Sorry for the senior moment.

It's the potential sound quality difference between input source types that I want to explore. We've all read about the theoretically compromised I/O capability with the shared ethernet/USB system on RPi's. I have had an NAS for music storage for several years - initially providing data to an LMS/Squeezebox system, and, for over a year now, my RPi 2B/HifiDigi+. It works beautifully. Since I don't have a USB DAC, and prefer I2S conceptually, I'm looking to see if source alternatives will make a difference.

In line with the often expressed-principle that the lighter the load, particularly in I/O systems, the better the sound quality, I thought that exploring SD card input makes sense. This doesn't mean I will actually hear a difference, but I will give it a try. If I do think it sounds better, The idea of not needing a hard drive to use the RPi in other locations is attractive. Hence my question about ganging SD cards.

Skip

Sorry, Skip, but I'm confused.

1. Why do you see this as a competition between only local SD and remote NAS? What about local USB Thumb drives (or even USB hard drives)? These don't require the hardware lashup you envision (and, I believe, are more reliable). If you need more than one, you can plug them into a USB hub.

2. More to the point, in what way are 512MB SD cards very expensive? Here in Maryland, I can buy multi-gigabyte class 10 uSD cards for well under $1 a GB. I can get USB thumb drives for even less. For example, this weekend Best Buy is offering a SanDisk 128GB USB 3.0 thumbdrive on sale for $25!

Am I missing something?

Regards,
Kent
 
Thanks Kent,

Last things first! I actually meant gigabytes versus terabytes. It's the 512gb cards that are a bit pricey. Sorry for the senior moment.

It's the potential sound quality difference between input source types that I want to explore. We've all read about the theoretically compromised I/O capability with the shared ethernet/USB system on RPi's. I have had an NAS for music storage for several years - initially providing data to an LMS/Squeezebox system, and, for over a year now, my RPi 2B/HifiDigi+. It works beautifully. Since I don't have a USB DAC, and prefer I2S conceptually, I'm looking to see if source alternatives will make a difference.

In line with the often expressed-principle that the lighter the load, particularly in I/O systems, the better the sound quality, I thought that exploring SD card input makes sense. This doesn't mean I will actually hear a difference, but I will give it a try. If I do think it sounds better, The idea of not needing a hard drive to use the RPi in other locations is attractive. Hence my question about ganging SD cards.

Skip

A senior moment? I'm pretty sure I invented them but I can't remember why I think so🙂

So how about first putting your thoughts to the test with a smaller uSD card (a lot of music fits into 8GB)? My first test would be, can I hear a difference in sound quality when I play identical music files from an uSD card, from a USB thumb drive, and from my NAS? If not, then I'm done!

As for ganging SD cards, I think the fact that there aren't any examples out there in Web-land should be a red flag. More power to you if you figure out how to do it. Note that there are existing solutions to creating uSD RAID arrays but they use CF or SATA or USB as the interface. One needs either a way to interface such an array to the existing uSD port on the RPi or to create a homegrown solution using the protocols available via the GPIO pins such as SPI and I2C. If the latter, then the same question of the interface possibly affecting the sound quality arises.

I'd love to hear someone has already proved me wrong.

Regards,
Kent
 
Last edited:
I have a Durio Sound Pro, DAC is pcm5102, maximum sample rate is 32bit 384 kHz.
I have tried upsampling from 44 kHz 16bit to 32bit 384 kHz.
Raspberry pi 3 support it without problems, music go out from loudspeakers, all is fine.
Looking in "Audio info" Output Stream is lower, 32bit 192kHz.
Why? Someone can help me?
View attachment 567517

Hi,

I think 192 kHz is limitation in SoX, or possibly in some part of ALSA. I recall reading about this in one of the kernel tweek threads on diyAudio.

-Tim
 
Hello,

Firstly In the Absense of body language and Tone of voice I do want to say that my question is sincere and not sarcastic.

Assuming there is a suitably sized buffer to eliminate the possibility of the rpi playing music faster than your source can be read, is there any substance to this theory of sound quality differences?

Please do accept its s sincere question from an open minded person but my understanding of how "computers work" cannot work this out?

I understand if the CPU or other subsystems were running at or close to 100% of their capacity then in a non RTOS the audio is going to suffer.

I am only a beginner in the world of audio (Hifi audio) but I've got a strong IT background. My PI is connected via Ethernet and my USB DAC obviously shares its bandwidth with the Ethernet controller, infact i have the smsc95xx.turbo_mode=N option set which I believe reduces bandwidth slightly but decreases latency on the USB / ETH bus.

I stream "lossless" 16/44.1 over AirPlay from my phone to router (wifi) to PI (Ethernet) which then outputs to an asynchronous USB DAC.

Audio dropouts are extremely rare so just to increase my own knowledge would be interested if you could point me to any info regarding the "theory" 🙂

Hope this came across as intended 🙂

LTD


Thanks Kent,

Last things first! I actually meant gigabytes versus terabytes. It's the 512gb cards that are a bit pricey. Sorry for the senior moment.

It's the potential sound quality difference between input source types that I want to explore. We've all read about the theoretically compromised I/O capability with the shared ethernet/USB system on RPi's. I have had an NAS for music storage for several years - initially providing data to an LMS/Squeezebox system, and, for over a year now, my RPi 2B/HifiDigi+. It works beautifully. Since I don't have a USB DAC, and prefer I2S conceptually, I'm looking to see if source alternatives will make a difference.

In line with the often expressed-principle that the lighter the load, particularly in I/O systems, the better the sound quality, I thought that exploring SD card input makes sense. This doesn't mean I will actually hear a difference, but I will give it a try. If I do think it sounds better, The idea of not needing a hard drive to use the RPi in other locations is attractive. Hence my question about ganging SD cards.

Skip
 
Hello,

Firstly In the Absense of body language and Tone of voice I do want to say that my question is sincere and not sarcastic.

Assuming there is a suitably sized buffer to eliminate the possibility of the rpi playing music faster than your source can be read, is there any substance to this theory of sound quality differences?

Please do accept its s sincere question from an open minded person but my understanding of how "computers work" cannot work this out?

I understand if the CPU or other subsystems were running at or close to 100% of their capacity then in a non RTOS the audio is going to suffer.

I am only a beginner in the world of audio (Hifi audio) but I've got a strong IT background. My PI is connected via Ethernet and my USB DAC obviously shares its bandwidth with the Ethernet controller, infact i have the smsc95xx.turbo_mode=N option set which I believe reduces bandwidth slightly but decreases latency on the USB / ETH bus.

I stream "lossless" 16/44.1 over AirPlay from my phone to router (wifi) to PI (Ethernet) which then outputs to an asynchronous USB DAC.

Audio dropouts are extremely rare so just to increase my own knowledge would be interested if you could point me to any info regarding the "theory" 🙂

Hope this came across as intended 🙂

LTD

A few ways in which your hardware might affect the output audio quality:

Power supply modulation caused by varying current drain in the Raspberry Pi.

RF noise output from the processor.

Jitter in the digital signal presented to the DAC.

Cheers,

Phil
 
I have tested crossfeed, fantastic job Tim!
Only two very little and stupid comments...
Set up one has ine error:
Is written 725 Hz but it should be 700Hz. See Bauer official page:

View attachment 567518

Second is a question. When crossfeed is" on" Output Stream pass from 16bit to 32bit. Is it normal?

View attachment 567519

Thanks a lot again for this fantastic feature!
[emoji39] [emoji39] [emoji39] [emoji39]

Hi,

Correct it should be 700 and not 725. I'll make the change for first Moode 2.7 update. Below is from the source code for Crossfeed.

/* Default crossfeed levels */
/* bs2b_set_level() */
#define BS2B_DEFAULT_CLEVEL ( ( uint32_t )700 | ( ( uint32_t )45 << 16 ) )
#define BS2B_CMOY_CLEVEL ( ( uint32_t )700 | ( ( uint32_t )60 << 16 ) )
#define BS2B_JMEIER_CLEVEL ( ( uint32_t )650 | ( ( uint32_t )95 << 16 ) )

I'm seeing 32 bit as well. Its probably Crossfeed using 32 bit internally to perform its DSP calculations and then leaving the result at that bit depth. Something like that.

-Tim
 
Tim, have you had a chance to add the interpolation filter options for pcm1521 (Plain DAC+) as we discussed some time ago?


Wysłane z iPhone za pomocą Tapatalk

Marek

Hi Marek,

Not yet but its on my TODO list for either a Moode 2.7 update or Moode 2.8 release.

Reason its been delayed is that I'm working with a cool new I2S DAC (soon to be released) that is based on Wolfson WM8742 and this chip has some interesting options that I'm planning to integrate into the Customize screen. Doing this requires overhauling the "chip options" feature and thus a fair bit of coding 🙂

-Tim
 
hello tim,
you have made a really nice piece of software, best player for the pi
sounds very good, very responsive, runs very stable and low resource use

i have no files with a genre-tag. i see only "unknown" under "GENRES".
changed the "panels.css", so "GENRES" vanishes, but even if i make the "panels.css"->ro, moode overrides it
no elegant way, but works (attached pic)
maybe you could give me a hint to do it better

thanks in advance
puxxi2003

Code:
[I]/var/www/css/panels.css[/I]
#lib-artist-header {
    position: absolute;
    top: 220px; [COLOR=Red][B]-----> deleted[/B][/COLOR]
    width: 20%;
    border-right: 3px solid #212D39;
}
......
}
#lib-genre {
    position: absolute;
    overflow: auto;
    top: 20px;
    width: 20%;
    height: 200px;[B][COLOR=Red] -----> changed to 0px[/COLOR][/B]
    border-right: 3px solid #212D39;
    -webkit-overflow-scrolling: touch; /* TC testing */
}
#lib-artist {
    position: absolute;
    overflow: auto;
    top: 240px[B]; [COLOR=Red]-----> changed to 20px[/COLOR][/B]
    width: 20%;
    height: 67%; [COLOR=Red][B]-----> changed to 97%[/B][/COLOR]
    margin-top: 0px;
    border-right: 3px solid #212D39;
    -webkit-overflow-scrolling: touch; /* TC testing */
}
tips to "lower" the power consumption of the pi
Code:
/opt/vc/bin/tvservice -o
Powering off HDMI

Code:
 /opt/vc/bin/vcgencmd display_power 0
display_power=0
dont know if both commands nesseary (should save 5-20mA)
#####
a little programm to disable the usb ports
https://github.com/codazoda/hub-ctrl.c
Code:
sudo ./hub-ctrl -h 0 -P 2 -p 0
to disable all 4 usb-ports, eth0 still work

i need no usb, all my music is on my nas
don't know if or how much it really lowers the power consumption

i have a out.sh, i call in rc.local
 

Attachments

  • moode3.jpg
    moode3.jpg
    32.7 KB · Views: 237
Hello,

Firstly In the Absense of body language and Tone of voice I do want to say that my question is sincere and not sarcastic.

Assuming there is a suitably sized buffer to eliminate the possibility of the rpi playing music faster than your source can be read, is there any substance to this theory of sound quality differences?

Please do accept its s sincere question from an open minded person but my understanding of how "computers work" cannot work this out?

I understand if the CPU or other subsystems were running at or close to 100% of their capacity then in a non RTOS the audio is going to suffer.

I am only a beginner in the world of audio (Hifi audio) but I've got a strong IT background. My PI is connected via Ethernet and my USB DAC obviously shares its bandwidth with the Ethernet controller, infact i have the smsc95xx.turbo_mode=N option set which I believe reduces bandwidth slightly but decreases latency on the USB / ETH bus.

I stream "lossless" 16/44.1 over AirPlay from my phone to router (wifi) to PI (Ethernet) which then outputs to an asynchronous USB DAC.

Audio dropouts are extremely rare so just to increase my own knowledge would be interested if you could point me to any info regarding the "theory" 🙂

Hope this came across as intended 🙂

LTD

Thank you for carefully stating your question. It's a perfectly legitimate question which, when asked more bluntly, has sparked numerous pointless shouting matches over the years.

I'm a fairly pragmatic person (I hope) who worked for a scientific software company in a technical position for 34 years. We all have a sense of how we think things should work usually based on a rational framework factually anchored. In this case, as in many others, the largely valid framework is accompanied by exceptions arising from levels of complexity in the details that are rarely considered in the construction of the framework.

The minimalist approach first came to my attention about 8-9 years ago when a fellow (username cics) developed and documented a minimalist Windows-based server/player system called CMP. It was very well regarded by those who built their own, and many different player/server/renderer systems have been designed since. Computer Audiophile's CAPS, Daphile, Archphile, Volumio, Rune, Wtfplay, and Moode are all examples that attempt to strip away unneeded general-purpose background and interface processes and concentrate the machine's operations on the player needs.

At the heart of this concentration is the opinion, supported by many peoples' experience, that a very lightly loaded processor, will produce better sound quality than the same processor more heavily loaded. This is an open question.

How can this be? There seem to be two general avenues -- timing deficiencies (jitter mostly), and noise. I won't elaborate on these as I would probably just cause more confusion, but my own experience has always rewarded better power supplies and other efforts to reduce out-of-band noise.

In the Moode/RPi case, the argument is that, the SD card is the fastest, most direct filesystem, that files played from that location would generate less general system load than the slower, compromised ethernet/USB subsystem. I have no way of proving that, but my ears can provide one human-error-prone soft data point.

Not much meat here, but I hope this fills in a little context.

Skip