Moode Audio Player for Raspberry Pi

Hello,

please can anybody explain a beginner, where / how (in which file) i can change the font size for the mpd? Moode is running since mounth nearly perfect in my system, but i have to thick fingers to operate Moode on my new 7" touch display :)

Thank's and greetings from the black forrest

I'm not much help here, but I wanted to relate my experience that seems to mirror yours. Until recently, my remote was my now three-year-old smartphone, android with a small screen. It was difficult, but it worked. Two weeks ago there was a special on Amazon Fire tablets, the smallest (7 inches) and most basic for $40US. I jumped on it specifically for use as My Moode remote, and it's much nicer.

In my 34 years working at a scientific graphics software developer I saw many examples where minor changes in text specifications caused deterioration in the interface as they often required geometry and dimensional changes that were somewhat demanding when you really wanted to advance the functionality of the software.

It's a tough balance, but I think Tim keeps things on track very well.

Skip
 
Hi,
I'm running a pi3 with a hifiberry DAC+ pro since months without any issue. Now I decided to add another pi with a hifiberry AMP into the same network (for a second room). But I can't find the second AirPlay device. What I'm doing wrong ? I have given different names to both moody audio players.
Thanks
Kai

Hi Kai,

To verify that Airplay receiver is running

pgrep -l shairport-sync

What type of network connection for each Pi?

-Tim
 
I'm one step further with investigation of the AirPlay problem. If I use WLAN connection of the Pi3 it is working. Can't I operate moode with Ethernet and AirPlay ? And how can I fully deactivate the WLAN of Pi3 if not needed.

Thanks very much for any help
Kai

Hi Kai,

I'm able to repro the issue where Airplay service name is not routed out eth0 connection when Pi3. Looks like shairport-sync is routing it out the wlan0 interface which by default would be running in AP mode and thus on 172.24.1.1/24 network.

Here is method to disable Pi3 on-board WIFI/BT.

sudo nano /etc/modprobe.d/disable_rpi3_wifi_bt.conf
# wifi
blacklist brcmfmac
blacklist brcmutil
# bt
blacklist btbcm
blacklist hci_uart

Paste the above lines in the file, save it then reboot.

-Tim
 
Problems with Audiolab MDAC

I am struggling to get Moode (with Pi 3)to output to my MDAC.
I had it working in an early release of 2.6 but cannot get anything with the latest version.
I have:
1. INITIAL SETUP
insert sd card
connect USB
insert ethernet cable
power on
Connected to Moode on my PC

2. AUDIO DEVICE SETUP
- USB DEVICE
a) Menu, Configure, MPD
b) leave Volume control set to "Software"
c) set Audio output to "USB audio device" then press APPLY

All I get on my MDAC display is "USB Ready 0db"
I can access my Nas, get the library up in Moode and chose a track to play which the Moode app on my PC says is playing but not a beep out of the MDAC.
I have tried every variation I can think of for plugging the MDAC into the Pi before and after turning the MDAC on but I get nothing.
Does anyone have any ideas/suggestions?
 
I'm not much help here, but I wanted to relate my experience that seems to mirror yours. Until recently, my remote was my now three-year-old smartphone, android with a small screen. It was difficult, but it worked. Two weeks ago there was a special on Amazon Fire tablets, the smallest (7 inches) and most basic for $40US. I jumped on it specifically for use as My Moode remote, and it's much nicer.

In my 34 years working at a scientific graphics software developer I saw many examples where minor changes in text specifications caused deterioration in the interface as they often required geometry and dimensional changes that were somewhat demanding when you really wanted to advance the functionality of the software.

It's a tough balance, but I think Tim keeps things on track very well.

Skip

I too am using a Fire but being new to Moode am searching for the Fire App which works best with Moode. What are you using?
 
Hi Kai,

I'm able to repro the issue where Airplay service name is not routed out eth0 connection when Pi3. Looks like shairport-sync is routing it out the wlan0 interface which by default would be running in AP mode and thus on 172.24.1.1/24 network.

Here is method to disable Pi3 on-board WIFI/BT.

