Moode Audio Player for Raspberry Pi

Yep for the library ....though I thought everyone went sideways for this...:)

I think the scanning is expanded for the paid version...it certainly picked up my new wireless address automagically after my EOP devices died and I had to install an access point..:) (is there a 'scan' option on your free trial or does it only show the previous ip address ? Hit the 'Host' button and see if the scan option appears...)

Interesting.

Yes, the scan option appears but it doesn't return a correct address. I'm not interested enough to pay for the premium version in order to test it. I already use 'fing' on my Android devices to find the IP address(es, actually; I have more than one player) and then I create bookmarks. Easy peasy.

Still, I can see how others could find Pi Music a useful app.

Regards,
Kent
 
Hi,

Heres a quick screen shot of SSID scanner.

-Tim
 

Attachments

  • moode-r32-ssid-enum.png
    moode-r32-ssid-enum.png
    127.1 KB · Views: 351
Rafa, I'm puzzled by your closing sentence here. You asked if there is a quick way to configure Spotify Connect...
Regards,
Kent
Kent, I wasn't trying to put off any genuine effort to help. But if I don't know the answer to a question of someone asking for pointers, I refrain from posting something of little use.

When you say 'certainly not here', I'm sorry but it was precisely from this very thread where I found he little info I have:

http://www.diyaudio.com/forums/pc-based/271811-moode-audio-player-raspberry-pi-395.html#post4778019

So I was asking if someone that has successfully achieved this would chime in with further pointers. If the answer is "no one has tried", yeah, I'll try and figure it out by myself. And, hopefully, create a useful how-to to give back to the community that helps so much.

I felt it was a bit premature given the little help (if any) it provided. Sorry if that wasn't the case and, as you, others feel that it was the appropriate response.

English is not my main language, some subtleties may get lost both on my initial writings as well as my interpretations of what is being offered as help.

That said, it's not the first time that such contempt has been inferred by the posts here trying to 'help'.

Just my two cents.
Rafa.
 
Kent, I wasn't trying to put off any genuine effort to help. But if I don't know the answer to a question of someone asking for pointers, I refrain from posting something of little use.

When you say 'certainly not here', I'm sorry but it was precisely from this very thread where I found he little info I have:

http://www.diyaudio.com/forums/pc-based/271811-moode-audio-player-raspberry-pi-395.html#post4778019

So I was asking if someone that has successfully achieved this would chime in with further pointers. If the answer is "no one has tried", yeah, I'll try and figure it out by myself. And, hopefully, create a useful how-to to give back to the community that helps so much.

I felt it was a bit premature given the little help (if any) it provided. Sorry if that wasn't the case and, as you, others feel that it was the appropriate response.

English is not my main language, some subtleties may get lost both on my initial writings as well as my interpretations of what is being offered as help.

That said, it's not the first time that such contempt has been inferred by the posts here trying to 'help'.

Just my two cents.
Rafa.

te debo una disculpa, Rafa.

Two thousand posts to this forum have arrived in the year and a half since the one you cite. It obviously didn't register in my brain. *That doesn't excuse me for not taking the time to search the Moode thread for hits on Spotify.*

The relevant posts since then have been of the form "how do I make Spotify Connect" work with Moode, which suggests to me very few if any have replicated or confirmed the OP's procedure.

Having read the post you cite and the website referenced there, it does appear possible to glue the two together, but I'll let others who are invested in Spotify sort it.

