Moode Audio Player for Raspberry Pi

Hi tim,

I am very happy using MoOde audio in my room. I have been using version 3.1, but changed to 3.7 today.

While building the music database, suddenly the MoOde loses any controls even ssh to login.

I guess this problem has been caused by the music data contains different character set such as Japanese.

Do you have any idea to make this better?

Hi,

Just ran a test with the song file below and no issues.

ベストオブクラシック・セレクション -群馬県明和町 公開収録

-Tim
 
Hi John,

Symptom suggests a bad or corrupt config / image. If you did in-place update(s) then try a fresh 3.7 image.

-Tim

Hi Tim
I downloaded a fresh image 3.7 but the result is the one described above with File 24/192 KHz.
I attach "S Y S T M P A R A M E T E R S" with the Standard kernel and Kernel LL.
Thanks for your attention.
Jon
 

Attachments

  • Kernel LL.txt
    5.4 KB · Views: 47
  • Standard Kernel.txt
    5.3 KB · Views: 37
Hi @supertrioe,

The System info reports look ok.

Same OS, Kernel(s) and MPD version used in 3.5 - 3.7 so I'm not sure how same 24/192 file can work on 3.5 and not on 3.6/7. I ran quick test on 3.7 release using same song in 16/44 and 24/192 FLAC and no issues but the DAC is Mambo LS so different i2s driver than what is used for DDDAC1794.

When configuring DDDAC1794 NOS on LL or RT kernel the file /boot/config.txt should contain:

- dtoverlay=simple-es9023-audio,384k

There is also a driver option "simple-bclk-64fs" that can be enabled. If its enabled then config.txt contains:

- dtoverlay=simple-es9023-audio,384k
- dtoverlay=simple-bclk-64fs

When configuring DDAC1794 on Standard kernel the rpi-dac driver is used. This driver is also available in LL/RT kernels via the two selections below:

- Generic-2 (rpi-dac)
- RPI-DAC

Another test would be to set SoX resampling to 24/192 and play a 16/44 song file. See if you get different result compared to playing native 24.192 file.

-Tim
 
Now it has the sound I expected, great quality.

Hi @supertrioe,

The System info reports look ok.

Same OS, Kernel(s) and MPD version used in 3.5 - 3.7 so I'm not sure how same 24/192 file can work on 3.5 and not on 3.6/7. I ran quick test on 3.7 release using same song in 16/44 and 24/192 FLAC and no issues but the DAC is Mambo LS so different i2s driver than what is used for DDDAC1794.

When configuring DDDAC1794 NOS on LL or RT kernel the file /boot/config.txt should contain:

- dtoverlay=simple-es9023-audio,384k

There is also a driver option "simple-bclk-64fs" that can be enabled. If its enabled then config.txt contains:

- dtoverlay=simple-es9023-audio,384k


- dtoverlay=simple-bclk-64fs

When configuring DDAC1794 on Standard kernel the rpi-dac driver is used. This driver is also available in LL/RT kernels via the two selections below:

- Generic-2 (rpi-dac)
- RPI-DAC

Another test would be to set SoX resampling to 24/192 and play a 16/44 song file. See if you get different result compared to playing native 24.192 file.

-Tim

Hi Tim
After your advice, I set up DSP Operations
Resampling: 16 bits, 352.8 kHz, Stereo (SoX very high quality)
It also works well 16 bits, 192 kHz, but it does not work 24 bits either 192 or 352.8 kHz.
Now it has the sound I expected, great quality.
Thanks for your patience.
John
 

Attachments

  • Setting -After Tim Curtis's advice.txt
    6.1 KB · Views: 80
Ok, so now that everything is running as expected, I wanted to throw in another question: DSD.

I'm a using a NuPrime DAC-10 connected via USB to the RPi with Moode 3.7.

What is the right approach to output DSD straight out to the DAC without the PCM conversion? Is this something more or less straightforward or do I need to compile MPD against a different ALSA and all those instructions I have read around?

Thanks,
Rafa.
 