sudo nano /etc/modprobe.d/disable_rpi3_wifi_bt.conf
# wifi
blacklist brcmfmac
blacklist brcmutil
# bt
blacklist btbcm
blacklist hci_uart

Paste the above lines in the file, save it then reboot.

-Tim
Hi Tim,
disabling the WIFI completely solves also the problem of Airplay via Ethernet connection. Thanks for the suggestion.

At the same time I find a strange behaviour between RPI3 & Hifiberry DAC Pro+ and another RPI3 & Hifiberry AMP. While the DAC Pro+ behaves as expected together with iTunes and IPhone / IPad Airplay. The AMP has problems with volume control: Only at max volume setting in ITunes I hear some music. If I set it below, no sound. If I go in the web user interface of moode player (playback page) and change the sound setting there it is working again at lower volume setting. Even if I only press the refresh button in the user interface sound is working again. This happens both with hardware and software volume control.
Any idea ?
Thanks
Kai
 
My Help for international users

Hi Tim,

Enjoying Moode 2.6 on my Pi3 which now has an IQaudio Pi-DAC+.

But as I don't have a QWERTY keyboard and thought others might not either. I wanted to add a Keyboard & Layout option to the Sys Config.

I add 2 entries into the DB, "keyboard" and "kvariant"

I added the following to worker.php
PHP:
case 'keyboard':
			sysCmd('/var/www/command/util.sh set-keyboard ' . $_SESSION['w_queueargs']);
			break;
case 'kvariant':
			sysCmd('/var/www/command/util.sh set-keyboard-variant' . $_SESSION['w_queueargs']);
			break;
and to sys-config.php I added
PHP:
require_once dirname(__FILE__) . '/inc/keyboard.php';
require_once dirname(__FILE__) . '/inc/kvariant.php';

and
PHP:
// keyboard 
if (isset($_POST['update_keyboard'])) {
	if (isset($_POST['keyboard']) && $_POST['keyboard'] != $_SESSION['keyboard']) {
		submitJob('keyboard', $_POST['keyboard'], 'Keyboard set to ' . $_POST['keyboard'], '');
		playerSession('write', 'keyboard', $_POST['keyboard']);
	} 
}
// keyboard variant
if (isset($_POST['update_keyboard_variant'])) {
	if (isset($_POST['kvariant']) && $_POST['kvariant'] != $_SESSION['kvariant']) {
		submitJob('kvariant', $_POST['kvariant'], 'Keyboard Variant set to ' . $_POST['kvariant'], '');
		playerSession('write', 'kvariant', $_POST['kvariant']);
	} 
}

also

PHP:
// keyboard list
$_keyboard['keyboard'] = buildKeyboardSelect($_SESSION['keyboard']);

// keyboard variant list
$_kvariant['kvariant'] = buildVariantSelect($_SESSION['kvariant']);

To util.sh I added the following;

PHP:
if [[ $1 = "set-keyboard" ]]; then
	debconf-set-selections <<< "keyboard-configuration keyboard-configuration/layoutcode string $2"
	debconf-set-selections <<< "keyboard-configuration keyboard-configuration/xkb-keymap select $2"
	exit
fi
if [[ $1 = "set-keyboard-variant" ]]; then
	debconf-set-selections <<< "keyboard-configuration keyboard-configuration/variant select $2"
	exit
fi

I added the following to sys-config.html

PHP:
			<div class="control-group">
				<label class="control-label" for="keyboard">Keyboard</label>
				<div class="controls">
					<select id="keyboard" class="input-large" name="keyboard">		
						$_keyboard[keyboard]
					</select>
					<button class="btn btn-primary btn-small" type="submit" name="update_keyboard" value="novalue" style="margin-left: 8px;">Set</button>
				</div>
			</div>		
			<div class="control-group">
				<label class="control-label" for="kvariant">Layout</label>
				<div class="controls">
					<select id="kvariant" class="input-large" name="kvariant">		
						$_kvariant[kvariant]
					</select>
					<button class="btn btn-primary btn-small" type="submit" name="update_keyboard_variant" value="novalue" style="margin-left: 8px;">Set</button>
				</div>
			</div>