The OP said he got the Fornoth/spotify-connect-web running in a chroot jail, one of the options for getting it running (see the README on https://github.com/Fornoth/spotify-connect-web), but conceded this might not have been necessary. He also said he had trouble with another option.

Seems like he stopped there. I don't see any posts from him dated after July 2016.

The good news is that there have been recent commits to the github project, so it's not a dead dodo. I still think that's a better place to ask questions since its developers are directly addressing Spotify Connect on the Raspberry Pi. Once you get that running, then you can explore how to link it with Moode.

Regards,
Kent

PS: I was a life-long researcher in applied science and engineering, but secretly, I think I always wanted to be a reference librarian. I respond much better to questions which explicitly cite the posts, blogs, etc., under discussion so I can chase down the details. That's just me. I'm sorry I came across roughly.
 
Mpd V 0.20.2 fails to compile, (for me)

Hi Tim,

I just spent several hours trying to compile version 0.20.2. Only after that, did I find this gem in version 0.20.0 change log:-
* switch the code base to C++14
- GCC 4.9 or clang 3.4 (or newer) recommended

I was using gcc 4.9.2, but the compile barfed on "illegal" syntax.

As a sanity check / system check I D/l'd mpd 19.21 and compiled it correctly.

I looked at the mpd bug list and found a comment by Cirrus that he would not be responsible for GCC not implementing C++14 correctly.

Reading web items about gcc and C++11 and C++14 and less than optimum agreement on standards fills me with wonder!

Question Do you know the best GCC or clang version to compile C++14 sources?

Anyone?

many thanks

Patrick
 
Hi Tim,

I just spent several hours trying to compile version 0.20.2. Only after that, did I find this gem in version 0.20.0 change log:-


I was using gcc 4.9.2, but the compile barfed on "illegal" syntax.

As a sanity check / system check I D/l'd mpd 19.21 and compiled it correctly.

I looked at the mpd bug list and found a comment by Cirrus that he would not be responsible for GCC not implementing C++14 correctly.

Reading web items about gcc and C++11 and C++14 and less than optimum agreement on standards fills me with wonder!

Question Do you know the best GCC or clang version to compile C++14 sources?

Anyone?

many thanks

Patrick

Hi Patrick,

moodeOS has both gcc and g++ compilers. gcc would be the default for .c files and g++ for .cxx files. MPD 0.20.2 is all .cxx and so g++ compiler is used.

Below is some output from 0.20.2 compile:

-Tim

pi@rp3:~/mpd-0.20.2 $ sudo ./configure --enable-database --enable-libmpdclient --enable-alsa \
.
.
.
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for gcc option to accept ISO C99... -std=gnu99
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
.
.
.
pi@rp3:~/mpd-0.20.2 $ sudo make
(CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/bash /home/pi/mpd-0.20.2/build/missing autoheader)
rm -f stamp-h1
touch config.h.in
cd . && /bin/bash ./config.status config.h
config.status: creating config.h
config.status: config.h is unchanged
make all-am
make[1]: Entering directory '/home/pi/mpd-0.20.2'
g++ -std=c++14 -DHAVE_CONFIG_H -I. -DNDEBUG -I./src -I/usr/include -DSYSTEM_CONFIG_FILE_LOCATION='"/usr/local/etc/mpd.conf"' -D_REENTRANT -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -D_GNU_SOURCE -pthread -g -O2 -fvisibility=hidden -fno-threadsafe-statics -fmerge-all-constants -ffast-math -ftree-vectorize -ffunction-sections -fdata-sections -Wall -Wextra -Wmissing-declarations -Wshadow -Wpointer-arith -Wcast-qual -Wwrite-strings -Wsign-compare -MT src/output/libmpd_a-Internal.o -MD -MP -MF src/output/.deps/libmpd_a-Internal.Tpo -c -o src/output/libmpd_a-Internal.o `test -f 'src/output/Internal.cxx' || echo './'`src/output/Internal.cxx
mv -f src/output/.deps/libmpd_a-Internal.Tpo src/output/.deps/libmpd_a-Internal.Po
g++ -std=c++14 -DHAVE_CONFIG_H -I. -DNDEBUG -I./src -I/usr/include -DSYSTEM_CONFIG_FILE_LOCATION='"/usr/local/etc/mpd.conf"' -D_REENTRANT -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -D_GNU_SOURCE -pthread -g -O2 -fvisibility=hidden -fno-threadsafe-statics -fmerge-all-constants -ffast-math -ftree-vectorize -ffunction-sections -fdata-sections -Wall -Wextra -Wmissing-declarations -Wshadow -Wpointer-arith -Wcast-qual -Wwrite-strings -Wsign-compare -MT src/output/libmpd_a-Registry.o -MD -MP -MF src/output/.deps/libmpd_a-Registry.Tpo -c -o src/output/libmpd_a-Registry.o `test -f 'src/output/Registry.cxx' || echo './'`src/output/Registry.cxx
mv -f src/output/.deps/libmpd_a-Registry.Tpo src/output/.deps/libmpd_a-Registry.Po
g++ -std=c++14 -DHAVE_CONFIG_H -I. -DNDEBUG -I./src -I/usr/include -DSYSTEM_CONFIG_FILE_LOCATION='"/usr/local/etc/mpd.conf"' -D_REENTRANT -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -D_GNU_SOURCE -pthread -g -O2 -fvisibility=hidden -fno-threadsafe-statics -fmerge-all-constants -ffast-math -ftree-vectorize -ffunction-sections -fdata-sections -Wall -Wextra -Wmissing-declarations -Wshadow -Wpointer-arith -Wcast-qual -Wwrite-strings -Wsign-compare -MT src/output/libmpd_a-MultipleOutputs.o -MD -MP -MF src/output/.deps/libmpd_a-MultipleOutputs.Tpo -c -o src/output/libmpd_a-MultipleOutputs.o `test -f 'src/output/MultipleOutputs.cxx' || echo './'`src/output/MultipleOutputs.cxx
mv -f src/output/.deps/libmpd_a-MultipleOutputs.Tpo src/output/.deps/libmpd_a-MultipleOutputs.Po
g++ -std=c++14 -DHAVE_CONFIG_H -I. -DNDEBUG -I./src -I/usr/include -DSYSTEM_CONFIG_FILE_LOCATION='"/usr/local/etc/mpd.conf"' -D_REENTRANT -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -D_GNU_SOURCE -pthread -g -O2 -fvisibility=hidden -fno-threadsafe-statics -fmerge-all-constants -ffast-math -ftree-vectorize -ffunction-sections -fdata-sections -Wall -Wextra -Wmissing-declarations -Wshadow -Wpointer-arith -Wcast-qual -Wwrite-strings -Wsign-compare -MT src/output/libmpd_a-SharedPipeConsumer.o -MD -MP -MF src/output/.deps/libmpd_a-SharedPipeConsumer.Tpo -c -o src/output/libmpd_a-SharedPipeConsumer.o `test -f 'src/output/SharedPipeConsumer.cxx' || echo './'`src/output/SharedPipeConsumer.cxx
mv -f src/output/.deps/libmpd_a-SharedPipeConsumer.Tpo src/output/.deps/libmpd_a-SharedPipeConsumer.Po
.
.
.
 
Tim:

On my Huawei Nexus 6P phone displaying in portrait mode the left column of the Library panel is missing. Rotating the phone into landscape mode gets me all three columns. I believe this is what befreediy means by "does not render so well". The Library panels displays just fine on my Google Nexus 9 tablet in either mode. Ya gotta love all these mobile devices and their different aspect ratios.

befreediy:

I just tried this app on my phone. Yes, it renders Moode without the browser frame but it has exactly the same problem with the Library panel as one might expect since it's processing the same pages served up by Moode.

Furthermore, the "host scanning" function in this app offered up a previously stored MoodeAP IP address (172.24.1.1) on my phone and not the Moode Audio Player's current IP address on my wireless LAN. It doesn't look like there's any built-in mDNS magic.

The free version is good for just 7 days. That should be long enough to make up your mind whether it's useful to you.

Regards,
Kent

I can live with the rendering limitation and also the fact that you have to search for the right IP address, but it is not "wife-proof", I tried it, but she likes the simplicity of runeaudio interface, while I like the possibilities and sound-quality of Moode player. Typical man/woman difference :)
 
