FamiTracker 0.3.8 beta

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
FamiTracker 0.3.8 beta
by on (#113165)
Does anyone have the old Beta, the first to add the Namco 163 audio? I'm looking for the version that first had it, before the time-sharing sound was implemented that makes the 163 sound nasty.
Re: FamiTracker 0.3.8 beta
by on (#113167)
In version 0.4.1 and earlier, you could force N163 to not use the time sharing system by a registry tweak:
Code:
[HKEY_CURRENT_USER\Software\FamiTracker\Emulation]
"Linear Namco mixing"=dword:00000001


We all know that the real hardware sounds just as bad as the time sharing system, but using 6 or fewer channels is a good compromise. Except people keep making all these epic songs with too many channels, so they sound crappy.
Re: FamiTracker 0.3.8 beta
by on (#113170)
Dwedit wrote:
In version 0.4.1 and earlier, you could force N163 to not use the time sharing system by a registry tweak:
Code:
[HKEY_CURRENT_USER\Software\FamiTracker\Emulation]
"Linear Namco mixing"=dword:00000001


We all know that the real hardware sounds just as bad as the time sharing system, but using 6 or fewer channels is a good compromise. Except people keep making all these epic songs with too many channels, so they sound crappy.

Ah, neat. Thanks, that'll do the trick just fine.

I already made all my tracks with 4 or less channels, but it still does not sound very good. I will see if this sounds much better using 0.4.1.
Re: FamiTracker 0.3.8 beta
by on (#113339)
That's what causes the nasty sounding harmonics in a >6 channel setting?
Re: FamiTracker 0.3.8 beta
by on (#113354)
What causes the nasty sound is the way they did the mixing. Instead of adding the volume levels together, it just plays the volume level of each channel in a sequence. This is not all that unusual to do, even the SNES does that as well, but you need to do it really fast so that the artifacts are outside of the range of human hearing. The Namco chip doesn't do it fast enough when it's using 7 or 8 channels, but does when it's using fewer channels.
Re: FamiTracker 0.3.8 beta
by on (#113356)
You mean the SNES is "multiplexing" the outpout of every of the 8 channels in time, and that filtering of the output makes the average of it ? Interesting.
Re: FamiTracker 0.3.8 beta
by on (#113357)
I don't think the Super NES does it because if it were true, mixing more than one sound into the echo buffer would fail, and I don't know how the S/PDIF mod would work. But based on how I remember the description of the Ensoniq DOC in the Apple IIGS Hardware Reference, it appears the DOC uses the N163 style multiplexer method. (Incidentally, the DOC is where I first learned of the delayed-by-one-byte memory readback that I would later come to learn is used in the NES PPU's VRAM interface.)
Re: FamiTracker 0.3.8 beta
by on (#113359)
To give a few more details: The N163 always produces audio at 120kHz. Always. But it's only a 4 bit × 4 bit multiplying DAC, not enough to play more than one channel with volume control at a time. So it rotates amongst the enabled channels.

At 1-4 channels, this time-division multiplexing is assuredly ultrasonic to all humans of all ages regardless of anything else. But 5-8 channels will produce switching noise at 24kHz (audible to very young children), 20kHz (audible to teenagers), 17kHz (audible to people who haven't been damaging their hearing with loud music), and 15kHz (audible to many). Due to the vagaries of how this works, it effectively modulates the intended audio content at the switching noise frequency, so a 1kHz sine wave used in a 8 channel context will produce sine waves at 1, 14, and 16 kHz.
Re: FamiTracker 0.3.8 beta
by on (#113830)
As someone who does not understand the hardware or assembly side of things (yea I know,) thank you for putting that into easier terms.
Re: FamiTracker 0.3.8 beta
by on (#114792)
Having poked around the latest Famitracker source, it appears the control variable for switching on and off the time-share mixing is still in place. When I am home and have time to fight with it, I can see about changing it and compiling it.