I have read on internet that nsf files contains a pitch table. The nsf players out there can't playback nsf music in another scale. And if i change the pitch table in a nsf. I call it converting nsf to nsf by only replacing the pitch table. I choose what channels to replace pitch table with.
Example: i would not change the pitch table on NOISE and DPCM channel. Because those channels are the drums.
And drums should not have a new pitch table.
Let's say i take a (2A03/2A07) nsf file. I play song 001. Then i open up the pitch table window and change the sound register tuning system.
1. Change the frequency of each note.
2. Repeat 12 note frequencies across all octaves at once or repeat only 2 octaves or more or no octave repeating.
3. A keytracking knob that crossfades the frequency from all notes available to the center octave pitch. The space/interval between notes is editable.
4. Rotating the picth table. Horizontal and vertical pitch table flipping.
5. Random note frequency deviation.
This is not possible with famitracker.
A nsf player can emulate any nes game regardless how different the nsf driver is. The nsf player pitch/frequency stream can be edited in real time by a pitch table module. Then record and save the new song that uses another scale. When recording a nsf. The frequencies of all notes is modified by the pitch table module. The new nsf song does not use the original nsf driver. It uses a new nsf driver. It's like importing nsf files in famitracker then connect only (Square 1) (Square 2) (Triangle) to pitch table. Then editing the pitch table. Then you have a new song. Then export it to nsf.
Is a robust pitch table editor for famitracker going to happen? Let's say my song uses (2A03/2A07) + VRC6. Many instruments.
I will not apply the pitch table to drum channels. And what happens if one of the square channels makes a kick and melody instruments in the same channel? Let's say the DPCM channel can be used both for drums and bass. The triangle channel can too make drums and bass. I will only apply the pitch table to melodic channels.
Here is the pitch table location in nsf files created by famitracker:
It starts with:
And it ends with:
The default famitracker nsf pitch table chunk in hex format: