USB Audio Player PRO (UAPP): 24- and 32-bit playback, ubiquitous USB audio support for Android
Jan 8, 2019 at 12:04 PM Post #2,206 of 6,219
For a while now TIdal seems to have changed output method to the LG Hi-Res DAC family and uses some form of offload to play the files. This is evidenced by "-offload" flag in adb output. I have not seen that on other players. I would presume the android resampler is not messing with the bits any more as the entire FLAC file is sent to the LG DAC part and decoded on the SoC. Somewhat speculating, but dont see how MQA can decode at all without a Bit Perfect stream getting to the DAC in the first place. Thus we are hearing FLAC as rendered to PCM and MQA by the ESS chip when listening to the TIdal app directly (presumption).
 
Jan 8, 2019 at 1:38 PM Post #2,207 of 6,219
Many thanks for this info.
It seems TIDAL Android app will result High-Res only on phones equipped with a High-Res capable DAC

No, not so. I have been getting 192k reported by my Pro-Ject "Pre Box S2 Digital" DAC after what I assume is 1x unfolding in the Tidal app. My report is here.

Perhaps I am being pedantic. Perhaps by "High-Res" you meant "Master Authenticated high res". The hi res I am hearing is not the full MQA unfold, I assume.
 
Jan 8, 2019 at 1:43 PM Post #2,208 of 6,219
No, not so. I have been getting 192k reported by my Pro-Ject "Pre Box S2 Digital" DAC after what I assume is 1x unfolding in the Tidal app. My report is here.

Perhaps I am being pedantic. Perhaps by "High-Res" you meant "Master Authenticated high res". The hi res I am hearing is not the full MQA unfold, I assume.

The Android USB audio driver always resamples to the maximum sample rate of the USB DAC (with a max. of 192kHz).
 
Jan 8, 2019 at 2:40 PM Post #2,209 of 6,219
I compared audio_flinger dumps of UAPP and the Tidal app a couple months ago, when playing MQA (Master) tracks on LG V30, using its internal Quad DAC to the 3.5mm port (not to an external USB DAC). At least at that time, the output threads from both apps looked the same: Both were using the DIRECT path, 44100 Hz, AUDIO_FORMAT_PCM_24_BIT_PACKED, AUDIO_OUTPUT_FLAG_DIRECT and the same flags for the lgmqadummy effect. (See dumps in the spoiler below.)

Based on this, and the fact that they sound identical to me, I am convinced that the Tidal app does indeed play MQA correctly on V30, with full 4x unfolding and rendering using the Quad DAC. Of course I cannot rule out that the Tidal app messes up the bitstream before passing it to the driver, thus ruining the MQA encoding. But why would they, when MQA is such a big push for them? And if they did, it wouldn't sound the same (and as great) as from UAPP.

I am huge fan of UAPP, both for its attention to audiohpile sound quality, its features (including the MQA decoder in V5.x), its great user interface, and not the least, their excellent response to customers. But in the name of fairness and accuracy, I don't think we can add "incorrect MQA unfolding of MQA tracks in the Tidal app" as one of the reasons to use UAPP.

Heck, even with that, everybody still needs UAPP anyway for redbook 16/44.1 tracks (i.e. non-Master/MQA tracks) which the Tidal app plays through the Andoid mixer, causing upsampling to 48kHz. As has been established numerous times here and elsewhere :)

