Moode Audio Player for Raspberry Pi

Hi,

Sure. See below for files with default settings.

Code:
pi@rp2:~ $ cat ./.xinitrc 
#!/bin/bash
#
# moOde audio player (C) 2014 Tim Curtis
# [url=http://moodeaudio.org]moodeaudio.org[/url]
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
# 2017-11-26 TC moOde 4.0
#

# Turn off display power management
xset -dpms
# Screensaver timeout in secs or 'off' for no timeout
xset s 600

# launch chrome browser
SCREENSIZE="$(fbset -s | awk '$1 == "geometry" { print $2","$3 }')"
chromium-browser --kiosk --touch-events --disable-touch-drag-drop --disable-overlay-scrollbar \
--enable-touchview --enable-pinch --window-size=$SCREENSIZE --window-position=0,0 \
--disable-session-crashed-bubble --disable-infobars --no-first-run --app=http://localhost/ 
pi@rp2:~ $
pi@rp2:~ $ cat /lib/systemd/system/localui.service
#!/bin/bash
#
# moOde audio player (C) 2014 Tim Curtis
# [url=http://moodeaudio.org]moodeaudio.org[/url]
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
# 2017-11-26 TC moOde 4.0
#

[Unit]
Description=Start Chromium Browser
After=nginx.service php7.0-fpm.service mpd.service

[Service]
Type=simple

# start xserver
ExecStart=/usr/bin/xinit

User=pi

[Install]
WantedBy=multi-user.target

pi@rp2:~ $


==============================

I removed my own service from googling, and enabled localui.service which had NOT been enabled.

and, it looks working. It's been more than 30 min, and screen stays on display.

Thank you everyone!!

Here i share my ~/.xinitrc for other people.

Code:
pi@moode:/lib/systemd/system $ cat ~/.xinitrc
#!/bin/bash
#
# moOde audio player (C) 2014 Tim Curtis
# [url=http://moodeaudio.org]moodeaudio.org[/url]
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
# 2017-11-26 TC moOde 4.0
#

# turn off display power management
xset -dpms

# not to blank screen
xset s off

# launch chrome browser - without touch device. I only use HDMI monitor.
SCREENSIZE="$(fbset -s | awk '$1 == "geometry" { print $2","$3 }')"
/usr/bin/chromium-browser --kiosk --disable-overlay-scrollbar \
--window-size=$SCREENSIZE --start-fullscreen --window-position=0,0 \
--disable-session-crashed-bubble --disable-infobars --no-first-run --app=http://localhost/ -- -nocursor


By the way, whenever I launch chromium browser, there are some pop noise. Is there any way to delay launching chromium? because it was ok when I manually launch chromium after some minutes later since starting mpd play.
 
I have my music in Folders with the structure USB/Non Classical/Pink Floyd/Animals/FLAC 16 44 Remaster 2011/01. Track.flac

That means I have to tap several times to get to the album I want to listen. To go back to the root of the tree, I need to tap again several times on the “back” button.

I remember a conversation some time ago in this thread talking about an eventual “home” button. Is there a way to go back to the root of the tree? If not, it could be added to the GUI. Especially because there is no “reload” button in the local UI.

Refresh the web page and you will be back at the browse root
 
Hi,

The DSP only applies to MPD output. I should probably indicate this on the Audio config screen to avoid confusion. Thanks for pointing that out :)

I don't think REW output params will work correctly in the Parametric EQ. Aren't they designed for something like BruitFIR convolution filters?

Airplay does in fact support its own DSP but I have not explored that yet. Have a look at
/usr/local/etc/shairport-sync.conf

-Tim

Thanks again, Tim, for the help.

Regarding REW Filters, they can be Used in several ways. One is to export an Impulse response e.g. as .wav (like used in BruteFir). what I meant here was to just look at the filters and manually copy freq, gain and Q. This is what I tried...

I did play with the BruteFir plugin in volumio but it was unstable with AirPlay (volumio continuously restarting). I read somewhere that you wanted BruteFir also in moOde. Is that proprietary Or Open for me to try?

I do Not really understand what MPD does. Does it apply to locally played audio only? Can the Equalizer then be used in any streamed content?

Will Look into the shairport options... Thanks for the hint!

Cheers, Richard
 
Thanks again, Tim, for the help.

Regarding REW Filters, they can be Used in several ways. One is to export an Impulse response e.g. as .wav (like used in BruteFir). what I meant here was to just look at the filters and manually copy freq, gain and Q. This is what I tried...

I did play with the BruteFir plugin in volumio but it was unstable with AirPlay (volumio continuously restarting). I read somewhere that you wanted BruteFir also in moOde. Is that proprietary Or Open for me to try?

I do Not really understand what MPD does. Does it apply to locally played audio only? Can the Equalizer then be used in any streamed content?

Will Look into the shairport options... Thanks for the hint!

Cheers, Richard

Hi Richard,

Got it. It's odd that entering REW freq, gain and q produces different result in EQP vs BruitFIR. Does REW output more than 4 bands of correction? Does it also output a Master gain correction?

The DSP features are implemented as ALSA devices. Look in /etc/mpd.conf at the audio_output{} blocks. In theory the devices should work in any of the audio renderers. For example if you wanted to hack Airplay to use ALSA device "eqfa4p" which is the EQP then:

1. Edit /var/www/inc/playerlib.php
2. Scroll down to function startups()

Replace

-d hw:' . $device;

With

-d eqfa4p';

3. Save the file
4. Reboot

Something like that...

-Tim
 
Hi,

