mirror of
https://github.com/cookiengineer/audacity
synced 2025-10-10 16:43:33 +02:00
Move library tree where it belongs
This commit is contained in:
47
lib-src/libnyquist/nyquist/tran/resonvv.alg
Normal file
47
lib-src/libnyquist/nyquist/tran/resonvv.alg
Normal file
@@ -0,0 +1,47 @@
|
||||
(RESONVV-ALG
|
||||
(NAME "resonvv")
|
||||
(ARGUMENTS ("sound_type" "s1") ("sound_type" "hz1") ("sound_type" "bw")
|
||||
("int" "normalization"))
|
||||
(INLINE-INTERPOLATION T)
|
||||
(ALWAYS-SCALE hz1 bw)
|
||||
(START (MAX s1 hz1 bw))
|
||||
(TERMINATE (MIN s1 hz1 bw))
|
||||
(LOGICAL-STOP (MIN s1))
|
||||
(SAMPLE-RATE (MAX s1))
|
||||
(STEP-FUNCTION hz1 bw)
|
||||
(STATE ("double" "scale1" "s1->scale")
|
||||
("double" "c3co" "0.0")
|
||||
("double" "c3p1" "0.0")
|
||||
("double" "c3t4" "0.0")
|
||||
("double" "omc3" "0.0")
|
||||
("double" "coshz" "0.0")
|
||||
("double" "c2" "0.0")
|
||||
("double" "c1" "0.0")
|
||||
("boolean" "recompute" "false")
|
||||
("int" "normalization" "normalization")
|
||||
("double" "y1" "0.0")
|
||||
("double" "y2" "0.0;
|
||||
hz1->scale = (sample_type) (hz1->scale * (PI2 / s1->sr));
|
||||
bw->scale = (sample_type) (bw->scale * (-PI2 / s1->sr));"))
|
||||
(DEPENDS ("c3co" "bw" "exp(bw)")
|
||||
("c3p1" "bw" "c3co + 1.0")
|
||||
("c3t4" "bw" "c3co * 4.0")
|
||||
("omc3" "bw" "1.0 - c3co")
|
||||
("recompute" "bw" "true")
|
||||
("coshz" "hz1" "cos(hz1)")
|
||||
("recompute" "hz1" "true"))
|
||||
(JOINT-DEPENDENCY (("hz1" "bw")
|
||||
"if (recompute) {"
|
||||
" recompute = false;"
|
||||
" c2 = c3t4 * coshz / c3p1;"
|
||||
" c1 = (normalization == 0 ? 1.0 :"
|
||||
" (normalization == 1 ? omc3 * sqrt(1.0 - c2 * c2 / c3t4) :"
|
||||
" sqrt(c3p1 * c3p1 - c2 * c2) * omc3 / c3p1)) * scale1;"
|
||||
"}"))
|
||||
(CONSTANT "c1" "c2" "c3co" "coshz" "c3p1" "c3t4" "omc3"
|
||||
"normalization" "scale1")
|
||||
(FORCE-INTO-REGISTER recompute) ;c3t4 c3p1 normalization omc3 scale1
|
||||
(INNER-LOOP "{ double y0 = c1 * s1 + c2 * y1 - c3co * y2;
|
||||
output = (sample_type) y0;
|
||||
y2 = y1; y1 = y0; }")
|
||||
)
|
Reference in New Issue
Block a user