soul-lang / SOUL

The SOUL programming language and API
Other
1.71k stars 96 forks source link

simper_eq bugs #81

Open Tremus opened 2 years ago

Tremus commented 2 years ago

Bug 1: The high shelf cutoff moves when boosting / cutting

https://github.com/soul-lang/SOUL/blob/2f8f74e8efae005e6f1e6d5f4f11b5ae22104143/source/soul_library/soul_library_filters.soul#L1532

Solution: let g = w * sqrt (A);

Bug 2: The bell filters quality is not symmetrical when boosting / cutting

https://github.com/soul-lang/SOUL/blob/2f8f74e8efae005e6f1e6d5f4f11b5ae22104143/source/soul_library/soul_library_filters.soul#L1574-L1578

Solution: k = 1 / (A * clamp(quality, 0.01, 100.0));

NOTE: The bell filter is the only filter that uses a different k

Source: https://cytomic.com/files/dsp/SvfLinearTrapOptimised2.pdf Page 32