Top all-time · #19559
blog.paul.cx
Personal blog · blog.paul.cxprogrammingweb
blog.paul.cx is a personal blog at blog.paul.cx about programming and web. Since 2020, 4 different Hacker News readers have linked it 8 times, most often “A wait-free single-producer single-consumer ring buffer for the Web”. The last post was in 2022, but the archive is still widely read.
Too few sampled comments (2) to say how often HN recommends it.?
Why HN links it
HN readers link this blog for its real-time audio programming writing, including a 101 introduction and a wait-free SPSC ringbuffer post that one commenter cites as the better approach for audio code.
Summarised by Claude from a sample of 2 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Most-linked posts?
- A wait-free single-producer single-consumer ring buffer for the Web2 people · 2 mentions · first linked 2022-06-10
- /post/profiling-firefox-real-time-media-workloads/2 people · 2 mentions · first linked 2021-05-12
What Hacker News says?
Would you mind capturing a profile? https://blog.paul.cx/post/profiling-firefox-media-workloads/... explains how. It's very very very simple and quick, there is a video demo and a text explaining what to do, and then you can open a bug at https://bugzilla.mozilla.org/enter_bug.cgi?product=Core&comp... , with the profile link (you can login with a github account or email). This will be triaged and hopefully we'll und…
Comment linking /post/profiling-firefox-media-workloads/
on “Firefox 84.0”Submitted A wait-free single-producer single-consumer ring buffer for the Web as a story · 1 points
HN discussionHi, https://blog.paul.cx/post/audio-video-synchronization-with-t... (I'm the author) will have some info about what is happenning and what to do. You're out of luck on Safari because it seems that the important APIs aren't implemented yet: https://developer.mozilla.org/en-US/docs/Web/API/AudioContex... (scroll down). This means this cannot be made correct, e.g. there will always be a desynchronization when using hig…
Comment linking /post/audio-video-synchronization-with-the-web-audio-api/
on “Show HN: I built a website for sharing drum patterns”I work on the Web Audio API at Mozilla, here is an article that I wrote that explains what goes wrong here, distilled to the core: implementing a metronome in literate programming in a way that will _never_ glitch: https://blog.paul.cx/post/metronome/ . The result is nowhere as interesting as this app, but this is to get the point across. https://www.html5rocks.com/en/tutorials/audio/scheduling/ is an article writte…
Comment linking /post/profiling-firefox-real-time-media-workloads/
on “Show HN: A 64-step drum sequencer I built using React and Redux”Great resource! For those interested in learning the fundamentals of audio programming, I highly recommend starting with Rust. the cpal library in Rust is excellent for developing cross-platform desktop applications. I'm currently maintaining this library: https://github.com/chaosprint/asak It's a cross-platform audio recording/playback CLI tool with TUI. The source code is very simple to read. PRs are welcomed and…
Comment linking /post/profiling-firefox-real-time-media-workloads/
on “Real-time audio programming 101: time waits for nothing (2011)”In audio code, I'd rather use a properly written wait-free SPSC queue, than a least-common-denominator messaging mechanism provided by the standard library like postMessage() (where both the Win32 and JavaScript version suffer from contention and cause audio stuttering, see https://github.com/Dn-Programming-Core-Management/Dn-FamiTra... and https://blog.paul.cx/post/a-wait-free-spsc-ringbuffer-for-th... ), though I'…
Comment linking /post/a-wait-free-spsc-ringbuffer-for-the-web/
on “Must be this tall to write multi-threaded code (2015)”https://blog.paul.cx/post/audio-video-synchronization-with-t... has some background, https://github.com/w3c/webcodecs/blob/main/samples/lib/web_a... is part of a full example that you can run using web codecs, web audio, audioworklet SharedArrayBuffer, and does A/V sync. If it doesn't answer your question let me know because I wrote both (and part of the web audio spec, and part of the webcodecs spec).
Comment linking /post/audio-video-synchronization-with-the-web-audio-api/
on “Replacing WebRTC: real-time latency with WebTransport and WebCodecs”