Moode Audio Player for Raspberry Pi

Hi,

Correct, the radio station feature only supports the "direct stream link". The internal permalink checker is currently only used for SomaFM stations. Note that the pls or m3u link that many Internet radio stations provide is not really a permalink.

I've had "parse File1=<playllist url>" on the TODO list for a long while but have just never gotten around to it. The code for the upcoming 4.1 release has been frozen for a few days now but maybe I'll take a look.

-Tim

Ok, so this one is done :) The url for Create or Edit station can be either the playable url or a playlist.

-Tim
 
Hi @pinkdot,

Thats cool. Can you try with

--device hw:1,0
--initial-volume 20

-Tim
  • Initial volume works good, see screenshot.
  • hw:1,0 doesn't work for me.
Code:
target/release/librespot --name testing3 --device hw:1,0 --initial-volume 20
INFO:librespot: librespot 4f3a594 (2018-02-17). Built on 2018-02-21. Build ID: ajbm2XrO
INFO:librespot_core::session: Connecting to AP "gew1-accesspoint-b-jkm8.ap.spotify.com:4070"
INFO:librespot_core::session: Authenticated as "******" !
INFO:librespot_playback::audio_backend::alsa: Using alsa sink
INFO:librespot_core::session: Country: "NL"
INFO:librespot_playback::player: Loading track "Karma Police (Remastered)"
INFO:librespot_playback::player: Track "Karma Police (Remastered)" loaded
ALSA lib pcm.c:8382:(snd_pcm_set_params) Sample format not available for PLAYBACK: Invalid argument
ERROR:librespot_playback::audio_backend::alsa: Alsa error PCM open -22
ERROR:librespot_playback::player: Could not start audio: Alsa error: PCM open failed
ALSA lib pcm.c:8382:(snd_pcm_set_params) Sample format not available for PLAYBACK: Invalid argument
ERROR:librespot_playback::audio_backend::alsa: Alsa error PCM open -22
I have a RP3 running Moode 4.0 -> usb out -> Aune S6

Switching back to plughw
Code:
target/release/librespot --name testing3 --device plughw:1,0 --initial-volume 20
INFO:librespot: librespot 4f3a594 (2018-02-17). Built on 2018-02-21. Build ID: ajbm2XrO
INFO:librespot_core::session: Connecting to AP "gew1-accesspoint-b-v1bc.ap.spotify.com:4070"
INFO:librespot_core::session: Authenticated as "kopstukken" !
INFO:librespot_playback::audio_backend::alsa: Using alsa sink
INFO:librespot_core::session: Country: "NL"
INFO:librespot_playback::player: Loading track "Karma Police (Remastered)"
INFO:librespot_playback::player: Track "Karma Police (Remastered)" loaded

[Edit] Got another panick when switching tracks in a playlist to fast.
Code:
INFO:librespot_playback::player: Loading track "Karma Police (Remastered)"
INFO:librespot_playback::player: Track "Karma Police (Remastered)" loaded
INFO:librespot_playback::player: Loading track "Fitter Happier (Remastered)"
INFO:librespot_playback::player: Track "Fitter Happier (Remastered)" loaded
INFO:librespot_playback::player: Loading track "Electioneering (Remastered)"
INFO:librespot_playback::player: Track "Electioneering (Remastered)" loaded
INFO:librespot_playback::player: Loading track "Climbing Up the Walls (Remastered)"
INFO:librespot_playback::player: Track "Climbing Up the Walls (Remastered)" loaded
thread 'main' panicked at 'Box<Any>', core/src/session.rs:87:43
thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: SendError("...")', /checkout/src/libcore/result.rs:916:5
stack backtrace:
   0:   0x82c2b3 - std::sys::unix::backtrace::tracing::imp::unwind_backtrace::hb6166e15fda1e065
                       at /checkout/src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
   1:   0x8362e7 - std::sys_common::backtrace::print::hbb547a48d4d45c54
                       at /checkout/src/libstd/sys_common/backtrace.rs:68
                       at /checkout/src/libstd/sys_common/backtrace.rs:57
   2:   0x824b67 - std::panicking::default_hook::{{closure}}::hb3351df37d61d489
                       at /checkout/src/libstd/panicking.rs:381
   3:   0x824673 - std::panicking::default_hook::ha118e44019160a5b
                       at /checkout/src/libstd/panicking.rs:397
   4:   0x825013 - std::panicking::rust_panic_with_hook::h9cedc3dcc869a838
                       at /checkout/src/libstd/panicking.rs:577
   5:   0x561d03 - std::panicking::begin_panic::h6c297eb57182bef0
   6:   0x5c548f - <futures::future::map_err::MapErr<A, F> as futures::future::Future>::poll::h54b0d8855e939378
   7:   0x7f16b7 - futures::task_impl::std::set::h28789caeb07e5843
   8:   0x7f02a3 - <futures::task_impl::Spawn<T>>::poll_future_notify::hac4b590ae1f22cb2
   9:   0x7f4ba7 - tokio_core::reactor::Core::poll::h7ae65b652a8d113f
  10:   0x44efc7 - tokio_core::reactor::Core::run::hc3eec5c43c664b0f
  11:   0x462bdf - librespot::main::h4d986fdbca3cee68
  12:   0x44c43b - std::rt::lang_start::{{closure}}::he99eb8df53d4ae63
  13:   0x824cbb - std::panicking::try::do_call::h42f53f2dc816c41b
                       at /checkout/src/libstd/rt.rs:59
                       at /checkout/src/libstd/panicking.rs:480
  14:   0x847eb7 - __rust_maybe_catch_panic
                       at /checkout/src/libpanic_unwind/lib.rs:101
  15:   0x82bf43 - std::rt::lang_start_internal::hea8910ac69028645
                       at /checkout/src/libstd/panicking.rs:459
                       at /checkout/src/libstd/panic.rs:365
                       at /checkout/src/libstd/rt.rs:58
  16:   0x4636f7 - main
  17: 0x76c3c677 - __libc_start_main