Thanks. That worked. On the Android phone it does not render so well, especially the library does not show fully.

On the iPad mini, I had the same problem with moode.local not working, so I used the IP address. Here it renders well.

If I want to make it user-friendly, I probably need to take a fixed IP address for the Moode web-site and make a short-cut to this on the iPad mini.

Any advice to make this user-friendly is appreciated !

Btw: sound is great, even using the USB-based DACmagic, I might move to I2S DAC in future

Moode.local should have resolved with you iPad. If it doesn't you have a network problem, not Moode related
 
Yes, I know, but there are people reporting success with a small github repo and instructions for Volumio "with some changes".

So I was looking if someone has more detailed instructions as to what these changes are. Maybe we can even creat a small 'how to' together.

If every solution is: "you will have to figure it out", very few people will be able to do so, at least without a lot of effort.

Thanks,
Rafa.

I didn't say anything other than there s no spotify client for Moode, so the answer to your question was no.

If I have a solution, you would have trouble shutting me up, that I didn't wax long and hard is because I don't believe there is a solution for what you want to do. Why can't you stream Spotify using AirPlay like everybody else?

Even spotify on their developer site say running a spotify-connect client on a Pi isn't possible, but there is a new library that may be released in 2017 that will allow you to write an arm-based iteration.
 
...which suggests to me very few if any have replicated or confirmed the OP's procedure.

...The OP said he got the Fornoth/spotify-connect-web running in a chroot jail, one of the options for getting it running (see the README on https://github.com/Fornoth/spotify-connect-web), but conceded this might not have been necessary. He also said he had trouble with another option.

Seems like he stopped there. I don't see any posts from him dated after July 2016.

...

PS: I was a life-long researcher in applied science and engineering, but secretly, I think I always wanted to be a reference librarian. I respond much better to questions which explicitly cite the posts, blogs, etc., under discussion so I can chase down the details. That's just me. I'm sorry I came across roughly.

Thanks for the follow up! Gracias! I am myself a web app designer, so I can completely relate to specific and directed questions, as opposed to just 'generic questions'.

That said, I'm somewhat new to the Linux environment for actual development (as opposed to using the environment to get web servers and the likes), so I still need a lot of research before knowing what a chroot jail is and how to tackle that.

I'll see if I can get some more pointers in the right direction and then report my findings. I'm probably going to need a second MicroSd to make tests and keep the current one with a funcional MoodeOs.

Thanks again!

...Why can't you stream Spotify using AirPlay like everybody else?

Even spotify on their developer site say running a spotify-connect client on a Pi isn't possible, but there is a new library that may be released in 2017 that will allow you to write an arm-based iteration.
Zoo, you are a very helpful guy and try to address everyone's concerns, which is great! But in my post I believe I conveyed two notions:
1. (Implicitly) I know there is no Spotify client, any idea how to get one working (alas,failing to quote the post on this very thread confirming success)... because if there was, i wouldn't have asked the question, I would have said something like 'how do I enable...', therefore 'there isn't one' is the one part I already knew, but thanks for pointing hat back to me.

2. I escifically (and not at all implicitly) described WHY I find AirPlay lacking to my way of listening. So, as so many of your posts asking to read something, or finding someone that knows, instead of repeating myself, I'm going to ask you to go read my post as to why AirPlay is, IMHO, less useful than Spotify Connect.

Best regards,
Rafa.
 
Just got my HifiBerry DAC+ Pro in the mail. Are the instruction posted at Moode Audio Player for Raspberry Pi - Page 9 still suggested? I followed them and it significantly reduces the output volume. Is the 81% still the desired setting?

Hi,

- MPD config: Set MPD volume control = Hardware, APPLY
- Customize screen: Set Logarithmic curve = Yes, UPDATE. Leave the other settings at their defaults: Curve slope = Standard, Max volume (%) = 100.

-Tim
 
But you don't have spotify connect and do have AirPlay.

To me your question is like a kid who is allowed to go to town on the bus asking why he can't get a ride in the car.
Sure, just like the fellows looking to play DSD instead of wave files, or the fellows wanting to play wave even if they already have MP3. Or the fellows looking for airplay when they can hook the phone via USB.

Because it would be a tad better, or a tad more confortable. Yes, exactly, the car is more comfortable than the bus, certainly!

Rafa.
 
Sure, just like the fellows looking to play DSD instead of wave files, or the fellows wanting to play wave even if they already have MP3. Or the fellows looking for airplay when they can hook the phone via USB.

Because it would be a tad better, or a tad more confortable. Yes, exactly, the car is more comfortable than the bus, certainly!

Rafa.

I totally agree. Spotify connect is very convenient and easy to use. You also get a much better streaming solution as the actual playing is done from the Pi instead of the phone.

I have got Spotify connect working with Rune Audio and Volumio2. In Volumio it´s now very easy to install as they have it as a plug in.

Of all players I think Moode is by far the best and the only reason for me to change is to get Spotify connect to work.
 
I totally agree. Spotify connect is very convenient and easy to use. You also get a much better streaming solution as the actual playing is done from the Pi instead of the phone.

I have got Spotify connect working with Rune Audio and Volumio2. In Volumio it´s now very easy to install as they have it as a plug in.

Of all players I think Moode is by far the best and the only reason for me to change is to get Spotify connect to work.

Hi,

Post or email me the recipe that you used to install and configure it and I'll add it to my TODO list.

-Tim
 
I'm using Spotify Connect with Moode with great results, based on spotify-connect-web platform/download.

Firstly, forget the chroot method as you can start it as non-privileged "pi" moOde user. Just to be on the safe side, you may edit global asound.conf to specify default audio interface ... but it's more prudent just to select directly when starting the service. Here is my start-up script:

#!/bin/sh

cd /home/pi/src/spotify-connect-web
./spotify-connect-web --playback_device sysdefault:CARD=x20 --username **** --password **** --bitrate 320 --name "moOde"

Surely, I've blanked out my Spotify u/p and for default playback device just check what's on your end with "aplay -L" (and replace x20). My Gustard U12 is shown as x20. Leave the bitrate as it is and --name is the streaming device name shown from the Spotify clients.

Also, it seems that spotify-connect-web was having trouble to read out the Alsa mixer volume (at least pcm/master mixer in my case) so in case that some errors are thrown (illegal division etc from "console_callbacks.py") I modified the original version so that volume is preset at 100%. In general, volume control shouldn't be controlled from the Spotify anyway, but from moOde itself.

Hope this helps!

Forgot to mention ... you need to stop playback from Moode, so that spotify-connect-web takes over alsa device when streaming, and vice versa.
 
Last edited:
I'm using Spotify Connect with Moode with great results, based on spotify-connect-web platform/download.

Firstly, forget the chroot method as you can start it as non-privileged "pi" moOde user. Just to be on the safe side, you may edit global asound.conf to specify default audio interface ... but it's more prudent just to select directly when starting the service. Here is my start-up script:

#!/bin/sh

cd /home/pi/src/spotify-connect-web
./spotify-connect-web --playback_device sysdefault:CARD=x20 --username **** --password **** --bitrate 320 --name "moOde"

Surely, I've blanked out my Spotify u/p and for default playback device just check what's on your end with "aplay -L" (and replace x20). My Gustard U12 is shown as x20. Leave the bitrate as it is and --name is the streaming device name shown from the Spotify clients.

Also, it seems that spotify-connect-web was having trouble to read out the Alsa mixer volume (at least pcm/master mixer in my case) so in case that some errors are thrown (illegal division etc from "console_callbacks.py") I modified the original version so that volume is preset at 100%. In general, volume control shouldn't be controlled from the Spotify anyway, but from moOde itself.

Hope this helps!

Forgot to mention ... you need to stop playback from Moode, so that spotify-connect-web takes over alsa device when streaming, and vice versa.

Hi,

Looks pretty messy to me. I had assumed that this was sources compiled to binary like shairport-sync, squeezelite, upnp. Maybe someone wants to take on project to do the coding, integration/testing into Moode so the feature has ON/OFF, config page, ALSA mixer name handling, volume controlled by sender, etc. I can provide guidance.

-Tim
 
Last edited:
Thanks @Lazersharp and @Incognito73 for the feedback! Much appreciated!

@Tim, thanks for looking into this! To have Moode 'factory configured' with it would be a dream, but I was not looking to burdening you with further development, rather a DIY add on solution.

That said, there are two sources compiled to binaries: librespot (https://github.com/plietar/librespot) which is what Spotify-connect-web is based upon, and then there is spotifys own libspotify (no longer maintained and / or supported).

How easy or complicated they are to integrate into Moode, I have no idea, but I'm willing to give it a go. I'll start with the easy stuff to get my feet wet on Moode and Alsa, etc, and when I'm a bit more confortable, I can move into full-mode programming ninja and do the last mile.

Certainly, the 'take over' from audio from Moode to Spotify Connect and back should work like the current airplay implementation, which is really nice.

Thanks everyone, that is what I love about this community and Tim's hard work. Looking forward to doing some testing.

Best regards,
Rafa.