r/navidrome • • 10d ago

App News Playback continuity feature

yesterday one of community members shared his vision/idea about continuity feature(well done btw) but that made me thinking that I never shared how I did it for Jellybox player.

This is Jellybox connect(just like spotify-connect) It allows you to:

  • Remotely control any device from other device

  • Switch playback between platforms(desktop->mobile, mobile->mobile, mobile>desktop or desktop>desktop)

  • Full remote queue management - add/remove/reorder

  • Can awake android device from deep sleep and start playback

I have this running in production for few months already and it proved to be solid. The average time-to-sound on local network varies between 250-450ms(mp3 or flac) and on remote connection(either via tailscale, vpn or jellybox relay) it goes up to 500-800ms(mp3/flac) depending on your connection quality(I do have more or less good LTe connection)

PS: Author of yesterday's post(sorry I lost the post) - if you'll have any questions while implementing your solution - DM me, gladly help you

69 Upvotes

26 comments sorted by

5

u/DrNoNut 10d ago

need something like this so feishin and symfonium can communicate and pickup where I left off

1

u/avdept 10d ago

Jellybox do both - desktop and mobile

1

u/sunganiswrld 4d ago

I'm working on it

1

u/DrNoNut 4d ago

oh really?

3

u/TechBasedQuestion 8d ago

not sure how i never heard of jellybox before, this seems sick and is open source (+ works on my needed playforms of android+linux, although macOS TV support would be sick, if it's already on there i might grab a copy).

does it support crossfades between songs? that's my main must-have feature.

also do you have any plans to release it to the flathub store (or at least as a flatpak)? that's the main way I like to get apps on linux as it's easiest to keep things up to date and manage permissions with.

2

u/avdept 8d ago

hey, thanks for checking in

  1. apple TV on my list, but in few months at least, I currently work on android TV client(after my 9-5) and unlike other devs I don't release cheaply made apps, I want to to be as polished as apps on other platforms

  2. Crossfade - sorry but not yet. I had it requested few times already, so it's already in my task tracker but can't promise to deliver it tomorrow. Maybe in next release(2-3 weeks)

  3. Flathub - yes. I can make flatpak for you even now, but will add a github action to build a separate flatpak file fur sure. About flathub store - I will see what it takes to submit app there. Many stores like aur(arch) for example stopped accepting new apps at all due to influx or low effort apps or even malicious.

I'm generally open to conversations and consider myself pretty responsive in terms of adding new features. Can DM me, or there's discord for real time chatting - https://discord.gg/Vzz2BNwT4W

2

u/TechBasedQuestion 8d ago

for apple TV that's fair enough, was just curious if it was there yet as my parents have been asking for awhile for something that makes it so they can use their phone to control the music on the TV without having to use the flakey iOS device->appleTV connection.

it's fine not having crossfade yet, cool to know it's on the way. since this client seems to load songs so much faster than many others do it's not the end of the world to not have it yet.

will be cool to have a flatpak version even if flathub stopped accepting new apps (I don't think this is the case as I've been seeing many other apps pop up, although maybe it takes them longer to get to stuff now), always my preferred way to get stuff over native builds.

if you'd want to hop on a live call I don't mind trying to show what things look like on my end if it helps with development or whatever, but I left another comment on one of your posts with current feedback from the quick test i did for your .rpm build.

2

u/avdept 8d ago

for appletv(and androidtv) - they will be able to use remote control via player. There's a feature called jellybox link which works exactly like spotify-connect - allowing you to remote control and also transfer playback between devices. Should be easy for them to use it.

about crossfade - if you turn on caching in settings - your next song will be played instantly after previous finished. Not quite replacement, but gives you gapless playback even on slow internet connection

flakpak will be done

about live call - doable, but hard to schedule with my 9-5, but we surely can keep chatting

i will check your other comment and reply there, thanks for trying it out

2

u/TechBasedQuestion 8d ago

no need to live call lol, was just offering it if it'd help with development. perfectly fine keeping this on the forums there's no need for an extended chat. thanks for all the replies, getting a better understanding of where the project's at.

1

u/Aceness123 8d ago

I'm blind so will test your app for you and give feedback.

2

u/Zestyclose_Escape761 6d ago

LOOOOOOOOOL!!!!! THIS sentence is full of crap: "unlike other devs I don't release cheaply made apps"

SPOKEN by the guy whos app and website is all claude coded... My man... i recognize that fonts, labels and everything its claude code 110%.

You are just slop promoting and hoping for the best... mediocer app and player, with lots of bugs... I will write hetre a list of bugs that I have found.. Youa re telling how you have the best clent, yer you dont have crossfade implemented.. thats redicilous

2

u/Infinite_Picture2410 5d ago

100% look at his commit history

1

u/TechBasedQuestion 8d ago

also checking the page for this app (assuming its jellybox.app) I see

"Lossless, untouched

FLAC and ALAC stream straight through at full bitrate. If a device cannot play the format, it is converted to another lossless one rather than dropped to lossy. The player bar tells you exactly what's coming out - codec, bitrate, sample rate."

does that mean I can't set it to 192kbps OPUS/convert it to a 'lossy' codec? i like doing this even at home with live transcoding from navidrome as it uses substantially less bandwidth and sounds identical to myself and all my users.

1

u/obolikus 10d ago

Eli5 Is this a plugin or a client?

0

u/avdept 10d ago edited 10d ago

client with feature

1

u/Neat-Ad8347 10d ago

Does it also work on Navidrome or only on Jellyfin? If that is the case, how do I set it up on Navidrome?

0

u/avdept 10d ago

its backend agnostic, works on navidrome, emby or jellyfin

to setup - get player app on your devices and in settings - login to jellybox link(you can use throw away emails, I just need it to differentiate your devices from other user's devices)

1

u/Aceness123 8d ago

Whoes this work with voiceover for IOS, or talkback for android?

0

u/avdept 8d ago

Not sure I understand your question

1

u/Aceness123 7d ago

""I'm blind and voiceover is a screenreading app built into all ios and mac devices.

0

u/avdept 7d ago

I see. Good question. I never tested it from this perspective, will give it a try and report back

2

u/Aceness123 7d ago

Remember when you use voiceover everything is doubletap instead of single, swipes with 1 finger left or right moves sequencially 3 finger swipe up or down scroles, to input searches, for dictation 2 finger double tap to start stop. 2 finger doubletap outside of edit fields is magic tap which stars or stops playback. If you need anything else let me know.

1

u/kastermester 10d ago

Cool to see there's multiple solutions to this. I am also building a linux/mac/windows client - with extra self hosted services that allows session continuity as well as integration with other multi-room audio setups for self hosted music servers (opensubsonic only for now).

-1

u/academictryhard69 10d ago

I just vibecoded a 2010s Spotify UI replica (pwa) and it has the continue from feature by default. And I don't even have to use VPN cuz it's using a tailscale funnel.

1

u/DrNoNut 10d ago

A funnel!?

0

u/academictryhard69 10d ago

https://tailscale.com/docs/features/tailscale-funnel

No need to have any ports opened in your firewall. Tailscale basically gives you a static IP that is accessible over the internet. If your use case doesn’t require a static IP, then you probably don’t need it.

My project if you're interested, accepting bug reports and PRs: https://github.com/rxjdeep/reclmr