Randy the new RPi streamer and player on the block

Hi Gideon

Thanks for a prompt and comprehensive reply. After a complete new reinstallation, it works as you describe, thanks.

I had been messing around with trying to mount a large NAS based library (with over 44k tracks), which caused a lot of frustration, and rendered Randy unresponsive at times.

However, all is good now.

Except; The USB automount does not seem to work with an exfat ssd of 250GB. See below:

paul@randy2:/dev $ systemctl status usb-mount@sda1.service
× usb-mount@sda1.service - Mount USB Drive on sda1
Loaded: loaded (/etc/systemd/system/usb-mount@.service; static)
Active: failed (Result: exit-code) since Thu 2025-01-09 15:35:44 CET; 8min ago
Process: 442 ExecStart=/usr/bin/pmount -u 0000 /dev/sda1 /media/sda1 (code=exited, status=5)
Main PID: 442 (code=exited, status=5)
CPU: 215ms

Jan 09 15:35:44 randy2 pmount[569]: Maybe the wrong device is used? Or the whole disk instead of a
Jan 09 15:35:44 randy2 pmount[569]: partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?
Jan 09 15:35:44 randy2 pmount[571]: NTFS signature is missing.
Jan 09 15:35:44 randy2 pmount[571]: Failed to mount '/dev/sda1': Invalid argument
Jan 09 15:35:44 randy2 pmount[571]: The device '/dev/sda1' doesn't seem to have a valid NTFS.
Jan 09 15:35:44 randy2 pmount[571]: Maybe the wrong device is used? Or the whole disk instead of a
Jan 09 15:35:44 randy2 pmount[571]: partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?
Jan 09 15:35:44 randy2 systemd[1]: usb-mount@sda1.service: Main process exited, code=exited, status=5/NOTINSTALLED
Jan 09 15:35:44 randy2 systemd[1]: usb-mount@sda1.service: Failed with result 'exit-code'.
Jan 09 15:35:44 randy2 systemd[1]: Failed to start usb-mount@sda1.service - Mount USB Drive on sda1.

I can mount this drive by an fstab entry, but it'd be good if the 'automount' worked.

Thanks for your help.
 
Hey Yatsushiro,

Thanks for catching this, I don't have many different usb drives I can test with but what I did was to update the automounting package that I was using (pmount->udisks2) which I hope should better support the different types of drives and file systems out there.
I've just tested it on my current set up with rpi 2w and the existing external drive (FAT32), it works well after rebooting (twice for some reason..)

I'll send you a DM with an script you can try which should replace the existing automount daemon with the new one and let me know if this works.

* But I also pushed another minor version with this fix in the installation script. v1.0.22

Hopefully more weekend time frees up some time in the future and I can look into some other improvements for Randy 🙂

Gideon
 
Hey Yatsushiro,

Thanks for catching this, I don't have many different usb drives I can test with but what I did was to update the automounting package that I was using (pmount->udisks2) which I hope should better support the different types of drives and file systems out there.
I've just tested it on my current set up with rpi 2w and the existing external drive (FAT32), it works well after rebooting (twice for some reason..)

I'll send you a DM with an script you can try which should replace the existing automount daemon with the new one and let me know if this works.

* But I also pushed another minor version with this fix in the installation script. v1.0.22

Hopefully more weekend time frees up some time in the future and I can look into some other improvements for Randy 🙂

Gideon

Hi Gideon

