Pops at end of playback in Studio on Resampled Assets

Hi there,

I’ve noticed that in some events there is a pop when an instrument reaches the end of its source asset. This does not happen when previewing the asset in the browser or playing it back in another application.

I tried changing various sound card settings, routing options, and removing all effects from the signal chain, but nothing seemed to get rid of it. I even added a few seconds of silence to the end of the asset and it still happens.

I realised that this particular asset was in 44.1k, so I upsampled it to 48k and reimported it — and the pop vanished! However, if I change the pitch setting on the instrument, the pop returns. It’s less bad at some pitches, but it appears to me that it’s the resampling that’s doing it.

I tested this in FMOD Studio 2.02.33 on Windows 11.

Hi,

What you’re observing is a known issue with how FMOD handles interpolating/resampling looping content, which you’ve observed occurring when resampling the asset from 44.1k to 48k, and when adjusting the pitch. This should only occur in Studio, not in game, and you can work around in Studio by ensuring that the first sample of the asset is a 0. If it is occurring in game, please let me know.

1 Like

That link is broken for me, but you’re right that I haven’t noticed it happening in-game. I have been making sure the first sample of my assets is a 0, and it’s actually one-shots that I’ve been noticing it on — for loops I’m usually fading the end out before it stops so the pop is inaudible.

I’m glad that it doesn’t impact performance in-game, but it is frustrating not being able to quickly and easily test whether an asset actually has a non-zero ending or if it’s just this known Studio-only behaviour.

Sorry about the link not working - here’s a more indepth explanation:

The issue is caused by the wavetable resampler interpolating the end of the Sound. This is intentional and accounted for with an overflow region, however the contents of the overflow region are dependent on the mode the Sound was created in. If it’s created in looping mode, the overflow is filled with the content from the start of the sound, which if it has a non-zero value will be heard.

Studio creates all sounds as looping and uses the Core API Channel loop mode to control the playback causing this to be heard for non-looping sounds there too. This shouldn’t be an issue for any compressed sample or stream, only raw wav playback in Studio because the DSP resampler works differently to the wavetable resampler.

I can definitely see how it could be frustrating to deal with. A fix for the issue is currently scheduled for development, but I can’t provide any estimation for when it will be done. I’ve noted your interest in it on our feature tracker.

1 Like