triggers

class Clip(calculation_rate=None, source=None, minimum=0.0, maximum=1.0, **kwargs)

Bases: UGen

Clips a signal outside given thresholds.

>>> source = supriya.ugens.SinOsc.ar()
>>> clip = supriya.ugens.Clip.ar(
...     maximum=0.9,
...     minimum=0.1,
...     source=source,
... )
>>> clip
Clip.ar()
classmethod ar(source: SupportsFloat | UGenMethodMixin | None = None, minimum: SupportsFloat | UGenMethodMixin = 0.0, maximum: SupportsFloat | UGenMethodMixin = 1.0) Clip
classmethod ir(source: SupportsFloat | UGenMethodMixin | None = None, minimum: SupportsFloat | UGenMethodMixin = 0.0, maximum: SupportsFloat | UGenMethodMixin = 1.0) Clip
classmethod kr(source: SupportsFloat | UGenMethodMixin | None = None, minimum: SupportsFloat | UGenMethodMixin = 0.0, maximum: SupportsFloat | UGenMethodMixin = 1.0) Clip
property maximum : SupportsFloat | UGenMethodMixin
property minimum : SupportsFloat | UGenMethodMixin
property source : SupportsFloat | UGenMethodMixin
class Fold(calculation_rate=None, source=None, minimum=0.0, maximum=1.0, **kwargs)

Bases: UGen

Folds a signal outside given thresholds.

>>> source = supriya.ugens.SinOsc.ar()
>>> fold = supriya.ugens.Fold.ar(
...     maximum=0.9,
...     minimum=0.1,
...     source=source,
... )
>>> fold
Fold.ar()
classmethod ar(source: SupportsFloat | UGenMethodMixin | None = None, minimum: SupportsFloat | UGenMethodMixin = 0.0, maximum: SupportsFloat | UGenMethodMixin = 1.0) Fold
classmethod ir(source: SupportsFloat | UGenMethodMixin | None = None, minimum: SupportsFloat | UGenMethodMixin = 0.0, maximum: SupportsFloat | UGenMethodMixin = 1.0) Fold
classmethod kr(source: SupportsFloat | UGenMethodMixin | None = None, minimum: SupportsFloat | UGenMethodMixin = 0.0, maximum: SupportsFloat | UGenMethodMixin = 1.0) Fold
property maximum : SupportsFloat | UGenMethodMixin
property minimum : SupportsFloat | UGenMethodMixin
property source : SupportsFloat | UGenMethodMixin
class Gate(calculation_rate=None, source=None, trigger=0, **kwargs)

Bases: UGen

Gates or holds.

>>> source = supriya.ugens.WhiteNoise.ar()
>>> trigger = supriya.ugens.Dust.kr(density=1)
>>> gate = supriya.ugens.Gate.ar(
...     source=source,
...     trigger=trigger,
... )
>>> gate
Gate.ar()
classmethod ar(source: SupportsFloat | UGenMethodMixin | None = None, trigger: SupportsFloat | UGenMethodMixin = 0) Gate
classmethod kr(source: SupportsFloat | UGenMethodMixin | None = None, trigger: SupportsFloat | UGenMethodMixin = 0) Gate
property source : SupportsFloat | UGenMethodMixin
property trigger : SupportsFloat | UGenMethodMixin
class InRange(calculation_rate=None, source=None, minimum=0.0, maximum=1.0, **kwargs)

Bases: UGen

Tests if a signal is within a given range.

>>> source = supriya.ugens.SinOsc.ar()
>>> in_range = supriya.ugens.InRange.ar(
...     maximum=0.9,
...     minimum=0.1,
...     source=source,
... )
>>> in_range
InRange.ar()
classmethod ar(source: SupportsFloat | UGenMethodMixin | None = None, minimum: SupportsFloat | UGenMethodMixin = 0.0, maximum: SupportsFloat | UGenMethodMixin = 1.0) InRange
classmethod ir(source: SupportsFloat | UGenMethodMixin | None = None, minimum: SupportsFloat | UGenMethodMixin = 0.0, maximum: SupportsFloat | UGenMethodMixin = 1.0) InRange
classmethod kr(source: SupportsFloat | UGenMethodMixin | None = None, minimum: SupportsFloat | UGenMethodMixin = 0.0, maximum: SupportsFloat | UGenMethodMixin = 1.0) InRange
property maximum : SupportsFloat | UGenMethodMixin
property minimum : SupportsFloat | UGenMethodMixin
property source : SupportsFloat | UGenMethodMixin
class Latch(calculation_rate=None, source=None, trigger=0, **kwargs)