stack backtrace:
   0:   0x82c2b3 - std::sys::unix::backtrace::tracing::imp::unwind_backtrace::hb6166e15fda1e065
                       at /checkout/src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
   1:   0x8362e7 - std::sys_common::backtrace::print::hbb547a48d4d45c54
                       at /checkout/src/libstd/sys_common/backtrace.rs:68
                       at /checkout/src/libstd/sys_common/backtrace.rs:57
   2:   0x824b67 - std::panicking::default_hook::{{closure}}::hb3351df37d61d489
                       at /checkout/src/libstd/panicking.rs:381
   3:   0x824673 - std::panicking::default_hook::ha118e44019160a5b
                       at /checkout/src/libstd/panicking.rs:397
   4:   0x825013 - std::panicking::rust_panic_with_hook::h9cedc3dcc869a838
                       at /checkout/src/libstd/panicking.rs:577
   5:   0x824e5b - std::panicking::begin_panic::h8259fca926742a49
                       at /checkout/src/libstd/panicking.rs:538
   6:   0x824de3 - std::panicking::begin_panic_fmt::hb044a1e2dca6dd17
                       at /checkout/src/libstd/panicking.rs:522
   7:   0x824d8b - rust_begin_unwind
                       at /checkout/src/libstd/panicking.rs:498
   8:   0x87b0cb - core::panicking::panic_fmt::hd4212c5d5ed3b640
                       at /checkout/src/libcore/panicking.rs:71
   9:   0x5ae8df - core::result::unwrap_failed::h851276061752a9cc
  10:   0x5859d7 - librespot_core::session::Session::send_packet::h13b3c90d36997378
  11:   0x5b04ef - librespot_core::mercury::MercuryManager::request::h107e783a6abeb202
  12:   0x51fae7 - librespot_metadata::Metadata::get::h9e23e928175b5417
  13:   0x4fb37b - librespot_playback::player::PlayerInternal::run::h83fe9ec43a7a6671
  14:   0x45beb3 - std::sys_common::backtrace::__rust_begin_short_backtrace::h2f514b0eb570dad9
  15:   0x4524d7 - std::panicking::try::do_call::hbcd3322838af5842
  16:   0x847eb7 - __rust_maybe_catch_panic
                       at /checkout/src/libpanic_unwind/lib.rs:101
  17:   0x45fecb - <F as alloc::boxed::FnBox<A>>::call_box::h5bdec24e0e01658f
  18:   0x832a4b - std::sys_common::thread::start_thread::h5c8ded4a8e2b80a7
                       at /checkout/src/liballoc/boxed.rs:825
                       at /checkout/src/libstd/sys_common/thread.rs:24
  19:   0x825667 - std::sys::unix::thread::Thread::new::thread_start::h38f4e2017be83d0f
                       at /checkout/src/libstd/sys/unix/thread.rs:90
