Packages

object Goertzel extends ProductReader[Goertzel] with Serializable

A UGen implementing the Goertzel algorithm which is a way to calculate the magnitude and phase of a signal's content at a single specified frequency. It is the equivalent of running an FFT, and then only looking at the output corresponding to a single bin. If one is only interested in a small number of bins, then it is more efficient; if one is interested in the majority of bins, one typically wants to do an FFT instead.

Examples
// tracking the amplitude of a known sine wave
play {
  val freqM  = 220.0
  // try changing freq to a matching or non-matching frequency to what we're looking for
  val freq   = freqM  // or try MouseY.kr(110, 440, 1)
  val amp    = MouseX.kr
  val sig    = SinOsc.ar(freq) * amp
  val length = 4096
  val g      = Goertzel.kr(sig, length, freqM)

  // Calc the magnitude. We also normalize it against buffer size here.
  val mag = (g.real.squared + g.imag.squared).sqrt / (length / 2)
  amp.poll(label = "Input    amplitude")
  mag.poll(label = "Measured amplitude")
  Pan2.ar(sig * 0.1)
}
// tracking control rate input
play {
  val freqM  = 22.0
  // try changing freq to a matching or non-matching frequency to what we're looking for
  val freq   = freqM  // or try MouseY.kr(110, 440, 1)
  val amp    = MouseX.kr
  val sig    = SinOsc.kr(freq) * amp
  val length = 100
  val g      = Goertzel.kr(sig, length, freqM)

  // Calc the magnitude. We also normalize it against buffer size here.
  val mag = (g.real.squared + g.imag.squared).sqrt / (length / 2)
  amp.poll(label = "Input    amplitude")
  mag.poll(label = "Measured amplitude")
  ()
}

This is a third-party UGen (MCLDUGens).

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Goertzel
  2. Serializable
  3. ProductReader
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  8. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  9. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  10. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  11. def kr(in: GE, length: GE = 1024, freq: GE, hop: GE = 1.0f): Goertzel

    length

    used in the same way as an FFT buffer size: The larger this value, the better the frequency resolution, but the worse the time resolution.

    freq

    target frequency in Hertz. (init-time only)

    hop

    same meaning as in the FFT UGen. Supply a value between zero and one, for the amount of overlap between Goertzel "frames". The default is a hop of 1 (meaning no overlap between frames). If you specify 0.5, then the analysis value will be produced twice as often; 0.25, four times as often. (init-time only)

  12. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  14. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  15. def read(in: RefMapIn, key: String, arity: Int): Goertzel
    Definition Classes
    GoertzelProductReader
  16. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  17. def toString(): String
    Definition Classes
    AnyRef → Any
  18. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  19. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  20. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

Inherited from Serializable

Inherited from ProductReader[Goertzel]

Inherited from AnyRef

Inherited from Any

Ungrouped