Bases: UGen

Samples and holds.

>>> source = supriya.ugens.WhiteNoise.ar()
>>> trigger = supriya.ugens.Dust.kr(density=1)
>>> latch = supriya.ugens.Latch.ar(
...     source=source,
...     trigger=trigger,
... )
>>> latch
Latch.ar()
classmethod ar(source: SupportsFloat | UGenMethodMixin | None = None, trigger: SupportsFloat | UGenMethodMixin = 0) Latch
classmethod kr(source: SupportsFloat | UGenMethodMixin | None = None, trigger: SupportsFloat | UGenMethodMixin = 0) Latch
property source : SupportsFloat | UGenMethodMixin
property trigger : SupportsFloat | UGenMethodMixin
class LeastChange(calculation_rate=None, a=0, b=0, **kwargs)

Bases: UGen

Outputs least changed input.

>>> least_change = supriya.ugens.LeastChange.ar(
...     a=0,
...     b=0,
... )
>>> least_change
LeastChange.ar()
classmethod ar(a: SupportsFloat | UGenMethodMixin = 0, b: SupportsFloat | UGenMethodMixin = 0) LeastChange
classmethod kr(a: SupportsFloat | UGenMethodMixin = 0, b: SupportsFloat | UGenMethodMixin = 0) LeastChange
property a : SupportsFloat | UGenMethodMixin
property b : SupportsFloat | UGenMethodMixin
class MostChange(calculation_rate=None, a=0, b=0, **kwargs)

Bases: UGen

Outputs most changed input.

>>> most_change = supriya.ugens.MostChange.ar(
...     a=0,
...     b=0,
... )
>>> most_change
MostChange.ar()
classmethod ar(a: SupportsFloat | UGenMethodMixin = 0, b: SupportsFloat | UGenMethodMixin = 0) MostChange
classmethod kr(a: SupportsFloat | UGenMethodMixin = 0, b: SupportsFloat | UGenMethodMixin = 0) MostChange
property a : SupportsFloat | UGenMethodMixin
property b : SupportsFloat | UGenMethodMixin
class Peak(calculation_rate=None, source=None, trigger=0, **kwargs)

Bases: UGen

Tracks peak signal amplitude.

>>> source = supriya.ugens.In.ar(bus=0)
>>> trigger = supriya.ugens.Impulse.kr(frequency=1)
>>> peak = supriya.ugens.Peak.ar(
...     source=source,
...     trigger=trigger,
... )
>>> peak
Peak.ar()
classmethod ar(source: SupportsFloat | UGenMethodMixin | None = None, trigger: SupportsFloat | UGenMethodMixin = 0) Peak
classmethod kr(source: SupportsFloat | UGenMethodMixin | None = None, trigger: SupportsFloat | UGenMethodMixin = 0) Peak
property source : SupportsFloat | UGenMethodMixin
property trigger : SupportsFloat | UGenMethodMixin
class PeakFollower(calculation_rate=None, source=None, decay=0.999, **kwargs)

Bases: UGen

Tracks peak signal amplitude.

>>> source = supriya.ugens.In.ar(bus=0)
>>> peak_follower = supriya.ugens.PeakFollower.ar(
...     decay=0.999,
...     source=source,
... )
>>> peak_follower
PeakFollower.ar()
classmethod ar(source: SupportsFloat | UGenMethodMixin | None = None, decay: SupportsFloat | UGenMethodMixin = 0.999) PeakFollower
classmethod kr(source: SupportsFloat | UGenMethodMixin | None = None, decay: SupportsFloat | UGenMethodMixin = 0.999) PeakFollower
property decay : SupportsFloat | UGenMethodMixin
property source : SupportsFloat | UGenMethodMixin
class Phasor(calculation_rate=None, trigger=0, rate=1.0, start=0.0, stop=1.0, reset_pos=0.0, **kwargs)

