Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Question] Does this support Tidal Master MQA / FLAC through BubbleUPnP ? #368

Open
gb-123-git opened this issue Jan 23, 2024 · 33 comments
Open
Labels
feature-request Request for a new feature

Comments

@gb-123-git
Copy link

Is your feature request related to a problem? Please describe.
Just a question : Does this support Tidal Master MQA / FLAC through BubbleUPnP ? If not BubbleUPnP then maybe through mconnect Player Lite? I am asking about full decoding like Tidal connect docker and not MQA passthough.

Describe the solution you'd like
Proper Tidal Streaming solution like Tidal-Connect Docker used to work.

Describe alternatives you've considered
Tidal-Connect Docker - But this one has 2 problems :

  1. Volume cannot be controlled through Tidal Android App &
  2. Recently, forwarding in tracks (mid music to some other point in time of the running music) (NOT skipping track) is a hit and miss. there are curl header errors in Tidal-Connect-Docker.
@gb-123-git gb-123-git added the feature-request Request for a new feature label Jan 23, 2024
@gb-123-git
Copy link
Author

What I Basically want to achieve is tidal connect like connection :
Android App (BubbleUPnP as control) -> upmpdcli -> mpd -> USB DAC (Input)
Input should be MQA unfolded (not pass through)
Is this possible through using your dockers (mpd-alsa-docker) & (upmpdcli-docker) ?

Any help how I can achieve this ?
Do I need to configure upmpdcli as Renderer or Only as Server ?

@GioF71
Copy link
Owner

GioF71 commented Jan 24, 2024

Hello, with BubbleUpnp you will be able to play hires flac (so up to 24/192) to upmpdcli (renderer mode). In this case, there is no need that the dac is MQA enabled because there won't be any mqa unfolding happening.
But this is not Tidal Connect functionality. A upnp renderer does not show up in Tidal apps as a playback device.
You can also run upmpdcli in media server mode (or combined with the renderer) and also use the Tidal Plugin, which streams up to 24/44 and 24/48 kHz, so I believe that with a MQA dac capable of fully unfolding the stream, you will get 24/192 as well. Also in this case, there is no Tidal Connect functionality.
BubbleUPnP has never had the ability to execute any MQA unfolding.

About Tidal Connect, if you mean my repository which uses this docker image, yes it should support MQA, will execute the first unfolding and a MQA enabled DAC will do the rest. You can also avoid the unfolding at the software level an leave it entirely to the DAC.
But this docker image is quite old now, if does not support (AFAIK) Hires flac. I also noticed that volume support does not work from an android app. This is something that maybe could be solved with some alsa configuration, but in order to enable MQA decoding, the volume of the source must be 100%, so enabling software volume (assuming it might be possibile) does not seem like a great idea to me, unless one wants to just use Tidal Hifi (limited to 16/44).

About curl errors in Tidal Connect, yes it has been reported in the past by other users. It seems to be related to DNS issues. I use PiHole with unbound on my network and this issue has never occurred to me.

Edit: typos

@GioF71
Copy link
Owner

GioF71 commented Jan 24, 2024

I hope this was clear enough. If you chose a solution, I can help you configure mpd-alsa-docker, upmpdcli-docker and/or tidal-connect. I consider mpd/upmpdcli/bubbleupnp a more reliable setup though.

@gb-123-git
Copy link
Author

@GioF71 First of All... I want to Thank you soooo much for your response ! You are sooooo prompt ! You are absolutely amazing !

Hello, with BubbleUpnp you will be able to play hires FLAC (so up to 24/192) to upmpdcli (renderer mode). In this case, there is no need that the dac is MQA enabled because there won't be any mqa unfolding happening.

The signals sent to the DAC will be digital I presume ? I specifically want to use the USB input of the DAC.

But this docker image is quite old now, if does not support (AFAIK) Hires flac. I also noticed that volume support does not work from an android app. This is something that maybe could be solved with some alsa configuration, but in order to enable MQA decoding, the volume of the source must be 100%, so enabling software volume (assuming it might be possible) does not seem like a great idea to me, unless one wants to just use Tidal Hifi (limited to 16/44).

