Google I/O 2013 - High Performance Audio
Google for Developers4 HN recommenders · recommended in 3 months, 2013-2018
62K views · 13 years ago · talk · dated
A Google I/O 2013 talk by Android audio engineers on why reliable, low-latency audio is hard on the platform. It covers problem areas across the stack, platform work underway and techniques apps can use.
Treated as the definitive explanation of Android's audio latency problem, showing it spans the entire stack.
45:49Breaking the 1000ms Time to Glass Mobile Barrier
InfoQ
104K views • 13 years ago
42:59"How NOT to Measure Latency" by Gil Tene
Strange Loop Conference
119K views • 11 years ago
56:23Speed Up Your JavaScript
Google TechTalks
136K views • 17 years ago
2:00Shouting in the Datacenter
Bryan Cantrill
5.7M views • 17 years ago
35:42Progressive Performance (Chrome Dev Summit 2016)
Chrome for Developers
34K views • 9 years ago
3:23Applied Sciences Group: High Performance Touch
Microsoft Research
1.4M views • 14 years ago
1:00:34High Performance Web Sites and YSlow
Google TechTalks
90K views • 18 years ago
2:50:14Simple Code, High Performance
Molly Rocket
463K views • 5 years ago
59:21A Crash Course in Modern Hardware by Cliff Click
Devoxx
21K views • 9 years ago
22:51GopherCon 2015: Go GC: Solving the Latency Problem - Rick Hudson
Gopher Academy
22K views • 11 years ago
42:15"Performance Matters" by Emery Berger
Strange Loop Conference
502K views • 7 years ago
1:04:48"Performance (Really) Matters" with Emery Berger
Association for Computing Machinery (ACM)
7K views • 6 years ago
48:32Google I/O 2014 - Android fireside chat
Google for Developers
19K views • 12 years ago
49:15Erlang Factory 2014 - That's 'Billion' with a 'B': Scaling to the Next Level at WhatsApp
Erlang Solutions
50K views • 12 years ago
3:15Windows 7 GUI slowness
VooD
22K views • 17 years ago
3:36Hold music used to sound better. Here's why.
Tom Scott
2.9M views • 8 years ago
8:338088 MPH by Hornet + CRTC + DESiRE (final version)
andrewmjenner
93K views • 11 years ago
22:41"Clean" Code, Horrible Performance
Molly Rocket
1.2M views • 3 years ago
1:01:34Google I/O 2008 - Dalvik Virtual Machine Internals
Google for Developers
188K views • 18 years ago
1:00:07CppCon 2017: Carl Cook “When a Microsecond Is an Eternity: High Performance Trading Systems in C++”
CppCon
357K views • 9 years ago
8 comments from Hacker News
Sure. Originally Android only had the Java media APIs, with a quite complex state. link Android 2.3 introduced OpenSL ES into the NDK and Android 4.0 got OpenMAX. All of them weren't up to the game of realtime audio due to the Android architecture. link link link There are plenty of other articles online when you search for audio issues on Android. There was even a Google IO 2013 talk about it. ▶ this video Meanwhile Samsung had customized their Android versions to properly support real time audio and offered an SDK for their handsets. link At Google IO 2016 the problem was again discussed, with the Samsung team from Professional Audio being called on stage to discuss their collaboration. link Finally last year at Google IO 2017, the new real time audio was announced, as C only lib. link link The announced C++ wrapper ended up being an external project on github, detached from the NDK, that you need to integrate yourself, without any guarantees how long Google will care to maintain it. Oh, to make things even better, it is already clear from Android P draft documentation that new audio APIs are on their way.
You can watch this I/O session from a few years back: ▶ this video It probably provides the best insight to the problem Google engineers were and probably is still facing in regards to high performance audio on Android. Even when the latency is brought down, there's still other audio related issues/glitches (like buffer underruns). Even now that Android is measurably better than it was previously, things like buffer underruns can still affect the overall usability. Increasing the buffer (to fix the underruns) render the device less suitable for such things as using it with external MIDI controller. You can see from Superpowered's audio latency measurements: link that the buffer for iOS is half that of the best Android (the dual-core Nexus 9)- 64 instead of 128 for Android. I
If you want an in-depth explanation (AP mostly skims the surface) : ▶ this video is a must-watch. Obviously, it does not cover the work accomplished these past two years, but it gives a good idea of the challenges of audio latency on Android
This is a great description of the lowest level problem. But for those wondering why iOS doesn't have the problem or why only 10ms is such a difference, the answer is that this is only the beginning of the problem of Android audio latency. There are still additional problems that add latency that span the entire Android stack from the actual hardware and drivers, to the kernel and scheduler, to the Android implementation of their audio APIs. Anybody who has tried to do any serious audio on Android knows the infamous Bug 3434: link Google I/O 2013 did a pretty good talk on the problem and shows how there are problems across the entire stack. Glenn Kasten pretty much carries the brunt of all the audio problems with Android. I find it telling that he had to handcraft his own latency measurement device using an oscilloscope and LED because there were no actual tools built into the OS to help them analyze performance. ▶ this video Audio has been terrible since Android's inception. It has improved a little over time, but unfortunately, 7 years later is is still pretty much unacceptable for any serious work.
They gave a good talk at I/O on just audio latency: ▶ this video The touch latency alone is generally in the >80ms ballpark as well though, and varies a lot between devices.
> Besides, have you tried Android recently? You might be suprised to discover that Android is better. .. not yet for music apps. Even Google folks admit that [1]. This really can't wait any longer. Where is Garage Band for Android please? ... and to those saying "you can't complain only about music, look at the games, todo lists, blah blah", sorry music IS my domain and that's the only thing I care about. [1] ▶ this video
> So 4.3 fixes neither the ad-hoc WiFi issue #82 nor the audio latency issue #3434. Low latency audio is "fixed" on the Android side, it needs better device support though. Apps need to actually support the fast path as well, which I don't think many do. ▶ this video I don't know if the new Nexus 7 supports the low latency audio path, though. But Android itself does have low latency audio, it's a device-specific thing though.
This is something which is being worked on, but it's a complex problem and takes time to improve. Android 4.3 has halved the audio latency on the Nexus 7 (2012) and Nexus 4. See here: ▶ this video