Moode Audio Player for Raspberry Pi

Moode 2.5 not booting on RPi3

Hi,

Got got a RPi 3 last week. First time RPi user. Used SD Formater and Win32 Diskimager to successfully burn SD images for NOOB and OPENELEC, both work perfectly. However when I insert Moode 2.5 SD the ACT LED goes into loop of 4 slow flashes followed by 4 fast flashes. Red power LED is steady. I don't have anything other than an Ethernet cable plugged in which does not come up. I would appreciate any advice.

Regards Tony
 
Featrure Request

I'm enjoying moOde 2.5 with my usb dacs.
I would like to suggest a new feature.
Ability to save current configuration using a data file or a script from the webui.
This could include : Sources, MPD, Network, System and customization.
This could be downloaded to your local device from the web ui.


The file could also be uploaded in the /boot folder and all settings will be taken into account at next reboot and a database update is triggered.

The advantage of putting it in boot folder allows windows user to put the file into a fresh made sdcard in order to do update from ane version of mood to another and also prepare some ready to use sdcard specially if you want to use wifi.
 
Hi, fellow music lover...

Has anyone using the original Meridian Explorer DAC with Moode (2.5) been able to get hardware volume through the headphone output to work? Audio is coming out just fine through the headphone jack, and I am able to control the volume through the command-line "alsamixer", but when I try changing the volume within the Moode Web UI, nothing happens -- the volume will always remain at "0".

Thanks...

Hi,

I assume u have MPD volume control set to "Hardware", then APPLY.

Post the output from amixer command.

Regards,
Tim
 
I'm enjoying moOde 2.5 with my usb dacs.
I would like to suggest a new feature.
Ability to save current configuration using a data file or a script from the webui.
This could include : Sources, MPD, Network, System and customization.
This could be downloaded to your local device from the web ui.


The file could also be uploaded in the /boot folder and all settings will be taken into account at next reboot and a database update is triggered.

The advantage of putting it in boot folder allows windows user to put the file into a fresh made sdcard in order to do update from ane version of mood to another and also prepare some ready to use sdcard specially if you want to use wifi.

Hi,

Settings restore is where the challenge lies since any time the sql schema or data changes between releases, the restore process changes from a simple copy to a much more complex migration process. For example suppose there are three releases 2.5, 2.6 and 2.7 and sql schema and data changed between each release. Separate sets of migration scripts would be needed for 2.5 -> 2.6, 2.5 -> 2.7 and 2.6 -> 2.7. Developing and supporting something like this competes with time to develop Moode itself.

If there is an easier way then I'm all ears :)

Regards,
Tim
 
just some ideas..

Hi,

Settings restore is where the challenge lies since any time the sql schema or data changes between releases, the restore process changes from a simple copy to a much more complex migration process. For example suppose there are three releases 2.5, 2.6 and 2.7 and sql schema and data changed between each release. Separate sets of migration scripts would be needed for 2.5 -> 2.6, 2.5 -> 2.7 and 2.6 -> 2.7. Developing and supporting something like this competes with time to develop Moode itself.

If there is an easier way then I'm all ears :)

Regards,
Tim

I can understand that you want to improve your sql database from one version to another. (I just hope it is not generated from ui design )

What could be done for setting, is just using a/some plain properties file style for saving/restoring ie: (Moode-04.properties )
mpd.volume="disabled"
mpd.input="usb"
mpd.gapeless=0
mpd.normalization=
networks.wan0.ssid="toto WAN"
networks.wan0.dhcp=1
networks.wan0.security="wpa"
networks.wan0.passwd="MyWan0023652336tyyte"
sources.nas.01.name="NAS termpo"
sources.nas.01.type="nfs"
.....
You have to keep the property name and in some values consistent using languageIndependant-ID that you can find in your DB from one version to another. You will have to maintain a loading and a dump script for the current version only. (the dump can be done directly from the UI step by step when you change a value and apply/set)

Empty property value or missing property is understood as default value.

In the changelog, if you have modification from one version to another just give an hint on all the accepted properties/values and let user do the conversion if needed but at least from a file populated instead or redoing all from scratch.

For me the most important is to be able to have a way to setup network and sources. As it could be blocking if you do not want to use dhcp or do not have lan cable where your DAC is located. For the sources this is just easier to have it ready and do more than one at the time without conflicting DB update.
 
I can understand that you want to improve your sql database from one version to another. (I just hope it is not generated from ui design )

