40 lines
940 B
Racket
40 lines
940 B
Racket
#lang scribble/manual
|
|
@(require (for-label racket))
|
|
|
|
@title{(fft buffer in hop wintype active)}
|
|
|
|
(fft* b i) => (fft b i 0.5 0 1)
|
|
|
|
Fast fourier transform. The fast fourier transform analyzes the
|
|
frequency content of a signal. fft uses a local buffer for holding
|
|
the buffered audio. The inverse transform, Ifft, reconstructs an
|
|
audio signal.
|
|
|
|
Note that the UGens the SC3 language provides do not use rate
|
|
extensions, since only a single rate is valid for each UGen class.
|
|
The fft and PV_ UGens must run at control rate, the ifft UGen at
|
|
audio rate.
|
|
|
|
|
|
@racketblock[
|
|
(with-sc3
|
|
(lambda (fd)
|
|
(async fd (b-alloc 10 2048 1))))
|
|
]
|
|
|
|
|
|
@racketblock[
|
|
(let* ((s (mul (white-noise ar) 0.05))
|
|
(c (fft* 10 s)))
|
|
(audition (out 0 (ifft* c))))
|
|
]
|
|
|
|
|
|
@racketblock[
|
|
(let* ((f1 (Squared (mul-add (sin-osc kr 0.08 0) 6 6.2)))
|
|
(f2 (mul-add (sin-osc kr f1 0) 100 800))
|
|
(s (sin-osc ar f2 0)))
|
|
(audition (out 0 (ifft* (fft* 10 s)))))
|
|
]
|
|
|
|
|