Volume is definitely one of the problem. But not being able to fast forward the track is actually more cumbersome.

About curl errors in Tidal Connect, yes it has been reported in the past by other users. It seems to be related to DNS issues. I use PiHole with unbound on my network and this issue has never occurred to me.

Personally, I don't think its a DNS issue. The issue is with mismatched headers because at the start of playing the file, the file starts playing. In case of DNS, that would not have been the case. It is particularly happening when you fast forward the song to a different time point (not skip the song). The error is related to file header with which states that there is a mismatch in file length.
But I may be wrong here since this is my preliminary hunch only. I have tried changing my internet connection and set the dns to 1.1.1.1 (which is cloudfare) but the problem persists. This issue usually does not occur with 16/44 files. This is mostly with FLAC and MQA Master Files.

@gb-123-git
Copy link
Author

I hope this was clear enough. If you chose a solution, I can help you configure mpd-alsa-docker, upmpdcli-docker and/or tidal-connect. I consider mpd/upmpdcli/bubbleupnp a more reliable setup though.

I think I'll go by your suggestion for mpd/upmdcli/bubbleupnp. Just a few clarifications here :

  1. Will the output of MPD be in digital format so that I can use my DAC USB input ?
  2. Since you said BubbleUPnP cannot have MQA unfolding, then how is it able to play MQA audio ? Does it only have complete decoding rather than just unfolding ?
  3. Is it possible to set it up in such a way that upmpdcli only works as a renderer for audio only and not as media server ? And so that I can use other upnp/dlna devices to send audio only to this renderer ? Any disadvantages of not running this as as Server (since I plan to have a separate server)?

@gb-123-git
Copy link
Author

gb-123-git commented Jan 24, 2024

Ok I tried to install -> https://github.com/shawaj/HiTide directly on my pi (non docker). I was able to make it work and even the volume in the app seems to work(after changing a few settings and the certificate) (Tidal App) not Android Volume. But the track gets stuck if you fast forward or rewind it (mid song). Seems that this is related to the 'curl' issue.

The volume started working once I added :
defaults.pcm.card <card no>
defaults.ctl.card <card no>
to /etc/asound.conf

maybe libcurl version can be updated ?

If curl can somehow be fixed, I would go by the Tidal Connect method, mainly as I think it would use less phone battery compared to BubbleUPnP since decoding would be done at rPi level and not phone level.

@GioF71
Copy link
Owner

GioF71 commented Jan 25, 2024

@GioF71 First of All... I want to Thank you soooo much for your response ! You are sooooo prompt ! You are absolutely amazing !

Wow, many thanks for the kind words!

Hello, with BubbleUpnp you will be able to play hires FLAC (so up to 24/192) to upmpdcli (renderer mode). In this case, there is no need that the dac is MQA enabled because there won't be any mqa unfolding happening.

The signals sent to the DAC will be digital I presume ? I specifically want to use the USB input of the DAC.

Yes, the stream which travels on the network is always digital, the conversion to analog only happens inside the DAC.
So it this is your concern, it can be bitperfect.

But this docker image is quite old now, if does not support (AFAIK) Hires flac. I also noticed that volume support does not work from an android app. This is something that maybe could be solved with some alsa configuration, but in order to enable MQA decoding, the volume of the source must be 100%, so enabling software volume (assuming it might be possible) does not seem like a great idea to me, unless one wants to just use Tidal Hifi (limited to 16/44).

Volume is definitely one of the problem. But not being able to fast forward the track is actually more cumbersome.

Understood, is there a way for replicating the issue?

About curl errors in Tidal Connect, yes it has been reported in the past by other users. It seems to be related to DNS issues. I use PiHole with unbound on my network and this issue has never occurred to me.