Bases: UGen

A resettable linear ramp between two levels.

>>> trigger = supriya.ugens.Impulse.kr(frequency=0.5)
>>> phasor = supriya.ugens.Phasor.ar(
...     rate=1,
...     reset_pos=0,
...     start=0,
...     stop=1,
...     trigger=trigger,
... )
>>> phasor
Phasor.ar()
classmethod ar(trigger: SupportsFloat | UGenMethodMixin = 0, rate: SupportsFloat | UGenMethodMixin = 1.0, start: SupportsFloat | UGenMethodMixin = 0.0, stop: SupportsFloat | UGenMethodMixin = 1.0, reset_pos: SupportsFloat | UGenMethodMixin = 0.0) Phasor
classmethod kr(trigger: SupportsFloat | UGenMethodMixin = 0, rate: SupportsFloat | UGenMethodMixin = 1.0, start: SupportsFloat | UGenMethodMixin = 0.0, stop: SupportsFloat | UGenMethodMixin = 1.0, reset_pos: SupportsFloat | UGenMethodMixin = 0.0) Phasor
property rate : SupportsFloat | UGenMethodMixin
property reset_pos : SupportsFloat | UGenMethodMixin
property start : SupportsFloat | UGenMethodMixin
property stop : SupportsFloat | UGenMethodMixin
property trigger : SupportsFloat | UGenMethodMixin
class Poll(calculation_rate=None, label=None, source=None, trigger=None, trigger_id=-1)

Bases: UGen

A UGen poller.

>>> sine = supriya.ugens.SinOsc.ar()
>>> trigger = supriya.ugens.Impulse.kr(frequency=1)
>>> poll = supriya.ugens.Poll.ar(
...     source=sine,
...     trigger=trigger,
...     trigger_id=1234,
... )
>>> poll
Poll.ar()

Unlike sclang, Python does not share any inter-process communication with scsynth. This means that the Poll UGen is not able to automatically print out its diagnostic messages into a Python interpreter session.

To get information out of the Poll UGen, we first need to set the Poll’s trigger_id to a value greater than 0. This will cause the poll to send /tr OSC messages back to its client - Python. We can then register a callback to respond to these /tr messages.

>>> with supriya.SynthDefBuilder() as builder:
...     sine = supriya.ugens.SinOsc.ar()
...     trigger = supriya.ugens.Impulse.kr(frequency=1)
...     poll = supriya.ugens.Poll.ar(
...         source=sine,
...         trigger=trigger,
...         trigger_id=1234,
...     )
... 
>>> synthdef = builder.build()
>>> server = supriya.Server().boot()
>>> _ = server.add_synthdefs(
...     synthdef,
...     on_completion=lambda context: context.add_synth(synthdef),
... )
>>> _ = server.sync()
>>> callback = server.osc_protocol.register(
...     pattern="/tr",
...     procedure=lambda message: print("Polled: {!r}".format(message)),
...     once=True,
... )
>>> _ = server.quit()
classmethod ar(label=None, source=None, trigger=None, trigger_id=-1)
classmethod kr(label=None, source=None, trigger=None, trigger_id=-1)
classmethod new(label=None, source=None, trigger=None, trigger_id=-1)
property label

Gets label input of Poll.

>>> sine = supriya.ugens.SinOsc.ar()
>>> trigger = supriya.ugens.Impulse.kr(frequency=1)
>>> poll = supriya.ugens.Poll.ar(
...     label="Foo",
...     source=sine,
...     trigger=trigger,
...     trigger_id=1234,
... )
>>> poll.label
'Foo'

Returns ugen input.

property source : SupportsFloat | UGenMethodMixin
property trigger : SupportsFloat | UGenMethodMixin
property trigger_id : SupportsFloat | UGenMethodMixin
class RunningMax(calculation_rate=None, source=None, trigger=0, **kwargs)

Bases: UGen

Tracks maximum signal amplitude.

