final case class Real2FFT(in: D, rows: I, columns: I = 0, mode: I = 0) extends FFT2HalfUGen with Product with Serializable
Forward short-time Fourier transform UGen for a real-valued input signal.
The FFT size is equal to rows * columns
. The output is a succession
of complex half-spectra, i.e. from DC to Nyquist.
XXX TODO: Depending on mode
,
the output window size is either size + padding
or size + padding + 2
.
Warning: window parameter modulation is currently not working correctly (issue #30)
- in
the real signal to transform. If overlapping windows are desired, a
Sliding
should already have been applied to this signal, as well as multiplication with a window function.- rows
the input matrix number of rows
- columns
the input matrix number of columns
- mode
packing mode.
0
(default) is standard "packed" mode, whereby the real part of the bin at Nyquist is stored in the imaginary slot of the DC. This mode allows perfect reconstruction with aReal2IFFT
using the same mode.1
is "unpacked" mode, whereby the output windows are made two samples longer, so that the Nyquist bin is included in the very end. By definition, the imaginary parts of DC and Nyquist are zero. This mode allows perfect reconstruction with aReal2IFFT
using the same mode.2
is "discarded" mode, whereby the Nyquist bin is omitted. While it doesn't allow a perfect reconstruction, this mode is useful for analysis, because the output window size is equal to the fft-size, and the imaginary part of DC is correctly zero'ed.
- Alphabetic
- By Inheritance
- Real2FFT
- Serializable
- FFT2HalfUGen
- SingleOut
- SomeOut
- Lazy
- GE
- UGenSource
- Expander
- Lazy
- Product
- Equals
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new Real2FFT(in: D, rows: I, columns: I = 0, mode: I = 0)
- in
the real signal to transform. If overlapping windows are desired, a
Sliding
should already have been applied to this signal, as well as multiplication with a window function.- rows
the input matrix number of rows
- columns
the input matrix number of columns
- mode
packing mode.
0
(default) is standard "packed" mode, whereby the real part of the bin at Nyquist is stored in the imaginary slot of the DC. This mode allows perfect reconstruction with aReal2IFFT
using the same mode.1
is "unpacked" mode, whereby the output windows are made two samples longer, so that the Nyquist bin is included in the very end. By definition, the imaginary parts of DC and Nyquist are zero. This mode allows perfect reconstruction with aReal2IFFT
using the same mode.2
is "discarded" mode, whereby the Nyquist bin is omitted. While it doesn't allow a perfect reconstruction, this mode is useful for analysis, because the output window size is equal to the fft-size, and the imaginary part of DC is correctly zero'ed.
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
- def apply(in: OutD, rows: OutI, columns: OutI, mode: OutI)(implicit b: Builder): OutD
- Attributes
- protected
- Definition Classes
- Real2FFT → FFT2HalfUGen
- 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()
- val columns: I
- Definition Classes
- Real2FFT → FFT2HalfUGen
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- val in: D
- Definition Classes
- Real2FFT → FFT2HalfUGen
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def makeUGen(args: IndexedSeq[UGenIn[_]])(implicit b: Builder): UGenInLike[Double]
- Attributes
- protected
- Definition Classes
- FFT2HalfUGen → UGenSource
- final def makeUGens(implicit b: Builder): UGenInLike[Double]
Abstract method which must be implemented by creating the actual
UGen
s during expansion.Abstract method which must be implemented by creating the actual
UGen
s 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
- FFT2HalfUGen → Expander
- val mode: I
- Definition Classes
- Real2FFT → FFT2HalfUGen
- 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 rows: I
- Definition Classes
- Real2FFT → FFT2HalfUGen
- 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