The two inc files I created are "keyboard.php"

PHP:
<?php
/**
 * 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 Moode; see the file COPYING.  If not, see
 * <http://www.gnu.org/licenses/>.
 *
 * Moode Audio Player (c) 2015 Andreas Goetz <cpuidle@gmx.de>
 * [url=http://moodeaudio.org]moodeaudio.org[/url]
 *
 * 2016-06-26 RP initial version
 *
 */
 
function buildKeyboardSelect($selected) {
	$keyboard_list = array(
"us",
"gb",
"af",
"ara",
"al",
"am",
"at",
"az",
"ba",
"bd",
"be",
"bg",
"br",
"brai",
"bt",
"bw",
"by",
"cm",
"ca",
"cd",
"ch",
"cn",
"cz",
"dk",
"ee",
"epo",
"hr",
"in",
"ir",
"iq",
"fo",
"fi",
"fr",
"gh",
"gn",
"ge",
"de",
"es",
"et",
"gr",
"hu",
"ie",
"is",
"il",
"it",
"jp",
"ke",
"kg",
"kh",
"kr",
"kz",
"la",
"latam",
"lk",
"lt",
"lv",
"ma",
"mao",
"md",
"me",
"mk",
"ml",
"mm",
"mn",
"mt",
"mv",
"ng",
"no",
"nl",
"np",
"pk",
"ph"
"pl",
"pt",
"ro",
"ru",
"rs",
"si",
"sk",
"se",
"sn",
"sy",
"tj",
"th",
"tm",
"tr",
"tw",
"tz",
"ua",
"uz",
"vn",
"za"
	);

	$res = '';
	foreach ($keyboard_list as $kb) {
		$sel = ($selected == $kb) ? ' selected' : '';
		$res .= sprintf("<option value='%s'%s>%s</option>\n", $kb, $sel, $kb);
	}

	return $res;
}

and "kvariant.php"

PHP:
<?php
/**
 * 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 Moode; see the file COPYING.  If not, see
 * <http://www.gnu.org/licenses/>.
 *
 * Moode Audio Player (c) 2015 Andreas Goetz <cpuidle@gmx.de>
 * [url=http://moodeaudio.org]moodeaudio.org[/url]
 *
 * 2016-06-26 RP initial version
 *
 */
 
function buildVariantSelect($selected) {
	$kvariant_list = array(
"Afghani",
"Amharic",
"Arabic",
"Arabic (Morocco)",
"Arabic (Syria)",
"Albanian",
"Armenian",
"Azerbaijani",
"Bambara",
"Belarusian",
"Belgian",
"Bangla",
"Bosnian",
"Braille",
"Bulgarian",
"Burmese",
"Chinese",
"Croatian",
"Czech",
"Danish",
"Dhivehi",
"Dutch",
"Dzongkha",
"English (Cameroon)",
"English (Ghana)",
"French (Guinea)",
"English (Nigeria)",
"English (South Africa)",
"English (UK)",
"English (US)",
"Esperanto",
"Estonian",
"Faroese",
"Finnish",
"Filipino",
"French",
"French (Canada)",
"French (Democratic Republic of the Congo)",
"Georgian",
"German",
"German (Austria)",
"German (Switzerland)",
"Greek",
"Hebrew",
"Hungarian",
"Icelandic",
"Indian",
"Iraqi",
"Irish",
"Italian",
"Japanese",
"Kazakh",
"Khmer (Cambodia)",
"Korean",
"Kyrgyz",
"Lao",
"Lithuanian",
"Latvian",
"Maori",
"Montenegrin",
"Macedonian",
"Maltese",
"Moldavian",
"Mongolian",
"Nepali",
"Norwegian",
"Persian",
"Polish",
"Portuguese",
"Portuguese (Brazil)",
"Romanian",
"Russian",
"Serbian",
"Slovenian",
"Slovak",
"Spanish",
"Spanish (Latin American)",
"Swahili (Tanzania)",
"Swahili (Kenya)",
"Swedish",
"Sinhala (phonetic)",
"Tajik",
"Thai",
"Turkish",
"Taiwanese",
"Tswana",
"Turkmen",
"Ukrainian",
"Uzbek",
"Urdu (Pakistan)",
"Vietnamese",
"Wolof"
	);

	$res = '';
	foreach ($kvariant_list as $kv) {
		$sel = ($selected == $kv) ? ' selected' : '';
		$res .= sprintf("<option value='%s'%s>%s</option>\n", $kv, $sel, $kv);
	}

	return $res;
}

