Moode Audio Player for Raspberry Pi

Its been awhile since my last post here, I've been busy with a host of projects but I have finally built the small dedicated Audio streamer custom designed with MoOde in mind. The Streamer is targeted at USB Async DAC's* :)

* Tested with my USB DAC designs for AudioLab and ProJect.

We are still working on the APi so the PCB pictured below has a host of extra debug connections...

Dropbox - MoOde streamer.jpg

The hardware is working - we are currently creating the APi to control the board over a UART channel.

We added current and voltage monitoring on the USB ports which can be read back via the APi / UART channel and a "Detoxed" USB output for DAC connection with De-Jittered, RF filtered USB port and a clean 5.2V to power "self powered" USB DAC's.

The DAC's 5.2V power can also be disabled via the APi.

Does the current standard MoOde build include the dtblob for the RPI CM3 module?

I just saw your board and it is a nice one but it's my guess this is V1.00.. also I posted a message on the link that is shared.

what my personal choice is to have a TAS5756M ( audio amp), Optical Out, FM terrestrial chip ( SI4705) , built in storage upgradeable, Compute Module, HDMI out... ( this was my dream for RPI based media center ) and a classic app for MoOde, i have a friend who makes games for iOS.
 
@PIERRICK

I don't use a PC so others may be of more help. However I believe people recommend Etcher for copying the Raspbian .img file onto the sd card, and then Putty for ssh into the Pi for the build.

The Raspberry Pi site can also be a resource for hoto info with things like installing the image, programs to use, how to SSH into the Pi... etc.

As a fellow Win 10 user, here's what I've been using. I use one of the SD formatter programs recommended at the Raspbian site, forget which. Etcher as the image writer, works great. Not sure if you need to pre format when working with Etcher, but better safe than sorry.

A note on Etcher I've been meaning to share, you don't need to unzip the image file, it will open it and write to the SD in one step! You dont have to unzip the couple gig image, which takes a bit of time, and keep the very large unzipped images on disk. This I hope will get back to DRONE7's nice procedure post, that often gets pointed to.

Finally, I've used PUTTY or KITTY, as the SSH terminal program, occasionally something more exotic, but there's no need. Also some pages out there on basic SSH login instructions with PUTTY on the RPi site and other places. That can help a lot when your new to remote terminal logins.

Hope that helped...
 
Hi everyone,

One of the librespot devs here, just came across this project, and first impressions are that it's impressive :) With regards to the passt few mentions of librespot on here, we're working on maturing it a bit, since it was still a somewhat immature project when we started working on it again about a month ago. We have, for the most part, ironed out the major bugs, with one of the few exceptions being the one that you encountered above. The issue isn't actually the switching (at least to the best of our knowledge), but rather due to the networking session disconnecting, and reconnection logic not yet having been implemented. This was identified in librespot crashes - main thread panic * Issue #103 * librespot-org/librespot * GitHub and is actively being tracked in Rewrite the session handling logic * Issue #134 * librespot-org/librespot * GitHub. We should get around to implementing a fix in the not too distant future.

With regards to providing binaries and making it easier to use, we're currently cleaning up the codebase in preparation for publishing the code to crates.io (the rust package manager). Once this is done, we'll be looking to start treating librespot more as an internal library, for integration into other codebases, with the aim of fewer (breaking) changes and a more reliable versioning system. At the same time, we will be focusing on librespotd, a standalone daemon that other programs can communicate with to add Spotify Connect functionality to their applications, or to run as a standalone program. librespotd will be available at https://github.com/librespot-org/librespotd (it's just a placeholder atm), and will provide functionality to make it easier to interface with, such as a proper interface for retrieving metadata, controlling playback, and listening for change events. Librespotd will be the program that gets the precompiled binaries, and will be distributed through the standard means (PPA, Github Releases, etc.) that should make it easier to integrate with on an ongoing basis.

This is likely a few months off, but in the meantime, if there is a more pressing question/feature/bug you can either file an issue here Issues * librespot-org/librespot * GitHub or jump into Gitter to chat directly, found here: https://gitter.im/librespot-org/spotify-connect-resources. Drop us a line there if you have any questions :)

Hi,

Nice! and many thanks for continuing plietar's wonderful work and saving it from the valley of abandoned projects :)

Summer is looking good!

-Tim
 
Re: Librespot Status

Hi guys,

Thanks for the warm welcome. Not looking to cause any arguments, just thought I'd give you guys a quick status update since there is quite a bit of traffic to the repo from here, and I recently just gave this a spin over Volumio.

