Re: [hatari-devel] Gain too low in DmaSnd_LowPassFilter for STE ? |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/hatari-devel Archives
]
- To: hatari-devel@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [hatari-devel] Gain too low in DmaSnd_LowPassFilter for STE ?
- From: David Savinkoff <dsavnkff@xxxxxxxxx>
- Date: Sun, 7 Aug 2016 12:39:43 -0600 (MDT)
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telus.net; s=neo; t=1470595184; bh=VibgYKc4tqBD2nooZ6yJjldvi76whyeU2CH0g/qEkIo=; h=Date:From:To:In-Reply-To:References:Subject; b=CayikCLGW3q9GY16fztUcS03aMvDs/ZCw9vHbzfgowYmz3yrqQAx2G162oUW6mIkV D4KbDAInuyMKbET+ey9Z/4+IF5riNVoWXfWJHB9Zould2doqTBsuqKFmZCnS4J146U BHasfVxLetiir4YMHc1vCzFZDLGPIM2Eixo8R1DO4Xx+kOUhSp1SpQQaOI7sGs9ojZ ApV1QHKiwt4ZTqpOFINNTvvA2sfK6CcAMf/Ney59LcfDoH9nHRuvrirTZ/PXYxWSHB C06AShHnUgeVlnmxb4lk5jqJwLKrO7N40q93V3tcMStOU/y5sE6WinIub+sbjP7nLI tla2O6QIvjnkQ==
- Thread-index: liQNFNYJBT76UXzT2+aPPtIX9TEsZQ==
- Thread-topic: Gain too low in DmaSnd_LowPassFilter for STE ?
----- Nicolas Pomarède wrote:
> Hi
>
> as discussed here
> http://atari-forum.com/viewtopic.php?f=16&t=29615&p=299270#p299270 the
> STE DMA sound samples can't be heard when using an output freq < 50066
> Hz in Hatari (for example, try "salamander : planet latis")
>
> At 50066 Hz you hear the samples, but at 48 kHz you don't hear them
> anymore. This is because 50066 explicitely turn DMA low pass filter OFF
> in the code path.
>
> David, do you think it would be possible to increase the gain in
> DmaSnd_LowPassFilter to hear the samples even when using < 50 kHz output
> freq ?
>
> Note that in this music demo, samples already have a low volume (if you
> just listen to the wav file with Audacity for example), so maybe the
> fact that the sample don't use the full 8 bit range is fooling the
> filter and you get an even lower volume in the end ?
>
> Nicolas
>
Hi,
I will look into this later today. Note that 55 KHz has no filter so
that one can re-sample it with their own filter, thus, 55 KHz
samples should be sharper than a real STE.
The low pass filter Hatari uses filters high frequencies a little
too much.
see /****** return (in * 3) << 3; */ below. Which refers to
hatari/src/dmaSnd.c
This will increase the gain by approx 3dB
Experiment until you like it. Note that low frequencies will
be boosted also. Note that just increasing the cutoff
frequency will require an expensive filter.
/**
* LowPass Filter Left
*/
static Sint16 DmaSnd_LowPassFilterLeft(Sint16 in)
{
static Sint16 lowPassFilter[2] = { 0, 0 };
static Sint16 out = 0;
if (DmaSnd_LowPass)
{
out = lowPassFilter[0] + (lowPassFilter[1]<<1) + in;
lowPassFilter[0] = lowPassFilter[1];
lowPassFilter[1] = in;
return out; /* Filter Gain = 4 */
}else
{
return in << 2; /****** return (in * 3) << 3; */
}
}
/**
* LowPass Filter Right
*/
static Sint16 DmaSnd_LowPassFilterRight(Sint16 in)
{
static Sint16 lowPassFilter[2] = { 0, 0 };
static Sint16 out = 0;
if (DmaSnd_LowPass)
{
out = lowPassFilter[0] + (lowPassFilter[1]<<1) + in;
lowPassFilter[0] = lowPassFilter[1];
lowPassFilter[1] = in;
return out; /* Filter Gain = 4 */
}else
{
return in << 2; /****** return (in * 3) << 3; */
}
}