audio_flinger dump during UAPP Tidal MQA playback
Code:
Output thread 0xf05fa000, name AudioOut_19D, tid 6997, type 1 (DIRECT):
  I/O handle: 413
  Standby: no
  Sample rate: 44100 Hz
  HAL frame count: 1792
  HAL format: 0x6 (AUDIO_FORMAT_PCM_24_BIT_PACKED)
  HAL buffer size: 10752 bytes
  Channel count: 2
  Channel mask: 0x00000003 (front-left, front-right)
  Processing format: 0x6 (AUDIO_FORMAT_PCM_24_BIT_PACKED)
  Processing frame size: 6 bytes
  Pending config events: none
  Output device: 0x8 (AUDIO_DEVICE_OUT_WIRED_HEADPHONE)
  Input device: 0 (AUDIO_DEVICE_NONE)
  Audio source: 0 (default)
  Normal frame count: 1792
  Last write occurred (msecs): 8
  Total writes: 1312
  Delayed writes: 0
  Blocked in write: yes
  Suspend count: 0
  Sink buffer : 0xefebb000
  Mixer buffer: 0xf03f4800
  Effect buffer: 0xf0f64800
  Fast track availMask=0xfe
  Standby delay ns=1000000000
  AudioStreamOut: 0xf1495880 flags 0x400001 (AUDIO_OUTPUT_FLAG_DIRECT)
  Frames written: 2351104
  Suspended frames: 0
  Hal stream dump:
  Stream volumes in dB: 0:-10, 1:-20, 2:-23, 3:-13, 4:-23, 5:-23, 6:0, 7:-18, 8:-22, 9:-96, 10:-21, 11:0, 12:0
  Normal mixer raw underrun counters: partial=0 empty=0
  1 Tracks of which 1 are active
    Name Active Client Type      Fmt Chn mask Session fCount S F SRate  L dB  R dB  VS dB    Server Main buf  Aux buf Flags UndFrmCnt  Flushed
    none    yes   6279    3 00000006 00000003    1065  26460 A 3 44100     0     0     0   00232A00 F0F64800 00000000 0x000         0    18690
  1 Effect Chains
    2 effects for session 1065
    In buffer               Out buffer                 Active tracks:
    0xf0f64800 -> 0xf45b3000   0xf45b3000 -> 0xf0f64800   1
    Effect ID 651:
        Session Status State Engine:
        01065   000    003   0xf14a6840
        Descriptor:
        - UUID: 337377E3-92FC-4F0B-B677-EAEB249EAEE6
        - TYPE: 534E176F-456C-4EF4-8099-D7BA766AB0FA
        - apiVersion: EFC0EC3C
        - flags: 0040004C (conn. mode: postproc, insert pref: first, volume mgmt: implements control, input mode: not set, output mode: not set, offloadable)
        - name: lgmqadummy
        - implementor: LG Software Ltd.
        - Input configuration:
            Frames  Smp rate Channels Format Buffer
            01792   44100    00000003      1 (AUDIO_FORMAT_PCM_16_BIT) 0xf45b3000
        - Output configuration:
            Buffer     Frames  Smp rate Channels Format
            0xf45b3000 01792   44100    00000003 1 (AUDIO_FORMAT_PCM_16_BIT)
        1 Clients:
              Pid Priority Ctrl Locked client server
            6279        0  yes    yes      0      0
    Effect ID 667:
        Session Status State Engine:
        01065   000    003   0xf2c20290
        Descriptor:
        - UUID: 08B8B058-0590-11E5-AC71-0025B32654A0
        - TYPE: 08B8B058-0590-11E5-AC71-0025B32654A0
        - apiVersion: F2C48218
        - flags: 00C00280 (conn. mode: insert, insert pref: any, volume mgmt: requires indication, device indication: requires updates, input mode: not set, output mode: not set, offloadable)
        - name: Volume listener for Music
        - implementor: Qualcomm Technologies Inc.
        - Input configuration:
            Frames  Smp rate Channels Format Buffer
            01792   44100    00000003      1 (AUDIO_FORMAT_PCM_16_BIT) 0xf45b3000
        - Output configuration:
            Buffer     Frames  Smp rate Channels Format
            0xf45b3000 01792   44100    00000003 1 (AUDIO_FORMAT_PCM_16_BIT)
        1 Clients:
              Pid Priority Ctrl Locked client server
            1161        0  yes    yes      0      0
  Local log:
   11-04 11:37:22.288 CFG_EVENT_CREATE_AUDIO_PATCH: old device 0x8 (AUDIO_DEVICE_OUT_WIRED_HEADPHONE) new device 0x8 (AUDIO_DEVICE_OUT_WIRED_HEADPHONE)
   11-04 11:37:22.307 addTrack_l    (0xf092f600) none     no   6279    3 00000006 00000003    1065  26460 A 1 44100     0     0     0   00000000 F0F64800 00000000 0x000         0        0
   11-04 11:37:52.838 removeTracks_l(0xf092f600) none     no   6279    3 00000006 00000003    1065  26460 I 1 44100     0     0     0   00148200 F0F64800 00000000 0x600         0    18690
   11-04 11:39:41.369 CFG_EVENT_CREATE_AUDIO_PATCH: old device 0x8 (AUDIO_DEVICE_OUT_WIRED_HEADPHONE) new device 0x8 (AUDIO_DEVICE_OUT_WIRED_HEADPHONE)
   11-04 11:39:41.374 addTrack_l    (0xf092f600) none     no   6279    3 00000006 00000003    1065  26460 A 1 44100     0     0     0   00148200 F0F64800 00000000 0x200         0    18690

