A mixing idiom that corresponds to Seq.fill
.
A mixing idiom that is not actually adding elements, but recursively folding them.
A mixing idiom that is not actually adding elements, but recursively folding them.
Calling this method is equivalent to
(1 to n).foldLeft(elem) { (res, _) => fun(res) }
It is often used in the SuperCollider examples to apply a filtering process such as reverberation several times. For cases where the iteration index is needed, the full form as shown above can be used instead.
the input element
the number of iterations
a function that is recursively applied to produce the output
A special mix that flattens all channels of the input element before summing them, guaranteeing that result is monophonic.
A shortcut for Mix(GESeq(elems: _*))
.
A mixing idiom that corresponds to Seq.tabulate
and to Array.fill
in sclang.
A graph element that mixes the channels of a signal together. It works like the sclang counterpart.
The
Mix
companion object contains various useful mixing idioms:-
Mix.tabulate(n: Int)(fun: Int => GE)
: corresponds toSeq.tabulate
and toArray.fill
in sclang. -Mix.fill(n: Int)(thunk: => GE)
: corresponds toSeq.fill
. -Mix.seq(elems: GE*)
: A shortcut forMix(GESeq(elems: _*))
.A separate graph element is
Mix.mono
.Mix.mono(elem: GE)
flattens all channels of the input element before summing them, guaranteeing that the result is monophonic.Finally,
Mix.fold
is an idiom that not actually adds elements, but recursively folds them. Thus,Mix.fold(elem: GE, n: Int)(fun: GE => GE)
is equivalent toMix.fold
is often used in the SuperCollider examples to apply a filtering process such as reverberation several times. For cases where the iteration index is needed, the full form as shown above can be used instead.Examples
BinaryOpUGen
Reduce