Moode Audio Player for Raspberry Pi

pi@moode:~ $ sudo ln -s /var/lib/mpd/music /var/www/mpdmusic
ln: failed to create symbolic link ‘/var/www/mpdmusic’: Read-only file system

Hi,

I removed that cmd from my earlier post because /var/www is a compressed squashfs (read-only) file system and thus it would need to be un-squashed before the symlink can be created.

The bugfix update should be out pretty soon so not too long to wait :)

-Tim
 
The Change in Password

I feel the need to comment on a non-player related issue, the change in default password which occurred with release 3.8.

Firstly, Tim does tell us right up front in the current Setup Guide that the password has been changed and why. You do read the Setup Guide when you install software, right?

Secondly, the reason the recent Raspbian distros complain if the password for user "pi" hasn't been changed from the default "raspberry" is actually quite serious.

There is a growing number of malware writers targeting Raspberry Pis precisely because so many of the 5 million sold are connected to the Internet yet are running with the default credentials intact. This is especially serious if the sshd daemon is running, which is why sshd is disabled by default in stock Raspbian. (Tim necessarily re-enables it so we can access our MoOde Player via the command line.)

Case in point from a May security article: "Nearly Half of all Rakos Botnet Devices are Raspberry Pis." Or from a June article: "A Linux trojan detected under the generic name of Linux.MulDrop.14 is infecting Raspberry Pi devices with the purpose of mining cryptocurrency."

We like to think we're protected by our network router firewalls, but a number of consumer-grade router models have themselves been subjects of attacks because of their poorly written/audited firmware. As well, some users configure their routers to forward ssh traffic.

I'm not trying to be an alarmist here. I'm just saying don't depend on default account settings on any device or package. Tim's taken a necessary first step. My personal approach is to set my own unique passwords. Any password published on the Internet gets swept up sooner or later and added to blackhat dictionaries. Why make their life any easier than it already seems to be?

And now we return to your regularly scheduled program.

Regards,
Kent
 
