"Frequency offset (hertz)" pitch bend?

Post about feature requests here.
Posts: 5
Joined: Thu Mar 31, 2016 12:06 pm

"Frequency offset (hertz)" pitch bend?

Postby jimbo1qaz » Sat Jan 21, 2017 5:57 am

0CC-Famitracker's default pitch bend option linearly alters the wavelength of the produced note (at least for N163). The resulting change in pitch is larger on high notes (in fact, Δf is proportional to f²).

The new linear pitch option linearly alters the pitch of the produced note, in something like cents.
− How many cents does each increment add to the pitch? Does it depend on which chip is being used?

Is it possible to add an option to linearly alter the frequency of an instrument? This way I can detune a channel 1 hertz up, another 2 hertz down, and have them beat at 3hz regardless of note (to simulate SNES Chrono Trigger's synth)?

User avatar
Posts: 475
Joined: Thu Apr 23, 2015 7:39 pm
Location: Hong Kong SAR

Re: "Frequency offset (hertz)" pitch bend?

Postby HertzDevil » Sat Jan 21, 2017 1:00 pm

If a channel stores its pitch as a period register, then it is incapable of detuning by a fixed frequency difference, and forcing it to do so will give very poor results in the general case (e.g. the smallest delta near 2A03 pulse A-4 is about 6.88 Hz). A similar argument goes for fixed period differences on channels using frequency registers. The FDS / N163 / VRC7 chips use frequency registers, as does the SPC700, so the f² behaviour does not happen on the N163 channels at all, but does on 2A03 / MMC5 / VRC6 / 5B.

The linear pitch mode in 0CC-FamiTracker customarily defines the unit of pitch as 3.125 cents, regardless of the chip used. It approximates this by interpolating adjacent entries on the pitch lookup table and subdividing them into 32 parts.
refactoring 0cc-famitracker