What could be done for setting, is just using a/some plain properties file style for saving/restoring ie: (Moode-04.properties )
mpd.volume="disabled"
mpd.input="usb"
mpd.gapeless=0
mpd.normalization=
networks.wan0.ssid="toto WAN"
networks.wan0.dhcp=1
networks.wan0.security="wpa"
networks.wan0.passwd="MyWan0023652336tyyte"
sources.nas.01.name="NAS termpo"
sources.nas.01.type="nfs"
.....
You have to keep the property name and in some values consistent using languageIndependant-ID that you can find in your DB from one version to another. You will have to maintain a loading and a dump script for the current version only. (the dump can be done directly from the UI step by step when you change a value and apply/set)

Empty property value or missing property is understood as default value.

In the changelog, if you have modification from one version to another just give an hint on all the accepted properties/values and let user do the conversion if needed but at least from a file populated instead or redoing all from scratch.

For me the most important is to be able to have a way to setup network and sources. As it could be blocking if you do not want to use dhcp or do not have lan cable where your DAC is located. For the sources this is just easier to have it ready and do more than one at the time without conflicting DB update.

Hi,

The entire app is driven from settings and values in sql database.

No matter what approach is used for settings backup/restore, there is no way to avoid eventually having to maintain and support "settings migration" because everything ends up changing at some point.

If u want to export/import the tables in sql database just download SQLiteStudio and open /var/www/player.db

Regards,
Tim
 
7" display on localhost with Moode GUI

...
So far, .xinitrc and local.rc commands have failed. I've yet to test a crontab @reboot command but I suspect I will have the same issue. In all instances I'm left at a command prompt... Please do note that no desktop environment is added - iceweasel runs fine without one from an xsession! I think adding a kde or gnome desktop would break Moode in a big way...

Thank you for your instructions, i could successful install lightdm and it auto-starts the Moode GUI from localhost in chromium (i like chromium better - it's faster, and it has command line options for fullscreen/kiosk like working-mode - see here)

chromium install (i extracted some steps from this script (it consists some unnecessary app's install) - i hope, that i could recall the correct steps from command line history - i did some iteration with dependencies)

Code:
sudo apt-get install gconf-service libgconf-2-4 libgnome-keyring0 libnspr4 libnss3 libxss1 libnss3 xdg-utils gconf2-common libgnome-keyring-common
wget [url]https://dl.dropboxusercontent.com/u/87113035/chromium-browser-l10n_48.0.2564.82-0ubuntu0.15.04.1.1193_all.deb[/url]
wget [url]https://dl.dropboxusercontent.com/u/87113035/chromium-browser_48.0.2564.82-0ubuntu0.15.04.1.1193_armhf.deb[/url]
wget [url]https://dl.dropboxusercontent.com/u/87113035/chromium-codecs-ffmpeg-extra_48.0.2564.82-0ubuntu0.15.04.1.1193_armhf.deb[/url]
sudo dpkg -i chromium-codecs-ffmpeg-extra_48.0.2564.82-0ubuntu0.15.04.1.1193_armhf.deb 
sudo dpkg -i chromium-browser-l10n_48.0.2564.82-0ubuntu0.15.04.1.1193_all.deb chromium-browser_48.0.2564.82-0ubuntu0.15.04.1.1193_armhf.deb

lightdm config
... then i followed this tutorial about a kiosk web appliance
the extracted important steps are:
1) create two files in /usr/share/xsessions:
chromeMoode.sh (permissions: 755)
Code:
#!/bin/bash
while true; do chromium-browser [url]http://localhost[/url] --start-maximized --start-fullscreen; sleep 5s; done
(i didn't copied the coordinate conversion magic of original .sh, me it works well without problems - if you need more description see natrinicle's comment (comment section))

moode.desktop (permissions 644)
Code:
[Desktop Entry]
Encoding=UTF-8
Name=Moode Mode
Comment=Chromium Moode Mode
Exec=/usr/share/xsessions/chromeMoode.sh
Type=Application

2) I modified the /etc/lightdm/lightdm.conf as follows:

Code:
[SeatDefaults]
user-session=moode
autologin-user=pi
autologin-user-timeout=0
autologin-session=moode # probably it's not needed - it was set to UNIMPLEMENTED, but who knows, sometimes ..

so, now my Pi/Moode boots up, starts the X and autostarts the chromium with localhost, where the moode GUI is provided ...
-- regards bcs
 
Hi,

The ping times look ok for a WiFi connection but did you see > 0% packet loss in the ping stats?

In any case telltale stats are in ifconfig output (suggested by RoosterX).

Compare the following:

Upstairs
Link Quality= 53/70 Signal level= -57 dBm
Tx excessive retries: 797 Invalid misc: 8326 Missed beacon: 0
Downstairs
Link Quality= 100/100 Signal level= 98/100 Noise level= 0/100
Tx excessive retries: 0 Invalid misc: 0 Missed beacon: 0

This suggests upstairs link is going to be problematic.

Whats a bit confusing is that the upstairs adapter is configured with no encryption while the downstairs adapter is configured with encryption. Are both these adapters connecting to a single WiFi network on your router?

You might want to swap WiFi adapters and try the Realtek adapter in the upstairs Pi.

Regards,
Tim

Tim,
Finally, I've got a new usb wifi for my bedroom player (this time it's Realtek 8188u instead of Mediatek).
Here's what I get from iwconfig (much improved)


