summaryrefslogtreecommitdiff
path: root/tran/atonev.alg
diff options
context:
space:
mode:
authorSteve M. Robbins <smr@debian.org>2011-10-22 04:54:51 +0200
committerSteve M. Robbins <smr@debian.org>2011-10-22 04:54:51 +0200
commitdd657ad3f1428b026486db3ec36691df17ddf515 (patch)
tree6ffb465595479fb5a76c1a6ea3ec992abaa8c1c1 /tran/atonev.alg
Import nyquist_3.05.orig.tar.gz
[dgit import orig nyquist_3.05.orig.tar.gz]
Diffstat (limited to 'tran/atonev.alg')
-rw-r--r--tran/atonev.alg25
1 files changed, 25 insertions, 0 deletions
diff --git a/tran/atonev.alg b/tran/atonev.alg
new file mode 100644
index 0000000..441206f
--- /dev/null
+++ b/tran/atonev.alg
@@ -0,0 +1,25 @@
+(ATONEV-ALG
+(NAME "atonev")
+(ARGUMENTS ("sound_type" "s1") ("sound_type" "hz"))
+(INLINE-INTERPOLATION T)
+(LINEAR hz)
+(ALWAYS-SCALE hz)
+(START (MAX s1 hz))
+(TERMINATE (MIN s1 hz))
+(LOGICAL-STOP (MIN s1))
+(STATE ("double" "cc" "0.0")
+ ("double" "prev" "0.0;
+ hz->scale = (sample_type) (hz->scale * (PI2 / s1->sr))"))
+(LINEAR s1)
+(SAMPLE-RATE (MAX s1))
+(STEP-FUNCTION hz)
+(DEPENDS ("bb" "hz" "2.0 - cos(hz)" TEMP "register double")
+ ("cc" "hz" "bb - sqrt((bb * bb) - 1.0)"))
+(CONSTANT "cc")
+(INNER-LOOP-LOCALS " double current;
+")
+(INNER-LOOP "current = s1;
+ prev = cc * (prev + current);
+ output = (sample_type) prev;
+ prev -= current;")
+)