class library: SynthDef - lazy implementation of removeUGen
[supercollider.git] / HelpSource / Classes / HilbertFIR.schelp
blobbd38f18cc970355a09db242d24c2fcd3538c08de
1 class:: HilbertFIR
2 summary:: Applies the Hilbert transform to an input signal.
3 related:: Classes/Hilbert, Classes/FreqShift
4 categories::  UGens>Filters>Nonlinear
7 Description::
9 Returns two channels with the original signal and a copy of that signal that has been shifted in phase by 90 degrees (0.5 pi radians). HilbertFIR outputs two channels containing the input signal and the transformed signal. HilbertFIR uses FFTs and a 90 degree phase shift to transform the signal, and results in a delay equal to the size of the buffer used for the FFT divided by the sample rate. The Hilbert UGen has less delay, but distorts in the upper octace of the frequency spectrum.
12 classmethods::
14 method::ar
16 argument::in
18 The input signal to transform.
21 argument::buffer
23 A Buffer to be used for the inter FFT processing. Best results with a size of 1024 or 2048. 1024 gives an acceptable result (though a little choppy), 2048 is much smoother but creates more delay.
26 code::
27 s = Server.internal.boot;
28 s.scope;
29 b - Buffer.alloc(s, 2048);
30 a = {HilbertFIR.ar(SinOsc.ar(100), b)}.play(s);
31 a.release;