object Convolution2 extends ProductReader[Convolution2] with Serializable
A frequency-domain convolution UGen using a fixed kernel which can be updated
by a trigger signal. The delay caused by the convolution when the kernel is a
dirac impulse is equal to frameSize - controlBlockSize
, so for a frameSize
of 2048 and a control-block size of 64, this is 1984 sample frames.
Examples
// three example kernels // creates a buffer with `n` set values def mkBuf(n: Int, amp: => Double): Buffer = { val v = Vector.tabulate[FillValue](n) { i => (i.linLin(0, n, 0, 2048).toInt, amp) } val b = Buffer(s) b.alloc(2048, completion = b.zeroMsg(b.setMsg(v: _*))) b } val b = mkBuf(3, 1) val c = mkBuf(50, math.random) val d = mkBuf(20, 1) val x = play { val z = Impulse.ar(1) val buf = "kernel".kr(b.id) val tr = "trig" .tr Convolution2.ar(z, buf, tr, 2048) * 0.5 } // set buffer and trigger kernel actualization x.set("kernel" -> b.id, "trig" -> 1) x.set("kernel" -> c.id, "trig" -> 1) x.set("kernel" -> d.id, "trig" -> 1) x.free(); b.free(); c.free(); d.free()
- See also
- Alphabetic
- By Inheritance
- Convolution2
- Serializable
- ProductReader
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
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 ar(in: GE, kernel: GE, trig: GE = 1, frameSize: GE): Convolution2
- in
the realtime input to be convolved
- kernel
buffer identifier for the fixed kernel, which may be modulated in combination with the trigger. Even a trigger input of zero is used, upon UGen initialization the kernel must point to a valid buffer, otherwise the UGen aborts.
- trig
updates the kernel on a change from non-positive to positive (<= 0 to >0)
- frameSize
size of the kernel. this must be a power of two. the FFT calculated internally by the UGen has a size of twice this value. The maximum allowed
frameSize
is 16384. (init-time only)
- 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()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- 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 read(in: RefMapIn, key: String, arity: Int): Convolution2
- Definition Classes
- Convolution2 → ProductReader
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- 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