File: chase.alg

package info (click to toggle)
nyquist 3.20%2Bds-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 58,008 kB
  • sloc: ansic: 74,743; lisp: 17,929; java: 10,723; cpp: 6,690; sh: 171; xml: 58; makefile: 40; python: 15
file content (20 lines) | stat: -rw-r--r-- 656 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
(CHASE-ALG
  (NAME "chase")
  (ARGUMENTS ("sound_type" "input") ("double" "risetime") 
             ("double" "falltime")) 
  (STATE ("double" "level" "0.0")
         ("double" "upslope" "1.0 / (input->sr * risetime)")
         ("double" "downslope" "1.0 / (input->sr * falltime)"))
  (START (MIN input))
  (INNER-LOOP "double x = input;
            if (x > level) {
                level += upslope;
                if (x < level) level = x;
            } else {
                level -= downslope;
                if (x > level) level = x;
            }
            output = (sample_type) level")
  (TERMINATE (MIN input))
  (LOGICAL-STOP (MIN input))
)