Result as it shows in the UI see image.

Let me know if I should send over to you the files for a double check and hopefully to be included in the next update :eek:

Richard
 

Attachments

  • SysConf.png
    SysConf.png
    21.2 KB · Views: 327
Hey Tim, I just donated a little bit of money through your link to thank you of such great job.

I would advise all the people who find Moode to be useful to do the same since it is so impressive the amount of work you put into it.

It is a great project and my newly refurbished 1937 radio is loving it :) All the family can control it thanks to Moode and play web radios as well as mucis from the NAS.

Rémi
 
I am struggling to get Moode (with Pi 3)to output to my MDAC.
I had it working in an early release of 2.6 but cannot get anything with the latest version.
I have:
1. INITIAL SETUP
insert sd card
connect USB
insert ethernet cable
power on
Connected to Moode on my PC

2. AUDIO DEVICE SETUP
- USB DEVICE
a) Menu, Configure, MPD
b) leave Volume control set to "Software"
c) set Audio output to "USB audio device" then press APPLY

All I get on my MDAC display is "USB Ready 0db"
I can access my Nas, get the library up in Moode and chose a track to play which the Moode app on my PC says is playing but not a beep out of the MDAC.
I have tried every variation I can think of for plugging the MDAC into the Pi before and after turning the MDAC on but I get nothing.
Does anyone have any ideas/suggestions?

Hi Richard,

What is ALSA volume (%) on System config screen?

-Tim
 
Hi,

Below are instructions for downloading and installing the new in-place software updater for Moode 2.6.

Download and install updater.sh via ssh

1) cd ~/
2) sudo wget -q "http://moodeaudio.org/downloads/updater.sh.zip" -O updater.sh.zip
3) sudo unzip -q -o updater.sh.zip
4) sudo mv updater.sh /var/www/command
5) sudo rm updater.sh.zip

Run Updater for first time. This will install the latest fixes and updates for Moode 2.6, one of which is the UI version of Updater on System config screen :)

1) sudo /var/www/command/updater.sh r26
2) sudo reboot

NOTE 1: one of the updates will revert the theme color on the Playback panel to the default Emerald. To correct this, toggle to another theme color then back to your favorite color, then refresh the screen.

NOTE 2: if u want to see how the UI version of Updater works then delete /var/www/update-r26.txt file, open System config page and click "CHECK for software update", then VIEW to examine the content of the update and then INSTALL :)

NOTE 3: Updates cannot be undone since there is no rollback mechanism in this initial version of Updater. Updates in a package are repeatable i.e., the package can be reinstalled.

Below is the list of fixes and updates contained in the initial package.

NEW: In-place software updater
UPD: Improve watchdog monitoring to include MPD restart
UPD: Change MPD socket connection to use debugLog()
FIX: Remove circular symlinks in /mnt for NAS and SDCARD
FIX: Playback panel toolbar not visible on iPad Mini

Regards,
Tim

Hello Tim,

Can this be done on any release or should it be the final 2.6?

I did it on a TR but I guess I did not get all things fixed in the final 2.6 by using the updater.

Thanks.

Regards,
 
Hi Tim!

I've tested Moode 2.6 for a longer period now and I have to say: excellent work! It operates perfect and stable in all to me relevant issues.

But the most important thing: It nearly draws equal with 'Archphile' concerning sound quality.

Just a little point: The coloured 'time-ring' looses synchronization to counted time when I get out of Moode or display of my phone turns off. I'm using Android 6.01 with google chrome. Counted time is always shown as correct. Maybe it's possible to bind that proceeding 'time-ring' to the shown counted time?

