Zip

final case
class Zip(elems: GE*) extends Lazy

A graph element that interleaves a number of (multi-channel) input signals. For example, if two stereo-signals a and b are zipped, the output will be a four-channel signal corresponding to [ a out 0, b out 0, a out 1, b out 1 ]. If the input signals have different numbers of channels, the minimum number of channels is used.

===Examples===

// peak and RMS metering
val x = play {
 val sig   = PhysicalIn.ar(0 to 1)  // stereo input
 val tr    = Impulse.kr(5)
 val peak  = Peak.kr(sig, tr)
 val rms   = A2K.kr(Lag.ar(sig.squared, 0.1))
 SendReply.kr(tr, Zip(peak, rms), "/meter")
}

val r = message.Responder.add(x.server) {
 case osc.Message("/meter", x.id, _, peakL: Float, rmsL: Float, peakR: Float, rmsR: Float) =>
   println(f"peak-left $peakL%g, rms-left $rmsL%g, peak-right $peakR%g, rms-right $rmsR%g")

x.free(); r.remove()
Value Params
elems

the signals to interleave in a multi-channel output signal

Companion
object
trait Serializable
trait Lazy
trait GE
trait Expander[UGenInLike]
trait Lazy
trait Product
trait Equals
class Object
trait Matchable
class Any

Value members

Concrete methods

def rate: MaybeRate

Inherited methods

def productElementNames: Iterator[String]
Inherited from
Product
def productIterator: Iterator[Any]
Inherited from
Product