moode-player / moode Goto Github PK
View Code? Open in Web Editor NEWmoOde sources and configs
License: GNU General Public License v3.0
moOde sources and configs
License: GNU General Public License v3.0
(moOde 6.3)
The New Station menu allows the user to CHOOSE an logo image for the station entry. The image is uploaded and stored in /var/www/images/radio-logos/, a thumbnail version is created from it and stored in /var/www/images/radio-logos/thumbs/, and then the result is displayed in miniature.
If the user then chooses to CANCEL rather than CREATE the new station entry, the two image files remain behind as orphans. They don't affect the normal operation of moOde and they don't consume much storage but they lead to the following interesting behavior.
If at some later time, the user CREATEs an entry and happens to use the same name but does not CHOOSE a logo, the orphaned image files are "automagically" used.
Whether this behavior would be considered a feature or a bug probably depends on the mindset of the user:)
MoOde is more wonderful than Volumio. Unfortunately, only Raspberry Pi version is available for MoOde. On the other hand, Volumio can support Rock64, TV box by Amlogic S9xxx S8xxx , and other Pi version.
I'm wondering if there is someone who has accomplished the installation of MoOde for Rock64 or S9XXX S8XXX Pi.
Looking forward to your kindly response.
Thank you!
Hey Paul,
I just released 5.3 and it was committed to the develop branch. Can you show me how to merge develop into master?
Then hopefully we can get to those PR's.
Thanks :-)
Hi,
PR 76/77 from @gbh-uk tested and merged into the develop branch :-)
@monkeypox, doesn't this more or less cover the Album/Year sort when Artist clicked scenario?
Just a heads up regarding some items that I'm looking at working on to further improve the Library for r650 release. These are relatively easy for me to do on my own.
A more complex improvement that I'll need help to implement is @monkeypox changes that replace the button bar in Library views with a more flexible Menu. There are also IIRC a few improvements to the Playbar that should be implemented.
Thank you for you great work on moode Audio.
Is it possible to provide a shairport-sync compiled with "--with-mqtt-client" in mOode Audio for a better integration in HomeAssistant that will be great!
Feature suggestion to add an option to allow changing the sorting method of the album cover view without going into Customize settings.
This is useful for those (like myself) with an eclectic music library, who often change whether sorting by Album Artist or Album, (and by extension Year, Genre, Composer, etc.)
This might suggest also repopulating the sub-title label for each album with the relevant metadata to make it clear where sorting changes happen (e.g. displaying the release year instead of Album Artist when sorting by year).
I have a LTE (mobile internet) dongle plugged into the RPi 1B to provide the internet address. I configured a static ethernet address through the web interface, but the RPi never acquired it. It always got the address from the DHCP server on the LTE dongle. After I figured out, what the web interface does, I noticed that the /etc/dhcpcd.config
contains interface eth0
! After changing this line to interface eth1
, everything works as expected (until the file gets overwritten by a new save).
I would think, that effects everyone who uses a USB dongle showing up as eth1
(because the internal network interface is eth0
). Would it be possible to write a configuration file which will also work for USB network dongles?
My system:
moOde release = 6.4.0 2019-11-24
Raspbian OS = 10.2
I'd like to change branch name "develop" to "development"
Are steps below the right way to do this?
Do you plan to integrate a tool like snapcast for multiroom ?
Hi
Is it possible to run this on Qemu? If so any simple tutorial on how? I tried bunch of things and so far I could only get to the shell and login without any graphics. I am not sure if Qemu is emulaitng the sound hardware at the moment. In any case I would like to try this on Qemu before buying a pi to make sure I tested it first.
With 6.4.0 running on Raspberry Pi 3B+ (not tested other configurations),
in order to enable Audio Config / Renderers / Bluetooth
enabling System Config / System Modifications / Integrated BT adapter is not enough.
One needs to also enable Integrated WiFi adapter.
Without this, trying to enable Bluetooth causes a web interface loss.
The only way out I found is
sqlite3 /var/local/www/db/moode-sqlite3.db "update cfg_system set value=0 where param='btsvc';" && reboot
Is it possible to create dependency links between these three options ?
Hi,
I try to enable cover backdrop but nothing will happen. moode refreshes after the option is enabled under "Customize" but cover backdrop is not there. Going into the "Customize" menu again shows the options are blank again. Clearing browser cache does not help. I also tried something like clear cache, set options, clear cache again to no avail. Tried rebooting after setting the option, still nothing. Tried with Firefox 63, Chrome 70.0.3538.77, Safari 12.0.
This is not an immediate problem---indeed it may not raise its ugly head for some years yet---but the Python community is officially sunsetting Python2.7 on 2020/01/01. This means they will no longer provide security updates nor will they provide support to Python2.x coders, period.
Meanwhile, Debian included Python2.7 in Buster so it should at least run with its included libraries/modules until ~2022. I don't know what the official Raspbian position is but presumably it will be driven by Debian.
None of this comes as a surprise. Python 3.0 was released in 2008, but the user community has been dragging its feet in adopting it since the beginning. The official sunset date has been changed at least once as a result. There's more smoke than fire in the continual flame wars concerning 2 vs 3.
We can't boil the ocean but, as a practical matter, I think whatever Python code we put in moOde should be at least Python3 ready.
A quick sweep of the current repo codebase turns up:
kreed@T520 ~/repos/moode $ find . -name \*py
./other/upmpdcli/session.py
./var/local/www/commandw/lcdup.py
./www/command/bt-agent.py
./www/command/gpio-buttons.py
I'm not sure we actually use session.py.
If I run pylint against the rest I get lots of messages relating to (non)conformance to PEPs, refactoring suggestions, etc., but only gpio-buttons.py is specifically flagged as not Python3 ready.
When I get a moment, I'll post some proposed fixes.
Notes:
If one simply asks Raspbian Buster what depends on Python2.7, a laundry list of items pops up, the most important of which for us besides Python2.7 and its modules is Samba. I think as long as Samba is not up-versioned, it's safe to assume Python2.7 will stick around.
Of course, these routines could be reimplemented in some other language :)
Spotted on this thread
http://moodeaudio.org/forum/showthread.php?tid=1925
"What is a bit irritating for me though, is that I have added some additional radio stations via "New station" + button, which I later added to my list of Favorites. The issue is - that some of them has IP addresses as urls (or meaningless DNS names), so when having couple of such, it's becoming hard to navigate which one is which." Moode 6.3.0 and reproduced in 6.4.1.
For certain if a user is playing a user added station or even a moode default station and then adds the currently playing station to their favorites by way of clicking the heart icon in the player ... the resulting Favorites.m3u file is just a list of URL's without associated "track titles" or duration's (-1 for streams).
This then makes it harder to navigate the Favorites playlist as the list items can only be identified by their playback URL rather than a station name. The player doesn't seem to pick the user added station name but it will for a station that was in the build by default.
db entry looked fine in clean 6.4.1 adding HeartDance > https://media-ssl.musicradio.com/HeartDance, but station name was never added to Favorites.m3u
499|zx reserved 499|zx reserved 499|s|zx reserved 499
500|https://media-ssl.musicradio.com/HeartDance|Heart Dance|u|local
M3U correct formatting ...
#EXTM3U
#EXTINF:-1,Gold 104.3
http://icy.arn.com.au/au_004_icy
Is it possible to have the audio output via HDMI? In the configuration the HDMI port is set to on, however I can't see how I can configure this.
Cheers! Sacha
When I upgrade to 6.2, the airplay and upnp not working.
My moode is connect to a USB DAC, and when I play music in moode (eg. play radio or files in moode drive), it works great.
While airplay used, there isn't any sound even I turn every device's volume to maximum.
While upnp used from my android phone, it gives some 1 second strange sound and then stop, and my phone tells me the DLNA device not working..
What would the problem is ?Thanks
Moode considers two albums with the same name to be the same album. This is often not the case with albums with short names, like “Solo”. Moode should group only tracks that have both the same ‘Album’ and ‘Album Artist’ tags together.
moOde 6.3.0:
Expected behavior: When I "choose" a JPEG image file for a logo for a new station, I expect to see a small thumbnail of the image appear next to the CHOOSE box.
Actual behavior: Irrespective of the image file chosen, I see a small generic icon (a page with a dog-eared upper right corner and something graphic in center).
Investigation: in one example, the URL of this graphic written into the UI webpage (template indextpl.html
, lines 641ff) is
blob:http://moode3a/975636ac-514f-490b-a33b-277f878909cd
The GUID changes each time I choose an image file (which I think is to be expected).
The URL in question is generated in function importLogoImage(files) {}
in playerlib.js, line 2202ff. I've read and reread the docs for the JavaScript functions used here but I still don't understand them well enough to point to a flaw in program logic. Is it possible the URL is revoked before the data is loaded?
Hi
I dont know if this idea will be loved :D
But I start to rewrite all the UI to Angular, why for fun and for more modularity and Internationalization (i18n)
and code cleaning
I can show you an POF in 2 week or less i already got the player working great
My idea is to upgrade adaptative option for feat to smartphone and 7"
If you love that i'll try to port every curent option to angular
Max,
Todo List :
Hello,
I have a problem. When I play music and want to listen to it by Jack, no sound comes out. On the other hand, if I choose to make the sound come out on a bluetooth device, everything works.
Ideas ?
It seems that the MPD config of Moode does not support IPv6.
This is a shame in an IPv4/IPv6 mixed network, as done with modern fritzbox routers. That means you have to manually enter the IPv4 in every MPDroid client instead of performing a dns lookup.
Info:
MPDroid Error Message (MPDroid works with IPv4):
failed to connect to <dns-name>/<ipv6> (port 6600) from /<ipv6-phone> (port 34743) after 10000ms: isConnected failed: ECONNREFUSED (Connection Refused)
When attempting to ssh in I get the following error.
Connecting to 192.168.1.116 port 22
java.net.ConnectException: failed to connect to /192.168.1.116 (port 22) from /:: (port 41884): connect failed: ECONNREFUSED (Connection refused)
flac/mp3 music plays normal(select hifiberry dac/or other dac ...),but high bitrate encoder error,seems driver not functioning!
my board is not Audiophonics,but chip is es9038q2m.
even though i add : dtoverlay=i-sabre-q2m to /boot/config.txt,after reboot ,this txt will recover to hifiberry-dac or other device name in i2s audio device list!!(reboot from terminal)
do i need recompile driver from here? https://github.com/audiophonics/I-Sabre_9038Q2M
I just installed a new machine on the newest version of moode but im not getting any audio output using the inbuilt soundcard, what would i need to turn on?
I've noticed obvious electrical noise since 6.3.0 update with my Pi3B + ES9023 board. Recently I've run a bunch of tests, and I'm pretty sure it's moode's problem.
System | Source *bit | SoX to *bit | Noise |
---|---|---|---|
moode | 16 | Off | Yes |
moode | 24 | Off | No |
moode | 32 | Off | No |
moode | 24/32 | 16 | Yes |
moode | 16/32 | 24 | No |
moode | 16/24 | 32 | No |
volumio | 16/24/32 | Off/16/24/32 | No |
Do you know what caused the probelm?
For reference in case of bug
https://www.musicpd.org/doc/html/protocol.html#controlling-playback
pause {PAUSE}
Toggles pause/resumes playing, PAUSE is 0 or 1.
The use of pause command without the PAUSE argument is deprecated.
Many thanks for version 6.0!! 👍
I see an issue with library option Show Genres column (Yes/No) on small display (my smartphone), see first screenshot for the bug, second screenshot is on landscape mode which goes without bug.
Getting same results with firefox or chrome (cleared cache completely), it happens if I'm in portrait mode after clicking on an artist. Went to 6.0 from fresh image.
I was surprised when I tried to view build_recipe_v2.15.txt using xed and got gibberish. Turns out it's considered a data file because the file contains a NUL character:
kreed@T520 ~/repos/moode/other/build $ file build_recipe_v2.15.txt build_recipe_v2.15.txt: data
Running the following script prints the offending line and reveals its non-printing characters (NUL='^@' and LF='$'):
kreed@T520 ~/repos/moode/other/build $ grep -Pan '\x00' build_recipe_v2.15.txt|cat -vET
229:sudo apt-get -y install udevil^@$
I can't claim I've checked the entire repo, but I did look through ./www and its first-level subdirectories and found that www/players.php also contains a NUL character:
kreed@T520 ~/repos/moode/www $ grep -Pan '\x00' players.php|cat -vET
28:$result = shell_exec("avahi-browse -a -t -r -p | awk -F '[;.]' '/IPv4/ && /moOde/ && /audio/ && /player/ && /=/ {print $7\",\"$9\".\"$10\".\"$11\".\"$12}' | sort^@");$
I don't believe these NULs have done any harm in context but I believe they should be removed as a matter of good housekeeping.
Using the built in wifi of the pi3b+ I'm not able to run access point or scan wifi networks. Manually adding ssid also cannot connect. Tried both 2.4 and 5G.
Including screenshots on your homepage might be a good idea to avoid forcing users to install the application just in order to take a brief look onto the UI.
Or let them google for (old and outdated) screenshots somewhere on the Internet.
I've just installed moode on a pi1, and I'm unable to mount my NAS. Neither SMB nor NFS will work, and this NAS works flawlessly with several other machines (including volumio). in SMB I get "RPC Error: Unable to receive", and in NFS I get "Mount error: (mount error(13): Permission denied". I don't know what else to do. Could someone help me?
Thanks in advance.
Hi,
would it be possible to provide an PINN image for integration in that project. This way one could easily install moOde in a multi OS environment. Also it would help to get the project greater and widely spread around the globe. Would be great.
Thanks for considering.
References:
https://github.com/procount/pinn
procount/pinn#358
Cloned the repository, created the develop branch in moode-player/moode, and attempted to push it back from the CLI, but was unsuccessful. However I was able to go into the GitHub interface, and create the develop branch. So that branch does exist now.
I then tested the commands in my fork, and was able to use the CLI as expected. So this may be a team-permissions issue.
I'm not sure if this will cause issues for our workflow, but am still experimenting. Details are below:
Unsuccessful attempt to create the develop branch in moode-player/moode using the CLI from a local repository:
$ git clone https://github.com/moode-player/moode.git
$ cd moode
$ git branch develop
$ git branch
develop
* master
$ git checkout develop
Switched to branch 'develop'
$ git push
fatal: The current branch develop has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin develop
$ git push --set-upstream origin develop
remote: Permission to moode-player/moode.git denied to pccasto.
fatal: unable to access 'https://github.com/moode-player/moode.git/': The requested URL returned error: 403
Successful attempt to create the develop branch in pccasto/moode using the CLI from a local repository:
$ git checkout -b develop
Switched to a new branch 'develop'
$ git push
fatal: The current branch develop has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin develop
$ git push --set-upstream origin develop
Total 0 (delta 0), reused 0 (delta 0)
remote:
remote: Create a pull request for 'develop' on GitHub by visiting:
remote: https://github.com/pccasto/moode/pull/new/develop
remote:
To https://github.com/pccasto/moode.git
* [new branch] develop -> develop
Branch 'develop' set up to track remote branch 'develop' from 'origin'.
Hello,
Thanks for the awesome software I really love it!
I noticed something: on the moodeaudio website there is a possibility to have the website as an incon on mobile devices (progressive Web app). It basically makes an "app" from the website. You have it on your home screen and when you open it its in full screen without browser elements.
I found a link explaining what should be done. I believe the only important step. In our case is #1 :
https://appinventiv.com/blog/migrating-your-website-to-progressive-web-app/
It would be really awesome to have this for the moode player, it would save looking for the right tab in the browser part and would also partly answer to some people that were requesting an app.
I'm happy to help if I can tell me what I can do 😊.
I have read your guide that states that quotes and double quotes are not allowed in the WiFi password. Is there a specific technical reason that this is not allowed? Because i have them in my WiFi password and this is the first time they are not allowed.
As I've been experimenting with different filesystems for performance, I noticed that a USB drive formatted with the XFS filesystem does not automatically mount while a normal mount command does mount it correctly. As I've looked around, most solutions for auto mounting usb drives on raspbian lite mention some sort of script, does moode use this, or is there a particular package I need to nag about this issue?
If a user creates a moodecfg.txt file with MSDOS line endings, e.g., '\r\n', function autoConfig copies the carriage returns as part of the parameter values. This results in what appears to the casual user to be a failed install.
Examining several obvious locations in the SD card of such a "failed" install, I can see the country code and the ssid in /etc/wpa_supplicant/wpa_supplicant.conf (not to mention the hostname in /etc/hostname) end in '\r', which means it wouldn't connect with the intended AP. I believe this may have been the case with user @kwatch in his recent post to the forum.
At a glance, it would seem that
// Auto-configure settings at worker startup
function autoConfig($cfgfile) {
autoCfgLog('autocfg: Auto-configure initiated');
$contents = file_get_contents($cfgfile);
$autocfg = array();
$line = strtok($contents, "\n");
might use instead something like
$line = str_replace(array("\n", "\r"), '', $contents);
but I'm no PHP guru, just a hacker who knows how to cherrypick Google results:)
Great upgrade in 5.3.1 and Spotify Connect is finally workable. But it is quite strange that the stream can only work for a short time, like 3-5 mins, and the Spotify Connect will be enclosed, together with the pause of on-going music in Spotify software (android app and windows software meet the same situation).
Please help to fix it, thanks a lot!
Any chance we can get pHAT BEAT DAC support? :)
The install is pretty straight forward https://learn.pimoroni.com/tutorial/sandyj/getting-started-with-phat-beat
Would it be possible to use this on a existing raspberry pi? I really like this project but i also want to keep all the projects that i currently have on my raspberry.
Is it an attended behavior?
The userid and password in the audio scrobbler config screen must be the same as my last.fm login username and password? Or do I have to create API keys?
Do I have to install some system libraries for this functionality to work?
Where are the concerned logs located and what should I look for in order to debug this functionality?
What about the SSH term server's default username and password is? I use the user from Pi is incorrect
The pls files constructed by /var/www/command/moode.php
are slightly incorrect in ways which apparently don't affect MPD.
An example is:
pi@moode:/var/lib/mpd/music/RADIO $ cat Zen\ FM.pls
[playlist]
numberofentries=1
File1=http://lb.zenfm.be/zenfm.mp3
Title1=Zen FM
Length1=-1
version=2
which should be
pi@moode:/var/lib/mpd/music/RADIO $ cat Zen\ FM.pls
[playlist]
File1=http://lb.zenfm.be/zenfm.mp3
Title1=Zen FM
Length1=-1
NumberOfEntries=1
Version=2
where NumberOfEntries=
and Version=
are the closing lines and are in Pascal Case.
Starting from my fork of the develop
branch, I've created a new branch fix-pls-format
, and in it modified moode.php. Will create a PR shortly.
Note that this is as much a test of my ability to do a PR on the moOde repo as it is a trivial fix to moode.php. Hence the longish explanation.
References:
Mopidy is a up to date re-implementation of mpd, and can be used as drop in replacement. Therefore I would suggest to replace mpd, in order to get some more features (like subsonic support)
Hi!
I've tried Behringer UMC204HD.
The device has two microphone inputs and two outputs.
root@moode:/etc# amixer -c 1
Simple mixer control 'Mic',0
Capabilities: cvolume cswitch
Capture channels: Front Left - Front Right
Limits: Capture 0 - 127
Front Left: Capture 127 [100%] [0.00dB] [on]
Front Right: Capture 127 [100%] [0.00dB] [on]
Simple mixer control 'Mic',1
Capabilities: cvolume cvolume-joined cswitch cswitch-joined
Capture channels: Mono
Limits: Capture 0 - 127
Mono: Capture 127 [100%] [0.00dB] [on]
Simple mixer control 'UMC204HD 192k Output',0
Capabilities: pvolume pswitch
Playback channels: Front Left - Front Right - Rear Left - Rear Right
Limits: Playback 0 - 127
Mono:
Front Left: Playback 127 [100%] [0.00dB] [on]
Front Right: Playback 127 [100%] [0.00dB] [on]
Rear Left: Playback 127 [100%] [0.00dB] [on]
Rear Right: Playback 127 [100%] [0.00dB] [on]
Simple mixer control 'UMC204HD 192k Output',1
Capabilities: pvolume pvolume-joined pswitch pswitch-joined
Playback channels: Mono
Limits: Playback 0 - 127
Mono: Playback 127 [100%] [0.00dB] [on]
And
awk -F"'" '/Simple mixer control/{print "(" $2 ")";}' <(amixer -c $CARD_NUM)
returns
(Mic)
(Mic)
(UMC204HD 192k Output)
(UMC204HD 192k Output)
It's not exactly the desired result and hardware volume control doesn't work (probably it works, but
controls a wrong mic channel).
I think, checking the capabilities section of mixers will help.
Somehow like this:
amixer -c $CARD_NUM | awk 'BEGIN{FS="\n"; RS="Simple mixer control"} $0 ~ "pvolume" {print $1}' | awk -F"'" '{print "(" $2 ")";}'
So, in my case the result is
(UMC204HD 192k Output)
(UMC204HD 192k Output)
Feature suggestion to have a settings option to automatically add tracks following the selected one also added to the play queue when hitting “play” or “clear/play”. This might necessitate an additional contextual tap option when this is enabled along the lines of “play only” to add a single track to the queue.
iTunes implements this as follows: playing a track adds the rest of the album/open collection (e.g. artist music) to the play queue and starts playing. Right click options offer “play next” and “add to queue” (IIRC) which add an individual song to the front and rear of the play queue respectively.
Hello,
it is possible to integrate tidal and qobuz into the surface. mpd 0.21xx already has the fundamental.
Then upnp would finally go away.
Alternatively an impletation, like volumio an upnp browser.
I'm currently working on providing moode for x86.
Many Thanks
Cliff
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.