Bit Rate: 72.2 Mb/s Sensitivity: 0/0
Retry: off RTS thr: off Fragment thr: off
Encryption key:****-****-****-****-****-****-****-**** Security mode: open
Power Management: off
Link Quality=99/100 Signal level=40/100 Noise level=0/100
Rx invalid nwid: 0 Rx invalid crypt: 0 Rx invalid frag: 0
Tx excessive retries: 0 Invalid misc: 0 Missed beacon: 0


No lost packets, the link quality is much better and the signal is also higher.
I'll test it for some time to see if I get any drop-outs.
So, looks like it was crappy wifi card.
 
Last edited:
Hi,

Just a quick status:

moodeOS milestone #2 has been reached. Moode Audio Player up and running on custom factored J-Lite with new core servers, mpd and configs :)

Regards,
Tim
 

Attachments

  • moodeos-motd1.png
    moodeos-motd1.png
    44.6 KB · Views: 251
Hi,

I assume u have MPD volume control set to "Hardware", then APPLY.

Post the output from amixer command.

Regards,
Tim

Hey, Tim.

Thanks for getting back so fast. Yes, I made sure that the output was set to Hardware. When I set it to Software, things worked fine (but with software volume, obviously).

Output from 'amixer':

Code:
Simple mixer control 'PCM',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined
  Playback channels: Mono
  Limits: Playback -10239 - 400
  Mono: Playback -10237 [0%] [-102.37dB] [on]

Cheers...
 
Hey, Tim.

Thanks for getting back so fast. Yes, I made sure that the output was set to Hardware. When I set it to Software, things worked fine (but with software volume, obviously).

Output from 'amixer':

Code:
Simple mixer control 'PCM',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined
  Playback channels: Mono
  Limits: Playback -10239 - 400
  Mono: Playback -10237 [0%] [-102.37dB] [on]
Cheers...


Sorry for replying to my own message, but I couldn't figure out how to edit my post.

I take my first comment that the "hardware" option was selected back. When I tried it, I had hot-plugged the DAC and then made sure that the hardware option was set. However, when I boot up with the DAC connected, the "Hardware" option does not show up... only the "disabled" and "software" options are available.

I'm beginning to think, could the following be a factor:

ALSAmixer incorrectly labels “Meridian Clock Selector’. Despite this label, it is a volume control (shown in dB) which correctly controls the Explorer’s hardware volume.
Which is from:

https://www.meridian-audio.com/support-articles/using-explorer-with-linux/

Thanks...
 
Last edited:
Hi,

Working on a new audio-centric distro "MoodeOS" based on J-Lite :)

Input welcome!

Some input:

Absolutely support your music-centric appliance-like distribution. While it might suit more users to be able to use built-in upgrade functions, it sets you up for a huge increase in potential support issues. When you control the distro, you limit the potential problems.

As to features:

- Config file in SD card FAT partition (not linux distro root) that allows backup/restore of settings across image files. IIRC, a few music-centric distros do this - I can check.

- Same for network config - so I can pre-define network settings, specifically Pi3 wifi settings as an AP. This allows attaching to the AP, setting your home network credentials via html then reboot.

This is (in essence) how IoT devices like the Electric Imp work: You configure your SSID/Password on a phone app connected to your local network, then pass that information to the Imp using code passed via screen and light sensor on the Imp. Limiting to support for Pi3 only means you aren't left supporting all manner of rogue chipsets. This would make it much more appliance-like. Currently, unless you are comfortable with networking, etc. configuring an RPi running Moode is a job for an enthusiast. The number of steps to get a novice to make to get a working Moode player makes for a large number potential problems - cable, IP, router, browser... Having the ability to predefine network means your instructions can be much more simple: turn on, join Moode network, navigate to moode.local, make changes.

I am not familiar with the J-Lite distro, but if you want, I am happy to do the legwork towards getting something like the above working.

And just because your distribution works out-of-box with the Pi3, doesn't mean that other hardware combos won't work, just that you would have to get it booted and working first with the right drivers, then make the changes to the network config file in FAT. This would have made it much easier when I sent my daughter her Moode player - she's a history teacher, not much good at networking (calls I.P. 'IPP' and ethernet is pronounced ET-HER-NET:) ) whereas my son was comfortable with me talking him through the process on Skype.

- some form of artwork cover online lookup, similar to how Calibre looks up book covers from Amazon (which may be a great source of covers - they have the api docs and a vast amount of covers digitised).