Moode Audio Player for Raspberry Pi

Feature request: would it be possible to show the bit depth, sample rate, and bit-rate of the current file playing on the playback screen?

Also, solved most of the issues with embedded album artwork not showing, but hi-res music files (FLAC) bought from HDtracks or the Pono store don't show artwork, even though I confirmed the art is embedded in the files. Tim, I'll email you a couple tracks for testing if that's ok.

Hi,

I tested the 3 tracks and Mediainfo indicates that cover art is embedded and format is jpeg however Zend reader that Moode uses for extracting cover art is not able to decode the embedded images.

I converted the tracks to ALAC format using XLD and the cover art was migrated and displays in Moode.

-Tim
 
Hi,

I tested the 3 tracks and Mediainfo indicates that cover art is embedded and format is jpeg however Zend reader that Moode uses for extracting cover art is not able to decode the embedded images.

I converted the tracks to ALAC format using XLD and the cover art was migrated and displays in Moode.

-Tim

Thanks for checking into this Tim!

The trick with doing the "folder.jpg" method is programs such as Album Art Downloader skips these music files because it see them as as already having the art embedded. We need to manually download cover art for each album as "folder.jpg", or convert all Pono/HDtracks files to ALAC... not a huge deal, but requires some time for big collections.

Not your problem or issue with the MoOde player, I understand. But if there was a way for the Playback screen's art window to retrieve and display the first return from Google Images using the Artist + Album Title as a search for files with missing artwork, that would be HUGE. ;)
 
feature backlog?

I like it, I like it a lot. TR1 working smoothy on my PI 3 with a HiFiBerry Dac + Pro. Configuration through AP mode was a breeze. Good stuff!

Did have to make a small addition to playerlib.php to ensure my preference for having replaygain turned on (well to auto really). An apt-get and corresponding config edit took care of mpdscribble so last.fm integration works as well. All in all, smooth sailing, so nothing but respect and compliments.

I am however wondering if replaygain as an UI option and the possible inclusion of mpdscribble are still on your backlog. If not its all good. I may totally try to reverse engineer the adding of an option but thats a me thing :) If they are still on the backlog somewhere.. I will just leave it alone for now :)
 
Feature request: would it be possible to show the bit depth, sample rate, and bit-rate of the current file playing on the playback screen?

Also, solved most of the issues with embedded album artwork not showing, but hi-res music files (FLAC) bought from HDtracks or the Pono store don't show artwork, even though I confirmed the art is embedded in the files. Tim, I'll email you a couple tracks for testing if that's ok.

Hi Dave,

After checking it looks like I've already made code snippets for the sample rate display feature so this should appear in TR2 :)

-Tim
 
I like it, I like it a lot. TR1 working smoothy on my PI 3 with a HiFiBerry Dac + Pro. Configuration through AP mode was a breeze. Good stuff!

Did have to make a small addition to playerlib.php to ensure my preference for having replaygain turned on (well to auto really). An apt-get and corresponding config edit took care of mpdscribble so last.fm integration works as well. All in all, smooth sailing, so nothing but respect and compliments.

I am however wondering if replaygain as an UI option and the possible inclusion of mpdscribble are still on your backlog. If not its all good. I may totally try to reverse engineer the adding of an option but thats a me thing :) If they are still on the backlog somewhere.. I will just leave it alone for now :)

Hi,

Yes, mpdscribble still on TODO list but mail me your install/config recipe for this and I'll include it in TR2 along with an input field on MPD config screen for replay gain setting.

-Tim
 
Last edited:
Hi,

Yes, mpdscribble still on TODO list but mail me your install/config recipe for this and I'll include it in TR2 along with an input field on MPD config screen for replay gain setting.

-Tim

Good news on the replaygain :)

Looked into things with scrobbling a little further. Seems mpdscribble is not updated atm and does not support the 2.0 scrobbling protocol. Fortunately, as usual with mpd, there is an alternative : mpdas. Seems to be working a little more reliably too.

