{
  "id": 235462,
  "title": "The Synth Sounded Fine When Nobody Was Listening",
  "url": "https://urgent.news/2026/08/06/the-synth-sounded-fine-when-nobody-was-listening",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-08-06T20:07:11.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/antheducation/the-synth-sounded-fine-when-nobody-was-listening-50l"
  },
  "original_language": "en",
  "account": "In a case of a browser-based audio engine that sounded muffled in real-time, but perfect when rendered to file, the issue stemmed from a difference in the code paths. The live playback path ran on a scheduler, while the offline render path had no scheduler. The scheduler created and destroyed audio nodes at a rate of roughly 6,636 times per short run, which was the actual source of the issue. The scheduler had a lookahead window of 0.28 seconds and a seek detector that triggered when the user dragged the playhead backwards. The seek detector compared the current transport position against the position it last saw and canceled every scheduled voice if there was a backward seek. The scheduler's lookahead window caused a backwards gap, which triggered the seek detector, leading to a continuous cycle of cancellation and recreation of audio nodes. The fix involved increasing the backward-seek threshold to be larger than the lookahead window, preventing the scheduler's forward progress from being mistaken for a user seek. This bug highlights the importance of comparing different code paths and counting occurrences to identify the root cause.",
  "summary": "This is my entry for DEV's Summer Bug Smash — Smash Stories. There is a specific kind of bug that makes you doubt your own ears. I had a browser-based audio engine that played fine in export and sounded broken in real time. Hit play, and the output was thin, muffled, strangled — like someone had thrown a blanket over the speakers. Hit \"render to file\" on the exact same project data , and the…",
  "key_points": [
    "Browser-based audio engine muffled in real-time playback",
    "Live playback path ran on scheduler, offline render had none",
    "Fix increased backward-seek threshold to prevent node cancellation"
  ],
  "editors_take": "The fix reveals that even subtle discrepancies between code paths can cause noticeable issues, underscoring the need for thorough comparisons to ensure consistency across different operational modes.",
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}