Making the choice
Yesterday we spoke about difficulties we’ve faced in getting the HiFi-M8 paired up with number of phones from Nokia and Samsung.
Recently, we’ve been looking closely at a number of phones from the Android family and have been noticing something rather disconcerting.
It would appear that a lot of phones don’t know how to handle a USB audio device (DAC) that announces itself as 192 kHz-capable. That is what HiFi-M8 does, because it supports everything all the way up to 192 on the USB bus.
What seems to happen is Android gets confused, because it doesn’t know how to handle a 192 kHz DAC, so it stops trying to connect. The same thing happened with the Nokia.
We will continue our investigation, but this is our preliminary conclusion. Of course, there is an easy “fix”. We can “dumb-down” HiFi-M8 by giving it some special firmware, which will announce to the world that the device can only “speak” 44.1 and 48 kHz. This would make it compatible with the phones. However, it’s not the right thing to do, because it will compromise the ability of HiFi-M8 to work with computers and play audio files recorded at 192 kHz. The unit will simply stop responding to higher resolutions.
A USB audio “host” (which is computer, or a phone masquerading as a computer) needs to support the full USB audio protocol, which has a specific provision for handling sampling rates, that works as follows:
When a computer encounters a device that’s capable of playing 192 kHz, it knows to send up to 192 kHz audio streams to the device. The computer will downsample anything above 192 to 192.
If the device says that 48 kHz is its highest sampling rate, the computer is supposed to downsample everything it plays to the lowest common denominator of 48 kHz to match the best available resolution in the device.
We have a strong suspicion that Android phones don’t know about higher sampling rates and therefore prefer to only work with those devices, which top out at 44.1/48 kHz.
A solution exists
The “easy fix” solution is always available to us. We can release a “special” firmware version that would make the M8 compatible with Andorid phones by making it announce to the phone that 48 kHz is it’s highest available sampling rate. However, we are not yet sure this is the right thing to do…
Unfortunately, we are not able to switch this on the fly and detect if we are connected to a computer or a phone, since the computer is the master on the USB bus and is the one initiating all communications. We simply report when asked about the available sampling rates. We can report the full range, or a short range, but not both.