adsr~
Description
The adsr~ object is an Attack-Decay-Sustain-Release signal controllable by signals. In some situations, a combination of the function and line~ objects may be a useful alternative.
Examples
Discussion
Any non-zero value in the trigger inlet will trigger an envelope with that amplitude. Like an adsr~ triggered by an input float, a zero value represents "note-off" and will begin the release stage. unlike the event-trigger model, a signal-triggered adsr~ must receive a zero before it will retrigger.
The adsr~ object uses the Max time format syntax; envelope times can be specified in either fixed or tempo-relative formats.
Arguments
attack [float]
The initial attack time
decay [float]
The initial decay time
sustain [float]
The initial sustain level
release [float]
The initial release time
Attributes
attack [Time Value]
Sets the attack of the ADSR-envelope in milliseconds.
decay [Time Value]
Sets the decay of the ADSR-envelope in milliseconds.
legato [int]
Given as input, the word
, followed by a 0 or a non-zero number, disables or enables legato mode. If legato mode is enabled, the envelope will not drop to zero in the event of a retrigger while the envelope is active - instead, the envelope ramps to the new amplitude over the attack period.maxsustain [float]
Given as input, the word
, followed by a float, sets the maximum amount of time that the envelope will remain in the sustain stage. A negative number sets no maximum; the envelope will remain forever in the sustain stage until a note-off is received. To create a simple three-stage sustainless envelope (an ADR), you can use the message maxsustain 0.0.release [Time Value]
Sets the release of the ADSR-envelope in milliseconds.
retrigger [float]
Given as input, the word
, followed by a float, sets the amount of time taken to ramp down to zero in the event of a retrigger while the envelope is active (the default is 5 milliseconds). This ramping prevents clicking.sustain [float]
Sets the sustain of the ADSR-envelope, as a factor of the amplitude. For example, a value of 0.5 means the sustain level will be half of the amplitude height.
triggermode [int]
The triggermode attributes determines whether the envelope waits for a zero to complete the release phase or plays to the end once triggered.
Possible values:
0 = 'ADSR'
(
Normal ADSR triggering
)
In ADSR mode, the envelope starts when a non-zero signal or float is received and begins the release phase when a zero is reeived.
1 = 'Play to End'
(
Play to End
)
In Play to End mode, the envelope starts and plays the attack, decay and release segments, ignoring further input until the envelope completes.
Common Box Attributes
annotation [symbol]
Sets the text that will be displayed in the Clue window when the user moves the mouse over the object.
background [int] (default: 0)
Adds or removes the object from the patcher's background layer.
adds the object to the background layer, removes it. Objects in the background layer are shown behind all objects in the default foreground layer.color [4 floats]
Sets the color for the object box outline.
fontface [int]
Sets the type style used by the object. The options are:
plain
bold
italic
bold italic
Possible values:
0 = 'regular'
1 = 'bold'
2 = 'italic'
3 = 'bold italic'
fontname [symbol]
Sets the object's font.
fontsize [float]
Sets the object's font size (in points).
Possible values:
'8'
'9'
'10'
'11'
'12'
'13'
'14'
'16'
'18'
'20'
'24'
'30'
'36'
'48'
'64'
'72'
hidden [int] (default: 0)
Toggles whether an object is hidden when the patcher is locked.
hint [symbol]
Sets the text that will be displayed in as a pop-up hint when the user moves the mouse over the object in a locked patcher.
ignoreclick [int] (default: 0)
Toggles whether an object ignores mouse clicks in a locked patcher.
jspainterfile [symbol]
JS Painter File
patching_rect [4 floats] (default: 0. 0. 100. 0.)
Sets the position and size of the object in the patcher window.
position [2 floats]
Sets the object's x and y position in both patching and presentation modes (if the object belongs to its patcher's presentation), leaving its size unchanged.
presentation [int] (default: 0)
Sets whether an object belongs to the patcher's presentation.
presentation_rect [4 floats] (default: 0. 0. 0. 0.)
Sets the x and y position and width and height of the object in the patcher's presentation, leaving its patching position unchanged.
rect [4 floats]
Sets the x and y position and width and height of the object in both patching and presentation modes (if the object belongs to its patcher's presentation).
size [2 floats]
Sets the object's width and height in both patching and presentation modes (if the object belongs to its patcher's presentation), leaving its position unchanged.
textcolor [4 floats]
Sets the color for the object's text in RGBA format.
textjustification [int]
Sets the justification for the object's text.
Possible values:
0 = 'left'
1 = 'center'
2 = 'right'
varname [symbol]
Sets the patcher's scripting name, which can be used to address the object by name in pattr, scripting messages to thispatcher, and the js object.
Messages
int
Arguments
float
Arguments
In second inlet: sets the attack time in milliseconds.
In third inlet: sets the decay time in milliseconds.
In fourth inlet: sets the envelope's sustain level, as a factor of the amplitude. For example, a value of 2 means the sustain level will be twice the value of the amplitude height.
In fifth inlet: sets the envelope's release time, in milliseconds.
list
Arguments
decay [float]
sustain [float]
release [float]
anything
Arguments
decay [float]
sustain [float]
release [float]
Any other inlet: A list may be used to specify time in one of the Max time formats.
signal
In second inlet: sets the attack time in milliseconds.
In third inlet: sets the decay time in milliseconds.
In fourth inlet: sets the envelope's sustain level, as a factor of the amplitude. For example, a value of 0.5 means the sustain level will be half of the amplitude.
In right inlet: sets the release time in milliseconds.
Output
message
The right outlet sends poly~ instance muting with the thispoly~ object.
messages suitable for managing internalmessage
The fourth outlet responds to query messages for the various attributes (i.e.
).signal
Left outlet: the envelope.
Middle outlet: signals the beginning of an envelope by sending when in the attack, decay, or sustain stages and otherwise (release, retrigger, or inactive). You can use this outlet in conjunction with the sah~ object to synchronize pitch (or other information) with the beginning of an envelope with sample accuracy.
See Also
Name | Description |
---|---|
function | Breakpoint function editor |
line~ | Linear signal ramp generator |
techno~ | Signal-driven step sequencer |
transport | Control a clock |
zigzag~ | Linked list function editor |