PackFFT

object PackFFT extends ProductReader[PackFFT]

A UGen that writes a complex input signal into an FFT buffer. The input is a sequence of interleaved magnitudes and phases. It is written to an FFT buffer ready for transforming it back into time-domain audio using IFFT.

===Examples===

// harmonic sound with changing overtone intensities
play {
 // create simple undulating magnitudes
 val m0 = FSinOsc.kr(Seq.fill(100)(ExpRand(0.1, 1))) * 0.5 + 0.5
 // give them a "rolloff" to make the sound less unpleasant
 val m1 = m0 * Seq.tabulate(100)(_.linLin(0, 99, 1.0, 0.01).squared)
 // turn the bins on and off at different rates
 val mags = m1 * LFPulse.kr(Seq.fill(100)(2 pow IRand(-3, 5)))
 // ignore phase
 val phases: GE = Seq.fill(100)(0)
 // We need to create an FFT chain to feed our data in to.
 // The easiest way is to do an FFT on some signal which we then ignore!
 val buf = FFT(LocalBuf(512), DC.ar(0))
 // now we can do the packing
 val chain = PackFFT(buf, 512, Zip(mags, phases), 0, 99, 1)
 val sig = IFFT.ar(chain)
 Pan2.ar(sig)
}
See also
Companion
class
trait Product
trait Mirror
trait ProductReader[PackFFT]
class Object
trait Matchable
class Any

Type members

Inherited types

type MirroredElemLabels <: Tuple

The names of the product elements

The names of the product elements

Inherited from
Mirror
type MirroredLabel <: String

The name of the type

The name of the type

Inherited from
Mirror

Value members

Concrete methods

def read(in: RefMapIn, key: String, arity: Int): PackFFT