USB audio module:
  No output streams.

  No input streams.

Reroute submix audio module:
 route[0] rate in=0 out=0, addr=[]
 route[1] rate in=0 out=0, addr=[]
 route[2] rate in=0 out=0, addr=[]
 route[3] rate in=0 out=0, addr=[]
 route[4] rate in=0 out=0, addr=[]
 route[5] rate in=0 out=0, addr=[]
 route[6] rate in=0 out=0, addr=[]
 route[7] rate in=0 out=0, addr=[]
 route[8] rate in=0 out=0, addr=[]
 route[9] rate in=48000 out=48000, addr=[]
audio_flinger dump during Tidal app MQA playback
Code:
Output thread 0xf14b7000, name AudioOut_1A5, tid 7678, type 1 (DIRECT):
  I/O handle: 421
  Standby: no
  Sample rate: 44100 Hz
  HAL frame count: 1792
  HAL format: 0x6 (AUDIO_FORMAT_PCM_24_BIT_PACKED)
  HAL buffer size: 10752 bytes
  Channel count: 2
  Channel mask: 0x00000003 (front-left, front-right)
  Processing format: 0x6 (AUDIO_FORMAT_PCM_24_BIT_PACKED)
  Processing frame size: 6 bytes
  Pending config events: none
  Output device: 0x8 (AUDIO_DEVICE_OUT_WIRED_HEADPHONE)
  Input device: 0 (AUDIO_DEVICE_NONE)
  Audio source: 0 (default)
  Normal frame count: 1792
  Last write occurred (msecs): 28
  Total writes: 331
  Delayed writes: 0
  Blocked in write: yes
  Suspend count: 0
  Sink buffer : 0xefa83000
  Mixer buffer: 0xeebcb000
  Effect buffer: 0xf05b6000
  Fast track availMask=0xfe
  Standby delay ns=1000000000
  AudioStreamOut: 0xf14957c0 flags 0x400001 (AUDIO_OUTPUT_FLAG_DIRECT)
  Frames written: 593152
  Suspended frames: 0
  Hal stream dump:
  Stream volumes in dB: 0:-10, 1:-20, 2:-23, 3:-7.6, 4:-23, 5:-23, 6:0, 7:-18, 8:-22, 9:-96, 10:-17, 11:0, 12:0
  Normal mixer raw underrun counters: partial=0 empty=0
  1 Tracks of which 1 are active
    Name Active Client Type      Fmt Chn mask Session fCount S F SRate  L dB  R dB  VS dB    Server Main buf  Aux buf Flags UndFrmCnt  Flushed
    none    yes   7417    3 00000006 00000003    1073  22932 A 3 44100     0     0     0   00091400 F05B6000 00000000 0x000         0        0
  1 Effect Chains
    2 effects for session 1073
    In buffer               Out buffer                 Active tracks:
    0xf05b6000 -> 0xf45b3000   0xf45b3000 -> 0xf05b6000   1
    Effect ID 675:
        Session Status State Engine:
        01073   000    003   0xf2c1fd80
        Descriptor:
        - UUID: 337377E3-92FC-4F0B-B677-EAEB249EAEE6
        - TYPE: 534E176F-456C-4EF4-8099-D7BA766AB0FA
        - apiVersion: F0EFDC3C
        - flags: 0040004C (conn. mode: postproc, insert pref: first, volume mgmt: implements control, input mode: not set, output mode: not set, offloadable)
        - name: lgmqadummy
        - implementor: LG Software Ltd.
        - Input configuration:
            Frames  Smp rate Channels Format Buffer
            01792   44100    00000003      1 (AUDIO_FORMAT_PCM_16_BIT) 0xf45b3000
        - Output configuration:
            Buffer     Frames  Smp rate Channels Format
            0xf45b3000 01792   44100    00000003 1 (AUDIO_FORMAT_PCM_16_BIT)
        1 Clients:
              Pid Priority Ctrl Locked client server
            1170        0  yes    yes      0      0
    Effect ID 683:
        Session Status State Engine:
        01073   000    003   0xf14a6060
        Descriptor:
        - UUID: 08B8B058-0590-11E5-AC71-0025B32654A0
        - TYPE: 08B8B058-0590-11E5-AC71-0025B32654A0
        - apiVersion: 95607E53
        - flags: 00C00280 (conn. mode: insert, insert pref: any, volume mgmt: requires indication, device indication: requires updates, input mode: not set, output mode: not set, offloadable)
        - name: Volume listener for Music
        - implementor: Qualcomm Technologies Inc.
        - Input configuration:
            Frames  Smp rate Channels Format Buffer
            01792   44100    00000003      1 (AUDIO_FORMAT_PCM_16_BIT) 0xf45b3000
        - Output configuration:
            Buffer     Frames  Smp rate Channels Format
            0xf45b3000 01792   44100    00000003 1 (AUDIO_FORMAT_PCM_16_BIT)
        1 Clients:
              Pid Priority Ctrl Locked client server
            1161        0  yes    yes      0      0
  Local log:
   11-04 11:42:59.029 CFG_EVENT_CREATE_AUDIO_PATCH: old device 0x8 (AUDIO_DEVICE_OUT_WIRED_HEADPHONE) new device 0x8 (AUDIO_DEVICE_OUT_WIRED_HEADPHONE)
   11-04 11:42:59.036 addTrack_l    (0xf092fc00) none     no   7417    3 00000006 00000003    1073  22932 A 1 44100     0     0     0   00000000 F05B6000 00000000 0x000         0        0

