final case class WPE_ReverbFrame(in: D, psd: D, bins: I, delay: I = 3, taps: I = 10, alpha: D = 0.9999) extends MultiOut[Double] with Product with Serializable
A UGen implementation of a single frame Weighted Prediction Error (WPE) de-reverberation algorithm in the frequency domain. It takes a DFT'ed input signal frame by frame and returns the estimated reverberated components. To actually obtain the de-reverberated signal, subtract the output from the input signal, then perform inverse FFT and overlap-add reconstruction.
The algorithm closely follows the Python package described in L. Drude, J. Heymann, Ch. Boeddeker, R. Haeb-Umbach, 'NARA-WPE: A Python package for weighted prediction error dereverberation in Numpy and Tensorflow for online and offline processing' and its Numpy implementation (MIT licensed).
Note: this does not yet work correctly with multi-channel input.
- in
the sequence of complex FFT'ed frames. Should have been obtained through
Real1FFTwithmode = 1.- psd
the power spectrum density estimation, frame by frame corresponding with
in. It should correspond with the shape ofin, however being monophonic instead of multi-channel and using real instead of complex numbers (half the signal window length).- bins
the number of frequency bins (should be
fftSize / 2 + 1)- delay
the delay in spectral frames to avoid suppression of early reflections
- taps
the filter size in spectral frames to capture the late reverberation
- alpha
the decay factor for the filter coefficients
- Alphabetic
- By Inheritance
- WPE_ReverbFrame
- Serializable
- MultiOut
- SomeOut
- Lazy
- GE
- UGenSource
- Expander
- Lazy
- Product
- Equals
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new WPE_ReverbFrame(in: D, psd: D, bins: I, delay: I = 3, taps: I = 10, alpha: D = 0.9999)
- in
the sequence of complex FFT'ed frames. Should have been obtained through
Real1FFTwithmode = 1.- psd
the power spectrum density estimation, frame by frame corresponding with
in. It should correspond with the shape ofin, however being monophonic instead of multi-channel and using real instead of complex numbers (half the signal window length).- bins
the number of frequency bins (should be
fftSize / 2 + 1)- delay
the delay in spectral frames to avoid suppression of early reflections
- taps
the filter size in spectral frames to capture the late reverberation
- alpha
the decay factor for the filter coefficients
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
- val alpha: D
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- val bins: I
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- val delay: I
- 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
- WPE_ReverbFrame → UGenSource
- def makeUGens(implicit b: Builder): UGenInLike[Double]
Abstract method which must be implemented by creating the actual
UGens during expansion.Abstract method which must be implemented by creating the actual
UGens during expansion. This method is at most called once during graph expansion- returns
the expanded object (depending on the type parameter
U)
- Attributes
- protected
- Definition Classes
- WPE_ReverbFrame → Expander
- 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 psd: D
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- val taps: I
- 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
- Deprecated