Skip to content

dev256

@tildearrow tildearrow tagged this 09 Oct 07:01
issue #2347

Furnace formerly used 8363Hz as the nominal C-4 rate. this commit
changes it to 8372Hz.

the previous rate originates in the early history of music trackers.
the Amiga uses periodic pitch control, which means the actual freq
is calculated by dividing 3.58MHz with the period register.

the frequency of C-4 is ~261.63Hz, assuming 12-tone equal temperament.
with a 32-cycle waveform, the playback frequency should be ~8372.02Hz.

it is impossible to accurately set a specific frequency since the
period registers are integers. precision dwindles with increasing
frequency.

the closest period that approximates the aforementioned frequency is
428, as validated by the following statement:

3579545.45 (NTSC colorburst) ÷ 8372.018 = 427.56 ≈ 428

the resulting frequency in this case is 3579545.45 ÷ 428 = 8363.424.
this number has been carried over to post-Amiga trackers, such as
Scream Tracker, FastTracker, Impulse Tracker and OpenMPT.

however, this frequency is imprecise. it results in actual playback
rates being wrong across chips (even Generic PCM DAC).
it's a historical leftover which this change eliminates.

as of now Furnace will use 8372Hz for rate calculation. playback
frequencies should be proper and roughly match a sample's C-4 rate.
Assets 2
Loading