Small breakthrough last night with 3.7. I have activated sox resampling an set the output at 16/*. All files play well now in 16bits with the corresponding sampling rate. DSD 64 output is 16/352.8 and dsd 128 output is 16/384 which seems to be correct. Sounds good without glitches or noise.

If I select 24/* resampling, I get a click every second or so.
The bottom line is that with 3.7 I cannot get my DAC to play nice with 24 bit depth stream.

The behaviour is the same regardless kernels or mpd scheduler setting. Wish I could make 3.7 play nice with my dac but I guess they just don't like each other.
 
Hi Tim,
thank you for you work which is amazing.
I changed my st4000 es9018 for a new es9028q2m.
AUDIOPHONICS I-Sabre DAC ES9028Q2M Raspberry Pi 3, 2, A+, B+ / SPDIF & I2S - Audiophonics

I used it on moode 3.7 LL kernel with es9018 driver and it performed very well.

I just update to Moode 3.8, and with any of the advanced kernels and es9018 driver I get no music.
changing driver to es9023, it works but only decodes music in 24bits.

Which driver should I use, knowing that es9028 is capable of 32/768khz ?
thank you for your help.
 
Hi Tim, hi all!

I would like to have a little more information about what happens, if I change the mp scheduler, the cpu governor and the kernels. What are the differences in technical ways and in hearing terms? What configuration would you recommend, to get the finest audio experience? I´m using pi3 with allo boss.

Thanks in advance

Luki
 
Hi

I was able to do some changes (on Moode 3.1) in player.db table to update some Radio stations names and adresses. For this purpose I used commands like these, using info taken from here: :)
PHP:
sudo sqlite3 /var/www/db/player.db "update cfg_radio set station='http://uk2.internet-radio.com:8358/stream' where name='1.FM - Blues Radio';"
sudo sqlite3 /var/www/db/player.db "update cfg_radio set station='http://stream.radioreklama.bg:80/radio1rock128', name='BG Radio 1 Rock' where id='21';"

All is fine and this working. Now i have a bunch of BG radios (whit logos) , and some foreing station streams were updated. :cool:
But i want to put there more radios. Is there possibility to insert new rows to player.db table?
Something like this:
PHP:
sqlite3 /var/www/db/player.db "insert into cfg_radio (id, station, name, ???????, logo) values ('20', 'station_val','name_val','?????_val','logo_val');
But I'dont know the name used for fourth column.
I'm not shure about this, please help to me. What is the right way to insert new stations, or this isn't possible (maybe the table is locked).

Thanks in advance.
Genadi
 
Hi Tim, hi all!

I would like to have a little more information about what happens, if I change the mp scheduler, the cpu governor and the kernels. What are the differences in technical ways and in hearing terms? What configuration would you recommend, to get the finest audio experience? I´m using pi3 with allo boss.

Thanks in advance

Luki

Hi Luki,

I can offer the technical information below which is a reprint of the (i) help in System config screen, plus some additional info.

Linux kernel
============
Standard: mainline kernel for Raspbian.
Advanced-LL: low latency advanced audio kernel.
Advanced-RT: real-time advanced audio kernel.

LL and RT kernels support advanced I2S audio capabilities.
- Up to 384k sample rate for ES9023 and PCM512x codecs.
- Integer bclk divider for ES9023 codec on 48k/96k rates.
- DSD128 format support via 352.8k rate.
- Bypass OS filter on PCM512x, PCM514x, PCM524x via 384k rate.
- Fixed 64fs bclk ratio for 2 channel, 32/24/16 bit audio.
DISCLAIMER: Advanced kernels are experimental without any support or warranty.
Install can take several minutes. Reboot after completion message appears.

Additionally, the Advanced kernels do two things. One is that they include some audio capabilities that are not available in mainline Linux kernel although 384K rate is now in Linux mainline as of 4.9.40 :) Two, they are configured and compiled with settings that enable a Low Latency or Real-Time task scheduling system. Tasks for example MPD or Squeezelite can be priortized so they are less likely to be preempted (yield the CPU to other tasks). Many computer audio enthusiasts perfer Low Latency or Real-Time kernels.

CPU Governor
============
On-demand: dynamically scales cpu frequency based on demand.
Performance: runs the cpu at maximum frequency.

Additionally, the Performance setting, since it runs the CPU at max frequency, will provide a more responsive moOde UI and perform tasks more quickly.

MPD scheduler policy
====================
TS: standard round-robin time-sharing policy.
FIFO: real-time fixed-priority First-In First-Out scheduling policy.
RR: real-time fixed-priority Round Robin scheduling policy.

Additionally, a task that is assigned the FIFO policy only yields the CPU when it is preeempted by a higher static priority task or if it voluntarily yields the CPU for example while waiting for an I/O to complete. The FIFO policy makes it less likely that the task will be preempted but can result in the task hogging the CPU and blocking other tasks.

A task that is assigned the RR scheduler policy runs for a certain time quantum and then yields the CPU. Within the time quantum that it runs it behaves exactly like FIFO. This reduces the likelyhood that the task will hog the CPU.

A task that is assigned the TS scheduler policy is set to static priority 0, the lowest priority and thus it can be preempted by FIFO and RR tasks at higher static priorities.

Refer to: sched(7) - Linux manual page

As a general guide, start with the following profiles:

Profile 1
Linux kernel: Standard
CPU governor: Performance
MPD scheduler: TS

Profile 2
Linux kernel: Advanced (Low Latency)
CPU governor: Performance
MPD scheduler: RR

Profile 3
Linux kernel: Advanced (Real-Time)
CPU governor: Performance
MPD scheduler: FIFO

Enjoy!

-Tim
 
Last edited:
Tim,
I'm sure I saw in one of the trailer posts for the new version that you made, that a Hiface USB driver curtesey of Soundcheck) was to be included in the new release.

I'm trialling v3.8 today and it fails to reconise my NorthStar Essensio dac which has the first (HiFace1) OEM usb connection.

I tried with and without the USB (UAC2)fix to no avalable.

I did a shutdown and swapped the usb dac over to another model and upon restart the usb device was showing in the MPD Audio Output.

My simple question is, has this Hiface driver been implemented?

Thanks

Ronnie
 
Ah, I was on the Standard kernel, changed to Advanced-LL and it was recognised.

thanks

Ronnie

pi@moode:~ $ ls -l /lib/modules/4.9.40-moode1/kernel/sound/usb/hiface/
total 24
-rw-r--r-- 1 root root 20916 Jul 31 10:11 snd-usb-hiface.ko
pi@moode:~ $ dmesg | grep snd-usb-hiface
[ 4.875593] usbcore: registered new interface driver snd-usb-hiface
pi@moode:~ $
 
Last edited: