Hilbert

object Hilbert extends ProductReader[Hilbert]

A Hilbert transform UGen. This transformation produces two signals from a given input with identical frequency content, but with their respective phases shifted to be 90 degrees apart (0.5 pi radians).

The two signals output by Hilbert correspond to the real and imaginary part of the complex transformed signal. Due to the method used (an IIR filter), distortion occurs in the upper octave of the frequency spectrum.

The transform can be used to implemented single-side-band (SSB) modulation, but a dedicated UGen FreqShift is already provided for this case.

===Examples===

// a form of envelope tracking
play {
 val in = SinOsc.ar(440)
 val h  = Hilbert.ar(in)
 val x  = h.real.squared + h.imag.squared
 x.poll(1)  // cos(x)^2 + sin(x)^2 == 1 (ideally)
 0
}
See also
Companion
class
trait Product
trait Mirror
trait ProductReader[Hilbert]
class Object
trait Matchable
class Any

Type members

Inherited types

type MirroredElemLabels <: Tuple

The names of the product elements

The names of the product elements

Inherited from
Mirror
type MirroredLabel <: String

The name of the type

The name of the type

Inherited from
Mirror

Value members

Concrete methods

def ar(in: GE): Hilbert
Value Params
in

input signal to be processed

def read(in: RefMapIn, key: String, arity: Int): Hilbert