USB audio module:
  No output streams.

  No input streams.

Reroute submix audio module:
 route[0] rate in=0 out=0, addr=[]
 route[1] rate in=0 out=0, addr=[]
 route[2] rate in=0 out=0, addr=[]
 route[3] rate in=0 out=0, addr=[]
 route[4] rate in=0 out=0, addr=[]
 route[5] rate in=0 out=0, addr=[]
 route[6] rate in=0 out=0, addr=[]
 route[7] rate in=0 out=0, addr=[]
 route[8] rate in=0 out=0, addr=[]
 route[9] rate in=48000 out=48000, addr=[]
 
Last edited:
Jan 8, 2019 at 3:24 PM Post #2,210 of 6,219
the difference is subtle in the flinger output but significant. Tidal uses Direct flag as well --but check it out ...it says mode 4 (offload) . UAPP uses mode 1. Again, UAPP is using unoffical ways that only Davy knows or understands to make this sound and work well. Not sure how Tidal pulls off mode 4, but it is in effect ever since MQA passthru was supported on V30. It uses it on the V20 as well. It uses it for all audio now. It used to be similar to all the others (non DIRECT)
 
Jan 8, 2019 at 3:54 PM Post #2,211 of 6,219
the difference is subtle in the flinger output but significant. Tidal uses Direct flag as well --but check it out ...it says mode 4 (offload) . UAPP uses mode 1. Again, UAPP is using unoffical ways that only Davy knows or understands to make this sound and work well. Not sure how Tidal pulls off mode 4, but it is in effect ever since MQA passthru was supported on V30. It uses it on the V20 as well. It uses it for all audio now. It used to be similar to all the others (non DIRECT)

