gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

Audio > Background Noise

#36169 - ProblemBaby - Tue Feb 15, 2005 5:31 pm

Hi, I know that i ask much but Ive to ask about this too then I wont ask more for a while I hope=)

When playing a sound at low volume it produces a lot of background noise.
How do you get rid of that Ive heard music on the gba that fades in and out without much noise.

Is dithering good? when I test in my waveeditor it seems to be even more noise!

any ideas?

#36171 - tepples - Tue Feb 15, 2005 6:03 pm

ProblemBaby wrote:
When playing a sound at low volume it produces a lot of background noise.

I assume you're not referring to the low-volume distortion reported on the Nintendo DS.

Quote:
How do you get rid of that Ive heard music on the gba that fades in and out without much noise.

For one thing, they may have had relatively loud samples so as not to add too much quantization noise when divided down. You'll need to use some mastering tools to clean that up. Also, if you're mixing multiple samples, it's best to maintain 16-bit precision throughout the mix and downconvert to 8-bit only at the end.

Quote:
Is dithering good? when I test in my waveeditor it seems to be even more noise!

The 8-bit wave format has only about a 45 dB peak SNR, and for a signal below -24 dBFS, even noise-shaped dithering won't save you from audible noise.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#37258 - nl - Wed Mar 09, 2005 4:37 pm

if you have the time/memory space, you could double the sample frequency and play two samples for each sample calculated. you can then express another bit by flipping the last bit of the sample, which means half the noise level: 2 * 8bit = 9bit depth.
this only works with a very high sampling freq that shifts the additional quantization to the ultrasonic range, for example 64 khz.

of course you'd then have to feed the sound DMA at double speed too. probably not worth the effort unless your app is really sound-centric.