Thursday, August 15, 2019

Audio latency of various Android devices

I am interested in SDR in general, and low latency CW / SDR on portable devices while back packing in particular. I used to be active in that field around years 2007-2008, while I developed the PocketDigi application for Pocket PC platform (the Pocket PC platform has been killed by Android some five years ago), and I was hacking digital modes on an Altoids tin size transceiver http://www.kufr.cz/~ok1iak/HAM/ATS3a-digital/index.php3

I built an Omnia basic transceiver, which is a reincarnation of the Peaberry SDR, for which I modified the firmware to support low latency CW transmit generated by the SDR board directly without any host support.
https://github.com/bubnikv/omniasdrbasicfirmware

With the Omnia SDR transceiver, I was hoping to develop a lightweight back packing SDR CW setup. For CW, audio latency is important. With the help of the https://superpowered.com/latency application, I measured the following numbers on various Android devices, sorted by decreasing latency:

Device Android Clock Audio buffer size Round trip latency
Onyx Boox C67ML (e-ink reader) 4.2.2 44100 Hz 1024 bytes 325 ms
Samsung SM-J320FN (smartphone) 5.1.1 44100 Hz 960 bytes 312 ms
Chuwi Hi8 Air (Win10/Android tablet) 5.1 48200 Hz 1152 bytes 269 ms
Nexus 7 (tablet) 4.2.2 44100 Hz 512 bytes 123 ms
Nexus 4 (smartphone) 5.1.1 4800 Hz 240 bytes 51 ms

Interestingly, the Samsung phone shows a terrible round trip latency, while otherwise I am quite in love with the device. The old Nexus 4 phone shows the lowest latency, while still not close to the 20 ms round trip latency to be considered real time from a music performance point of view.