basic¶
- class Mix¶
Bases:
PseudoUGen
A down-to-mono signal mixer.
>>> with supriya.synthdefs.SynthDefBuilder() as builder: ... oscillators = [supriya.ugens.DC.ar(source=1) for _ in range(5)] ... mix = supriya.ugens.Mix.new(oscillators) ... >>> synthdef = builder.build(name="mix1", optimize=False) >>> supriya.graph(synthdef)
>>> print(synthdef) synthdef: name: mix1 ugens: - DC.ar/0: source: 1.0 - DC.ar/1: source: 1.0 - DC.ar/2: source: 1.0 - DC.ar/3: source: 1.0 - Sum4.ar: input_one: DC.ar/0[0] input_two: DC.ar/1[0] input_three: DC.ar/2[0] input_four: DC.ar/3[0] - DC.ar/4: source: 1.0 - BinaryOpUGen(ADDITION).ar: left: Sum4.ar[0] right: DC.ar/4[0]
>>> with supriya.synthdefs.SynthDefBuilder() as builder: ... oscillators = [supriya.ugens.DC.ar(source=1) for _ in range(15)] ... mix = supriya.ugens.Mix.new(oscillators) ... >>> synthdef = builder.build("mix2") >>> supriya.graph(synthdef)
>>> print(synthdef) synthdef: name: mix2 ugens: - DC.ar/0: source: 1.0 - DC.ar/1: source: 1.0 - DC.ar/2: source: 1.0 - DC.ar/3: source: 1.0 - Sum4.ar/0: input_one: DC.ar/0[0] input_two: DC.ar/1[0] input_three: DC.ar/2[0] input_four: DC.ar/3[0] - DC.ar/4: source: 1.0 - DC.ar/5: source: 1.0 - DC.ar/6: source: 1.0 - DC.ar/7: source: 1.0 - Sum4.ar/1: input_one: DC.ar/4[0] input_two: DC.ar/5[0] input_three: DC.ar/6[0] input_four: DC.ar/7[0] - DC.ar/8: source: 1.0 - DC.ar/9: source: 1.0 - DC.ar/10: source: 1.0 - DC.ar/11: source: 1.0 - Sum4.ar/2: input_one: DC.ar/8[0] input_two: DC.ar/9[0] input_three: DC.ar/10[0] input_four: DC.ar/11[0] - DC.ar/12: source: 1.0 - DC.ar/13: source: 1.0 - DC.ar/14: source: 1.0 - Sum3.ar: input_one: DC.ar/12[0] input_two: DC.ar/13[0] input_three: DC.ar/14[0] - Sum4.ar/3: input_one: Sum4.ar/0[0] input_two: Sum4.ar/1[0] input_three: Sum4.ar/2[0] input_four: Sum3.ar[0]
- classmethod multichannel(sources, channel_count)¶
Segment by channel count and mix down in parallel.
Combine panner outputs, first with first, second with second, etc.
>>> source = supriya.ugens.SinOsc.ar(frequency=[440, 660, 880]) >>> panner = supriya.ugens.PanAz.ar( ... channel_count=4, ... source=source, ... position=supriya.ugens.LFNoise2.kr(), ... ) >>> mix = supriya.ugens.Mix.multichannel(panner, channel_count=4) >>> out = supriya.ugens.Out.ar(bus=0, source=mix) >>> supriya.graph(out)
>>> print(out) synthdef: name: 0eeea16179e4d9b4441b878fd108af92 ugens: - SinOsc.ar/0: frequency: 440.0 phase: 0.0 - LFNoise2.kr: frequency: 500.0 - PanAz.ar/0: source: SinOsc.ar/0[0] position: LFNoise2.kr[0] amplitude: 1.0 width: 2.0 orientation: 0.5 - SinOsc.ar/1: frequency: 660.0 phase: 0.0 - PanAz.ar/1: source: SinOsc.ar/1[0] position: LFNoise2.kr[0] amplitude: 1.0 width: 2.0 orientation: 0.5 - SinOsc.ar/2: frequency: 880.0 phase: 0.0 - PanAz.ar/2: source: SinOsc.ar/2[0] position: LFNoise2.kr[0] amplitude: 1.0 width: 2.0 orientation: 0.5 - Sum3.ar/0: input_one: PanAz.ar/0[0] input_two: PanAz.ar/1[0] input_three: PanAz.ar/2[0] - Sum3.ar/1: input_one: PanAz.ar/0[1] input_two: PanAz.ar/1[1] input_three: PanAz.ar/2[1] - Sum3.ar/2: input_one: PanAz.ar/0[2] input_two: PanAz.ar/1[2] input_three: PanAz.ar/2[2] - Sum3.ar/3: input_one: PanAz.ar/0[3] input_two: PanAz.ar/1[3] input_three: PanAz.ar/2[3] - Out.ar: bus: 0.0 source[0]: Sum3.ar/0[0] source[1]: Sum3.ar/1[0] source[2]: Sum3.ar/2[0] source[3]: Sum3.ar/3[0]
Compare with a non-multichannel mixdown:
>>> mix = supriya.ugens.Mix.new(panner) >>> out = supriya.ugens.Out.ar(bus=0, source=mix) >>> supriya.graph(out)
>>> print(out) synthdef: name: 6f8d08d5a9a3d1aa845dd7b06301293d ugens: - SinOsc.ar/0: frequency: 440.0 phase: 0.0 - LFNoise2.kr: frequency: 500.0 - PanAz.ar/0: source: SinOsc.ar/0[0] position: LFNoise2.kr[0] amplitude: 1.0 width: 2.0 orientation: 0.5 - Sum4.ar/0: input_one: PanAz.ar/0[0] input_two: PanAz.ar/0[1] input_three: PanAz.ar/0[2] input_four: PanAz.ar/0[3] - SinOsc.ar/1: frequency: 660.0 phase: 0.0 - PanAz.ar/1: source: SinOsc.ar/1[0] position: LFNoise2.kr[0] amplitude: 1.0 width: 2.0 orientation: 0.5 - Sum4.ar/1: input_one: PanAz.ar/1[0] input_two: PanAz.ar/1[1] input_three: PanAz.ar/1[2] input_four: PanAz.ar/1[3] - SinOsc.ar/2: frequency: 880.0 phase: 0.0 - PanAz.ar/2: source: SinOsc.ar/2[0] position: LFNoise2.kr[0] amplitude: 1.0 width: 2.0 orientation: 0.5 - Sum4.ar/2: input_one: PanAz.ar/2[0] input_two: PanAz.ar/2[1] input_three: PanAz.ar/2[2] input_four: PanAz.ar/2[3] - Sum3.ar: input_one: Sum4.ar/0[0] input_two: Sum4.ar/1[0] input_three: Sum4.ar/2[0] - Out.ar: bus: 0.0 source[0]: Sum3.ar[0]
- classmethod new(sources)¶
-
class MulAdd(addend=
0.0
, multiplier=1.0
, calculation_rate=None
, source=None
)¶ Bases:
UGen
An Optimized multiplication / addition ugen.
>>> source = supriya.ugens.SinOsc.ar() >>> mul_add = supriya.ugens.MulAdd.new( ... addend=0.5, ... multiplier=-1.5, ... source=source, ... ) >>> mul_add MulAdd.ar()
-
classmethod new(source=
None
, multiplier=1.0
, addend=0.0
)¶ Constructs a multiplication / addition ugen.
>>> addend = 0.5 >>> multiplier = 1.5 >>> source = supriya.ugens.SinOsc.ar(frequency=[440, 442]) >>> mul_add = supriya.ugens.MulAdd.new( ... addend=addend, ... multiplier=multiplier, ... source=source, ... ) >>> mul_add UGenArray({2})
Returns ugen graph.
- property addend : SupportsFloat | UGenMethodMixin¶
- property multiplier : SupportsFloat | UGenMethodMixin¶
- property source : SupportsFloat | UGenMethodMixin¶
-
classmethod new(source=
-
class Sum3(input_one=
None
, input_two=None
, input_three=None
)¶ Bases:
UGen
A three-input summing unit generator.
>>> input_one = supriya.ugens.SinOsc.ar() >>> input_two = supriya.ugens.SinOsc.ar(phase=0.1) >>> input_three = supriya.ugens.SinOsc.ar(phase=0.2) >>> supriya.ugens.Sum3.new( ... input_one=input_one, ... input_two=input_two, ... input_three=input_three, ... ) Sum3.ar()
-
classmethod new(input_one: SupportsFloat | UGenMethodMixin | None =
None
, input_two: SupportsFloat | UGenMethodMixin | None =None
, input_three: SupportsFloat | UGenMethodMixin | None =None
) Sum3 ¶
- property input_one : SupportsFloat | UGenMethodMixin¶
- property input_three : SupportsFloat | UGenMethodMixin¶
- property input_two : SupportsFloat | UGenMethodMixin¶
-
classmethod new(input_one: SupportsFloat | UGenMethodMixin | None =
-
class Sum4(input_one=
None
, input_two=None
, input_three=None
, input_four=None
)¶ Bases:
UGen
A four-input summing unit generator.
>>> input_one = supriya.ugens.SinOsc.ar() >>> input_two = supriya.ugens.SinOsc.ar(phase=0.1) >>> input_three = supriya.ugens.SinOsc.ar(phase=0.2) >>> input_four = supriya.ugens.SinOsc.ar(phase=0.3) >>> supriya.ugens.Sum4.new( ... input_one=input_one, ... input_two=input_two, ... input_three=input_three, ... input_four=input_four, ... ) Sum4.ar()
-
classmethod new(input_one: SupportsFloat | UGenMethodMixin | None =
None
, input_two: SupportsFloat | UGenMethodMixin | None =None
, input_three: SupportsFloat | UGenMethodMixin | None =None
, input_four: SupportsFloat | UGenMethodMixin | None =None
) Sum4 ¶
- property input_four : SupportsFloat | UGenMethodMixin¶
- property input_one : SupportsFloat | UGenMethodMixin¶
- property input_three : SupportsFloat | UGenMethodMixin¶
- property input_two : SupportsFloat | UGenMethodMixin¶
-
classmethod new(input_one: SupportsFloat | UGenMethodMixin | None =