Android L now supports floating point (32 bit) audio.
16-bit limited AudioTrack and everything else no more.
New: android.media.AudioFormat.ENCODING_PCM_FLOAT
Audio data format: single-precision floating-point per sample
And if you're not convinced why, see this sweet video from +Glenn Kasten
I spend 5 minutes writing a big post. At end I prefer ask you.
Share with us how this (you) can improve our little gizmo boxes.
24 bits is enough to capture a dynamic range wider than human hearing can detect.
Problems with sound quality on phones/tablets are usually
1. Poor quality mp3
2. The source: over compressed and peak limited by mastering engineers (loudness war)
3. DAC in the unit is noisy, tonally imbalanced, jittery, has poor stereo separation, lacks sufficient amplification / non-linear amplification causing distortion
4. Poor quality headphones
Solutions already exist for these problems. The introduction of floating point appears to be redundant
+David Savage please watch the video.
Assuming the output signal of an app will probably go through some processing before being conformed to signed 24 little-endian int for ALSA, it's a great idea to keep it in float all along!
I have watched it. I'm not saying it's bad. I'm saying it's a solution to a problem that doesn't exist
Still – some users who choose flac as the source, have good quality recordings, DACs and headphones may benefit from it.
Francois – I hope you will have some time to leverage it in some kind of Voodoo Sound next-gen.
Yes, you might have a good source (e.g. dark side of the moon), lossless format (e.g. flac), good DAC (e.g. Wolfson), and good headphones (e.g. Sony MDR… You'd probably want at least a portable headphone amp too if you're even remotely serious).
In which case, why would you apply any signal processing?