Hi,
I am new to the forum since i purchased my moode audio only 2 days ago. I have been using volumio for several weeks. Now that i am discovering moode audio, i realize it will be impossible for me to go back to volumio or rune audio. I have a problem trying to run the pi supply switch script on moode audio. After installing the pi supply script, the switch works fine, except that once i restart moode audio, it can no longer connect to the internet (cable or wifi), it becomes inaccessible, forcing me to reinstall. Any one have succesfully installed that script on moode audio?
The script works very well on rasbian OS. Pi Supply switch website and the script i used.
 
Hi Tim,
I have a question about Squeezelite renderer on Moode. I am using Logitech Media Server streaming flac (native, no transcoding) to Moode 3.7. Problem is, Squeezelite renderer cannot output stream at native rate. For example, if I don't choose anything about bit depth in Configure squeelite>ALSA params, the output stream is always in 32 bit.
If I choose 24bit, the output stream is 24bit regardless my input stream (16bit FLAC or 24bit FLAC) is.

So I want to ask if you could add imprementation about native output stream on squeezelite renderer.

Best regards,
trung224
 
Hi,
I am new to the forum since i purchased my moode audio only 2 days ago. I have been using volumio for several weeks. Now that i am discovering moode audio, i realize it will be impossible for me to go back to volumio or rune audio. I have a problem trying to run the pi supply switch script on moode audio. After installing the pi supply script, the switch works fine, except that once i restart moode audio, it can no longer connect to the internet (cable or wifi), it becomes inaccessible, forcing me to reinstall. Any one have succesfully installed that script on moode audio?
The script works very well on rasbian OS. Pi Supply switch website and the script i used.

Hi,

Does your system behave normally without the power switch device connected?

By "inaccessible" do you mean that its not possible to get an ssh session?

-Tim
 
Hi Tim,
I have a question about Squeezelite renderer on Moode. I am using Logitech Media Server streaming flac (native, no transcoding) to Moode 3.7. Problem is, Squeezelite renderer cannot output stream at native rate. For example, if I don't choose anything about bit depth in Configure squeelite>ALSA params, the output stream is always in 32 bit.
If I choose 24bit, the output stream is 24bit regardless my input stream (16bit FLAC or 24bit FLAC) is.

So I want to ask if you could add imprementation about native output stream on squeezelite renderer.

Best regards,
trung224

Hi,

I ran a quick test and am also getting 32 bit when playing 16/44.1 FLAC. Below is output log debug showing "format: any" setting :: and "using format: S32_LE".

I'll have to investigate whether Squeezelite actually supports native bit depth pass-thru or whether it always zero-pads to 24 or 32 bits.

/usr/local/bin/squeezelite-armv7l -n RP3 -o hw:0,0 -a 80:4::1 -b 40000:100000 -p 45 -c flac,pcm,mp3,ogg,aac,alac,dsd -W -D 500 -R E -f /home/pi/sl.txt -d output=debug
[09:30:39.500691] output_init_alsa:873 init output
[09:30:39.501690] output_init_alsa:902 requested alsa_buffer: 80 alsa_period: 4 format: any mmap: 1
[09:30:39.502103] output_init_common:347 outputbuf size: 102400000
[09:30:39.502519] output_init_common:371 idle timeout: 0
[09:30:39.512732] output_init_common:411 supported rates: 192000 176400 96000 88200 48000 44100 32000 16000 11025 8000
[09:30:39.738899] output_init_alsa:928 memory locked
[09:30:39.743085] output_thread:621 open output device: hw:0,0
[09:30:39.743116] output_init_alsa:951 set output sched fifo rt: 45
[09:30:39.743587] alsa_open:338 opening device at: 44100
[09:30:39.744505] alsa_open:389 opened device hw:0,0 using format: S32_LE sample rate: 44100 mmap: 1
[09:30:39.744679] alsa_open:468 buffer: 80 period: 4 -> buffer size: 3528 period size: 882
[09:30:39.933986] output_flush:424 flush output buffer
[09:30:39.942729] output_flush:424 flush output buffer
[09:30:39.943174] set_volume:229 setting internal gain left: 0 right: 0

-Tim
 
Hi Rafa,

If DAC supports DoP protocol then turn this on in MPD config.

-Tim

Thanks for the quick answer. Success! ... well sort of! :)

