|Re: [hatari-devel] STE DMA sound volume mixing level|
[ Thread Index |
| More lists.tuxfamily.org/hatari-devel Archives
Le 19/05/2022 à 12:38, Troed Sångberg a écrit :
I just had an interesting conversation on Twitter with Gunstick, gwEm
and Dma-Sc. As you can guess from those nicknames, it's sound related :D
Apparently the volume is not emulated correctly (it's too high) when
playing STE DMA sound. This causes issues for musicians who make YM+DMA
songs - Dma-Sc even wrote he can't use Hatari for it at all. gwEm has
apparently spent a lot of time with this since real Falcon and STE
differ but Hatari does not.
Anyway, this seems to be a simple (? famous last words .. ) thing to
correct. Maybe with a usability setting (not default) where those who
want to can increase the DMA volume to "normal". I recall an
investigation by Putnik a few years ago that pointed to Atari actually
having thought they had the hardware config to make DMA sound and YM
sound the same level, but it's just not wired up correctly on the
motherboard, and was then never fixed.
Opinions? Hatari's YM emulation is so excellent now that it's sad to
hear scene musicians skip using it for STE tunes. Since sc68 doesn't do
STE DMA Gunstick is going to use Hatari for his radio show but needs to
do post-processing because of this issue.
I agree that YM / DMA sound level were not measured on real HW to see
what should be the relative level of each one compared to the other.
That's something I'm planning to do one day, but it won't be for Hatari 2.4
Of course, we could add a setting to let the user choose the mixing
%-tage, but in the end I'm not really fan of this solution, because
eventually there should be only one correct value : the one measured on
a real STE.
But once the mixing %-tage is known , it will be indeed a very simple
change to Hatari in dmaSnd.c. For example, adjust this line :
/* DMA and YM2149 mixing */
AudioMixBuffer[nBufIdx] = AudioMixBuffer[nBufIdx] +
dma.FrameLeft * -((256*3/4)/4)/4;
This corresponds to a DMA sound being 3/4 of the YM output.