Re: [hatari-devel] Gain too low in DmaSnd_LowPassFilter for STE ?

[ Thread Index | Date Index | More lists.tuxfamily.org/hatari-devel Archives ]


Le 07/08/2016 à 20:45, David Savinkoff a écrit :

Do this instead.
 /****** return (in * 3) << 1;  */
and not what I said earlier,
but experiment
gotta go.



hi

"return (in * 3) << 1" (which is "in *6" in fact :) ) gives much more hearable digi sound in the case of these musics, this sound better.

As for really fine tuning the YM and DMA sound relative output volume on STE, I think we would need to record some STE output as a wav file when mixing a simple YM note with a square wave sample for example, then compare the resulting wav with the output of Hatari.

I will be away for 3 weeks, but if someone feels like recording a real STE, then it could be useful to improve Hatari's relative volume level.

Nicolas



----- David Savinkoff wrote:
----- 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 */ /****** return (in * 3) << 1;  */
	}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 */ /****** return (in * 3) << 1;  */
	}else
	{
		return in << 2;  /****** return (in * 3) << 3;  */
	}
}










Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/