Personally, I don't think its a DNS issue. The issue is with mismatched headers because at the start of playing the file, the file starts playing. In case of DNS, that would not have been the case. It is particularly happening when you fast forward the song to a different time point (not skip the song). The error is related to file header with which states that there is a mismatch in file length. But I may be wrong here since this is my preliminary hunch only. I have tried changing my internet connection and set the dns to 1.1.1.1 (which is cloudfare) but the problem persists. This issue usually does not occur with 16/44 files. This is mostly with FLAC and MQA Master Files.

Well you might be right... I might not have done a lot of fast forward in the same song, I will try. But I currently have a hi-fi plan (so limited to 16/44)

@GioF71
Copy link
Owner

GioF71 commented Jan 25, 2024

I hope this was clear enough. If you chose a solution, I can help you configure mpd-alsa-docker, upmpdcli-docker and/or tidal-connect. I consider mpd/upmpdcli/bubbleupnp a more reliable setup though.

I think I'll go by your suggestion for mpd/upmdcli/bubbleupnp. Just a few clarifications here :

  1. Will the output of MPD be in digital format so that I can use my DAC USB input ?

Yes

  1. Since you said BubbleUPnP cannot have MQA unfolding, then how is it able to play MQA audio ? Does it only have complete decoding rather than just unfolding ?

BubbleUPnP in fact does not support MQA audio. It can transport MQA-encoded flac fies as they are, leaving the decoding to the DAC. But BubbleUPnP now support Hires flac, so flac files up to 24/192, without MQA encoding. See here for the announcement from the developer. Considering that MQA is phasing out (albeit slowly) I believe the way to go in the medium-long term is to adopt a solution that support full hires flac.

  1. Is it possible to set it up in such a way that upmpdcli only works as a renderer for audio only and not as media server ? And so that I can use other upnp/dlna devices to send audio only to this renderer ? Any disadvantages of not running this as as Server (since I plan to have a separate server)?

It's totally possible, even advisable. In the player device, you can run upmpdcli in renderer mode with mpd.
On other devices you can run the media servers. If you plan to use multiple instances of upmpdcli as media servers in the same host, instead of combining multiple services into one, the PORT_OFFSET parameter in the docker image can help you avoid issues.

@GioF71
Copy link
Owner

GioF71 commented Jan 25, 2024

Ok I tried to install -> https://github.com/shawaj/HiTide directly on my pi (non docker). I was able to make it work and even the volume in the app seems to work(after changing a few settings and the certificate) (Tidal App) not Android Volume. But the track gets stuck if you fast forward or rewind it (mid song). Seems that this is related to the 'curl' issue.

The volume started working once I added : defaults.pcm.card <card no> defaults.ctl.card <card no> to /etc/asound.conf

maybe libcurl version can be updated ?

If curl can somehow be fixed, I would go by the Tidal Connect method, mainly as I think it would use less phone battery compared to BubbleUPnP since decoding would be done at rPi level and not phone level.

The problem with that image is that it is that it is stuck with an old version of raspbian. If you take a look at the dockerfile here you will see that a specific version of curl is downloaded and installed manually instead of relying on apt-get install. The binaries are old (you might know how they were sourced), for sure the original author has updated his/her application over time, but we don't have access to a newer version.
I don't exclude that it might be possible to inject a compatible and better working version of curl.

The version we have now might stop working at any time, that's why I believe using BubbleUPnP is a more reliable solution.

@gb-123-git
Copy link
Author

Volume is definitely one of the problem. But not being able to fast forward the track is actually more cumbersome.

Understood, is there a way for replicating the issue?

I guess just fast forward the song (by clicking on the song progress bar) which is MQA/Flac (it also occurs in some of the songs of 16/44 but very rarely)

The version we have now might stop working at any time, that's why I believe using BubbleUPnP is a more reliable solution.

I absolutely agree, but its not the same function as tidal connect since the song is being served by the phone which eats up the phone battery. Also no MQA (at least till its replaced completely).

I am hoping spotify launches FLAC which they have been 'announcing' since 2021 soon.

Till then, I think I'll go by your suggestion for mpd/upmdcli/bubbleupnp.