Do you plan to offer Moode also for ODROID C1+ or C2? I am asking that for the reason that in audio relevant aspects the ODROID boards are definitely the better devices- consequent separation of eth and usb; better clock implementation...and generally far better performance at nearly equal costs.


Greetingz, Robert
 
Hi Tim,
disabling the WIFI completely solves also the problem of Airplay via Ethernet connection. Thanks for the suggestion.

At the same time I find a strange behaviour between RPI3 & Hifiberry DAC Pro+ and another RPI3 & Hifiberry AMP. While the DAC Pro+ behaves as expected together with iTunes and IPhone / IPad Airplay. The AMP has problems with volume control: Only at max volume setting in ITunes I hear some music. If I set it below, no sound. If I go in the web user interface of moode player (playback page) and change the sound setting there it is working again at lower volume setting. Even if I only press the refresh button in the user interface sound is working again. This happens both with hardware and software volume control.
Any idea ?
Thanks
Kai

Hi Kai,

Try the following to troubleshoot:

1) turn on debug logging in System config
2) turn Airplay receiver OFF, then SET
3) turn Airplay receiver ON, then SET
4) ssh pi@moode (pwd=raspberry)
5) ./mlog.sh
6) post the output of #5 here in the thread or email it to me

-Tim
 
Hi Tim,

Enjoying Moode 2.6 on my Pi3 which now has an IQaudio Pi-DAC+.

But as I don't have a QWERTY keyboard and thought others might not either. I wanted to add a Keyboard & Layout option to the Sys Config.

I add 2 entries into the DB, "keyboard" and "kvariant"

I added the following to worker.php
PHP:
case 'keyboard':
			sysCmd('/var/www/command/util.sh set-keyboard ' . $_SESSION['w_queueargs']);
			break;
case 'kvariant':
			sysCmd('/var/www/command/util.sh set-keyboard-variant' . $_SESSION['w_queueargs']);
			break;
and to sys-config.php I added
PHP:
require_once dirname(__FILE__) . '/inc/keyboard.php';
require_once dirname(__FILE__) . '/inc/kvariant.php';

and
PHP:
// keyboard 
if (isset($_POST['update_keyboard'])) {
	if (isset($_POST['keyboard']) && $_POST['keyboard'] != $_SESSION['keyboard']) {
		submitJob('keyboard', $_POST['keyboard'], 'Keyboard set to ' . $_POST['keyboard'], '');
		playerSession('write', 'keyboard', $_POST['keyboard']);
	} 
}
// keyboard variant
if (isset($_POST['update_keyboard_variant'])) {
	if (isset($_POST['kvariant']) && $_POST['kvariant'] != $_SESSION['kvariant']) {
		submitJob('kvariant', $_POST['kvariant'], 'Keyboard Variant set to ' . $_POST['kvariant'], '');
		playerSession('write', 'kvariant', $_POST['kvariant']);
	} 
}

also

PHP:
// keyboard list
$_keyboard['keyboard'] = buildKeyboardSelect($_SESSION['keyboard']);

// keyboard variant list
$_kvariant['kvariant'] = buildVariantSelect($_SESSION['kvariant']);

To util.sh I added the following;

PHP:
if [[ $1 = "set-keyboard" ]]; then
	debconf-set-selections <<< "keyboard-configuration keyboard-configuration/layoutcode string $2"
	debconf-set-selections <<< "keyboard-configuration keyboard-configuration/xkb-keymap select $2"
	exit
fi
if [[ $1 = "set-keyboard-variant" ]]; then
	debconf-set-selections <<< "keyboard-configuration keyboard-configuration/variant select $2"
	exit
fi

I added the following to sys-config.html