>>> source = supriya.ugens.In.ar(bus=0)
>>> trigger = supriya.ugens.Impulse.kr(frequency=1)
>>> running_max = supriya.ugens.RunningMax.ar(
...     source=source,
...     trigger=0,
... )
>>> running_max
RunningMax.ar()
classmethod ar(source: SupportsFloat | UGenMethodMixin | None = None, trigger: SupportsFloat | UGenMethodMixin = 0) RunningMax
classmethod kr(source: SupportsFloat | UGenMethodMixin | None = None, trigger: SupportsFloat | UGenMethodMixin = 0) RunningMax
property source : SupportsFloat | UGenMethodMixin
property trigger : SupportsFloat | UGenMethodMixin
class RunningMin(calculation_rate=None, source=None, trigger=0, **kwargs)

Bases: UGen

Tracks minimum signal amplitude.

>>> source = supriya.ugens.In.ar(bus=0)
>>> trigger = supriya.ugens.Impulse.kr(frequency=1)
>>> running_min = supriya.ugens.RunningMin.ar(
...     source=source,
...     trigger=trigger,
... )
>>> running_min
RunningMin.ar()
classmethod ar(source: SupportsFloat | UGenMethodMixin | None = None, trigger: SupportsFloat | UGenMethodMixin = 0) RunningMin
classmethod kr(source: SupportsFloat | UGenMethodMixin | None = None, trigger: SupportsFloat | UGenMethodMixin = 0) RunningMin
property source : SupportsFloat | UGenMethodMixin
property trigger : SupportsFloat | UGenMethodMixin
class Schmidt(calculation_rate=None, source=None, minimum=0.0, maximum=1.0, **kwargs)

Bases: UGen

A Schmidt trigger.

>>> source = supriya.ugens.SinOsc.ar()
>>> schmidt = supriya.ugens.Schmidt.ar(
...     maximum=0.9,
...     minimum=0.1,
...     source=source,
... )
>>> schmidt
Schmidt.ar()
classmethod ar(source: SupportsFloat | UGenMethodMixin | None = None, minimum: SupportsFloat | UGenMethodMixin = 0.0, maximum: SupportsFloat | UGenMethodMixin = 1.0) Schmidt
classmethod kr(source: SupportsFloat | UGenMethodMixin | None = None, minimum: SupportsFloat | UGenMethodMixin = 0.0, maximum: SupportsFloat | UGenMethodMixin = 1.0) Schmidt
property maximum : SupportsFloat | UGenMethodMixin
property minimum : SupportsFloat | UGenMethodMixin
property source : SupportsFloat | UGenMethodMixin
class SendPeakRMS(calculation_rate=None, reply_rate=20, peak_lag=3, reply_id=-1, source_size=None, source=None, character_count=None, character=None, **kwargs)

Bases: UGen

Tracks peak and power of a signal for GUI applications.

>>> send_peak_rms = supriya.ugens.SendPeakRMS.kr(
...     command_name="/reply",
...     peak_lag=3,
...     reply_id=-1,
...     reply_rate=20,
...     source=[1, 2, 3],
... )
>>> send_peak_rms
SendPeakRMS.kr()
classmethod ar(command_name='/reply', peak_lag=3, reply_id=-1, reply_rate=20, source=None)

Constructs an audio-rate SendPeakRMS.

>>> source = supriya.ugens.In.ar(channel_count=4)
>>> send_peak_rms = supriya.ugens.SendPeakRMS.ar(
...     command_name="/reply",
...     peak_lag=3,
...     reply_id=-1,
...     reply_rate=20,
...     source=source,
... )
>>> send_peak_rms
SendPeakRMS.ar()

Returns ugen graph.

classmethod kr(command_name='/reply', peak_lag=3, reply_id=-1, reply_rate=20, source=None)

Constructs a control-rate SendPeakRMS.

>>> source = supriya.ugens.In.ar(channel_count=4)
>>> send_peak_rms = supriya.ugens.SendPeakRMS.kr(
...     command_name="/reply",
...     peak_lag=3,
...     reply_id=-1,
...     reply_rate=20,
...     source=source,
... )
>>> send_peak_rms
SendPeakRMS.kr()

Returns ugen graph.