Without the DoP activated, MPD defaults to PCM decoding. Direct DSD is not supported. With DoP, it works with my DAC with DSD64 and DSD128. DSD256 (at least the 2 bit samples I found) don't work and they get back to the DSD -> PCM pipeline, but at that point the RPi3 processor goes all the way up to 100% CPU ussage and there is more silence than there is music.

So, bottom line, DSD throuhg DoP good up to 128 (dsd 5.6) with the Rpi3 and my DAC, but I believe this is a limitation of MPD and DoP (perhaps the 24bit / 352.8 bandwith cannot carry more?) and then the transcoding issue is a limitation of the Rpi3 processor.

So, all in all, I can play DSD files (recognized as DSD files by the DAC) correctly, just need to be sure to stay on 64 and 128 for the time being.

Thanks!
Rafa.
 
Last edited:
Hi Rafa,

AFAIK to do DSD256 using DoP requires a 24 bit 705.6 kHz output stream. Do you know if the USB receiver in your DAC accepts this rate?

Not surprised that on-the-fly conversion of DSD256 to PCM pegs the CPU.

As I recall, native DSD bitstream support requires ALSA version >= 1.0.29. Send me an email and I'll provide a download link to moOde 3.8 test build that I'm working on. This build has new OS, kernel, MPD, ALSA 1.1.3, etc.

-Tim
 
Last edited:
Hi,

Just a brief update on upcomming moOde audio player release 3.8.

This release is running on new moodeOS 3.0 platform which is based on the latest releases of Raspbian Jessie Lite, Linux 4.9.y kernel, MPD 0.20.x compiled with FFMPEG-only codecs and ALSA and SoX releases from Raspbian Stretch :)

Release 3.8 also includes various UI improvements and support for some excellent new I2S audio devices including Allo DigiOne and MiniBoss, Denafrips Pontus R2R DAC and DIAL-DAC.

No timeframe yet for the release and due to the new OS platform it will be image-only.

-Tim
 
Hi,

Does your system behave normally without the power switch device connected?

By "inaccessible" do you mean that its not possible to get an ssh session?

-Tim
I tried again today, this is what i discovered: once you install the pi supply switch script, you need to connect the pi supply switch device in order for you to use moode audio. The mistake i was making was after installing the script, i would run moode audio without actually connecting the device because i was testing different configurations. Now i know that once the script is installed i should not run moode audio if the device is not connected. Every thing is good now. Thanks for your assistance, it's actually your question that sent me test every thing again.
 
Firstly, Tim, great work, I really love moOde. I'm using v3.1 (advanced kernel) on a rpi3 & currently tinkering with v3.7 (std kernel) on a rpi2. Each have a Pifi Dac + 2.0, the chinese hifiberry clone,.

I have had no success installing either of the two advanced kernels on v3.7 on rpi2 (rev1.1).
I have attempted to install both type, and block have led to reflashing my sd card.
After install and reboot on the playback panel it is blank save for upper "playback cirle" and the skip, play/pause, skip bar beneath it, No vol, no playlist, no moode logo or other details. The library panel says everything is undefined, and the browse panel is completely blank. The system is sluggish and configure panel is unresponsive and often hangs. Interesting I discovered mpd was not running and when I started via command line it complains it has no config file. It starts if point it towards the config but on reboot it i not running. Reinstating the standard kernel has no effect, the system remains dysfunctional. I would like to use advanced kernels if possible. Has anybody reported similar occurrences?

Separately, I have had good success adding ir remote using the dac's built-in receiver, lirc and irexec. I have mapped my most commonly used controls, can jump to set volumes and if I press number 6, BBC 6 Music leaps onto the top of my playlist and starts playing. A wonderful thing about great software like moOde is they encourage curious amateurs to have a go at some scripting, providing a good way to learn. Since adding the second player I decided I need a script to fetch and load the playlist from the other player and obviously I want it work with my remote control. Good news is my bash script seems to work well from the command line. It however does not work with the remote control. I believe the problem is I need to use sudo to mv the playlist into /var/lib/mpd/playlists and I think irexec is not able/allowed to gain root privileges. irexec runs under user pi, with the lirrc file in the /home/pi folder. I also have my playlist transfer script in /home/pi. I have tried some ideas like the button running sudo myscript.sh but thus far nothing has worked. Perhaps somebody has experience on irexec and sudo in scripts? I will include my script but be kind, I am learning!

