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).
- Alphabetic
- By Inheritance
- Goertzel
- Serializable
- ProductReader
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- 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)
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def read(in: RefMapIn, key: String, arity: Int): Goertzel
- Definition Classes
- Goertzel → ProductReader
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated