24 lines
592 B
Racket
24 lines
592 B
Racket
#lang scribble/manual
|
|
@(require (for-label racket))
|
|
|
|
@title{(zero-crossing in)}
|
|
|
|
|
|
Zero crossing frequency follower.
|
|
|
|
outputs a frequency based upon the distance between interceptions
|
|
of the X axis. The X intercepts are determined via linear
|
|
interpolation so this gives better than just integer wavelength
|
|
resolution. This is a very crude pitch follower, but can be useful
|
|
in some situations.
|
|
|
|
in - input signal.
|
|
|
|
|
|
@racketblock[
|
|
(let* ((a (mul (sin-osc ar (mul-add (sin-osc kr 1 0) 600 700) 0) 0.1))
|
|
(b (mul (impulse ar (zero-crossing a) 0) 0.25)))
|
|
(audition (out 0 (mce2 a b))))
|
|
]
|
|
|
|
|