Arun Raghavan

arunraghavan.net · Personal blog · on HN since 2012

Arun Raghavan, a developer of PulseAudio and GStreamer, writes about Linux and Android audio, latency, synchronization, and multimedia software.

What HN saysCommenters praise his accessible explanations of audio stacks and cite his latency measurements on Android; one points to his oscilloscope-based synchronization testing in GStreamer.
20HN people shared it
7linked it in comments
21stories submitted
174story points
5 months agolast shared
2012people per year2026

Most-shared posts

  1. 1
    PulseAudio vs. AudioFlinger (Android)
    5 people · 9 points · first shared 2012 · 1 comments on HN
  2. 2
    Measuring audio sync with an oscilloscope
    3 people · 4 points · first shared 2017 · discussion on HN
  3. 3
    To Conference Organisers Everywhere
    3 people · 4 points · first shared 2023 · discussion on HN
  4. 4
    The Unbearable Anger of Broken Audio
    2 people · 16 points · first shared 2025 · 3 comments on HN
  5. 5
    GStreamer and WebRTC HTTP Signalling
    2 people · 5 points · first shared 2024 · discussion on HN
  6. 6
    Stricter JSON Parsing with Haskell and Aeson
    2 people · 4 points · first shared 2017 · discussion on HN
  7. 7
    PulseAudio on Android (part 2)
    2 people · 1 points · first shared 2012 · discussion on HN
  8. 8
    Improvements to PulseAudio's Echo Cancellation
    2 people · 1 points · first shared 2016 · discussion on HN
  9. 9
    Beamforming in PulseAudio
    1 people · 121 points · first shared 2016 · 32 comments on HN
  10. 10
    Update from the PipeWire hackfest
    1 people · 3 points · first shared 2018 · discussion on HN
  11. 11
    Notes from the PipeWire Hackfest 2026
    1 people · 2 points · first shared 2026 · discussion on HN
  12. 12
    A Brimful of ASHA
    1 people · 2 points · first shared 2025 · discussion on HN
  13. 13
    Synchronised Playback and Video Walls
    1 people · 1 points · first shared 2016 · discussion on HN
  14. 14
    Applicate Functors for Fun and Parsing
    1 people · 1 points · first shared 2018 · discussion on HN
  15. 15
    Hello hello hello
    1 people · first shared 2016

What HN people wrote when they linked it

sandGorgon · 2015-04-16
interestingly, a 2012 article[1] by Arun Raghavan mentions: On the Galaxy Nexus, for example, the best latency I can get appears to be 176 ms. This is pretty high for certain types of applications, particularly ones that generate tones based on user input. With PulseAudio, where we dynamically adjust buffering based on what clients request, I was able to drive down the total buffering to approximately 20 ms (too much lower, and we started getting dropouts). There is likely room for improvement here, and it is something on my todo list, but even out-of-the-box, we’re doing quite well. Let's get systemd on android and then see ! [1] http://arunraghavan.net/2012/01/pulseaudio-vs-audioflinger-fight/
surrealize · 2012-12-30
More Android<->(non-android)Linux compatibility would be great. Given that the linux desktop is moving toward wayland, and given that android's SurfaceFlinger is a lot closer to wayland than to X, I'm not sure that X is the best way forward. It would be interesting to see how much work it would take to implement SurfaceFlinger apis in terms of wayland or vice versa. Kind of like this work implementing the AudioFlinger api on top of pulseaudio: http://arunraghavan.net/2012/04/pulseaudio-on-android-part-2/
exDM69 · 2015-12-04
The infographic looked so much like an ad that I skipped over it. So this is one of the "good" Android audio stacks, getting 36ms latency. But half of that is "wasted" in user space, in AudioFlinger as well as the app ring buffer (which seems pretty big to me). I'd like to see the comparison to a "bad" Android device. Doing some internet searches, I found someone who had plugged in PulseAudio to an Android phone and got 20 ms latency instead of the 170+ ms latency from AudioFlinger on the same device [0]. That's pretty huge. Ideally, there should be no user space middleware component processing audio in between, this could half the latency (according to the diagram), bringing the latency to acceptable levels. But ALSA isn't really intended for routing audio on the fly conveniently (e.g. when plugging/unplugging headphones), so there is some room for improvement too. Overall, the situation is pretty sad. Linux can do better than that but a modern multimedia device (desktop or mobile) has several audio outputs and hot-plugging, which makes the situation rather difficult using ALSA only. And the userspace audio components just aren't great. http://arunraghavan.net/2012/01/pulseaudio-vs-audioflinger-fight/
jcelerier · 2019-05-04
gstreamer already does that fairly well (https://arunraghavan.net/2017/01/quantifying-synchronisation-oscillosc… is there a reason to duplicate the work ?
mmastrac · 2016-06-29
Kudos to the author. It takes a lot to write about something in a way that makes it accessible to folks not skilled in the art. He's written some other interesting posts on PulseAudio features too, but this is more well-written and approachable: https://arunraghavan.net/2016/05/improvements-to-pulseaudios-echo-canc… https://arunraghavan.net/2011/08/hello-hello-hello/
krakensden · 2015-04-16
ALSA isn't the problem- JACK runs on top of ALSA, and people comfortably run well under 10ms. The problem is higher up in the stack. Even switching to the much-maligned pulseaudio could be a huge improvement: http://arunraghavan.net/2012/01/pulseaudio-vs-audioflinger-fight/
hansjorg · 2013-07-25
It's a bit surprising that sound latency on Android is as bad as it is. It's not just apps for audio production that suffers, most any kind of audio toy is useless. For people who want to tinker with audio on Android, it's possible to swap AudioFlinger with PulseAudio[1] for lower latency (20ms vs 176ms)[2], but so far you have to build and flash your own AOSP image, so it's not exactly plug and play. [1]: http://www.freedesktop.org/wiki/Software/PulseAudio/Ports/Android/ [2]: http://arunraghavan.net/2012/01/pulseaudio-vs-audioflinger-fight/

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close