ONKYO DP-X1 | Dual Sabre Dacs | Balanced | Sabre BTL Amp | MQA | DSD 256 | Android 5 |
post-12254159
Post #3,481 of 16,199

PrinceOfEgypt

100+ Head-Fier
Joined
Jan 3, 2009
Messages
369
Reaction score
16
Joined
Jan 3, 2009
Posts
369
Likes
16
 but I shall say that Michael Jackson's Thriller in DSD sounds amazing on the Onkyo DP-X1.
 
I have this too...But the first release...and even on my passport it sounds amazing so i can only imagine what it sounds like on the Onkyo!
 
     Share This Post       
post-12254174
Post #3,484 of 16,199

TheOneInYellow

500+ Head-Fier
Joined
Mar 20, 2007
Messages
687
Reaction score
195
Joined
Mar 20, 2007
Posts
687
Likes
195
Oh boy...I cannot wait!!! In balanced mode too :wink:

Sigh, I can't do that at present. scootermafia aka DHC is reterminating my Audeze EL8 (CB) Elite Molecule cable into balanced, but I'm still waiting on Audeze to talk to me about repairing my Audeze EL8 CB headphones...

Just SE for now...

When you get your DP-X1, use balanced but also AGC balanced too! Report your impressions back too dude!
 
     Share This Post       
post-12254179
Post #3,485 of 16,199

Peridot

500+ Head-Fier
Joined
Jan 25, 2009
Messages
730
Reaction score
215
Joined
Jan 25, 2009
Posts
730
Likes
215
...

I genuinely want to help, but I must repeat this: apps such as UAPP, Neutron, JetAudio, GoneMad and others of similar ilk are not coded to use the DAC in an Android device; they are coded to bypass it and use the Android CPU first.
 
 
UAPP can be set to do either (Use Android API or bypass it), so should be a good option for further testing of this issue.
 
     Share This Post       
post-12254182
Post #3,486 of 16,199

TheOneInYellow

500+ Head-Fier
Joined
Mar 20, 2007
Messages
687
Reaction score
195
Joined
Mar 20, 2007
Posts
687
Likes
195
UAPP can be set to do either (Use Android API or bypass it), so should be a good option for further testing of this issue.

Ah, that's cool! Haven't spoken to the developer for a while, last time was when when he was beta testing UAPP all those years ago, and helping me get it to work between my then Samsung Galaxy Note 3 and CEntrance HiFi-M8.
He's an awesome dude btw!
 
     Share This Post       
post-12254206
Post #3,487 of 16,199

Zenifyx

Previously known as LegendZenify
Joined
May 23, 2010
Messages
283
Reaction score
68
Joined
May 23, 2010
Posts
283
Likes
68
Ok, to put it in another way, you read my post as an attack on the user unable to correctly setup their DP-X1, and that the user is in the wrong.

If that was the case, I would not have posted my initial experience of my use of the DP-X1, and information on what possible causes could be.

Just to be clear; I did not attack, nor I did not say or think that you was wrong in having issues.

I myself and other's needed to know what is going on so that a resolution can be found.
Furthermore, I just spent a huge amount on my DP-X1 so I certainty need to know of the issues and find a resolution, even if I (previously) have no issues (not using my DP-X1; was busy this morning).

You said that it is not necessary to state settings but i disagree, I believe they are necessary for troubleshooting purposes.

Now, I would go to do some testing, but your last post included a line that needs elaboration:
If you really are referring to those apps, then there is no need for troubleshooting or testing.
Neither will Onkyo, Android, Google, Sony, Samsung, HTC, Pioneer, etc, fix the issue, as there is nothing to fix.

Disclosure: I shall use capital letters in my next paragraph as a form of highlighting and reinforcing, but not out of spite, hate, anger, frustration, or any kind of venting.

The specific apps you are referring to are apps that are deliberately designed to NOT use the DAC, but the CPU, in the first instance of digital audio conversion and manipulation.
These apps were designed for Android device's with poor DAC's, so use such device's powerful CPU's to do software digital audio manipulation.
They will never, ever work with any Android device's DAC unless the original developers create new code to detect high-end DAC's, or make a sister app.

I have explained this before but here is a link to my previous post, please read here.

I genuinely want to help, but I must repeat this: apps such as UAPP, Neutron, JetAudio, GoneMad and others of similar ilk are not coded to use the DAC in an Android device; they are coded to bypass it and use the Android CPU first.
If you want to use such apps with the Onkyo DP-X1 or any other high-end Android DAP, you should then understand that you wish not to use the DAC in that DAP correctly.
Please contact the app developers for more information.


Moving away from that, if users are having issues with apps that route audio to the Android OS (API) to be used by a DAC (read as the vast majority of apps which have audio), then that is very concerning. I have not had this issue with apps that I use but will do further testing and monitoring, especially with Tidal.

I sincerely hope @Zenifyx that you do not take offence to this post. It is not an attack at you or anyone else.
More so, it is more that not many users are aware that certain apps are designed to bypass a DAC and use the CPU; great on Android devices with subpar DAC's with great SQ, but unnecessary on high end Android DAP's.


Edited:
Corrected grammatical errors borne from my smartphone's autocorrect...

Edit 2:
@Peridot has posted that UAPP can be used to either bypass a DAC or use it via settings. Thanks dude! <3
 
 
Woah, what? I definitely did not word my reply to imply that you were 'attacking' me.
I simply meant that I used the word vehement as you felt strongly about your stand, as such was your belief in it.
There were no harsh feelings there.
 