@JohnW thanks for the offer of hardware, I may take you up on that if there are any Moode-specific features that need to be tested, but hopefully we can write software that works across everything without needing testing on special hardware. What hardware are you making out of interest? I assume a dedicated board that will run Moode?

@TimCurtis No problem, I think quite a few people want Spotify Connect support in their devices, so hopefully the project shoud remain actively maintained for the forseeable future. As mentioned previosly, drop us a line in Gitter if you encounter any bugs in the meantime.

S.
 
Hey Guys, I need some help with AirPlay. I am trying to run AirPlay on RP-3B with a IQaudio digi amp hat. It works great every time for hours with a old iPad I have but when I try to run it with a iPhone 7 or 8 is when the trouble begins. It plays sometimes for about 10 minutes and then starts popping, crackling and cutting out and sometimes it won't play at all. The iPhone seems to recognize the RP as a AirPlay device but ends up with a very unstable connection if any at all. AirPlay is the only renderer turned on with all the setting set at defaults. Do I need to change some of these setting within the AirPlay renderer? Any ideas on this?
 
Hi everybody.

I am trying to build Moode 4 on a new Allo DigiOne, but it is failing with this error:

Code:
** Compile Upexplorer
Cloning into 'libupnppsamples-code'...
fatal: unable to access 'https://@opensourceprojects.eu/git/p/libupnppsamples/code/': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
** Error: Git clone failed
** Error: image build exited
** Error: reboot to resume the build

Any idea how I could resolve this?
I tried three times already, with the same result.
 
Last edited:
Hi everybody.

I am trying to build Moode 4 on a new Allo DigiOne, but it is failing with this error:

Code:
** Compile Upexplorer
Cloning into 'libupnppsamples-code'...
fatal: unable to access 'https://@opensourceprojects.eu/git/p/libupnppsamples/code/': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
** Error: Git clone failed
** Error: image build exited
** Error: reboot to resume the build

Any idea how I could resolve this?

@franz159

You can't. I just checked and found the security certificate for this site expired yesterday. The opensourceprojects.eu maintainers have to fix the problem.

[edit]
Sorry, I should have done my homework first. There is a way to override this problem if you are comfortable editing the mosbuild_worker.sh script.

Edit the line
Code:
git clone [url]https://@opensourceprojects.eu/git/p/libupnppsamples/code[/url] libupnppsamples-code
to read instead
Code:
git -c http.sslVerify=false clone [url]https://@opensourceprojects.eu/git/p/libupnppsamples/code[/url] libupnppsamples-code
Then rerun the script.

This is a hack. It should be used only until the site certificate gets fixed.

Regards,
Kent
 
Last edited:
@franz159

You can't. I just checked and found the security certificate for this site expired yesterday. The opensourceprojects.eu maintainers have to fix the problem.

[edit]
Sorry, I should have done my homework first. There is a way to override this problem if you are comfortable editing the mosbuild_worker.sh script.

Edit the line
Code:
git clone [url]https://@opensourceprojects.eu/git/p/libupnppsamples/code[/url] libupnppsamples-code
to read instead
Code:
git -c http.sslVerify=false clone [url]https://@opensourceprojects.eu/git/p/libupnppsamples/code[/url] libupnppsamples-code
Then rerun the script.

This is a hack. It should be used only until the site certificate gets fixed.

Regards,
Kent

...testing it now....

UPDATE: and it worked!!! Thanks a lot!
 
Last edited:
Hey Guys, I need some help with AirPlay. I am trying to run AirPlay on RP-3B with a IQaudio digi amp hat. It works great every time for hours with a old iPad I have but when I try to run it with a iPhone 7 or 8 is when the trouble begins. It plays sometimes for about 10 minutes and then starts popping, crackling and cutting out and sometimes it won't play at all. The iPhone seems to recognize the RP as a AirPlay device but ends up with a very unstable connection if any at all. AirPlay is the only renderer turned on with all the setting set at defaults. Do I need to change some of these setting within the AirPlay renderer? Any ideas on this?

What version of shairport-sync are u running?
 
Please help!

So, after trying to play with the bluetooth dongle and failing, I'm now not able to play anything. I disabled bluetooth and set audio output to the onboard audio device, but no luck. Whatever I do, mpd tries to output to bluetooth. I checked /etc/mpd.conf and I still have audio_output set to bluetooth. If I remove those lines and restart mpd, I get "ERROR: All audio outputs are disabled".

my mpd.conf looks like this:

Code:
root@moode:/home/pi# cat /etc/mpd.conf.orig
#########################################
# This file is automatically generated by
# the player MPD configuration page.
#########################################