Could I ask you to point out that difference in the dumps I posted?

I just don't see it: Both apps use flags 0040004C (conn. mode: postproc, insert pref: first, volume mgmt: implements control, input mode: not set, output mode: not set, offloadable) for the lgmqadummy effect. And other flags earlier in the Output thread section are the same as well. At least as far as I can tell.

Again, I made these dumps a couple months ago. I suppose it's possible they messed up MQA with some of the later Tidal updates. Are your observations from the latest version?

Edit: Again, I am referring only to playback on V30 (and the other LGs with ESS DAC), not to USB output.
 
Last edited:
Jan 8, 2019 at 4:33 PM Post #2,212 of 6,219
Could I ask you to point out that difference in the dumps I posted?

I just don't see it: Both apps use flags 0040004C (conn. mode: postproc, insert pref: first, volume mgmt: implements control, input mode: not set, output mode: not set, offloadable) for the lgmqadummy effect. And other flags earlier in the Output thread section are the same as well. At least as far as I can tell.

Again, I made these dumps a couple months ago. I suppose it's possible they messed up MQA with some of the later Tidal updates. Are your observations from the latest version?

Edit: Again, I am referring only to playback on V30 (and the other LGs with ESS DAC), not to USB output.

I didnt notice your postings until you pointed it out. Upon review dont see them. I dont have mine handy now and not in a position to run again right now. Yes the adb output I reviewed and sent to Davy was a relatively recently but after MQA support was launched on the V30. Ill try and generate some new ones compare and post what I see.
 
Jan 8, 2019 at 5:44 PM Post #2,213 of 6,219
I didnt notice your postings until you pointed it out. Upon review dont see them. I dont have mine handy now and not in a position to run again right now. Yes the adb output I reviewed and sent to Davy was a relatively recently but after MQA support was launched on the V30. Ill try and generate some new ones compare and post what I see.

Thank you. I thought was going crazy for not being able to see that difference in the logs.

I just ran a new batch of comparisons, dumping audio_flinger from UAPP and Tidal app, respectively, but this time with UAPP 5.0.5 and Tidal app 2.11.1, these being the latest available from Play Store on my V30. Results are exactly the same as the last logs I posted a few posts earlier. I'll be happy to post them, but the output modes and flags are exactly the same -- again, with no difference (that I can detect) between UAPP and the Tidal app as long as MQA is being played.

Again, I only tested playing through the V30's 3.5mm headphone port, not with an external USB DAC.

I also just confirmed that the Tidal app still plays redbook 16/44 through the Android Mixer, which upsamples to 48kHz. Nothing new there :unamused:
 
Last edited:
Jan 9, 2019 at 3:48 AM Post #2,214 of 6,219
The Pro-ject Pre Box S2 is both a MQA decoder and renderer IIRC? In that case, UAPP will display 44.1 or 48kHz, since it sends audio at this rate to the DAC and does not know to which rate it will unfold on the DAC. Furthermore, you won't see the blue/green leds since UAPP does not do any decoding.

I am using a Fiio BTR3 with my XIAOMI MI8 phone sending the music files with LDAC codec Bluetooth. The LDAC theoretically capable of sending 24 bit / 96 kHz files to the Bluetooth receiver.
My questions:
1. What resolution the file has, which is sent from my phone with UAPP to the Fiio BTR3 using LDAC? See the attached picture... Screenshot_2019-01-09-00-18-39-336_com.extreamsd.usbaudioplayerpro.png

2. What resolution the file has, which is sent from my phone with the new TIDAL Android app?

Fiioka-Püré új gumival.jpg
Fiio BTR 3 with Vorzüge VorZAMP Pure II+ amp

I checked the SQ difference between MQA core decode using UAPP app and TIDAL app.
I found that UAPP sounds a little bit more refined if the music files are coming through WIFI, but the difference is not much.
In case I sent a file, which was downloaded to my phone for later offline listening I found that listening to it from TIDAL app resulted a bit more lively performance than listening the same song from UAPP using WIFI. Any thoughts about this?