Now if I could get it work as a service I would be golden. Works fine when just put in the background from the CLI, but craps out with a logic error when systemclt tries to start it.. I have been away from linux for too long :) If I figure it out I will update you.
 
Possibly since I enabled hardware volume the L and R channels have become swapped. I know it was originally correct because I tested with the included test file.

Hi,

Just following up on this issue. It appears this is a bug in Linux kernel affecting Pi-3 + I2S interface + 16 bit audio and has been fixed in latest 4.4.8 kernel according to rpi-update commit log.

The 4.4.8 kernel should be available via "sudo rpi-update" so u might want to try updating. I'm going to update to this or later kernel for TR2.

Here are reference links:

I2S channel swap on RPi3 on 16-bit playback
https://github.com/raspberrypi/linux/issues/1417

https://github.com/Hexxeh/rpi-firmware/commits/master
kernel: Bump to 4.4.8 …
popcornmix committed 4 days ago

kernel: vc4-kms-v3d updates for 4.4
popcornmix committed 4 days ago

Regards,
Tim
 
Last edited:
Good news on the replaygain :)

Looked into things with scrobbling a little further. Seems mpdscribble is not updated atm and does not support the 2.0 scrobbling protocol. Fortunately, as usual with mpd, there is an alternative : mpdas. Seems to be working a little more reliably too.

Now if I could get it work as a service I would be golden. Works fine when just put in the background from the CLI, but craps out with a logic error when systemclt tries to start it.. I have been away from linux for too long :) If I figure it out I will update you.

Reinstalled, expanded the SD, updated.. recompiled mpdas, created a systemctl service..and then.. it will only work if I start it manually from the CLI because it insist on trying to load before mpd regardless of wants, requires or afters.. :(

Ideas anyone?
 
Reinstalled, expanded the SD, updated.. recompiled mpdas, created a systemctl service..and then.. it will only work if I start it manually from the CLI because it insist on trying to load before mpd regardless of wants, requires or afters.. :(

Ideas anyone?

Hi,
Moode worker daemon starts MPD during its own startup phase. Ssh pi@moode (pwd=raspberry) and ./mlog.sh to print /var/log/moode.log to see where MPD is started.

Does mpdas need to have MPD running before it starts or vis versa?

-Tim
 
Hi,
Moode worker daemon starts MPD during its own startup phase. Ssh pi@moode (pwd=raspberry) and ./mlog.sh to print /var/log/moode.log to see where MPD is started.

Does mpdas need to have MPD running before it starts or vis versa?

-Tim

Aha! Success!
Mpdas needs to have MPD running, so adding the systemctl start mpdas to the worker solves the startup problem and its scrobbling away :)

So what did I do?


  1. ssh'd in
  2. did a wget to get the mpdas source from http://www.50hz.ws/mpdas/mpdas-0.4.1.tar.gz
  3. extracted and did a sudo make install (assume sudo for most actions :) )
  4. created a mpdasrc at /usr/local/etc (default location, can be changed in the makefile, or different config can be specified with a startup option)
  5. Content for the mpdasrc:
    Code:
    username: <last.fm username>
    password: <last.fm password, md5 hashed>
    runas=mpd
    debug=1
    md5 hash of pwd can be created with:
    Code:
    echo -n 'PASSWORD' | md5sum | cut -f 1 -d " "
  6. Tested mpdas worked by starting it from the CLI with a sudo mpdas
  7. Worked, so removed the debug=1 line from the mpdasrc
  8. Created an mpdas.service file at /lib/systemd/system containing:
    Code:
    [Unit]
    Description=mpdas - last.fm scrobbler for mpd
    
    [Service]
    ExecStart=/usr/local/bin/mpdas --no-daemon
    
    [Install]
    WantedBy=multi-user.target
    Think the [Install] may not be needed since I am starting it from the worker..
  9. In the file /var/www/command/worker.php below the lines
    Code:
    // start mpd
    sysCmd("systemctl start mpd");
    workerLog('worker: MPD started');
    I added some lines to start mdas ending up with:
    Code:
    / start mpd
    sysCmd("systemctl start mpd");
    workerLog('worker: MPD started');
    
    // start mpdas
    sysCmd("systemctl start mpdas");
    workerLog('worker: mpdas started');
  10. Rebooted.. works
 
