Packages

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 Real1FFT with mode = 1.

psd

the power spectrum density estimation, frame by frame corresponding with in. It should correspond with the shape of in, 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

Linear Supertypes
Serializable, MultiOut[Double], SomeOut[Double, IndexedSeq[StreamOut]], GE.Lazy[Double], GE[Double], UGenSource[UGenInLike[Double], IndexedSeq[StreamOut]], Expander[UGenInLike[Double]], Lazy, Product, Equals, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. WPE_ReverbFrame
  2. Serializable
  3. MultiOut
  4. SomeOut
  5. Lazy
  6. GE
  7. UGenSource
  8. Expander
  9. Lazy
  10. Product
  11. Equals
  12. AnyRef
  13. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. 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 Real1FFT with mode = 1.

    psd

    the power spectrum density estimation, frame by frame corresponding with in. It should correspond with the shape of in, 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

  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. val alpha: D
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. val bins: I
  7. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
  8. val delay: I
  9. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  10. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  11. val in: D
  12. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  13. def makeUGen(args: IndexedSeq[UGenIn[_]])(implicit b: Builder): UGenInLike[Double]
    Attributes
    protected
    Definition Classes
    WPE_ReverbFrameUGenSource
  14. 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_ReverbFrameExpander
  15. final def name: String
    Definition Classes
    UGenSource
  16. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  17. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  18. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  19. def productElementNames: Iterator[String]
    Definition Classes
    Product
  20. val psd: D
  21. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  22. val taps: I
  23. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  24. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  25. 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 MultiOut[Double]

Inherited from SomeOut[Double, IndexedSeq[StreamOut]]

Inherited from GE.Lazy[Double]

Inherited from GE[Double]

Inherited from UGenSource[UGenInLike[Double], IndexedSeq[StreamOut]]

Inherited from Expander[UGenInLike[Double]]

Inherited from Lazy

Inherited from Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Ungrouped