Anyway the sound quality can be reached with the new MQA core decode for mobile phones is amazing!
 
Jan 9, 2019 at 7:27 PM Post #2,216 of 6,219
Thank you. I thought was going crazy for not being able to see that difference in the logs.

I just ran a new batch of comparisons, dumping audio_flinger from UAPP and Tidal app, respectively, but this time with UAPP 5.0.5 and Tidal app 2.11.1, these being the latest available from Play Store on my V30. Results are exactly the same as the last logs I posted a few posts earlier. I'll be happy to post them, but the output modes and flags are exactly the same -- again, with no difference (that I can detect) between UAPP and the Tidal app as long as MQA is being played.

Again, I only tested playing through the V30's 3.5mm headphone port, not with an external USB DAC.

I also just confirmed that the Tidal app still plays redbook 16/44 through the Android Mixer, which upsamples to 48kHz. Nothing new there :unamused:

OK I just ran a bunch of the same using latest adb on my mac, with the latest Tidal app. My prior findings are not true any longer and things got worse with Tidal, in every way. One big difference is Tidal is trying to output Master Quality (not MQA LoL) to my V20. Obviously this is going to work differently on a Phone that supports MQA like V30, V40, etc... The old behavior was it clearly showed DIRECT mode 4(offload) on everything (this was prior to MQA decode in SW etc...). Now it is showing MIxer on everything on the V20....even for MQA purportedly unfolded in the Tidal app now! Urghh! So really what is happening here I have no idea... the active session is getting unfolded to 88.2 or 96 then getting butchered by the Android mixer and crudely downsampled back to 48Khz/16bit. This is outrageous :frowning2: No wonder MQA wouldnt have their logo on fancy light on it! Now granted this is an old phone now, and the modern MQA capable ones probably work great. On the otherhand the handling of standard redbook took a step back with the v20 now....and is just like it was before .... Mixer on everything.

I double checked to make sure my setup is working well, and verified our amazing UAPP is represented by an active DIRECT session, with proper sampling rates clearly shown for all files played including MQA decode in App. What would we do without UAPP doing the right thing for us, just give up and get a Bluetooth connected iPhone

Interesting exercise....and I will be Hibernating my Tidal app for a while now :) LoL
 
Last edited:
Jan 9, 2019 at 7:36 PM Post #2,217 of 6,219
Hi Davy...I thought of another interesting option UAPP could maybe incorporate. This may be an Android restriction but there's a lot of times where I'm listening to my music and maybe want to watch a YouTube video of a review or something and just watch the closed captions rather than actually hear it and pull from the song. Basically, Is there any way you could set audio to lock to UAPP as a toggleable oprion in settings and not go to other apps when invoked?
 
Last edited:
Jan 10, 2019 at 5:46 AM Post #2,219 of 6,219
Hi Davy...I thought of another interesting option UAPP could maybe incorporate. This may be an Android restriction but there's a lot of times where I'm listening to my music and maybe want to watch a YouTube video of a review or something and just watch the closed captions rather than actually hear it and pull from the song. Basically, Is there any way you could set audio to lock to UAPP as a toggleable oprion in settings and not go to other apps when invoked?

Well, next version will have an option 'Pause on audio focus loss' which is on by default (as it is now) and perhaps it will do what you want when you turn that off.
 
Jan 10, 2019 at 8:06 AM Post #2,220 of 6,219
OK I just ran a bunch of the same using latest adb on my mac, with the latest Tidal app. My prior findings are not true any longer and things got worse with Tidal, in every way. <snip>

Thank you for that update. I am sorry to hear Tidal screwed it up so badly on the V20. That's really stupid if they unfold MQA, then send it through the Android Mixer for garbling. Hopefully they'll realize it and fix it.

But even though MQA works flawlessly with the Tidal app on the V30 (and V35/V40/G7, I presume) it still screws up redbook 16/44, sending it through the Android Mixer. So we all need UAPP regardless for proper Tidal usage, not to mention for local file playback :)
 

Users who are viewing this thread

Back
Top