If the technical fixes fail, you can brute-force the solution by removing the problematic sounds entirely.
This universal ASIO driver can bypass Windows audio handling. noita audio crackling
Why this works: Noita doesn't natively use ASIO, but having ASIO4ALL installed and configured seems to improve audio handling for some users[citation:3]. If the technical fixes fail, you can brute-force
Download from: asio4all.org
This logic would be injected into the Audio Engine wrapper (FMOD handling). This is the burning question on the Steam forums
-- Configuration Constants
local SAMPLE_RATES = 44100, 48000
local BUFFER_SIZES = 1024, 2048, 4096 -- Steps to cycle through
function AudioSystem:Update(dt)
local current_fps = GameGetFramerate()
local underruns = self:GetBufferUnderrunCount()
-- Smart Buffer Logic
if current_fps < 30 and underruns > 5 then
if self.current_buffer_index < #BUFFER_SIZES then
self.current_buffer_index = self.current_buffer_index + 1
self:SetBufferSize(BUFFER_SIZES[self.current_buffer_index])
GamePrint("Audio Stability Mode: Increased buffer to prevent crackling.")
end
end
end
function AudioSystem:ApplyRecommendedSettings()
-- Detect CPU Core Count
local cores = GetSystemCoreCount()
if cores <= 2 then
self:SetBufferSize(4096) -- High latency, zero crackle
self:SetMixingRate(44100)
elseif cores >= 8 then
self:SetBufferSize(1024) -- Low latency
self:SetMixingRate(48000)
else
self:SetBufferSize(2048) -- Balanced default
end
end
This is the burning question on the Steam forums. As of late 2025, threads spanning five years remain active without an official hotfix [citation:1].
The most likely theory is that the issue is deep within the OpenGL and FMOD integration. Because Noita uses a falling-sand physics engine that processes every pixel, the CPU is often under unique stress. The audio engine seems to lose priority or fails to flush its buffer during high-physics moments. Since the issue doesn't affect 100% of users, replicating it in a development environment is difficult.