property character : SupportsFloat | UGenMethodMixin
property character_count : SupportsFloat | UGenMethodMixin
property peak_lag : SupportsFloat | UGenMethodMixin
property reply_id : SupportsFloat | UGenMethodMixin
property reply_rate : SupportsFloat | UGenMethodMixin
property source : SupportsFloat | UGenMethodMixin
property source_size : SupportsFloat | UGenMethodMixin
class SendReply(calculation_rate=None, trigger=None, reply_id=-1, character_count=None, character=None, source=None, **kwargs)

Bases: UGen

Sends an array of values from the server to all notified clients.

>>> source = supriya.ugens.In.ar(channel_count=4)
>>> trigger = supriya.ugens.Impulse.kr(frequency=1)
>>> send_reply = supriya.ugens.SendReply.kr(
...     command_name="/reply",
...     source=source,
...     trigger=trigger,
... )
classmethod ar(command_name='/reply', reply_id=-1, source=None, trigger=None)

Constructs an audio-rate SendReply.

>>> source = supriya.ugens.In.ar(channel_count=4)
>>> trigger = supriya.ugens.Impulse.kr(frequency=1)
>>> send_reply = supriya.ugens.SendReply.ar(
...     command_name="/reply",
...     source=source,
...     trigger=trigger,
... )
>>> send_reply
SendReply.ar()

Returns ugen graph.

classmethod kr(command_name='/reply', reply_id=-1, source=None, trigger=None)

Constructs a control-rate SendReply.

>>> source = supriya.ugens.In.ar(channel_count=4)
>>> trigger = supriya.ugens.Impulse.kr(frequency=1)
>>> send_reply = supriya.ugens.SendReply.kr(
...     command_name="/reply",
...     source=source,
...     trigger=trigger,
... )
>>> send_reply
SendReply.kr()

Returns ugen graph.

property character : SupportsFloat | UGenMethodMixin
property character_count : SupportsFloat | UGenMethodMixin
property reply_id : SupportsFloat | UGenMethodMixin
property source : SupportsFloat | UGenMethodMixin
property trigger : SupportsFloat | UGenMethodMixin
class SendTrig(calculation_rate=None, trigger=None, id_=0, value=0.0, **kwargs)

Bases: UGen

classmethod ar(trigger: SupportsFloat | UGenMethodMixin | None = None, id_: SupportsFloat | UGenMethodMixin = 0, value: SupportsFloat | UGenMethodMixin = 0.0) SendTrig
classmethod kr(trigger: SupportsFloat | UGenMethodMixin | None = None, id_: SupportsFloat | UGenMethodMixin = 0, value: SupportsFloat | UGenMethodMixin = 0.0) SendTrig
property id_ : SupportsFloat | UGenMethodMixin
property trigger : SupportsFloat | UGenMethodMixin
property value : SupportsFloat | UGenMethodMixin
class Sweep(calculation_rate=None, trigger=0, rate=1.0, **kwargs)

Bases: UGen

A triggered linear ramp.

>>> sweep = supriya.ugens.Sweep.ar(
...     rate=1,
...     trigger=0,
... )
>>> sweep
Sweep.ar()
classmethod ar(trigger: SupportsFloat | UGenMethodMixin = 0, rate: SupportsFloat | UGenMethodMixin = 1.0) Sweep
classmethod kr(trigger: SupportsFloat | UGenMethodMixin = 0, rate: SupportsFloat | UGenMethodMixin = 1.0) Sweep
property rate : SupportsFloat | UGenMethodMixin
property trigger : SupportsFloat | UGenMethodMixin
class TDelay(calculation_rate=None, source=None, duration=0.1, **kwargs)

Bases: UGen

A trigger delay.

>>> source = supriya.ugens.Dust.kr(density=1)
>>> tdelay = supriya.ugens.TDelay.ar(
...     duration=0.1,
...     source=source,
... )
>>> tdelay
TDelay.ar()
classmethod ar(source: SupportsFloat | UGenMethodMixin | None = None, duration: SupportsFloat | UGenMethodMixin = 0.1) TDelay
classmethod kr(source: SupportsFloat | UGenMethodMixin | None = None, duration: SupportsFloat | UGenMethodMixin = 0.1) TDelay
property duration : SupportsFloat | UGenMethodMixin
property source : SupportsFloat | UGenMethodMixin
class ToggleFF(calculation_rate=None, trigger=0, **kwargs)

