Moode Audio Player for Raspberry Pi

Hi,

The LCD update engine runs a script (typically Python) whenever the currentsong.txt file is updated. The Engine provides the event loop, and is very efficient. It only executes the script when the file changes as opposed to continuous polling.

Currentsong.txt (/var/local/www/currentsong.txt) is generated by turning on "Metadata file" right above the setting for LCD update engine. If you turn on LCD update engine then Metadata file will also be turned on, but it can be turned on/off independent of LCD update engine.

Write a Python script to parse currentsong.txt and then update the LCD. Don't include any polling loops in the Py script.

The timing is as follows:

- moOde UI changes
- currentsong.txt updated in <= 3 secs

-Tim
 
Cracking noise on USB DAC

Well, have finally got off my posterior and upgraded from 3.7 to 3.8.4.

Have only spent a day or so, things seem good, interface a bit snappier, but I am having a bit of cracking and noises that I didn't have before. DAC is a Creative Labs X-fi HD sound card. Using standard USB setup, the USB higher power and the USB2 mode switches on. As I recall, the card didn't work without the USB switch, was fine after that.

After the new version, I get crackles and hesitations. Things I haven't tried yet, moving closer to the router (am running over WiFi), playing disk rather than Net radio stations, etc.

Also switched to the LL kernel, like I was running before, didn't seem to change things. And, hadn't been running SOX, as well as trying it. Not much difference, maybe worse with higher load. Running a RPI 2B. Load 70% CPU or less, worst case.

About all I can think of, for now.

Anything I can do for diagnostics to determine WiFi link quality, or how to separate the problem from one part of things to another?

Been enjoying Moode a lot, it really is a great piece of work...
 
Last edited:
Display options for moode with rPi + digiAMP+ board

I've got rPI A+ and a digiAMP+ working quite nicely. I'd like to add a rotary encoder (got working) and a display of some sort so I can 3D print a nice enclosure.

I'd had a read of this rather large thread and find references to an i2C display.

Are there any formal instructions for how to get this to work?

What sorts of things can be displayed on it?

Is there likely to be a clash between such a display and the audio board?

Thanks for the help (first post here!)

Cheers
 
Thanks Tim for your incredible work!
I'm using the player now in all my raspberry projects, works perfect and it is the best player for me in all kinds (performance, sound, adjustment options)

Thanks also for implementing the driver for my DIAL-DAC.
I recommend advanced kernel and upsampling for best performance.

More Information about my DAC you will find here:
DIAL audio - DIY - DIAL audio - DIY

Cheers
Alex
 
Hi,

Write a Python script to parse currentsong.txt and then update the LCD. Don't include any polling loops in the Py script.

-Tim



Thanks - Great! I'm new to RP3 programming - is it as simple as below?
(adding the appropriate parsing code of course)


import lcddriver
display = lcddriver.lcd()
display.lcd_display_string("line 1 string", 1)
display.lcd_display_string("line 2 string", 1)




Do I need an "address" in the lcddriver.lcd(0x??)
 
Hi guy's...

First of, bare with me im a NOOB.

I've been trying to put together a system with the following.

Pi3 - allo digione - rasptouch case with pi screen.

I image the mood file to sd.
Start it up. Gets pas the login. And then my problems starts.

I can get further than this. It needs some sort of command. I've been trying to type in everything listed on the setup guide but only gets bad commands.

How on earth can I get I going?

Tried rune, works
Tried kodi, works.

But moode just won't. And I really wanna get I going as im a big believer in simple is better when it come to audio.

Hope you guy's can make my day. Many thanks :)
 
Thanks for the excellent summary, soundcheck!

1. The standard HifiBerryDACPlus driver is not supporting SRs >192k .
2. 384k might work because the base PCM512x codec in the standard kernel supports it nowadays. And the HifiBerry driver is not overriding it.
The HifiBerryDACPlus makes use of that codec.
3. 352k8 is not supported by the base PCM512x codec. Which is a long
standing flaw!
This issue gets patched and is solved by the Moode advanced kernels
E.g. Allo Boss will work perfectly!
4. However. The HifiBerryDACPlus driver would have to be patched by HifiBerry accordingly!
Even if the codec is patched in the advanced kernels, the HifiBerry driver itself won't support 352k8!
5. I doubt that the HifiBerry folks will change that, since the HW has not
shown reliable performance on SRs > 192kHz in the past.
They probably also missed to limit their driver to 192k after the 512x codec was changed to support 384k !
The HifiBerryDACPlus HW capabilities might have changed on recent revisions. You tell us.

IMO. Better buy an e.g. Allo Boss - its HW reliably supports all SRs up to 384k.


I hope this clarifies earlier discussions.

As I understand it, the module in MPD that does the DSD conversion is DSD2PCM which outputs at a fixed sample rate of 352.8 kHz. Then MPD will down-convert the sample rate (or not) depending on the device driver.

From your summary, the PCM512x codec has been patched to allow these higher sample rates because the DAC chip is capable of them and Hifiberry are using this in their driver, however the implementation on the Hifiberry DAC+Pro does not seem to handle 352.8 kHz and so it is clocking it at 384 kHz. This is a big issue for me as I am in the process of ripping my SACDs to dsf files.

So for those of us using the DAC+Pro, we will need to ask Hifiberry to patch their driver to allow correct DSD64 playback with MPD, perhaps to tell MPD to resample to 176.4 kHz before the PCM stream is sent to the DAC.

Otherwise we will need to use workarounds such as fixed resampling via SOX (is there an adaptive option, say to tell SOX only to resample 352.8k?) or to ditch the DAC+Pro and buy other hardware, as you suggest.

Thanks,
Richard
 
Hi Tim,

I recently updated moode from 3.7 to 3.8.4 and found that its dlna renderer does not work in my environment in 3.8.4.
I use MusicBee as a upnp server and controller.
Do you have any idea regarding this problem?
Was some programs for the dlna renderer updated in 3.8.x?

Note: if I use foobar2k or volumio, this does not occur.
 
Thanks for the excellent summary, soundcheck!



As I understand it, the module in MPD that does the DSD conversion is DSD2PCM which outputs at a fixed sample rate of 352.8 kHz. Then MPD will down-convert the sample rate (or not) depending on the device driver.

From your summary, the PCM512x codec has been patched to allow these higher sample rates because the DAC chip is capable of them and Hifiberry are using this in their driver, however the implementation on the Hifiberry DAC+Pro does not seem to handle 352.8 kHz and so it is clocking it at 384 kHz. This is a big issue for me as I am in the process of ripping my SACDs to dsf files.

So for those of us using the DAC+Pro, we will need to ask Hifiberry to patch their driver to allow correct DSD64 playback with MPD, perhaps to tell MPD to resample to 176.4 kHz before the PCM stream is sent to the DAC.

Otherwise we will need to use workarounds such as fixed resampling via SOX (is there an adaptive option, say to tell SOX only to resample 352.8k?) or to ditch the DAC+Pro and buy other hardware, as you suggest.

Thanks,
Richard

Hi Richard,

MPD/SoX does not support "adaptive resampling".

-Tim
 
Hi Tim,

I recently updated moode from 3.7 to 3.8.4 and found that its dlna renderer does not work in my environment in 3.8.4.
I use MusicBee as a upnp server and controller.
Do you have any idea regarding this problem?
Was some programs for the dlna renderer updated in 3.8.x?

Note: if I use foobar2k or volumio, this does not occur.

Hi,

Provide details regarding your symptom "dlna renderer does not work" for example logs showing errors, etc.

-Tim