More shaper shapes, starting with a diode fold #64
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
bcox/tymbal#64
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?
dsp/shaper.howns the curve list -- three today: soft clip, hard clip, fold.The file is built for exactly this: it is the only place that knows which
curves exist, and each curve declares its own
MinimumRatiobeside itstransfer function, so a new curve is one edit rather than two with the second
easy to forget. Both switches are under
-Werror=switch, so a new enumeratorfails the build at the curve and at the ratio.
Appending needs no format bump and no reader change.
plugin/patch_format.hvalidates the stored byte against
kShapeCountand reads an unknown valueback as
kSoftClip; the editor's combo ateditor/patch_view.h:2023is sizedfrom
kShapeCount.The filter drives are untouched:
dsp/ladder.huses its ownLadderSaturatedeliberately and
dsp/va_filter.hshares it.ProcessShaperis only the VAlayer's insert.
Reach. Today only the VA layer has a shaper insert, with three insert
points. #43 adds one to the FM pair. Anything added here lands in both.
In scope
kFoldis a period-4 triangle reflection: perfectlysymmetric, even crease depths, which reads clean and digital. A 259/Serge
folder has uneven and asymmetric creases, and that is most of its character.
Candidates, not decided
transfer. Much harsher than a fold, and it is literally what #43 asked for
("wave wrappers").
sin()instead of triangle reflection:smooth creases, no corners, materially less aliasing, so a lower ratio.
respectively. Cheap, and a west-coast staple.
what tube and transformer saturation actually are.
biasgets partway therebut the curve itself stays symmetric.
ratio.
Each shape needs its
MinimumRatioargued rather than guessed.shaper.h'srule is to round up: a user cannot override the derived ratio, so
under-delivering means aliasing they cannot fix.