Is there any interest in integrating RoonBridge renderer in moOde? If there is I'll need a few volunteers that use the Roon application to help test.

-Tim

All I know about Roon is what's in Roon Lab's "How Roon works" description. The user experience looks intriguing.

Is this integration analogous to what you did with UPnP support? We'll see another renderer stanza in moOde's Audio Config; when configured, moOde will become what the Roon description calls an "output", and a Roon "control app" will become our UI? What serves as the Roon "core" in this scenario? How easy will it be to switch back and forth between Roon and native moOde control?

Inquiring minds want to know:D

Regards,
Kent
 
Hi,

The DSP only applies to MPD output. I should probably indicate this on the Audio config screen to avoid confusion. Thanks for pointing that out :)

I don't think REW output params will work correctly in the Parametric EQ. Aren't they designed for something like BruitFIR convolution filters?

Airplay does in fact support its own DSP but I have not explored that yet. Have a look at
/usr/local/etc/shairport-sync.conf

-Tim

Oh, yes! This is from the shairport conf:

Code:
//////////////////////////////////////////
//  This convolution filter can be used to apply almost any correction to the audio signal, like frequency and phase correction.
//  For example you could measure (with a good microphone and a sweep-sine) the frequency response of your speakers + room,
//  and apply a correction to get a flat response curve.
//////////////////////////////////////////
//
//  convolution = "yes";                  // Activate the convolution filter.
//  convolution_ir_file = "impulse.wav";  // Impulse Response file to be convolved to the audio stream
//  convolution_gain = -4.0;              // Static gain applied to prevent clipping during the convolution process
//  convolution_max_length = 44100;       // Truncate the input file to this length in order to save CPU.

Pretty tidy, actually... The filters would go into the the "impulse.wav" and things should work. I will try this out - let's see if REW can produce files which actually work.
REW filter do not have a master gain setting. But exporting the filters impulse response as wav has many settings (mono/stereo, sample rate, bit depth)... will play around...

If yes, then in my view it would be an additional selling point for moOde, if these could be part of the UI... But let us see...
 
All I know about Roon is what's in Roon Lab's "How Roon works" description. The user experience looks intriguing.

Is this integration analogous to what you did with UPnP support? We'll see another renderer stanza in moOde's Audio Config; when configured, moOde will become what the Roon description calls an "output", and a Roon "control app" will become our UI? What serves as the Roon "core" in this scenario? How easy will it be to switch back and forth between Roon and native moOde control?

Inquiring minds want to know:D

Regards,
Kent

Hi Kent,

Thats my understanding after looking at the package. Its an audio renderer for their Roon client app. It would be integrated similar to Airplay, Squeezelite, etc.

When its on, moOde Playback panel would display "Roon Bridge" in the Time Knob.

I assume it probably doesn't have "before_session_start" and "after_session_end" event hooks like shairport-sync which means it hogs the audio output like Squeezelight and thus has to be turned off to release the output back to MPD/moOde.

-Tim
 
I a MA'er but have taken a peek at Volumio just to see what it is all about. Couple of features I found on Volumio that are great. I am not trying to say these are a must have for MoOde, just wanted share my thoughts.

1. Radio search by country
2. Audirvana Plus allows me to select audio devices and Volumio is an option
:)

@onionhead

1. I love exploring radio stations. I first came to moOde because it not only streamed stations but displayed station logos. I stayed for the quality of the output!

Adding a radio search feature in moOde seems doable with some moderate changes internally. Among other things, it requires an API to a third-party information server. Volumio appears to use Dirable (dirable.com) which charges a fee for their developer API-key according to their website. The RadioDroid app I have on my phone uses Radio-Browser (Community Radio Station Board) which has been mentioned on this list before. To quote from the maintainer, "This webservice can be used freely but without guarantee to work. I am keeping it online since more than 2 years now. But downtimes are possible and i am not always home to fix it :)" Who knows what its life expectancy is.

Neither server directly provides links to station logos so no nice artwork for the moOde Playback panel.

2. Isn't Audirvana Plus just using UPnP? moOde already has the ability to be a UPnP Renderer.

Regards,
Kent
 
@onionhead

1. I love exploring radio stations. I first came to moOde because it not only streamed stations but displayed station logos. I stayed for the quality of the output!

Adding a radio search feature in moOde seems doable with some moderate changes internally. Among other things, it requires an API to a third-party information server. Volumio appears to use Dirable (dirable.com) which charges a fee for their developer API-key according to their website. The RadioDroid app I have on my phone uses Radio-Browser (Community Radio Station Board) which has been mentioned on this list before. To quote from the maintainer, "This webservice can be used freely but without guarantee to work. I am keeping it online since more than 2 years now. But downtimes are possible and i am not always home to fix it :)" Who knows what its life expectancy is.

Neither server directly provides links to station logos so no nice artwork for the moOde Playback panel.

2. Isn't Audirvana Plus just using UPnP? moOde already has the ability to be a UPnP Renderer.

Regards,
Kent

1.Exploring the wireless world is fantastic. If fees are involved that would nix that suggestion. Artwork seems to be there on my ipad.

2.Regarding Audirvana Plus - I can't speak intelligently about UPnP. Never knowingly used one in my life. All I can say is that somehow Audirvana Plus knows how to connect to Volumio. I can assure you it had NOTHING to do with any action on my part. It was like majic, it just happened. For if I had tried surely would have ended in disaster. If it is already built into MoOde beta 11 that is great. Will try to figure out how to get MoOde and with Audirvana Plus to play nice.

Tim


The folks on this forum have been really patient