32-bit gives it a go, staggers a few seconds then plays in 192/32 however the app becomes unstable and play/pause fails to actually stop the music! 32-bit float generates a whole world of pain, refuses to play, gets stuck in an error loop and the track skips through at a random fast rate. I'm sure the answer is to pass the audio at 24-bit (or at track native bitrate) but that option doesn't seem to exist.
Edit
Using Hi Res Driver with the following settings is stable and passing the sample rate correctly..
HiRes driver flags : Direct
HiRes driver Audio Format : 16-bit
Bit Perfect Mode : ON (Required for MQA Playback)
Upsampling : OFF
Buffer Size : 1310072 frames (65536 also seems to work)
Now obviously this is not bit perfect but is the closest I can get it working so far. I've spent 4 hours staring at terminal code whilst trying to get this to work, I think I need a vodka now.
If anyone has any tips I'm all ears. Also, is 192/16 to 192/24 significant or worth further effort?
Code sample showing sample rate being passed correctly to hi res driver:
Code:
03-06 17:45:11.642 10030 11670 D SoundServiceImpl: HandleCtrl: HighRes(Red)
03-06 17:45:11.642 10030 11670 I SoundServiceImpl: Track[HighRes(Red)] received CtrlPacket: Play
03-06 17:45:11.643 10030 11670 D IzmEffectProcessor: [HighRes(Red)] Open
03-06 17:45:11.644 10030 11670 I Fundamentals: ---------- AudioConfig[OutputId[HighRes(Red)]] ----------
03-06 17:45:11.644 10030 11670 I Fundamentals: f_samp: 192000
03-06 17:45:11.644 10030 11670 I Fundamentals: format: S16_LE
03-06 17:45:11.644 10030 11670 I Fundamentals: num_of_ch: 2
03-06 17:45:11.644 10030 11670 D Alsa : Create
03-06 17:45:11.644 10030 11670 D AlsaForNxpLpa: AlsaForNxpLpa
03-06 17:45:11.644 10030 11670 D AlsaForNxpLpa: Open
03-06 17:45:11.652 10030 11670 D AlsaForNxpLpa: SetHwParams
03-06 17:45:11.652 10030 11670 D AlsaForNxpLpa: [hw:1,2] buffer_time_near: 20000000 -> 20000000
03-06 17:45:11.652 10030 11670 D AlsaForNxpLpa: [hw:1,2] periods_near: 40 -> 40
03-06 17:45:11.665 10030 11670 D AlsaForNxpLpa: SetSwParams
03-06 17:45:11.665 10030 11670 I Alsa : ---------- HwParams[hw:1,2] ----------
03-06 17:45:11.665 10030 11670 I Alsa : rate: 192000
03-06 17:45:11.665 10030 11670 I Alsa : format: S16_LE
03-06 17:45:11.665 10030 11670 I Alsa : channels: 2
03-06 17:45:11.665 10030 11670 I Alsa : period_frames: 96000
03-06 17:45:11.665 10030 11670 I Alsa : period_time: 500000
03-06 17:45:11.665 10030 11670 I Alsa : period_bytes: 384000
03-06 17:45:11.665 10030 11670 I Alsa : buffer_frames: 3840000
03-06 17:45:11.665 10030 11670 I Alsa : buffer_time: 20000000
03-06 17:45:11.665 10030 11670 I Alsa : buffer_bytes: 15360000
03-06 17:45:11.665 10030 11670 I Alsa : ---------- SwParams[hw:1,2] ----------
03-06 17:45:11.665 10030 11670 I Alsa : start_threshold: 192000
03-06 17:45:11.665 10030 11670 I Alsa : stop_threshold: 3840000
03-06 17:45:11.665 10030 11670 I Alsa : avail_min: 0
03-06 17:45:11.665 10030 11670 I Alsa : start_delay: 0
03-06 17:45:11.665 10030 11670 I Alsa : stop_delay: 0
03-06 17:45:11.665 10030 11670 I Alsa : ---------- HwParams[ShallowParams[hw:1,2]] ----------
03-06 17:45:11.665 10030 11670 I Alsa : rate: 192000
03-06 17:45:11.665 10030 11670 I Alsa : format: S16_LE
03-06 17:45:11.665 10030 11670 I Alsa : channels: 2
03-06 17:45:11.665 10030 11670 I Alsa : period_frames: 96000
03-06 17:45:11.665 10030 11670 I Alsa : period_time: 500000
03-06 17:45:11.665 10030 11670 I Alsa : period_bytes: 384000
03-06 17:45:11.665 10030 11670 I Alsa : buffer_frames: 192000
03-06 17:45:11.665 10030 11670 I Alsa : buffer_time: 1000000
03-06 17:45:11.665 10030 11670 I Alsa : buffer_bytes: 768000
03-06 17:45:11.665 10030 11670 D AlsaForNxpLpa: [hw:1,2] UpdateBufferCtrlMode: Shallow
03-06 17:45:11.685 3387 3850 I AddressedMediaPlayer: null queue from com.extreamsd.usbaudioplayerpro, constructing single-item list
03-06 17:45:11.738 3387 3850 I AddressedMediaPlayer: null queue from com.extreamsd.usbaudioplayerpro, constructing single-item list
03-06 17:45:11.738 3387 3850 V Avrcp : Send track changed