Bases: UGen

A toggle flip-flop.

>>> trigger = supriya.ugens.Dust.kr(density=1)
>>> toggle_ff = supriya.ugens.ToggleFF.ar(
...     trigger=trigger,
... )
>>> toggle_ff
ToggleFF.ar()
classmethod ar(trigger: SupportsFloat | UGenMethodMixin = 0) ToggleFF
classmethod kr(trigger: SupportsFloat | UGenMethodMixin = 0) ToggleFF
property trigger : SupportsFloat | UGenMethodMixin
class Trig(calculation_rate=None, source=None, duration=0.1, **kwargs)

Bases: UGen

A timed trigger.

>>> source = supriya.ugens.Dust.kr(density=1)
>>> trig = supriya.ugens.Trig.ar(
...     duration=0.1,
...     source=source,
... )
>>> trig
Trig.ar()
classmethod ar(source: SupportsFloat | UGenMethodMixin | None = None, duration: SupportsFloat | UGenMethodMixin = 0.1) Trig
classmethod kr(source: SupportsFloat | UGenMethodMixin | None = None, duration: SupportsFloat | UGenMethodMixin = 0.1) Trig
property duration : SupportsFloat | UGenMethodMixin
property source : SupportsFloat | UGenMethodMixin
class Trig1(calculation_rate=None, source=None, duration=0.1, **kwargs)

Bases: UGen

A timed trigger.

>>> source = supriya.ugens.Dust.kr(density=1)
>>> trig_1 = supriya.ugens.Trig1.ar(
...     duration=0.1,
...     source=source,
... )
>>> trig_1
Trig1.ar()
classmethod ar(source: SupportsFloat | UGenMethodMixin | None = None, duration: SupportsFloat | UGenMethodMixin = 0.1) Trig1
classmethod kr(source: SupportsFloat | UGenMethodMixin | None = None, duration: SupportsFloat | UGenMethodMixin = 0.1) Trig1
property duration : SupportsFloat | UGenMethodMixin
property source : SupportsFloat | UGenMethodMixin
class Wrap(calculation_rate=None, source=None, minimum=0.0, maximum=1.0, **kwargs)

Bases: UGen

Wraps a signal outside given thresholds.

>>> source = supriya.ugens.SinOsc.ar()
>>> wrap = supriya.ugens.Wrap.ar(
...     maximum=0.9,
...     minimum=0.1,
...     source=source,
... )
>>> wrap
Wrap.ar()
classmethod ar(source: SupportsFloat | UGenMethodMixin | None = None, minimum: SupportsFloat | UGenMethodMixin = 0.0, maximum: SupportsFloat | UGenMethodMixin = 1.0) Wrap
classmethod ir(source: SupportsFloat | UGenMethodMixin | None = None, minimum: SupportsFloat | UGenMethodMixin = 0.0, maximum: SupportsFloat | UGenMethodMixin = 1.0) Wrap
classmethod kr(source: SupportsFloat | UGenMethodMixin | None = None, minimum: SupportsFloat | UGenMethodMixin = 0.0, maximum: SupportsFloat | UGenMethodMixin = 1.0) Wrap
property maximum : SupportsFloat | UGenMethodMixin
property minimum : SupportsFloat | UGenMethodMixin
property source : SupportsFloat | UGenMethodMixin
class ZeroCrossing(calculation_rate=None, source=None, **kwargs)

Bases: UGen

A zero-crossing frequency follower.

>>> source = supriya.ugens.In.ar(bus=0)
>>> zero_crossing = supriya.ugens.ZeroCrossing.ar(
...     source=source,
... )
>>> zero_crossing
ZeroCrossing.ar()
classmethod ar(source: SupportsFloat | UGenMethodMixin | None = None) ZeroCrossing
classmethod kr(source: SupportsFloat | UGenMethodMixin | None = None) ZeroCrossing
property source : SupportsFloat | UGenMethodMixin