FM kFrequency: max_deviation_hz needs a keytrack, because no constant is right across a range #65
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
bcox/tymbal#65
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Patch::Ranges::max_deviation_hzis the full scale of the FM depth lane underPatch::IndexLaw::kFrequency, and it defaults to 4000.0. That default was chosenon paper. It has now been checked against a sound --
patches/chowning_horn.histhe bank's first frequency-law patch -- and the conclusion is that the default
is fine and the parameterization is the problem.
Under this law the index is derived,
I = d / fm. Withda constant in hertzand
fmrising with the note, the index falls as1/fm: across chowning-horn'sdeclared C2-C5 that is a 16x span by construction. So:
dabout 654 Hz --16% of a 4000 Hz lane.
Lowering 4000 makes the top worse; raising it makes the bottom worse. No constant
is right at both ends.
Why the obvious fixes are wrong. "The bottom of the lane is too coarse" does
not hold: the lane is Q1.30, one LSB is 3.7 uHz, and a timeline pixel is 0.18 of
index at C3. The useful settings are compressed into the bottom of the travel,
not hard to dial. And making the lane logarithmic would turn every authored
deviation ramp into an exponential index ramp -- exactly what a brass attack needs
it not to do, and most of what this law was adopted for.
The actual lever is a keytrack on the deviation: scale
dby some power offcso the index holds where the author put it, with the exponent as the authoredquantity. Exponent 0 is today's behavior (constant hertz, index falls 16x across
four octaves); exponent 1 is the phase law (constant index); the interesting
instruments live between. That makes the two laws the ends of one continuum rather
than a switch, which is worth deciding before building it.
Not urgent: chowning-horn sounds right across its declared range as it is, and
max_deviation_hzis serialized at patch minor 31, so changing the default is notfree. Filed so the reasoning is not re-derived.
Found while validating the 4000 Hz default on branch
fm-followups.