final case class MelFilter(in: D, size: I, minFreq: D = 55.0, maxFreq: D = 18000.0, sampleRate: D = 44100.0, bands: I = 42) extends SingleOut[Double] with Product with Serializable
A UGen that maps short-time Fourier transformed spectra to the mel scale. To obtain
the MFCC, one has to take the log of the output of this UGen and decimate it with a DCT
.
Example:
def mfcc(in: GE) = { val fsz = 1024 val lap = Sliding(in, fsz, fsz/2) * GenWindow(fsz, GenWindow.Hann) val fft = Real1FFT(lap, fsz, mode = 1) val mag = fft.complex.mag.max(-80) val mel = MelFilter(mag, fsz/2, bands = 42) DCT_II(mel.log, 42, 13, zero = 0) }
- in
magnitudes of spectra, as output by
Real1FFT(..., mode = 1).complex.abs
- size
bands in input spectrum (assumed to be
fft-size / 2
). lowest band corresponds to DC and highest to(size - 1)/size * sampleRate/2
.- minFreq
lower frequency to sample. Will be clipped between zero (inclusive) and Nyquist (exclusive).
- maxFreq
upper frequency to sample. Will be clipped between
minFreq
(inclusive) and Nyquist (exclusive).- bands
number of filter bands output
- Alphabetic
- By Inheritance
- MelFilter
- Serializable
- SingleOut
- SomeOut
- Lazy
- GE
- UGenSource
- Expander
- Lazy
- Product
- Equals
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new MelFilter(in: D, size: I, minFreq: D = 55.0, maxFreq: D = 18000.0, sampleRate: D = 44100.0, bands: I = 42)
- in
magnitudes of spectra, as output by
Real1FFT(..., mode = 1).complex.abs
- size
bands in input spectrum (assumed to be
fft-size / 2
). lowest band corresponds to DC and highest to(size - 1)/size * sampleRate/2
.- minFreq
lower frequency to sample. Will be clipped between zero (inclusive) and Nyquist (exclusive).
- maxFreq
upper frequency to sample. Will be clipped between
minFreq
(inclusive) and Nyquist (exclusive).- bands
number of filter bands output
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
- val bands: I
- 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
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- val in: D
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def makeUGen(args: IndexedSeq[UGenIn[_]])(implicit b: Builder): UGenInLike[Double]
- Attributes
- protected
- Definition Classes
- MelFilter → UGenSource
- def makeUGens(implicit b: Builder): UGenInLike[Double]
Abstract method which must be implemented by creating the actual
UGen
s during expansion. - val maxFreq: D
- val minFreq: D
- final def name: String
- Definition Classes
- UGenSource
- 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 productElementNames: Iterator[String]
- Definition Classes
- Product
- val sampleRate: D
- val size: I
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- 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