FM kFrequency: the modulator's own a1 scales the deviation a patch needs, and nothing shows it #66
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
bcox/tymbal#66
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?
Under
Patch::IndexLaw::kFrequencythe depth lane is a peak deviation in hertzand the index is
d / fm. What that hides is that the deviation actuallydelivered to the carrier is scaled by the modulator's fundamental amplitude.
Measured on branch
fm-followups:a1 = 1.0, the cheapest a modulator can be.patches/chowning_horn.h's flat four-partial table hasa1 = 0.45, so the sameindex costs it 2.2x the deviation.
An author who reads
a1as if it were 1 underestimates what the lane owes them bythat factor.
max_deviation_hzknows nothing about it, and the editor never showsit -- the depth slider reads in hertz, and that number is not the hertz the carrier
sees.
This is not a defect in the derivation.
RequiredBandwidthRatioalready weightseach modulator partial by its own amplitude and applies the integrator's
1/mcorrectly. It is a usability gap between what the lane says and what the sound
does.
Options, none obviously right:
Honest, and it makes the whole law legible rather than just this one factor.
a1to 1 at load and fold the difference intothe depth lane. Makes the number mean what it says, but changes what an authored
table means and would move existing patches.
Option 1 is probably right, and pairs naturally with whatever comes of the keytrack
issue.
Related trap, already recorded in
patches/chowning_horn.h's header: under this lawa modulator table shaped like
1/marrives at the carrier as1/m^2, so the rolloffa brass spectrum wants is authored by not authoring one.