PHP:
			<div class="control-group">
				<label class="control-label" for="keyboard">Keyboard</label>
				<div class="controls">
					<select id="keyboard" class="input-large" name="keyboard">		
						$_keyboard[keyboard]
					</select>
					<button class="btn btn-primary btn-small" type="submit" name="update_keyboard" value="novalue" style="margin-left: 8px;">Set</button>
				</div>
			</div>		
			<div class="control-group">
				<label class="control-label" for="kvariant">Layout</label>
				<div class="controls">
					<select id="kvariant" class="input-large" name="kvariant">		
						$_kvariant[kvariant]
					</select>
					<button class="btn btn-primary btn-small" type="submit" name="update_keyboard_variant" value="novalue" style="margin-left: 8px;">Set</button>
				</div>
			</div>

The two inc files I created are "keyboard.php"

PHP:
<?php
/**
 * 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 Moode; see the file COPYING.  If not, see
 * <http://www.gnu.org/licenses/>.
 *
 * Moode Audio Player (c) 2015 Andreas Goetz <cpuidle@gmx.de>
 * [url=http://moodeaudio.org]moodeaudio.org[/url]
 *
 * 2016-06-26 RP initial version
 *
 */
 
function buildKeyboardSelect($selected) {
	$keyboard_list = array(
"us",
"gb",
"af",
"ara",
"al",
"am",
"at",
"az",
"ba",
"bd",
"be",
"bg",
"br",
"brai",
"bt",
"bw",
"by",
"cm",
"ca",
"cd",
"ch",
"cn",
"cz",
"dk",
"ee",
"epo",
"hr",
"in",
"ir",
"iq",
"fo",
"fi",
"fr",
"gh",
"gn",
"ge",
"de",
"es",
"et",
"gr",
"hu",
"ie",
"is",
"il",
"it",
"jp",
"ke",
"kg",
"kh",
"kr",
"kz",
"la",
"latam",
"lk",
"lt",
"lv",
"ma",
"mao",
"md",
"me",
"mk",
"ml",
"mm",
"mn",
"mt",
"mv",
"ng",
"no",
"nl",
"np",
"pk",
"ph"
"pl",
"pt",
"ro",
"ru",
"rs",
"si",
"sk",
"se",
"sn",
"sy",
"tj",
"th",
"tm",
"tr",
"tw",
"tz",
"ua",
"uz",
"vn",
"za"
	);

	$res = '';
	foreach ($keyboard_list as $kb) {
		$sel = ($selected == $kb) ? ' selected' : '';
		$res .= sprintf("<option value='%s'%s>%s</option>\n", $kb, $sel, $kb);
	}

	return $res;
}

and "kvariant.php"

PHP:
<?php
/**
 * 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 Moode; see the file COPYING.  If not, see
 * <http://www.gnu.org/licenses/>.
 *
 * Moode Audio Player (c) 2015 Andreas Goetz <cpuidle@gmx.de>
 * [url=http://moodeaudio.org]moodeaudio.org[/url]
 *
 * 2016-06-26 RP initial version
 *
 */
 
function buildVariantSelect($selected) {
	$kvariant_list = array(
"Afghani",
"Amharic",
"Arabic",
"Arabic (Morocco)",
"Arabic (Syria)",
"Albanian",
"Armenian",
"Azerbaijani",
"Bambara",
"Belarusian",
"Belgian",
"Bangla",
"Bosnian",
"Braille",
"Bulgarian",
"Burmese",
"Chinese",
"Croatian",
"Czech",
"Danish",
"Dhivehi",
"Dutch",
"Dzongkha",
"English (Cameroon)",
"English (Ghana)",
"French (Guinea)",
"English (Nigeria)",
"English (South Africa)",
"English (UK)",
"English (US)",
"Esperanto",
"Estonian",
"Faroese",
"Finnish",
"Filipino",
"French",
"French (Canada)",
"French (Democratic Republic of the Congo)",
"Georgian",
"German",
"German (Austria)",
"German (Switzerland)",
"Greek",
"Hebrew",
"Hungarian",
"Icelandic",
"Indian",
"Iraqi",
"Irish",
"Italian",
"Japanese",
"Kazakh",
"Khmer (Cambodia)",
"Korean",
"Kyrgyz",
"Lao",
"Lithuanian",
"Latvian",
"Maori",
"Montenegrin",
"Macedonian",
"Maltese",
"Moldavian",
"Mongolian",
"Nepali",
"Norwegian",
"Persian",
"Polish",
"Portuguese",
"Portuguese (Brazil)",
"Romanian",
"Russian",
"Serbian",
"Slovenian",
"Slovak",
"Spanish",
"Spanish (Latin American)",
"Swahili (Tanzania)",
"Swahili (Kenya)",
"Swedish",
"Sinhala (phonetic)",
"Tajik",
"Thai",
"Turkish",
"Taiwanese",
"Tswana",
"Turkmen",
"Ukrainian",
"Uzbek",
"Urdu (Pakistan)",
"Vietnamese",
"Wolof"
	);

	$res = '';
	foreach ($kvariant_list as $kv) {
		$sel = ($selected == $kv) ? ' selected' : '';
		$res .= sprintf("<option value='%s'%s>%s</option>\n", $kv, $sel, $kv);
	}

	return $res;
}