It works! (not that I'd doubted it!), so once again, thanks.

I have another issue, if I'm allowed.

One of my favourite listens is Radio Paradise. Whilst Randy will play the 320-aac streams (http://stream.radioparadise.com/radio2050-320), it won't play the FLAC streams (http://stream.radioparadise.com/radio2050-flac). Should Randy be able to play the FLAC streams?

Edit:

Looking at the service status, seems that the FLAC stream is not recognised by Randy as an audio stream (which it obviously is!):

● randy-node.service - Randy nodejs application daemon
Loaded: loaded (/etc/systemd/system/randy-node.service; enabled; preset: enabled)
Active: active (running) since Sun 2025-01-12 15:51:53 CET; 16min ago
Main PID: 478 (node)
Tasks: 25 (limit: 852)
CPU: 1min 45.675s
CGroup: /system.slice/randy-node.service
├─478 /usr/bin/node /home/paul/Randy/index.js
├─548 /bin/sh -c "mpv --no-config --af-clr --vf-clr --vid=no --no-video script-opts=ytdl_hook-ytdl_path=yt-dlp --audio-display=no --no-initial-audio->
└─549 mpv --no-config --af-clr --vf-clr --vid=no --no-video script-opts=ytdl_hook-ytdl_path=yt-dlp --audio-display=no --no-initial-audio-sync --audio>

Jan 12 16:00:37 randy2 randy-node[478]: [12.01.2025 16:00.37.061] [LOG] Title changed: Pandora
Jan 12 16:00:37 randy2 randy-node[478]: [12.01.2025 16:00.37.693] [LOG] Checking audio stream for: http://stream.radioparadise.com/radio2050-flac
Jan 12 16:00:37 randy2 randy-node[478]: [12.01.2025 16:00.37.694] [LOG] isAudioStream
Jan 12 16:00:38 randy2 randy-node[478]: [12.01.2025 16:00.38.708] [LOG] application/ogg
Jan 12 16:00:38 randy2 randy-node[478]: [12.01.2025 16:00.38.709] [LOG] is it an audio stream? - false
Jan 12 16:00:38 randy2 randy-node[478]: [12.01.2025 16:00.38.710] [LOG] Getting metadata for: http://stream.radioparadise.com/radio2050-flac
Jan 12 16:05:15 randy2 randy-node[478]: [12.01.2025 16:05.15.680] [LOG] idle - loading next song
Jan 12 16:05:15 randy2 randy-node[478]: [12.01.2025 16:05.15.682] [LOG] Loading: /media/sda1/Al Stewart/1981 - Indian Summer (Al Stewart Live)/03 - Indian Summe>
Jan 12 16:05:15 randy2 randy-node[478]: [12.01.2025 16:05.15.693] [LOG] Title changed: 03 - Indian Summer.flac
Jan 12 16:05:15 randy2 randy-node[478]: [12.01.2025 16:05.15.777] [LOG] Title changed: Indian Summer

Thanks again, Paul
 
Last edited:
Just a guess:
Code:
Jan 12 16:00:38 randy2 randy-node[478]: [12.01.2025 16:00.38.708] [LOG] application/ogg
Jan 12 16:00:38 randy2 randy-node[478]: [12.01.2025 16:00.38.709] [LOG] is it an audio stream? - false

https://github.com/PapaSimons/Randy...8fa91205d77c10db6f/lib/playlist_utils.js#L807

application/ogg it is:

Code:
curl -v http://stream.radioparadise.com/radio2050-flac --output a.flac
....
< Content-Type: application/ogg
....

Code:
mediainfo a.flac
General
Complete name                            : a.flac
Format                                   : Ogg
Format/Info                              : Free Lossless Audio Codec
File size                                : 860 KiB
Duration                                 : 556 h
Overall bit rate mode                    : Variable
Overall bit rate                         : 4 b/s
FileExtension_Invalid                    : oga ogg ogm ogv ogx opus spx

Audio
ID                                       : 863493750 (0x3377DE76)
Format                                   : FLAC
Format/Info                              : Free Lossless Audio Codec
Duration                                 : 556 h
Bit rate mode                            : Variable
Channel(s)                               : 2 channels
Channel layout                           : L R
Sampling rate                            : 44.1 kHz
Bit depth                                : 16 bits
Compression mode                         : Lossless
Writing library                          : libFLAC 1.3.2 (UTC 2017-01-01)
 
  • Like
Reactions: gideon
Wow good catch @phofman !
I'll try to do some testing this weekend if I have the time and put some exceptions for these types of headers.
meanwhile @Yatsushiro it's 320 and Al Green 🙂

@mbrennwa - It's been in the back of my head for a while now. It's funny as I am also starting to listen to more streaming services unfortunately it has to be spotify for me for the time being as Singapore where I live has limited options.

I'll see if there are some good stable streaming libraries that work with these services that I can bring in to Randy that give good sound and user experience.
I was able to get spotify to work some time ago but the sound wasn't that great, even though it's really convenient to select and play from Randy as one of your devices in the Spotify app.
 
Well, Randy is my current player of choice, and has been playing during the daytime for the past 3 days or so.

With regard to the Radio Paradise Flac stream issue mentioned above, if you enter Radio Paradise in the Randy search bar, you can find and play the Flac stream!.

However, this highlights another small issue. If you save the Radio Paradise Flac stream as a sticky, then search, select and save the Radio Paradise World stream as a sticky, both entries have the same name in the sticky list. I can change the name by editing ldb.json in the DB directory, but it would be useful if there was an easier method...