As regards moOde itself I do have a feature request. I would really find very very useful an "ADD NEXT" option on songs and folders. This would improve my usage vastly. However as it is present on volumio and rune I wonder if maybe there is not a technical reason it is absent from moOde? Anyway I think it would be valuable addition which would improve my user experience greatly.

Thanks for all the great work though!

Code:
#!/bin/bash

#######################################################################
# Script to transfer playlist of other moOde player to current player #
#######################################################################

if [ "nc -z moode.local 22 &> /dev/null" ];
then
        ssh [email]pi@moode.local[/email] 'if [ -e /var/lib/mpd/playlists/moodelist.m3u ]; then mpc rm moodelist; fi;
                                mpc save moodelist; cp /var/lib/mpd/playlists/moodelist.m3u /home/pi;';

        scp [email]pi@moode.local[/email]:/home/pi/moodelist.m3u /home/pi &> /dev/null;

        sudo mv moodelist.m3u /var/lib/mpd/playlists && mpc load moodelist &> /dev/null;
        exit 0;
else
        exit 1;
fi
 
Hi Tim,
I have a question about Squeezelite renderer on Moode. I am using Logitech Media Server streaming flac (native, no transcoding) to Moode 3.7. Problem is, Squeezelite renderer cannot output stream at native rate. For example, if I don't choose anything about bit depth in Configure squeelite>ALSA params, the output stream is always in 32 bit.
If I choose 24bit, the output stream is 24bit regardless my input stream (16bit FLAC or 24bit FLAC) is.

So I want to ask if you could add imprementation about native output stream on squeezelite renderer.

Best regards,
trung224

Hi,

I ran a quick test and am also getting 32 bit when playing 16/44.1 FLAC. Below is output log debug showing "format: any" setting :: and "using format: S32_LE".

I'll have to investigate whether Squeezelite actually supports native bit depth pass-thru or whether it always zero-pads to 24 or 32 bits.

/usr/local/bin/squeezelite-armv7l -n RP3 -o hw:0,0 -a 80:4::1 -b 40000:100000 -p 45 -c flac,pcm,mp3,ogg,aac,alac,dsd -W -D 500 -R E -f /home/pi/sl.txt -d output=debug
[09:30:39.500691] output_init_alsa:873 init output
[09:30:39.501690] output_init_alsa:902 requested alsa_buffer: 80 alsa_period: 4 format: any mmap: 1
[09:30:39.502103] output_init_common:347 outputbuf size: 102400000
[09:30:39.502519] output_init_common:371 idle timeout: 0
[09:30:39.512732] output_init_common:411 supported rates: 192000 176400 96000 88200 48000 44100 32000 16000 11025 8000
[09:30:39.738899] output_init_alsa:928 memory locked
[09:30:39.743085] output_thread:621 open output device: hw:0,0
[09:30:39.743116] output_init_alsa:951 set output sched fifo rt: 45
[09:30:39.743587] alsa_open:338 opening device at: 44100
[09:30:39.744505] alsa_open:389 opened device hw:0,0 using format: S32_LE sample rate: 44100 mmap: 1
[09:30:39.744679] alsa_open:468 buffer: 80 period: 4 -> buffer size: 3528 period size: 882
[09:30:39.933986] output_flush:424 flush output buffer
[09:30:39.942729] output_flush:424 flush output buffer
[09:30:39.943174] set_volume:229 setting internal gain left: 0 right: 0

-Tim

Hi,

From what I understand after investigating, when bit depth format is not specified Squeezelite chooses an output bit depth that it thinks is best for the audio device. If this bit depth is > than input bit depth then only zero-padding occurs and the original bits are not altered, i.e., still bit-perfect.

-Tim
 
Hi Tim,

quick comment to upcoming release 3.8:
If there is a new image necessary, I think it's better to use a new major Version: 4.0

Minor versions: update is possible
Major versions: new image is necessary

Regards
Tom

Hi Tom,

I try not to put too much intelligence in the release version numbering other than minor version updates are FREE, major version updates are $10 maybe two of these per year, and sometimes version numbers are skipped i.e., could go from 3.8 -> 4.0.

-Tim