ERROR:librespot_playback::player: Player thread panicked!
pi@moode:~/librespot $ 
Message from syslogd@moode at Feb 21 14:40:57 ...
 kernel:[ 3100.622499] skbuff: skb_over_panic: text:8054f268 len:294 put:294 head:96c35e40 data:96c35e82 tail:0x70126 end:0x222 dev:eth0

Message from syslogd@moode at Feb 21 14:40:57 ...
 kernel:[ 3100.648200] Internal error: Oops - BUG: 0 [#1] SMP ARM

Message from syslogd@moode at Feb 21 14:40:57 ...
 kernel:[ 3100.771854] Process swapper/0 (pid: 0, stack limit = 0x80c00210)

Message from syslogd@moode at Feb 21 14:40:57 ...
 kernel:[ 3100.779437] Stack: (0x80c01d48 to 0x80c02000)

Message from syslogd@moode at Feb 21 14:40:57 ...
 kernel:[ 3100.785371] 1d40:                   00000126 96c35e40 96c35e82 00070126 00000222 b9558800

Looks like still early days ;)
 

Attachments

  • Screenshot_20180221_142335.png
    Screenshot_20180221_142335.png
    37 KB · Views: 270
Last edited:
Hi Kent / Tim,

The wireless test was successful, but I don't like wireless so another test.
Installed a fresh Moode 4.0 build and downgraded the kernel to 4.4.50 (because Moode 3.7 was using that kernel and 3.7 was stable for me). The result is rock stable. No freezes, no clicks, no errors in log files.
So at this moment I'm running stretch with Moode 4.0 and kernel 4.4.50 and everything is running fine, but I only use DLNA push from Jriver so I don't know about the other functionality of Moode.
Something must have been changed since kernel 4.4, but for now I'm happy.

Thanks and regards.

Hey, that's great. Enjoy the music!
 
Not able to install 4.0

Hello @TimCurtis,

I am using Moode for quite a while now, also I bought the key for the older version. Since Moode 4.0 was in beta I just stuck around with the older 3.x. Now that it is out of beta I tried installing it over ssh, but I just cant get it to work as I am not a programmer or IT guy. Is there any way to get an image or prebuilt one to download like before? I am using a RasPi 2b and a 3b.

Thanks in advance,

Best Regards,
Alex
 
Hello @TimCurtis,

I am using Moode for quite a while now, also I bought the key for the older version. Since Moode 4.0 was in beta I just stuck around with the older 3.x. Now that it is out of beta I tried installing it over ssh, but I just cant get it to work as I am not a programmer or IT guy. Is there any way to get an image or prebuilt one to download like before? I am using a RasPi 2b and a 3b.

Thanks in advance,

Best Regards,
Alex

If you are able to log into your PI via SSH ... just do that. It's not really hard to succeed ;)

-Eric

Flash an SD with Raspbian Lite 2017-11-29 and copy an empty file called ssh on boot partition.
Then insert your SD in your RPI, boot it, connect in it via a ssh client.
Then type :

cd /home/pi
sudo wget -q http://moodeaudio.org/downloads/mos/mosbuild.sh -O /home/pi/mosbuild.sh
sudo chmod +x /home/pi/mosbuild.sh
sudo ./mosbuild.sh

Answer a few questions (y for the first —> direct install)

And then go watch a movie or read a book ... after that, you Moode must work.

To control, you can ssh again in your PI and control that everything was OK with mosbrief command ... you must see END ... at the end :D
 
Hello all... For some reason I am unable to get moode (v4)to auto populate the playlist. I have autoplay and autoshuffle on, and it was working yesterday. I have rebooted, shut off and restarted. I can add songs from the library or by browsing. But once the playlist is consumed no new songs are added. I had this issue once before but I cannot remember how I fixed it. I have the random and consume icons selected on the playback screen. ?

note: I just found that four mpd outputs are on..
Code:
20180221 095827 worker: MPD output 1 ALSA default (on)     20180221 095827 worker: MPD output 2 ALSA crossfeed (on)     20180221 095827 worker: MPD output 3 ALSA parametric eq (on)     20180221 095827 worker: MPD output 4 ALSA graphic eq (on)
 
Last edited:
Ok, so this one is done :) The url for Create or Edit station can be either the playable url or a playlist.
-Tim