So, can you help me get the sample configuration for upmdcli & mpd only for tidal connect & dlna rendering?
What is the difference between openhome and the other av mode ?

@GioF71
Copy link
Owner

GioF71 commented Jan 25, 2024

So, can you help me get the sample configuration for upmdcli & mpd only for tidal connect & dlna rendering?

Sure, please post the output of

cat /proc/asound/cards

and

aplay -l

and I will try to provide some info

What is the difference between openhome and the other av mode ?

I might be imprecise here, but openhome is a superset of upnp. The most obvious difference is that with OpenHome, the playlist resides in the player, while for UPnP it resides on the control point

@GioF71
Copy link
Owner

GioF71 commented Jan 25, 2024

In the meantime you can have a look at this other repository.
For the upmpdcli/mpd setup, look at the path players/upnp-renderer/upnp-renderer-simple here.
Look at the sample.env, you only need to create your own .env file with your specific settings.
In any case I will wait for your reply from the prev post.

Cheers

@gb-123-git
Copy link
Author

gb-123-git commented Jan 26, 2024

Output of cat /proc/asound/cards

0 [Headphones ]: bcm2835_headpho - bcm2835 Headphones bcm2835 Headphones
1 [Speaker ]: USB-Audio - X81 Speaker X81 Speaker at usb-0000:01:00.0-1.2, high speed

aplay -l

card 0: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 Headphones] Subdevices: 8/8 Subdevice #0: subdevice #0 Subdevice #1: subdevice #1
card 1: Speaker [X81 Speaker], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0

So I noticed that you need to combine the docker compose; what I was doing was that I was running the 2 dockers separately with network:host in both.

@GioF71
Copy link
Owner

GioF71 commented Jan 26, 2024

Well it's not strictly needed. The upmpdcli instance can also be on another machine, but I don't see many reasons for doing so. The upmpdcli instance would be indefinitely trying to connect to the mpd when the player machine is off.

I suppose you want to use the "Speaker" card. Which model of dac is it, just for information?
Thank you

@GioF71
Copy link
Owner

GioF71 commented Jan 26, 2024

As per the simplest configuration, I would create a .env file with only:

MPD_ALSA_DEVICE=hw:1

or

MPD_ALSA_DEVICE=hw:Speaker

a little more adventurous but should work. Fall back to the index if it doesn't, if that happens, we can investigate.

and start it with

docker-compose pull
docker-compose up -d

The second command would pull the images anyway if they are not available locally.

Do you have local music on that device, or it is just going to be a pure renderer?

@gb-123-git
Copy link
Author

Well it's not strictly needed. The upmpdcli instance can also be on another machine, but I don't see many reasons for doing so. The upmpdcli instance would be indefinitely trying to connect to the mpd when the player machine is off.

I agree making it into a single docker compose would be better.

I suppose you want to use the "Speaker" card. Which model of dac is it, just for information?

Yes. Its a Chinese speaker that I am testing. It has a built in DAC and AMP.

Do you have local music on that device, or it is just going to be a pure renderer?

I'm planning to make this as a pure renderer and the music can be put on a different device which can act as a server. (Another instance of upmpdcli or LMS or .... (open to suggestions) ..
Any Media server you suggest ? (Should be open source)

Thank you sooooo much once again ! I'll test everything and post back in a few days !

@GioF71
Copy link
Owner

GioF71 commented Jan 26, 2024

As a media server, there are many options.
The simplest if upmpdcli itself with its uprcl feature.
You might also considerer Navidrome or Lightweight Media Server, which you can also use with the Subsonic plugin for upmpdcli (disclaimer: I am the author of this plugin).

You can use Minidlna but it's kind of old and limited now... I use it for temporary small folders, downloads, etc.
Minimserver has a free edition but it is not opensource

Edit: typos

@GioF71
Copy link
Owner

GioF71 commented Jan 26, 2024

If you want to use Logitech Media Server, it would be better to also use SqueezeLite as the player. I have a container image for that here

@gb-123-git
Copy link
Author

gb-123-git commented Feb 1, 2024

Hi !
So I did extensive testing for Tidal Docker connect and found out that the code has a problem with syncing FLAC files (maybe due to curl not being able to read file size header correctly). Hence it hangs when you fast forward.

Now, coming to mpd/upmpdcli, I am getting the following error :

:2:src/mpdcli.cxx:113::MPDCli::openconn: mpd_connection_new failed: Connection refused upnp-renderer-upmpdcli | :2:src/main.cxx:712::MPD connection failed

Any idea how to solve this ?

Thanks once again !

Using your docker-compose.yaml mostly with some environment variables changed. (hw:0 set)

@GioF71
Copy link
Owner

GioF71 commented Feb 2, 2024

Hello, the log indicates failure in connecting to mpd. But it might be transitory. IIRC it doesn't say when it manages to connect to mpd after a failure.
Is the renderer available on your UPnP control point?
In any case, please post the output of the two containers with

docker-compose logs

@GioF71
Copy link
Owner

GioF71 commented Feb 2, 2024

Please post your .env file as well

@gb-123-git
Copy link
Author

It finally works !
Thank you soooooooo much !

my .env file:

#^* VARIABLES for MPD
MPD_ALSA_DEVICE=hw:0    
MPD_MIXER_TYPE=hardware
VOLUME_NORMALIZATION=yes	

#^* VARIABLES for UPMPDCLI
FRIENDLY_NAME=OpenHome_Renderer1
UPMPDCLI_IMAGE_TAG=bookworm-renderer
RENDERER_MODE=OPENHOME 

Docker Compose ENV:

MPD environment:
      - MPD_BIND_ADDRESS=${MPD_BIND_ADDRESS:-127.0.0.1}
      - MPD_PORT=${MPD_PORT:-6600}
      - USER_MODE=${MPD_USER_MODE:-N} 
      - MPD_ENABLE_LOGGING=${MPD_ENABLE_LOGGING:-yes}     
      - MPD_LOG_LEVEL=${MPD_LOG_LEVEL:-default}	           
      - ALSA_OUTPUT_CREATE=yes
      - ALSA_OUTPUT_ENABLED=yes
      - ALSA_OUTPUT_DEVICE=${MPD_ALSA_DEVICE:-default}
      - ALSA_OUTPUT_MIXER_TYPE=${MPD_MIXER_TYPE:-software}
      - ALSA_OUTPUT_AUTO_FIND_MIXER=yes
      - VOLUME_NORMALIZATION=${VOLUME_NORMALIZATION:-no}   # Volume normalization, defaults to no
 UPMPDCLI environment:
      - MPD_HOST=${MPD_BIND_ADDRESS:-127.0.0.1}
      - MPD_PORT=${MPD_PORT:-6600}
      - FRIENDLY_NAME=${FRIENDLY_NAME:-UpnpRenderer}
      - RENDERER_MODE=${RENDERER_MODE:-BOTH}
      - CHECK_CONTENT_FORMAT=${CHECK_CONTENT_FORMAT:-no}

Btw, I ran your docker on a pi (using pi as a renderer to output bit perfect to the DAC) and connected it to a pair of LS50W for testing.... The results are OMG Amazing !! I will now start saving money to buy a pair ! 😄

Once again many many thanks!

@GioF71
Copy link
Owner

GioF71 commented Feb 2, 2024

Glad it's working for you and even more that you like the results.
Consider starring the repo if you can, that's always encouraging :-)

@gb-123-git
Copy link
Author

Starred BOTH your repos !
Btw, if I set VOLUME_NORMALISATION as "yes" without setting REPLAYGAIN_MODE, will it work ?

@GioF71
Copy link
Owner

GioF71 commented Feb 2, 2024

Starred BOTH your repos !

Many thanks!

Btw, if I set VOLUME_NORMALISATION as "yes" without setting REPLAYGAIN_MODE, will it work ?

Uhm, from what I see, volume_normalization is independent from replaygain.

Pay attention to the fact that it only works for 16 bit PCM:

MPD implements a very simple volume normalization method which can be enabled by setting volume_normalization to yes. It supports 16 bit PCM only.

Replay Gain on the other hand requires that the appropriate tags are set in the files you play, see here

@gb-123-git
Copy link
Author

gb-123-git commented Feb 3, 2024

If you want to use Logitech Media Server, it would be better to also use SqueezeLite as the player. I have a container image for that here

Just to let you know mysqueezbox.com servers are shutting off. This may impact Tidal / Deezer Users as they would not be able to install plugins.

Also, I noticed, that in the current setup which is Bubble-Upnp -> upmpdcli -> MPD, the mpd player actually streams off from the Bubble-Upnp device. What server do you recommend so that the Renderer can directly stream from server and bubble-upnp can act only as the control ?

Here are the options :
1.

The simplest if upmpdcli itself with its uprcl feature.

This can work for local files, but I would prefer something which can index the files too.

Navidrome

Does not work with Bubble-UPnp. (Didn't test it, but its not mentioned in the list of compatible apps in NaviDrome site). Also no tidal I think ?

Lightweight Media Server

No Tidal option

Basically what a want to achieve is

       Bubble-UPnp controller
        /                     \
(Renderer) --> (direct Connection to Server) --> (Server Gets stream from tidal) 

Another method could be ->
If I add tidal to the upmpdcli (running as server), but then I will have to change the token every week (which would be cumbersome). If long duration tokens could have been issued, this could be one solution.
Is there any way to save username and password and update token using cron ?

I think I misunderstood, the refresh token will automatically get another token when the first one has expired so I wont need to set this up again ?

Do you think Bubble Upnp Server has tidal ? (From what I know it only converts renderer to OpenHome format which we dont need since upmpdcli is already doing it.)

@GioF71
Copy link
Owner

GioF71 commented Feb 3, 2024

If you want to use Logitech Media Server, it would be better to also use SqueezeLite as the player. I have a container image for that here

Just to let you know mysqueezbox.com servers are shutting off. This may impact Tidal / Deezer Users as they would not be able to install plugins.

Yes that's really unfortunate. A few days ago I saw that QR code on the tidal plugin. We'll see how the community will react.

Also, I noticed, that in the current setup which is Bubble-Upnp -> upmpdcli -> MPD, the mpd player actually streams off from the Bubble-Upnp device. What server do you recommend so that the Renderer can directly stream from server and bubble-upnp can act only as the control ?

Well, it depends.
If the renderer is not openhome, then yes, you are going to depend on the fact that the phone is on, because the playlist is in the control point.
But if the library is not the "Local and Cloud" in BubbleUpnp, then no, the stream does not necessarily involve your phone. When using Local and Cloud, your phone is the media server which will act as a proxy between the renderer and the online services, at least for authentication. If you also enable the proxy feature, yes maybe the actual data will flow from the phone.
Unless you do a few things:

  1. Install BubbleUPnP Server
  2. Create its "OpenHome" renderers on top of av renderers (in upmpdcli use UPNPAV mode, not OpenHome)
  3. Choose one of those OpenHome renderers in BubbleUPnP. The underlying renderer of course can be mpd+upmpdcli. With the mediation of BubbleUPnP server, you will be able to even shut down your phone and your playback won't stop.

As an alternative, if, instead of BubbleUpnp, you use upmpdcli as a media server with its Tidal and Qobuz plugins, and you won't need BubbleUPnPé server. You just need a OpenHome renderer (done by upmpdcli with OPENHOME or BOTH, or done with BubbleUpnp, does not matter).
In this case, playback won't stop if you stop BubbleUpnp on the phone because, in this case, BubbleUpnp is merely a control point.

Here are the options : 1.

The simplest if upmpdcli itself with its uprcl feature.

This can work for local files, but I would prefer something which can index the files too.

But it will index the files and provide views by author, genre, etc. Just like MinimServer, maybe a little less sophisticated but quite good actually.

Navidrome

Does not work with Bubble-UPnp. (Didn't test it, but its not mentioned in the list of compatible apps in NaviDrome site). Also no tidal I think ?

Yes it does, Upmpdcli has a plugin for Subsonic and Navidrome exposes a Subsonic API.
It is also mentioned here in Apps, then "Other".
I am the dev of that plugin and created that implementation with Navidrome in mind. Then I adapted it for Lightweight Media Server and Gonic, which are two other servers which implement the Subsonic API.
About Tidal, no there is no relation with Navidrome. Navidrome will host your own files.
You can create e.g. a dedicated instance of upmpdcli for Navidrome, and another for Tidal, and so on. You will be able to play from them both to your mpd+upmpdcli renderer.

Lightweight Media Server

No Tidal option

Like Navidrome, Lightweight Media Server will host your own files, it has nothing to do with streaming services.

Basically what a want to achieve is

       Bubble-UPnp controller
        /                     \
(Renderer) --> (direct Connection to Server) --> (Server Gets stream from tidal) 

You can. With these plugins, MPD will directly stream from Tidal, Navidrome, etc. With Tidal we currently have a limitation to max 24/48 but there is hope we can support 24/192. However it will never be supported by Tidal and that is why BubbleUpnp + BubbleUPnP server is currently the best solution IMO. Not open source of course, but still...

Another method could be -> If I add tidal to the upmpdcli (running as server), but then I will have to change the token every week (which would be cumbersome). If long duration tokens could have been issued, this could be one solution. Is there any way to save username and password and update token using cron ?

Why would you need to change the token every week? I am running my tidal plugin in upmpdcli and never had to change the token.

I think I misunderstood, the refresh token will automatically get another token when the first one has expired so I wont need to set this up again ?

Yes, you won't need to bother with this. The process of getting the credentials is one-time. Of course, until Tidal changes something, but that is out of our control. Again a reason to consider the BubbleUPnP + BubbleUPnP server option: I believe the author has support from Tidal and thus the solution is much more future proof.
But I like to have the option with tidal plugin so I can use upplay (a control point by the same author of upmpdcli) also on my linux desktop and choose songs from Tidal and Qobuz, and send them to play on a Pi4 on my desk, connected to a DAC-amp-speakers.

Do you think Bubble Upnp Server has tidal ? (From what I know it only converts renderer to OpenHome format which we dont need since upmpdcli is already doing it.)

Think of BubbleUPnP Server as a companion for BubbleUPnP, it solved all the issues related to the fact that a phone can discharge, go in standby mode, etc...

I hope this answers your questions!

Edit: a few corrections/integrations

@GioF71
Copy link
Owner

GioF71 commented Feb 3, 2024

P.S.: about bubbleupnpserver and openhome renderer: yes, upmpdcli can create openhome renderers on its own. But BubbleUPnP server is useful is when you want to use BubbleUPnP as a control point. The BubbleUPnP server takes all the requests from the BubbleUPnP app and then 'talks' to the renderer, feeing the phone from any burden (to stay on, alive, connected). But for this to work, the mandatory thing is that the OpenHome renderer is created through BubbleUPnP server.
You can refer to this thread on xdaforums which is dedicated to BubbleUPnP and BubbleUPnP server, and also ask for clarifications if needed.

@GioF71
Copy link
Owner

GioF71 commented Feb 21, 2024

Hello, a preview of the Tidal HiRes functionality is here

@gb-123-git
Copy link
Author

@GioF71
Hi ! Exciting ! I wasn't well so couldn't respond to you. Will try this once I am back home !

@GioF71
Copy link
Owner

GioF71 commented Feb 24, 2024

Hope you get soon better! Let me know what you think

@GioF71
Copy link
Owner

GioF71 commented Mar 27, 2024

Hello @gb-123-git, did you try this?

@gb-123-git
Copy link
Author

gb-123-git commented Apr 1, 2024

@GioF71 - Hi ! I am back today. Will test this over the coming weekend! :)
(Will try to test it even before if possible)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature-request Request for a new feature
Projects
None yet
Development

No branches or pull requests

2 participants