Result as it shows in the UI see image.

Let me know if I should send over to you the files for a double check and hopefully to be included in the next update :eek:

Richard

Hi Richard,

There have been several requests for this so definitely I will merge the code into either the next Moode 2.6 in-place update or into Moode 2.7.

Many thanks!

Regards,
Tim
 
Hey Tim, I just donated a little bit of money through your link to thank you of such great job.

I would advise all the people who find Moode to be useful to do the same since it is so impressive the amount of work you put into it.

It is a great project and my newly refurbished 1937 radio is loving it :) All the family can control it thanks to Moode and play web radios as well as mucis from the NAS.

Rémi

Hi Remi,

Thanks for the nice compliment! Much appreciated :)

-TIm
 
Hi Tim!

I've tested Moode 2.6 for a longer period now and I have to say: excellent work! It operates perfect and stable in all to me relevant issues.

But the most important thing: It nearly draws equal with 'Archphile' concerning sound quality.

Just a little point: The coloured 'time-ring' looses synchronization to counted time when I get out of Moode or display of my phone turns off. I'm using Android 6.01 with google chrome. Counted time is always shown as correct. Maybe it's possible to bind that proceeding 'time-ring' to the shown counted time?

Do you plan to offer Moode also for ODROID C1+ or C2? I am asking that for the reason that in audio relevant aspects the ODROID boards are definitely the better devices- consequent separation of eth and usb; better clock implementation...and generally far better performance at nearly equal costs.


Greetingz, Robert

Hi Robert,

I'm not sure why the time ring behaves that way when the window is not topmost but same thing happens for me. Page refresh updates it.

No plans for any cross-platform development. Single platform Raspberry Pi family is enough of a challenge for me!

Several audio manufacturers that I have spoken with are designing a new generation of I2S DAC boards and drivers that operate in master mode with high precision clocks (similar to HifiBerry DAC+Pro design), and they incorporate improved power management.

Future is looking really good :)

-Tim
 
Hi Tim!

That's really good news:)

BTW: Is it possible to reduce CPU- Frequency somehow? (PI 3 gets much hotter than previous PI- boards and that hi speed just for wav- playback is not needed).

The possibility to disable hardware components that are not needed would also be a very interesting option.

Grretingz, Robert
 
Hi Tim!

That's really good news:)

BTW: Is it possible to reduce CPU- Frequency somehow? (PI 3 gets much hotter than previous PI- boards and that hi speed just for wav- playback is not needed).

The possibility to disable hardware components that are not needed would also be a very interesting option.

Grretingz, Robert

Hi Robert,

Unless overclock settings are present in /boot/config.txt, Pi3 operates using dynamic frequency scaling which results in low freq while idling and higher freq when doing work.

If the WiFi/BT drivers are blacklisted using the procedure below, the on-board chip will not be operating.

sudo nano /etc/modprobe.d/disable_rpi3_wifi_bt.conf
# wifi
blacklist brcmfmac
blacklist brcmutil
# bt
blacklist btbcm
blacklist hci_uart

Paste the above lines in the file, save it then reboot.

-Tim