Awesome, Tim! Thanks for the quick response. There's a lot of local stations I haven't been able to use on moOde because the direct url changes too often, so I needed to keep the permanent url on BubbleUPnP and launch from there.

If I read it correctly, this will be in the v4.1 build? Will updates from v4 to v4.1 be done from the link on moode.local/sys-config.php, apt upgrade, or do we need to re-run the builder script?
 
I'm using MoOde 3.1 and it's been wonderful.

Is MoOde 4 worth upgrading to sound wise? It seems an awfully complicated procedure to build version 4, so I'm very reluctant to go through the procedure unless there's an upgrade to the sound quality.

Does the app on my iPhone still continue to work if I upgrade to MoOde 4?

Thanks for any thoughts.
 
Hi @Veazer,

Yes, its in the upcoming 4.1 release. r40 --> r41 will be an in-place update via ssh and not from the UI. No need for a new build.

Speaking of local stations, in one of the post 4.1 moOde releases a full featured Radio Browser that has a catalog of over 70K stations and can be searched and navigated in a variety of ways will be introduced :)

-Tim

Sweet!
 
Finally got back to playing with the Moode Player. Must be the weather. :) Quick question, I was using Moode's bluetooth mode to play music on a bluetooth speaker. Took me a while to find the SEL button. Works well with a Polk soundbar.

I notice I can connect multiple bluetooth devices (my case headphones and soundbar) but only the first one connected gets the audio feed. Can you setup to broadcast to both at the same time?

Thanks, Ynot.
 
Just saying hello and throwing kudos for the project, plus a minor gripe and rquest

Greetings,

I'm new to this project and I must say, so far I'm thoroughly impressed.

I went with a Pi 3 with a HiFiBerry DAC+ Pro plus the latest 4.0 stable release. Far from difficult, the instructions to compile are straighforward and with a few commands typed in, the system sets itself up, in my case in 50 minutes.

Before settlin on Moode, I tried out the ruins of Rune, Volumio and a few other distros that were either non functional, non intuitive or offered little guidance. Perhaps Volumio has a slightly prettier GUI, IMHO, but it doesn't touch Moode in any other respect.

I love the little "i" buttons throughout the configuration pages, which give you brief, but relevant explanations of the options in question. NFS setup was intuitive and easy.

Right from the fresh install, most settings were right on. Flac playback was bright and lively and even my lower bitrate mp3s (160k and even the rare 128k) were reproduced quite decently, without as much of the usual objectionable cymbal fuzzyness.

And who could complain about the huge list of high quality radio stations from around the world for just about whatever your heart desires!

I think the search / selection / playlist interface could suffer some improvement, but I'm not yet quite sure of what I find imperfect about it - maybe in time I'll grow to love it like the rest...

One minor gripe - I was intrigued by the fact that upon clicking on the album art, a search was initiated - a thoughtful touch and I like the concept. However, it came up as a Google search, NOT the search engine preference setting of my browser, which is resolutely DuckDuckGo. While I do like DDG, what I really want, is to avoid anything Google and all it's intrusive violation of privacy and data mining (I will spare you the gory and lengthy details of my aversion to "Big G"!).

So my request is - could you either default the search to the browser defaults, or give the user some choice as to the search engine preferred. A lesser favoured option, would be to allow a user to disable search function entirely.

Thank you for this incredibly tight project.

HiBushBerry
 
Hi Koda59,

Thanks for the post on how to do it. I tried like that, but after all commands nothing happens, no feedback from the pi or any questions :/

If you have suggestions what I am doing wrong I will be happy to try again :)

Thanks,

Alex

Hi Alex,

So, after you run ./mosbuild.sh, you should answer the questions and then the Pi should reboot.

Then, it will continue the installation process in the background. You should let it run - don't install anything during this time.

You can check the progress by running the commands mosbrief (for a brief status of the build), moslog (for a detailed log of the process) and moslast (to check what was the last step ran in the build). When mosbrief ends with the line "END", then you have your moOde v4.0 installed.
 
Hi, firstly thanks and kudos to the hard working folk behind this project.
Having managed to piece together a mostly working install, I find myself in need of some tips on how to track down my disappearing library.
When I first add network shares they are scanned and appear in the library pane.
This will survive a reboot, but as soon as I either add another share or manually initiate an update, the entire contents of the library disappear and can only be restored by deleting the NAS shares and then re-creating them. Files on the shares remain accessible via the browse pane and are playable, it just seems there is a gremlin in the library update routine that is having fun at my expense.