I tried this & it also happens to me, but not because of the importer.
I downloaded the NSF from Zophar's domain & opened it in Nestopia. Now, Nestopia normally starts to play track 1, but it started playing track 23 when I opened the NSF. I then skipped back a few tracks & reached track 2; it was nothing but noise data anyways. Also, this NSF is a multi-expansion NSF with this header information:
File: Wolverine.nsf
Name: Wolverine
Artist: Geoff Follin
Copyright: 1991 Software Creations, LJN
Region: NTSC
Songs: 29
Starting Song: 23
Extra Chips: VRC6+VRC7+FDS
Bank Switching: No
Load Address: 0x8000
Init Address: 0xC000
Play Address: 0x8006
The importer doesn't support multi-expansion NSFs since FamiTracker doesn't support it.
_______________________
Technology: the one thing that's hated & cursed at by all engineers, technologists, scientists & technicians!
here is a PPMCK NSF... some of the notes have P7F / P81 next to them, which means PPMCK defines notes' pitches differently than FT does for some of them... interesting :P
TechEmporium: the MMC5 duty is a bug, apparently I was using the VRC6 square duty lookup for the MMC5 channels by accident.
Also, the DPCM notes start in octave 0. That's why it looks like there's none (default view is at octave 3).
jrlepage: Thanks for that example, I think I know what's happening; there are a variety of ways you can specify the same pitch on the VRC7, and I only really supported one properly. I can probably fix it. Could you give me info on how that was composed? Is it a custom program, or from MCK, or something else?
Mex: Tracks 1-22 in Wolverine are sound effects, music is 23-29. (The NSF's starting track is 23.) I haven't tried all the tracks, but I can't find an example where it doesn't work fine. Track 2 sounds the same in import as it does in NSFPlug.
I have no idea why FDS+VRC7 flags are set in that NSF (very bizarre). Neither of them seem to be used in it, and obviously FDS can't have expansion chips... (chips on a disk?)
Rushjet1: Yeah, pitch tables are entirely arbitrary... do you tune to A440, do you round up or down, etc.. I also have an uncomfirmed suspicion that FamiTracker isn't using the same pitch table for VRC7 in its NSF driver and the main program.
The VRC7 instead of having a single integer to represent frequency, has one for frequency and one for octave. There are 8 octaves, but the frequency integer has enough space to represent several octaves worth of pitches within each of these "octaves" (with less precision as you go lower); FamiTracker's pitch table is C to B at A440 in the highest (most precise) frequency range it can fit, but frequency values above and below this gamut are perfectly acceptable to the hardware.
I think the kwakalicious track is actually using a frequency gamut that's something like F# - E, which makes sense to use, because it actually has more precision than FamiTracker's (it's using higher frequency numbers).
My fix is to remap frequency values outside FamiTracker's gamut into them... seems to be doing okay, though it does mean I'm losing one bit of pitch precision because of the conversion. Nothing I can really do about that though, I'm stuck with FamiTracker's pitch table.
Also, I wasn't protecting against Pxx value wrap around; notice for pitches C-E, above FamiTracker's gamut, they're all being represented by B with high Pxx, finally for what should be E it ends up wrapping back around to a low value... oops. Well, clamping it would still sound wrong anyway.
im going to continue making this crazy stuff then after a while my style will be so sick that you will be like damn suuun that shit is so sick i dont even get it. i will be like bro its ok.. you dont have to.
Hmm, I exported the original as NSF, but the duty is actually doing that. So... I guess the error is actually in the exporter, not the importer? Pretty weird.
Check your NSF to make sure you're getting the same thing as I am.
im going to continue making this crazy stuff then after a while my style will be so sick that you will be like damn suuun that shit is so sick i dont even get it. i will be like bro its ok.. you dont have to.