About the CPU and DAC, there's no such thing as bypassing the CPU nor the DAC.
The CPU has to run the code within the app (DAC obviously cannot do that) in order to transmit digital signals to the DAC to be converted into analog.
There exists a standard Android API - this is the standard to follow, most if not all apps on the market uses this (here is the one for music playback - http://developer.android.com/guide/topics/media/mediaplayer.html)
There of course has to be a standard, else we could not have widely compatible apps/devices in the Android ecosystem.
 
As long as the issue is not fixed somehow, any app using the Android API will continue to face such distortions - that's almost every app on the market.
This ofc includes Tidal and Spotify.
Onkyo has marketed this device in part as a streaming player and thus is obliged to solve this issue.
 
     Share This Post       
post-12254242
Post #3,488 of 16,199

TheOneInYellow

500+ Head-Fier
Joined
Mar 20, 2007
Messages
687
Reaction score
195
Joined
Mar 20, 2007
Posts
687
Likes
195
Woah, what? I definitely did not word my reply to imply that you were 'attacking' me.
I simply meant that I used the word vehement as you felt strongly about your stand, as such was your belief in it.
There were no harsh feelings there.

About the CPU and DAC, there's no such thing as bypassing the CPU nor the DAC.
The CPU has to run the code within the app (DAC obviously cannot do that) in order to transmit digital signals to the DAC to be converted into analog.
There exists a standard Android API - this is the standard to follow, most if not all apps on the market uses this (here is the one for music playback - http://developer.android.com/guide/topics/media/mediaplayer.html)
There of course has to be a standard, else we could not have widely compatible apps/devices in the Android ecosystem.

As long as the issue is not fixed somehow, any app using the Android API will continue to face such distortions - that's almost every app on the market.
This ofc includes Tidal and Spotify.
Onkyo has marketed this device in part as a streaming player and thus is obliged to solve this issue.

You are partially correct, but missed on key information.

I urge you to read the link in my post about this topic that I posted before a while back.

I shall summarise that post here:

Yes, apps should use standard Android API to transmit digital audio to the Digital Audio Converter to do two things:

  • Change digital audio into a waveform,
  • Convert waveform into analogue signal and transmit to an amplifier for amplification.

So, a DAC has two main functions (this is a big generalisation but is the main principle).


Apps like Neutron DO NOT do this. They do this instead:

  • Take digital audio, bypass Android API to send to DAC,
  • Use portion of CPU to do first stage of a DAC's function; manipulate the digital audio using software algorithms and create a waveform via CPU,
  • Send waveform back to DAC for second stage function; convert pre-prepared software/CPU created waveform into analogue signal, and send to an amplifier.

I also again ask to contact the app developers for further information.
If you must know, my sources come from software engineering background, audio engineering and mastering, and conversations with said developers of Android and app developers such as Neutron and UAPP.
I too was highly interested in how their apps worked, so I asked them.
 
     Share This Post       
post-12254320
Post #3,489 of 16,199

Zenifyx

Previously known as LegendZenify
Joined
May 23, 2010
Messages
283
Reaction score
68
Joined
May 23, 2010
Posts
283
Likes
68
You are partially correct, but missed on key information.

I urge you to read the link in my post about this topic that I posted before a while back.

I shall summarise that post here:

Yes, apps should use standard Android API to transmit digital audio to the Digital Audio Converter to do two things:
  1. Change digital audio into a waveform,
  2. Convert waveform into analogue signal and transmit to an amplifier for amplification.

So, a DAC has two main functions (this is a big generalisation but is the main principle).


Apps like Neutron DO NOT do this. They do this instead:
  1. Take digital audio, bypass Android API to send to DAC,
  2. Use portion of CPU to do first stage of a DAC's function; manipulate the digital audio using software algorithms and create a waveform signal via CPU,
  3. Send waveform back to DAC for second stage function; convert pre-prepared software/CPU created waveform signal into analogue, and send to an amplifier.

I also again ask to contact the app developers for further information.
If you must know, my sources come from software engineering background, audio engineering and mastering, and conversations with said developers of Android and app developers such as Neutron and UAPP.
I too was highly interested in how their apps worked, so I asked them.
 
Ok, let me rephrase my point for clarity.
What you are describing here in Step 1&2 is Digital Signal Processing, and occurs entirely in the digital domain - where such distortions should not exist if implemented right.
I am suggesting that the distortions occur due to a problem in the interaction when it uses the API to send the digital signal to the DAC - Step 3 in your case.
 
So now, you are suggesting that the distortions may not occur in Step 3, so they have to occur in Step 1/2 right?
Now, DSP occurs within the CPU, in the digital stage so, it must be a problem with the DSP algorithm or processor chip?
We can obviously rule out the processor chip part.
The testing on the DSP part is obvious - if distortion is introduced in the digital stage, then it must occur similarly on another device right?
Since it all occurs in the digital domain, the signal created by the CPU (on any device) after Step 1/2 should theoretically be the same.
So I dug out my phone and tablet to test out your theory, TIP.
 
     Share This Post       
post-12254322
Post #3,490 of 16,199

Whitigir

Headphoneus Supremus
Joined
Oct 14, 2013
Messages
19,557
Reaction score
14,860
Joined
Oct 14, 2013
Posts
19,557
Likes
14,860
Jet audio and Gonemad sound beautifully on Zx2 android 4.2
 
     Share This Post       
post-12254387
Post #3,492 of 16,199

pegasus21

100+ Head-Fier
Joined
Sep 30, 2006
Messages
147
Reaction score
29
Joined
Sep 30, 2006
Posts
147
Likes
29
Apparently, if an app does not specify to use the special compress_offload usecase when playing back audio, the os will default to low_latency usecase which is limited to 44.1/48 at 16bits.
 
The stock player uses the compress_offload usecase that supports up to 192 at 24bits.
 
 
 
 low_latency {
         sampling_rates 44100|48000
         channel_masks AUDIO_CHANNEL_OUT_STEREO
         formats AUDIO_FORMAT_PCM_16_BIT
         devices AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE|AUDIO_DEVICE_OUT_ALL_SCO|AUDIO_DEVICE_OUT_AUX_DIGITAL|AUDIO_DEVICE_OUT_PROXY|AUDIO_DEVICE_OUT_FM|AUDIO_DEVICE_OUT_FM_TX
         flags AUDIO_OUTPUT_FLAG_FAST
      }
 
      compress_offload {
        sampling_rates 8000|11025|16000|22050|32000|44100|48000|96000|192000
        channel_masks AUDIO_CHANNEL_OUT_MONO|AUDIO_CHANNEL_OUT_STEREO|AUDIO_CHANNEL_OUT_2POINT1|AUDIO_CHANNEL_OUT_QUAD|AUDIO_CHANNEL_OUT_PENTA|AUDIO_CHANNEL_OUT_5POINT1|AUDIO_CHANNEL_OUT_6POINT1|AUDIO_CHANNEL_OUT_7POINT1
        formats AUDIO_FORMAT_PCM_24_BIT_OFFLOAD
        devices AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE|AUDIO_DEVICE_OUT_ALL_SCO|AUDIO_DEVICE_OUT_AUX_DIGITAL|AUDIO_DEVICE_OUT_PROXY|AUDIO_DEVICE_OUT_FM_TX
        flags AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING
      }
 

 
D/audio_hw_primary(  791): start_output_stream: enter: stream(0xb5991500)usecase(1: low-latency-playback) devices(0x2)
D/audio_hw_primary(  791): select_devices: out_snd_device(2: speaker) in_snd_device(0: )
D/hardware_info(  791): hw_info_append_hw_type : device_name = speaker-liquid
E/ACDB-LOADER(  791): ACDB -> Not correctly initialized!
D/audio_hw_primary(  791): select_devices: done
D/HFPlayerService( 2651): IMusicPlayerCallBack#callback --- StateDidChangeNotification
D/HFPlayerService( 2651): changeServiceState(playMode=2
D/HFPlayerService( 2651): not update wallpaper.
D/ActivityInitializationUtility( 2651): onActivityPaused(com.onkyo.jp.musicplayer.dap.library.LibraryListActivity@2ca55e7c)
D/MusicPlayerWidget( 2651): app widget min height = 206
D/SeekArc ( 2651): Initialising SeekArc
D/MusicPlayer( 2651): play is called
I/MediaFocusControl( 1042):  AudioFocus  requestAudioFocus() from android.media.AudioManager@3f0fab3acom.onkyo.MusicPlayer$3@8b3c3eb req=1flags=0x0
D/MusicPlayer( 2651): requestAudioFocus ret=1
D/MusicPlayer( 2651): acquire PartialLock
D/PlayerActivity( 2651): title = ABC
E/QcrilMsgTunnelSocket( 3259): IOException - java.io.IOException: No such file or directory Reason: No such file or directory
I/QcrilMsgTunnelSocket( 3259): Couldn't find 'qmux_radio/rild_oem0' socket; retrying after timeout
D/BgArtWorkImageView( 2651): isLayoutRequested() = true
D/BgArtWorkImageView( 2651): isLayoutRequested() = true
V/WindowManager( 1042): Adding window Window{1956f496 u0 com.opi.onkyo.dap_music/com.onkyo.jp.musicplayer.dap.player.PlayerActivity} at 3 of 8 (after Window{1bc42bb2 u0 com.opi.onkyo.dap_music/com.onkyo.jp.musicplayer.dap.library.LibraryListActivity})
E/QC-QMI  (  285): qmi_client [285]: unable to connect to server after 60 tries... giving up
E/QC-QMI  (  285): qmi_qmux_if_pwr_up_init_ex:  Initialization failed, rc = -1
W/View    ( 2651): requestLayout() improperly called by android.widget.ListView{143e3c6d VFED.VC. ......ID 0,0-592,1044 #102000a android:id/list} during layout: running second layout pass
I/ActivityManager( 1042): Displayed com.opi.onkyo.dap_music/com.onkyo.jp.musicplayer.dap.player.PlayerActivity: +341ms
I/Keyboard.Facilitator( 2272): onFinishInput()
W/View    ( 2651): requestLayout() improperly called by com.onkyo.jp.musicplayer.dap.commons.CustomFontFamilyTextView{1ddced8f V.ED.... ......ID 32,0-175,48 #1020016 android:id/title} during second layout pass: posting in next frame
W/View    ( 2651): requestLayout() improperly called by com.onkyo.jp.musicplayer.dap.commons.CustomFontFamilyTextView{130ce81c V.ED.... ......ID 32,23-528,56 #1020016 android:id/title} during second layout pass: posting in next frame
W/View    ( 2651): requestLayout() improperly called by com.onkyo.jp.musicplayer.dap.commons.CustomFontFamilyTextView{2cdf8c25 V.ED.... ......ID 32,0-189,48 #1020016 android:id/title} during second layout pass: posting in next frame
W/View    ( 2651): requestLayout() improperly called by com.onkyo.jp.musicplayer.dap.commons.CustomFontFamilyTextView{18021fa V.ED.... ......ID 32,23-306,56 #1020016 android:id/title} during second layout pass: posting in next frame
W/View    ( 2651): requestLayout() improperly called by com.onkyo.jp.musicplayer.dap.commons.CustomFontFamilyTextView{2f44d3ab V.ED.... ......ID 64,0-149,48 #1020016 android:id/title} during second layout pass: posting in next frame
W/View    ( 2651): requestLayout() improperly called by com.onkyo.jp.musicplayer.dap.commons.CustomFontFamilyTextView{3a0e6a08 V.ED.... ......ID 32,23-132,56 #1020016 android:id/title} during second layout pass: posting in next frame
W/View    ( 2651): requestLayout() improperly called by com.onkyo.jp.musicplayer.dap.commons.CustomFontFamilyTextView{26a1c5a1 V.ED.... ......ID 32,23-528,56 #1020016 android:id/title} during second layout pass: posting in next frame
W/View    ( 2651): requestLayout() improperly called by com.onkyo.jp.musicplayer.dap.commons.CustomFontFamilyTextView{389e63c6 V.ED.... ......ID 32,23-86,56 #1020016 android:id/title} during second layout pass: posting in next frame
I/Timeline( 2651): Timeline: Activity_idle id: android.os.BinderProxy@28be7265 time:428985
D/libhdplayer( 2651): [OpenSLAudioIODevice::initSampleRates] route is 256
D/libhdplayer( 2651): [OpenSLAudioIODevice::initSampleRates] 48000, 96000, 192000 are supported, kDeviceCapabilityHiResOpenSLES is enabled
D/libhdplayer( 2651): [OpenSLAudioIODevice::xf_eek:pen] open requestedSampleRate=48000.000000, sec=43.671555
D/libhdplayer( 2651): [OpenSLAudioIODevice::xf_eek:penPrivate] try to open HiRes
D/libhdplayer( 2651): [OpenSLAudioIODevice::xf_eek:penPrivate] Hi-Res is supported, fs=48000
I/AudioPolicyManager(  791): PCM offload property is enabled
I/str_params(  791): key: 'SND_CARD_STATUS' value: ''
D/AudioTrack( 2651): TrackOffload: AudioTrack Offload disabled by property, returning false
D/audio_hw_primary(  791): adev_open_output_stream: enter: sample_rate(48000) channel_mask(0x3) devices(0x2) flags(0x11)        stream_handle(0xb5992040)
D/audio_hw_primary(  791): adev_open_output_stream: Stream (0xb5992040) picks up usecase (compress-offload-playback)
I/AudioFlinger(  791): HAL output buffer size 20480 frames, normal sink buffer size 20480 frames
W/AudioFlinger(  791): moveEffectChain_l() effect chain for session 0 not on source thread 0xb5996000
D/HFPlayerService( 2651): IMusicPlayerCallBack#callback --- StateDidChangeNotification
D/HFPlayerService( 2651): changeServiceState(playMode=1
I/AudioFlinger(  791): AudioFlinger's thread 0xb4ce8300 ready to run
V/SRS_Proc(  791): ParamSet string: bluetooth_enabled=0
V/SRS_ProcWS(  791): SRS_Processing - SourceOutAdd - No Available Slot for 0xb4ce8300
D/audio_hw_primary(  791): out_set_parameters: enter: usecase(3: compress-offload-playback) kvpairs: routing=2
D/libhdplayer( 2651): [::LoadDLFunc]  open library
V/NotificationService( 1042): pkg=com.opi.onkyo.dap_music canInterrupt=false intercept=true
D/libhdplayer( 2651): [::xf_eek:pen] url = /storage/sdcard1/Michael_Jackson_And_Jackson_5-The_Motown_Years-2009/02-the_jackson_5-abc.mp3
D/audio_hw_primary(  791): start_output_stream: enter: stream(0xb5992040)usecase(3: compress-offload-playback) devices(0x2)
D/audio_hw_primary(  791): select_devices: out_snd_device(2: speaker) in_snd_device(0: )
D/hardware_info(  791): hw_info_append_hw_type : device_name = speaker-liquid
D/audio_hw_primary(  791): select_devices: done
D/libhdplayer( 2651): [::xf_eek:pen] num track = 1
I/OMXClient( 2651): Using client-side OMX mux.
D/offload_visualizer(  791): thread enter
V/offload_effect_bundle(  791): offload_effects_bundle_hal_start_output output 23 pcm_id 9
E/OMXMaster( 2651): A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
D/libhdplayer( 2651): [::getDurationFromffmpeg] avformat_open_input is faild, url=file:///storage/sdcard1/Michael_Jackson_And_Jackson_5-The_Motown_Years-2009-/02-the_jackson_5-abc.mp3, err=Success!!
D/libhdplayer( 2651): [::xf_eek:pen] ffmpeg duration = 178442449 Media Codec duration = 178442448
D/libhdplayer( 2651): [::xf_eek:pen]  samplerate = 44100 channels = 2 duration = 7866852 delay = 576 padding = 1884
D/libhdplayer( 2651): [::xf_eek:pen] finish open
 
I/ActivityManager(  867): Displayed com.extreamsd.usbaudioplayerprotrial/com.extreamsd.usbaudioplayershared.MediaTypePickerActivity: +770ms
I/Timeline(  867): Timeline: Activity_windows_visible id: ActivityRecord{243c15f6 u0 com.extreamsd.usbaudioplayerprotrial/com.extreamsd.usbaudioplayershared.MediaTypePickerActivity t416} time:158028
W/SurfaceFlinger(  239): couldn't log to binary event log: overflow.
E/PhoneWindow( 2856): Horizontal progress bar not located in current window decor
I/Timeline( 2856): Timeline: Activity_idle id: android.os.BinderProxy@2fa4d8ed time:158210
D/audio_hw_primary(  264): out_standby: enter: stream (0xb5991500) usecase(1: low-latency-playback)
D/hardware_info(  264): hw_info_append_hw_type : device_name = speaker-liquid
D/audio_hw_primary(  264): out_set_parameters: enter: usecase(1: low-latency-playback) kvpairs: routing=2
D/audio_hw_primary(  264): start_output_stream: enter: stream(0xb5991500)usecase(1: low-latency-playback) devices(0x2)
D/audio_hw_primary(  264): select_devices: out_snd_device(2: speaker) in_snd_device(0: )
D/hardware_info(  264): hw_info_append_hw_type : device_name = speaker-liquid
E/ACDB-LOADER(  264): ACDB -> Not correctly initialized!
D/audio_hw_primary(  264): select_devices: done
E/MetadataRetrieverClient(  264): failed to extract an album art
E/MetadataRetrieverClient(  264): failed to extract an album art
D/audio_hw_primary(  264): out_set_parameters: enter: usecase(1: low-latency-playback) kvpairs: routing=2
E/PhoneWindow( 2856): Horizontal progress bar not located in current window decor
W/CursorWrapperInner( 2856): Cursor finalized without prior close()
W/CursorWrapperInner( 2856): Cursor finalized without prior close()
D/audio_hw_primary(  264): out_set_parameters: enter: usecase(1: low-latency-playback) kvpairs: routing=2
V/NotificationService(  867): pkg=com.extreamsd.usbaudioplayerprotrial canInterrupt=false intercept=true
V/NotificationService(  867): pkg=com.extreamsd.usbaudioplayerprotrial canInterrupt=false intercept=true
I/MediaFocusControl(  867):  AudioFocus  requestAudioFocus() from android.media.AudioManager@3c43e5a1com.extreamsd.usbaudioplayershared.MediaPlaybackService$5@146603c6 req=1flags=0x0
E/android.media.AudioTrack( 2856): getMinBufferSize(): 176400 Hz is not a supported sample rate.
E/android.media.AudioTrack( 2856): getMinBufferSize(): 192000 Hz is not a supported sample rate.
D/AudioTrack( 2856): TrackOffload: AudioTrack Offload disabled by property, returning false
V/NotificationService(  867): pkg=com.extreamsd.usbaudioplayerprotrial canInterrupt=false intercept=true
D/audio_hw_primary(  264): out_set_parameters: enter: usecase(0: deep-buffer-playback) kvpairs: routing=2
D/audio_hw_extn(  264): audio_extn_set_anc_parameters: anc_enabled:0
V/NotificationService(  867): pkg=com.extreamsd.usbaudioplayerprotrial canInterrupt=false intercept=true
V/NotificationService(  867): pkg=com.extreamsd.usbaudioplayerprotrial canInterrupt=false intercept=true
V/NotificationService(  867): pkg=com.extreamsd.usbaudioplayerprotrial canInterrupt=false intercept=true
D/audio_hw_primary(  264): start_output_stream: enter: stream(0xb59913c0)usecase(0: deep-buffer-playback) devices(0x2)
D/audio_hw_primary(  264): select_devices: out_snd_device(2: speaker) in_snd_device(0: )
D/hardware_info(  264): hw_info_append_hw_type : device_name = speaker-liquid
D/audio_hw_primary(  264): select_devices: done
I/MediaFocusControl(  867):  AudioFocus  requestAudioFocus() from android.media.AudioManager@3c43e5a1com.extreamsd.usbaudioplayershared.MediaPlaybackService$5@146603c6 req=1flags=0x0
V/NotificationService(  867): pkg=com.extreamsd.usbaudioplayerprotrial canInterrupt=false intercept=true
V/NotificationService(  867): pkg=com.extreamsd.usbaudioplayerprotrial canInterrupt=false intercept=true
V/NotificationService(  867): pkg=com.extreamsd.usbaudioplayerprotrial canInterrupt=false intercept=true
I/Timeline( 2856): Timeline: Activity_launch_request id:com.extreamsd.usbaudioplayerprotrial time:165320
I/ActivityManager(  867): START u0 {flg=0x4000000 cmp=com.extreamsd.usbaudioplayerprotrial/com.extreamsd.usbaudioplayershared.MediaPlaybackActivity} from uid 10090 on display 0
V/NotificationService(  867): pkg=com.extreamsd.usbaudioplayerprotrial canInterrupt=false intercept=true
I/Choreographer( 2856): Skipped 34 frames!  The application may be doing too much work on its main thread.
I/Timeline( 2856): Timeline: Activity_idle id: android.os.BinderProxy@17a0046b time:165476
I/Timeline(  867): Timeline: Activity_windows_visible id: ActivityRecord{e62ac86 u0 com.extreamsd.usbaudioplayerprotrial/com.extreamsd.usbaudioplayershared.MediaPlaybackActivity t415} time:166191
W/SurfaceFlinger(  239): couldn't log to binary event log: overflow.
D/audio_hw_primary(  264): out_standby: enter: stream (0xb5991500) usecase(1: low-latency-playback)
D/hardware_info(  264): hw_info_append_hw_type : device_name = speaker-liquid
V/NotificationService(  867): pkg=com.extreamsd.usbaudioplayerprotrial canInterrupt=false intercept=true
V/NotificationService(  867): pkg=com.extreamsd.usbaudioplayerprotrial canInterrupt=false intercept=true
D/audio_hw_primary(  264): out_set_parameters: enter: usecase(1: low-latency-playback) kvpairs: routing=2
 
post-12254419
Post #3,493 of 16,199

Whitigir

Headphoneus Supremus
Joined
Oct 14, 2013
Messages
19,557
Reaction score
14,860
Joined
Oct 14, 2013
Posts
19,557
Likes
14,860
Pegasus. Jest audio player and Gonemad are the same ? Non compressed ? Please check, thank you
 
     Share This Post       
post-12254483
Post #3,494 of 16,199

TheOneInYellow

500+ Head-Fier
Joined
Mar 20, 2007
Messages
687
Reaction score
195
Joined
Mar 20, 2007
Posts
687
Likes
195
Ok, let me rephrase my point for clarity.
What you are describing here in Step 1&2 is Digital Signal Processing, and occurs entirely in the digital domain - where such distortions should not exist if implemented right.
I am suggesting that the distortions occur due to a problem in the interaction when it uses the API to send the digital signal to the DAC - Step 3 in your case.

So now, you are suggesting that the distortions may not occur in Step 3, so they have to occur in Step 1/2 right?
Now, DSP occurs within the CPU, in the digital stage so, it must be a problem with the DSP algorithm or processor chip?
We can obviously rule out the processor chip part.
The testing on the DSP part is obvious - if distortion is introduced in the digital stage, then it must occur similarly on another device right?
Since it all occurs in the digital domain, the signal created by the CPU (on any device) after Step 1/2 should theoretically be the same.
So I dug out my phone and tablet to test out your theory, TIP.

Ok, I did miss a point on my part in that I didn't reference the custom, modified Onkyo Android OS system.

This is because my posts are all split when this topic was brought up on Sun, Mon, Tue and Wed.

All that I have written so far is an overly generalistic, overarching overview of the way an operating system and an application handles audio.

If we take my previous post then I'll add this amendment (also posted some pages back):

The big thing about Onkyo's highly customised Android OS is that Onkyo has added brand new System Level functions and new/modified existing audio API's unique for the DP-X1.
Some System Level functions include AGC, Balanced, Line Out, Stand Alone Mode, Gain. These are on the same level as Wifi, Bluetooth, and volume functions. All are directly linked to the hardware, and are global across all of Android system.
It is possible, for example, to play an Android game called The Room 3 in balanced AGC at high Gain (something that scootermafia has done with his HiFiman HE1000 with DHC Complement 4 balanced cables). This is possible as these functions are not app specific, they are part of the Onkyo Android OS.

The other introduction is new and/or modified audio API's. Case-in-point; the LG V10 smartphone has an ESS Sabre DAC (sister to the one in the DP-X1). However, the LG Android OS doesn't implement API's to fully use the DAC itself, only specific apps work. The LG Android audio API's are not robust, and default back to core Android API's.

Coming back to my points on how the Onkyo Android API's work with standard apps, when they call for the API's to transmit audio to the OS, the modified or new Onkyo audio API's will route the audio with whatever new System Level function is activated (Gain, or AGC, for example) and straight to the ESS Sabre DAC(s) and amp(s).

Android apps that usually don't call to the standardised Android audio API's would then work with the CPU as I described before. However these apps may not be compatible with the Onkyo's new or modified API's, thus causing conflict with the entire audio chain.
The intermittent noises you are getting is likely to do with multiple instances of audio decoding happening simultaneously, or just out-of-timing-sync; CPU DSP and ESS Sabre DAC.
Or, more likely, the resources in the DP-X1 are working with more than one audio stream (esp if the clocks are involved) and are taxed heavily, causing intermittent issues.
Whatever the case maybe a conflict of API interest is happening within the Onkyo DP-X1, and these conflicts are generated by apps that differ from using the standard Android audio API. When such apps are used in the DP-X1, new issues will (and has) arise.
These apps such as Neutron may need modification in code to work with Onkyo DP-X1.
Onkyo has made the new or modified audio API's code to work with apps that use current standard Android audio API, which is why I do not believe Onkyo will work on making specific code for a small number of specialist DSP audio Android apps (though if they did that would be phenomenal and awesome!).


Not to be rude, but my initial posts on how audio is designed to work in an OS isn't a theory.
It's much like how audio is handled in Win XP vs Win 10, or how some synthesisers and effects work in Apple Logic Pro on Macs. Some applications, or kernel code, are designed to do things away from the norm for specific reasons; either be routed and work with the DAC direct, or work with the CPU first, or split the work.
I use Neutron on Android as a prime example of a nonstandard App that does not call to the Android audio API, and works with the CPU for DSP, modulating the audio stream, then using the DAC to convert this into an analogue signal to output to an amp.


Apparently, if an app does not specify to use the special compress_offload usecase when playing back audio, the os will default to low_latency usecase which is limited to 44.1/48 at 16bits.

The stock player uses the compress_offload usecase that supports up to 192 at 24bits.





D/audio_hw_primary(  791): start_output_stream: enter: stream(0xb5991500)usecase(1: low-latency-playback) devices(0x2)
D/audio_hw_primary(  791): select_devices: out_snd_device(2: speaker) in_snd_device(0: )
D/hardware_info(  791): hw_info_append_hw_type : device_name = speaker-liquid
E/ACDB-LOADER(  791): ACDB -> Not correctly initialized!
D/audio_hw_primary(  791): select_devices: done
D/HFPlayerService( 2651): IMusicPlayerCallBack#callback --- StateDidChangeNotification
D/HFPlayerService( 2651): changeServiceState(playMode=2
D/HFPlayerService( 2651): not update wallpaper.
D/ActivityInitializationUtility( 2651): onActivityPaused(com.onkyo.jp.musicplayer.dap.library.LibraryListActivity@2ca55e7c)
D/MusicPlayerWidget( 2651): app widget min height = 206
D/SeekArc ( 2651): Initialising SeekArc
D/MusicPlayer( 2651): play is called
I/MediaFocusControl( 1042):  AudioFocus  requestAudioFocus() from android.media.AudioManager@3f0fab3acom.onkyo.MusicPlayer$3@8b3c3eb req=1flags=0x0
D/MusicPlayer( 2651): requestAudioFocus ret=1
D/MusicPlayer( 2651): acquire PartialLock
D/PlayerActivity( 2651): title = ABC
E/QcrilMsgTunnelSocket( 3259): IOException - java.io.IOException: No such file or directory Reason: No such file or directory
I/QcrilMsgTunnelSocket( 3259): Couldn't find 'qmux_radio/rild_oem0' socket; retrying after timeout
D/BgArtWorkImageView( 2651): isLayoutRequested() = true
D/BgArtWorkImageView( 2651): isLayoutRequested() = true
V/WindowManager( 1042): Adding window Window{1956f496 u0 com.opi.onkyo.dap_music/com.onkyo.jp.musicplayer.dap.player.PlayerActivity} at 3 of 8 (after Window{1bc42bb2 u0 com.opi.onkyo.dap_music/com.onkyo.jp.musicplayer.dap.library.LibraryListActivity})
E/QC-QMI  (  285): qmi_client [285]: unable to connect to server after 60 tries... giving up
E/QC-QMI  (  285): qmi_qmux_if_pwr_up_init_ex:  Initialization failed, rc = -1
W/View    ( 2651): requestLayout() improperly called by android.widget.ListView{143e3c6d VFED.VC. ......ID 0,0-592,1044 #102000a android:id/list} during layout: running second layout pass
I/ActivityManager( 1042): Displayed com.opi.onkyo.dap_music/com.onkyo.jp.musicplayer.dap.player.PlayerActivity: +341ms
I/Keyboard.Facilitator( 2272): onFinishInput()
W/View    ( 2651): requestLayout() improperly called by com.onkyo.jp.musicplayer.dap.commons.CustomFontFamilyTextView{1ddced8f V.ED.... ......ID 32,0-175,48 #1020016 android:id/title} during second layout pass: posting in next frame
W/View    ( 2651): requestLayout() improperly called by com.onkyo.jp.musicplayer.dap.commons.CustomFontFamilyTextView{130ce81c V.ED.... ......ID 32,23-528,56 #1020016 android:id/title} during second layout pass: posting in next frame
W/View    ( 2651): requestLayout() improperly called by com.onkyo.jp.musicplayer.dap.commons.CustomFontFamilyTextView{2cdf8c25 V.ED.... ......ID 32,0-189,48 #1020016 android:id/title} during second layout pass: posting in next frame
W/View    ( 2651): requestLayout() improperly called by com.onkyo.jp.musicplayer.dap.commons.CustomFontFamilyTextView{18021fa V.ED.... ......ID 32,23-306,56 #1020016 android:id/title} during second layout pass: posting in next frame
W/View    ( 2651): requestLayout() improperly called by com.onkyo.jp.musicplayer.dap.commons.CustomFontFamilyTextView{2f44d3ab V.ED.... ......ID 64,0-149,48 #1020016 android:id/title} during second layout pass: posting in next frame
W/View    ( 2651): requestLayout() improperly called by com.onkyo.jp.musicplayer.dap.commons.CustomFontFamilyTextView{3a0e6a08 V.ED.... ......ID 32,23-132,56 #1020016 android:id/title} during second layout pass: posting in next frame
W/View    ( 2651): requestLayout() improperly called by com.onkyo.jp.musicplayer.dap.commons.CustomFontFamilyTextView{26a1c5a1 V.ED.... ......ID 32,23-528,56 #1020016 android:id/title} during second layout pass: posting in next frame
W/View    ( 2651): requestLayout() improperly called by com.onkyo.jp.musicplayer.dap.commons.CustomFontFamilyTextView{389e63c6 V.ED.... ......ID 32,23-86,56 #1020016 android:id/title} during second layout pass: posting in next frame
I/Timeline( 2651): Timeline: Activity_idle id: android.os.BinderProxy@28be7265 time:428985
D/libhdplayer( 2651): [OpenSLAudioIODevice::initSampleRates] route is 256
D/libhdplayer( 2651): [OpenSLAudioIODevice::initSampleRates] 48000, 96000, 192000 are supported, kDeviceCapabilityHiResOpenSLES is enabled
D/libhdplayer( 2651): [OpenSLAudioIODevice::xf_eek:pen] open requestedSampleRate=48000.000000, sec=43.671555
D/libhdplayer( 2651): [OpenSLAudioIODevice::xf_eek:penPrivate] try to open HiRes
D/libhdplayer( 2651): [OpenSLAudioIODevice::xf_eek:penPrivate] Hi-Res is supported, fs=48000
I/AudioPolicyManager(  791): PCM offload property is enabled
I/str_params(  791): key: 'SND_CARD_STATUS' value: ''
D/AudioTrack( 2651): TrackOffload: AudioTrack Offload disabled by property, returning false
D/audio_hw_primary(  791): adev_open_output_stream: enter: sample_rate(48000) channel_mask(0x3) devices(0x2) flags(0x11)        stream_handle(0xb5992040)
D/audio_hw_primary(  791): adev_open_output_stream: Stream (0xb5992040) picks up usecase (compress-offload-playback)
I/AudioFlinger(  791): HAL output buffer size 20480 frames, normal sink buffer size 20480 frames
W/AudioFlinger(  791): moveEffectChain_l() effect chain for session 0 not on source thread 0xb5996000
D/HFPlayerService( 2651): IMusicPlayerCallBack#callback --- StateDidChangeNotification
D/HFPlayerService( 2651): changeServiceState(playMode=1
I/AudioFlinger(  791): AudioFlinger's thread 0xb4ce8300 ready to run
V/SRS_Proc(  791): ParamSet string: bluetooth_enabled=0
V/SRS_ProcWS(  791): SRS_Processing - SourceOutAdd - No Available Slot for 0xb4ce8300
D/audio_hw_primary(  791): out_set_parameters: enter: usecase(3: compress-offload-playback) kvpairs: routing=2
D/libhdplayer( 2651): [::LoadDLFunc]  open library
V/NotificationService( 1042): pkg=com.opi.onkyo.dap_music canInterrupt=false intercept=true
D/libhdplayer( 2651): [::xf_eek:pen] url = /storage/sdcard1/Michael_Jackson_And_Jackson_5-The_Motown_Years-2009/02-the_jackson_5-abc.mp3
D/audio_hw_primary(  791): start_output_stream: enter: stream(0xb5992040)usecase(3: compress-offload-playback) devices(0x2)
D/audio_hw_primary(  791): select_devices: out_snd_device(2: speaker) in_snd_device(0: )
D/hardware_info(  791): hw_info_append_hw_type : device_name = speaker-liquid
D/audio_hw_primary(  791): select_devices: done
D/libhdplayer( 2651): [::xf_eek:pen] num track = 1
I/OMXClient( 2651): Using client-side OMX mux.
D/offload_visualizer(  791): thread enter
V/offload_effect_bundle(  791): offload_effects_bundle_hal_start_output output 23 pcm_id 9
E/OMXMaster( 2651): A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
D/libhdplayer( 2651): [::getDurationFromffmpeg] avformat_open_input is faild, url=file:///storage/sdcard1/Michael_Jackson_And_Jackson_5-The_Motown_Years-2009-/02-the_jackson_5-abc.mp3, err=Success!!
D/libhdplayer( 2651): [::xf_eek:pen] ffmpeg duration = 178442449 Media Codec duration = 178442448
D/libhdplayer( 2651): [::xf_eek:pen]  samplerate = 44100 channels = 2 duration = 7866852 delay = 576 padding = 1884
D/libhdplayer( 2651): [::xf_eek:pen] finish open

I/ActivityManager(  867): Displayed com.extreamsd.usbaudioplayerprotrial/com.extreamsd.usbaudioplayershared.MediaTypePickerActivity: +770ms
I/Timeline(  867): Timeline: Activity_windows_visible id: ActivityRecord{243c15f6 u0 com.extreamsd.usbaudioplayerprotrial/com.extreamsd.usbaudioplayershared.MediaTypePickerActivity t416} time:158028
W/SurfaceFlinger(  239): couldn't log to binary event log: overflow.
E/PhoneWindow( 2856): Horizontal progress bar not located in current window decor
I/Timeline( 2856): Timeline: Activity_idle id: android.os.BinderProxy@2fa4d8ed time:158210
D/audio_hw_primary(  264): out_standby: enter: stream (0xb5991500) usecase(1: low-latency-playback)
D/hardware_info(  264): hw_info_append_hw_type : device_name = speaker-liquid
D/audio_hw_primary(  264): out_set_parameters: enter: usecase(1: low-latency-playback) kvpairs: routing=2
D/audio_hw_primary(  264): start_output_stream: enter: stream(0xb5991500)usecase(1: low-latency-playback) devices(0x2)
D/audio_hw_primary(  264): select_devices: out_snd_device(2: speaker) in_snd_device(0: )
D/hardware_info(  264): hw_info_append_hw_type : device_name = speaker-liquid
E/ACDB-LOADER(  264): ACDB -> Not correctly initialized!
D/audio_hw_primary(  264): select_devices: done
E/MetadataRetrieverClient(  264): failed to extract an album art
E/MetadataRetrieverClient(  264): failed to extract an album art
D/audio_hw_primary(  264): out_set_parameters: enter: usecase(1: low-latency-playback) kvpairs: routing=2
E/PhoneWindow( 2856): Horizontal progress bar not located in current window decor
W/CursorWrapperInner( 2856): Cursor finalized without prior close()
W/CursorWrapperInner( 2856): Cursor finalized without prior close()
D/audio_hw_primary(  264): out_set_parameters: enter: usecase(1: low-latency-playback) kvpairs: routing=2
V/NotificationService(  867): pkg=com.extreamsd.usbaudioplayerprotrial canInterrupt=false intercept=true
V/NotificationService(  867): pkg=com.extreamsd.usbaudioplayerprotrial canInterrupt=false intercept=true
I/MediaFocusControl(  867):  AudioFocus  requestAudioFocus() from android.media.AudioManager@3c43e5a1com.extreamsd.usbaudioplayershared.MediaPlaybackService$5@146603c6 req=1flags=0x0
E/android.media.AudioTrack( 2856): getMinBufferSize(): 176400 Hz is not a supported sample rate.
E/android.media.AudioTrack( 2856): getMinBufferSize(): 192000 Hz is not a supported sample rate.
D/AudioTrack( 2856): TrackOffload: AudioTrack Offload disabled by property, returning false
V/NotificationService(  867): pkg=com.extreamsd.usbaudioplayerprotrial canInterrupt=false intercept=true
D/audio_hw_primary(  264): out_set_parameters: enter: usecase(0: deep-buffer-playback) kvpairs: routing=2
D/audio_hw_extn(  264): audio_extn_set_anc_parameters: anc_enabled:0
V/NotificationService(  867): pkg=com.extreamsd.usbaudioplayerprotrial canInterrupt=false intercept=true
V/NotificationService(  867): pkg=com.extreamsd.usbaudioplayerprotrial canInterrupt=false intercept=true
V/NotificationService(  867): pkg=com.extreamsd.usbaudioplayerprotrial canInterrupt=false intercept=true
D/audio_hw_primary(  264): start_output_stream: enter: stream(0xb59913c0)usecase(0: deep-buffer-playback) devices(0x2)
D/audio_hw_primary(  264): select_devices: out_snd_device(2: speaker) in_snd_device(0: )
D/hardware_info(  264): hw_info_append_hw_type : device_name = speaker-liquid
D/audio_hw_primary(  264): select_devices: done
I/MediaFocusControl(  867):  AudioFocus  requestAudioFocus() from android.media.AudioManager@3c43e5a1com.extreamsd.usbaudioplayershared.MediaPlaybackService$5@146603c6 req=1flags=0x0
V/NotificationService(  867): pkg=com.extreamsd.usbaudioplayerprotrial canInterrupt=false intercept=true
V/NotificationService(  867): pkg=com.extreamsd.usbaudioplayerprotrial canInterrupt=false intercept=true
V/NotificationService(  867): pkg=com.extreamsd.usbaudioplayerprotrial canInterrupt=false intercept=true
I/Timeline( 2856): Timeline: Activity_launch_request id:com.extreamsd.usbaudioplayerprotrial time:165320
I/ActivityManager(  867): START u0 {flg=0x4000000 cmp=com.extreamsd.usbaudioplayerprotrial/com.extreamsd.usbaudioplayershared.MediaPlaybackActivity} from uid 10090 on display 0
V/NotificationService(  867): pkg=com.extreamsd.usbaudioplayerprotrial canInterrupt=false intercept=true
I/Choreographer( 2856): Skipped 34 frames!  The application may be doing too much work on its main thread.
I/Timeline( 2856): Timeline: Activity_idle id: android.os.BinderProxy@17a0046b time:165476
I/Timeline(  867): Timeline: Activity_windows_visible id: ActivityRecord{e62ac86 u0 com.extreamsd.usbaudioplayerprotrial/com.extreamsd.usbaudioplayershared.MediaPlaybackActivity t415} time:166191
W/SurfaceFlinger(  239): couldn't log to binary event log: overflow.
D/audio_hw_primary(  264): out_standby: enter: stream (0xb5991500) usecase(1: low-latency-playback)
D/hardware_info(  264): hw_info_append_hw_type : device_name = speaker-liquid
V/NotificationService(  867): pkg=com.extreamsd.usbaudioplayerprotrial canInterrupt=false intercept=true
V/NotificationService(  867): pkg=com.extreamsd.usbaudioplayerprotrial canInterrupt=false intercept=true
D/audio_hw_primary(  264): out_set_parameters: enter: usecase(1: low-latency-playback) kvpairs: routing=2

This is a fascinating read! I wonder if this ties in with the conflict I'm describing above, but certainly interesting.

Thank you! ^^


BIG EDIT:
I'm sorry pegasus21 but for some reason when I quoted you, the forum code system will not allow me to add your first spoiler tag: '/system/etc/audio_policy.conf'.

:'(


BIGGER EDIT UPDATED:
Wow, on FB had a user (callizer?) posted some new info!



Onkyo Stock Player Logcat

GoneMad Player Logcat

Thanks dude!
 
     Share This Post       

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Top