music_directory "/var/lib/mpd/music"
playlist_directory "/var/lib/mpd/playlists"
db_file "/var/lib/mpd/database"
log_file "/var/log/mpd/log"
pid_file "/var/run/mpd/pid"
state_file "/var/lib/mpd/state"
sticker_file "/var/lib/mpd/sticker.sql"
user "mpd"
group "audio"
bind_to_address "any"
port "6600"
log_level "default"
restore_paused "yes"
auto_update "no"
follow_outside_symlinks "yes"
follow_inside_symlinks "yes"
zeroconf_enabled "yes"
zeroconf_name "Moode MPD"
mixer_type "software"
gapless_mp3_playback "yes"
replaygain "off"
volume_normalization "no"
audio_buffer_size "4096"
buffer_before_play "10%"
max_output_buffer_size "81920"
id3v1_encoding "UTF-8"
filesystem_charset "UTF-8"
max_connections "20"

decoder {
plugin "ffmpeg"
enabled "yes"
}

input {
plugin "curl"
}

resampler {
plugin "soxr"
quality "very high"
threads "1"
}

audio_output {
type "alsa"
name "ALSA default"
device "hw:0,0"
dop "no"
}

audio_output {
type "alsa"
name "ALSA crossfeed"
device "crossfeed"
dop "no"
}

audio_output {
type "alsa"
name "ALSA parametric eq"
device "eqfa4p"
dop "no"
}

audio_output {
type "alsa"
name "ALSA graphic eq"
device "alsaequal"
dop "no"
}

audio_output {
type "alsa"
name "ALSA bluetooth"
device "btstream"
}

Also, I attached scrennshots with the settings in the web UI.
 

Attachments

  • 2018-02-25 20_57_30-moOde Player.png
    2018-02-25 20_57_30-moOde Player.png
    5 KB · Views: 256
  • 2018-02-25 20_58_04-moOde Player.png
    2018-02-25 20_58_04-moOde Player.png
    36.3 KB · Views: 251
Last edited:
Please help!

So, after trying to play with the bluetooth dongle and failing, I'm now not able to play anything. I disabled bluetooth and set audio output to the onboard audio device, but no luck. Whatever I do, mpd tries to output to bluetooth. I checked /etc/mpd.conf and I still have audio_output set to bluetooth. If I remove those lines and restart mpd, I get "ERROR: All audio outputs are disabled".

my mpd.conf looks like this:

Code:
root@moode:/home/pi# cat /etc/mpd.conf.orig
#########################################
# This file is automatically generated by
# the player MPD configuration page.
#########################################

music_directory "/var/lib/mpd/music"
playlist_directory "/var/lib/mpd/playlists"
db_file "/var/lib/mpd/database"
log_file "/var/log/mpd/log"
pid_file "/var/run/mpd/pid"
state_file "/var/lib/mpd/state"
sticker_file "/var/lib/mpd/sticker.sql"
user "mpd"
group "audio"
bind_to_address "any"
port "6600"
log_level "default"
restore_paused "yes"
auto_update "no"
follow_outside_symlinks "yes"
follow_inside_symlinks "yes"
zeroconf_enabled "yes"
zeroconf_name "Moode MPD"
mixer_type "software"
gapless_mp3_playback "yes"
replaygain "off"
volume_normalization "no"
audio_buffer_size "4096"
buffer_before_play "10%"
max_output_buffer_size "81920"
id3v1_encoding "UTF-8"
filesystem_charset "UTF-8"
max_connections "20"

decoder {
plugin "ffmpeg"
enabled "yes"
}

input {
plugin "curl"
}

resampler {
plugin "soxr"
quality "very high"
threads "1"
}

audio_output {
type "alsa"
name "ALSA default"
device "hw:0,0"
dop "no"
}

audio_output {
type "alsa"
name "ALSA crossfeed"
device "crossfeed"
dop "no"
}

audio_output {
type "alsa"
name "ALSA parametric eq"
device "eqfa4p"
dop "no"
}

audio_output {
type "alsa"
name "ALSA graphic eq"
device "alsaequal"
dop "no"
}

audio_output {
type "alsa"
name "ALSA bluetooth"
device "btstream"
}

Also, I attached scrennshots with the settings in the web UI.

How are u able to log in as root since its completely disabled in Raspbian Stretch?

root@moode:/home/pi# cat /etc/mpd.conf.orig
 
Tim, I'm having some trouble, and can't seem to get the LMS server to see the Pi running moOde v4 and a HiFiBerry DAC+Pro XLR. I have both Squeezelite and UPnP renderers and the UPnP plugin is installed on the server also.

I'm guessing there's some simple thing I've overlooked, but damned if I can find it.

What am I doing wrong?