Playing MP3 Files without resampling.

Using Moode 2.6 TR1 on a Pi3 and USB audio device, it will only play mp3s and mp4s with resampling turned on. With resampling turned off mp3s play with an annoying regular popping sound and MP4s play with a loud white noise sound and faint music in the background. It would be nice if the bit depth, bit rate and sample rate could be preserved. I can record samples of each, if you need to hear them.
 
Aha! Success!
Mpdas needs to have MPD running, so adding the systemctl start mpdas to the worker solves the startup problem and its scrobbling away :)

So what did I do?


  1. ssh'd in
  2. did a wget to get the mpdas source from http://www.50hz.ws/mpdas/mpdas-0.4.1.tar.gz
  3. extracted and did a sudo make install (assume sudo for most actions :) )
  4. created a mpdasrc at /usr/local/etc (default location, can be changed in the makefile, or different config can be specified with a startup option)
  5. Content for the mpdasrc:
    Code:
    username: <last.fm username>
    password: <last.fm password, md5 hashed>
    runas=mpd
    debug=1
    md5 hash of pwd can be created with:
    Code:
    echo -n 'PASSWORD' | md5sum | cut -f 1 -d " "
  6. Tested mpdas worked by starting it from the CLI with a sudo mpdas
  7. Worked, so removed the debug=1 line from the mpdasrc
  8. Created an mpdas.service file at /lib/systemd/system containing:
    Code:
    [Unit]
    Description=mpdas - last.fm scrobbler for mpd
    
    [Service]
    ExecStart=/usr/local/bin/mpdas --no-daemon
    
    [Install]
    WantedBy=multi-user.target
    Think the [Install] may not be needed since I am starting it from the worker..
  9. In the file /var/www/command/worker.php below the lines
    Code:
    // start mpd
    sysCmd("systemctl start mpd");
    workerLog('worker: MPD started');
    I added some lines to start mdas ending up with:
    Code:
    / start mpd
    sysCmd("systemctl start mpd");
    workerLog('worker: MPD started');
    
    // start mpdas
    sysCmd("systemctl start mpdas");
    workerLog('worker: mpdas started');
  10. Rebooted.. works

Hi,

Nice :)

To integrate into TR2 I'll need to test with real last.fm account so email tim at moodeaudio dot org in case I need assistance with last.fm.

Regards,
Tim
 
Using Moode 2.6 TR1 on a Pi3 and USB audio device, it will only play mp3s and mp4s with resampling turned on. With resampling turned off mp3s play with an annoying regular popping sound and MP4s play with a loud white noise sound and faint music in the background. It would be nice if the bit depth, bit rate and sample rate could be preserved. I can record samples of each, if you need to hear them.

Hi,

What USB audio device are u using?

-Tim
 
As a followup to my previous report on r26-tr1, I've now tried it on a new RPi 3 with the same HiFiBerry DAC+. Works great, as I've come to expect.

Two nitpicks -

1) It occurred to me this time around that the final step in the initial setup, 5. VERIFY AUDIO PLAYBACK, ought to fail if one gets this far setting up in AP mode. Until the Moode Player is configured for WiFi connection (a later step), it won't be able to reach the Internet and, hence, any streaming-radio source chosen in this step. Your new Stereo Test Sound will work at this point, of course, and a radio station will if setting up in Ethernet mode (assuming there is a route to the real world!).

2) When I go through the network configuration and hit "Apply", I get a pop-up pane in the upper right corner which reads "Network config updated" preceded by a check mark and followed by "play/pause" and "exit" icons. These latter seem out of place.

Regards,
Kent